Closed Bug 1483600 Opened 3 years ago Closed 3 years ago
Raptor webext content script is not injected into geckoview example app page after updating URL
46 bytes, text/x-phabricator-request
|Details | Review|
When using a webext in geckoview (example app), the background scripts defined in the extension manifest are injected into the page, however it looks like content_scripts defined in the manifest are not loading after browsing to a URL. The geckoview_example app starts up (I have it start with about:blank instead of the default, using the 'url' cmd line option when launching the activity). Then I use browser.tabs.update and change the URL to the speedometer benchmark URL. The URL changes and the benchmark starts running, however the 'benchmark_relay.js' webext content script  is not injected into the benchmark page (which causes the benchmark results to never be received by raptor). The page name is in the 'matches' list in the 'content_scripts' webext section. Tried setting it to '<all_urls>' anyway but still it wouldn't load. On Firefox Desktop raptor creates a new tab first (about:blank) and then uses browser.tabs.update to change to the benchmark URL. I'm wondering if maybe in geckoview since there's no new tab created, maybe browsing to the URL via tabs.update is for some reason causing the extension content_scripts not to be injected - but totally just guessing.  https://searchfox.org/mozilla-central/source/testing/raptor/webext/raptor/
Matt can you take a look at this one too?
Assignee: nobody → mbrubeck
Status: NEW → ASSIGNED
`ExtensionProcessScript.loadContentScript` is called as expected, but it does not inject the content script because `DocumentManager.globals.has(window.docShell.messageManager)` returns false here: https://dxr.mozilla.org/mozilla-central/rev/4e56a2f51ad739ca52046723448f3129a58f1666/toolkit/components/extensions/extension-process-script.js#510
This happens because `DocumentManager.initGlobal` isn't called because GeckoView doesn't dispatch the "tab-content-frameloader-created" notification during content process initialization.
Comment on attachment 9001750 [details] Bug 1483600 - Notify "tab-content-frameloader-created" in GeckoView content script. r=jchen Jim Chen [:jchen] [:darchons] has approved the revision.
Attachment #9001750 - Flags: review+
With the geckoview_example app from your try push (comment 5) I verified that the raptor extension content script (benchmark-relay.js) is now injected into the speedometer page (and the benchmark results are now received successfully). AWESOME, thank you! :)
Pushed by email@example.com: https://hg.mozilla.org/integration/autoland/rev/cc1ffa88e12c Notify "tab-content-frameloader-created" in GeckoView content script. r=jchen
You need to log in before you can comment on or make changes to this bug.