Closed Bug 1283173 (webext-port-tampermonkey) Opened 9 years ago Closed 8 years ago

Enable Tampermonkey Chrome extension to work with Firefox

Categories

(WebExtensions :: Compatibility, defect, P5)

defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: bsilverberg, Unassigned)

References

(Depends on 1 open bug)

Details

(Whiteboard: [popular chrome extensions]triaged)

Chrome extension at https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo No test uploaded to AMO yet. Failed linter validation with: Your add-on failed validation with 1 error. - "/incognito" should match pattern "^spanning$" I tried downloading and loading as a temporary add-on, and saw these messages: - 1467215608939 addons.webextension.<unknown> ERROR Loading extension 'null': Reading manifest: Error processing content_scripts.0.matches.0: Value must either: be one of ["<all_urls>"], match the pattern /^(https?|file|ftp|app|\*):\/\/(\*|\*\.[^*/]+|[^*/]+)\/.*$/, or match the pattern /^file:\/\/\/.*$/ Log.jsm:753 - Error: Extension is invalid Stack trace: loadManifestFromWebManifest<@resource://gre/modules/addons/XPIProvider.jsm:913:11 TaskImpl_run@resource://gre/modules/Task.jsm:319:40 Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:937:23 this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:816:7 Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11 this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:779:7 this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:714:7 TaskImpl_run@resource://gre/modules/Task.jsm:324:13 promise callback*TaskImpl_handleResultValue@resource://gre/modules/Task.jsm:395:7 TaskImpl_run@resource://gre/modules/Task.jsm:327:13 Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:937:23 this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:816:7 Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11 this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:779:7 Promise.prototype.then@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:454:5 TaskImpl_handleResultValue@resource://gre/modules/Task.jsm:395:7 TaskImpl_run@resource://gre/modules/Task.jsm:327:13 TaskImpl@resource://gre/modules/Task.jsm:280:3 createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:254:14 loadManifestFromWebManifest<@resource://gre/modules/addons/XPIProvider.jsm:909:23 TaskImpl_run@resource://gre/modules/Task.jsm:319:40 promise callback*TaskImpl_handleResultValue@resource://gre/modules/Task.jsm:395:7 TaskImpl_run@resource://gre/modules/Task.jsm:327:13 TaskImpl@resource://gre/modules/Task.jsm:280:3 createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:254:14 loadManifestFromDir<@resource://gre/modules/addons/XPIProvider.jsm:1348:19 TaskImpl_run@resource://gre/modules/Task.jsm:319:40 TaskImpl@resource://gre/modules/Task.jsm:280:3 createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:254:14 loadManifestFromFile@resource://gre/modules/addons/XPIProvider.jsm:1493:12 this.XPIProvider.installTemporaryAddon<@resource://gre/modules/addons/XPIProvider.jsm:3926:23 TaskImpl_run@resource://gre/modules/Task.jsm:319:40 TaskImpl@resource://gre/modules/Task.jsm:280:3 createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:254:14 AddonManagerInternal.installTemporaryAddon@resource://gre/modules/AddonManager.jsm:2320:12 this.AddonManager.installTemporaryAddon@resource://gre/modules/AddonManager.jsm:3473:12 loadAddonFromFile@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/aboutdebugging/components/addons/controls.js:57:5 controls.js:59:9 More investigation is needed to determine what the actual issue/issues is/are.
Alias: webext-port-tampermonkey
Hi, Tampermonkey dev here. Can you please add the following bugs at the "Depends on" field? A) 1273138, 1267027 B) 1213455, 1280027 A is needed by both, the Firefox [1] and the Chrome [2] version, while B is only needed to make the Chrome version run. BTW: the match pattern issue mentioned at the post above is fixed. Thanks, Jan [1] https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ [2] https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo
Jan, I have added the first set of dependencies, referred to as A above. Do you not have access to add these dependencies yourself? I'm unclear about B though. You say that's required for the Chrome version, but if you are going to port the Firefox version to WebExtensions then the Chrome version might be irrelevant to Firefox. Also: - Bug 1213455 is a general tracking bug. Could you be more specific about what more is needed for notifications to support the extension? - Bug 1280027 is just about changing a warning to an error. I don't see how that would affect your extension's ability to work. Did you perhaps mean that you need support for "incognito" properties other than "spanning"?
Depends on: 1273138, 1267027
> Do you not have access to add these dependencies yourself? No, these fields are read-only for me. > then the Chrome version might be irrelevant to Firefox. I was not sure about this, because the bug title explicitly mentions "Tampermonkey Chrome". There already is a Firefox version of Tampermonkey and for me it's OK to ignore the Chrome version. I just added B) in case you really want to make the Chrome version to work. Bug 1213455: getPermissionLevel is used by the Chrome version Bug 1280027: Sorry, I misunderstood the issue a little bit. However, Tampermonkey Chrome won't work until "spanning" is supported.
(In reply to Jan Biniok from comment #3) > Tampermonkey Chrome won't work until "spanning" is supported. I meant "split" instead of "spanning". :)
Hi, Tampermonkey also depends on bug 1213473 (chrome.runtime.reload or location.reload) [1] for full functionality. [1] https://github.com/Tampermonkey/tampermonkey/issues/321 Thanks, Jan
Depends on: 1307624
(In reply to Jan Biniok from comment #5) > Hi, Tampermonkey also depends on bug 1213473 (chrome.runtime.reload or > location.reload) [1] for full functionality. This has been implemented as part of bug 1279012, its just that the documentation on MDN hasn't been done yet.
Component: WebExtensions: Untriaged → WebExtensions: Compatibility
Priority: -- → P5
Looks like its doing ok as one: https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/statistics/?last=365 Note: that chrome.runtime.reload was fixed in bug 1279012. Closing this tracking bug for getting the extension working although I know there are a few bugs that can be fixed like bug 1267027.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Product: Toolkit → WebExtensions
You need to log in before you can comment on or make changes to this bug.