activeTab permission not granted for tab on which the contextmenu is used

VERIFIED FIXED in Firefox 63

Status

P2
normal
VERIFIED FIXED
a year ago
4 months ago

People

(Reporter: robwu, Assigned: robwu)

Tracking

(Blocks: 1 bug, {dev-doc-complete})

59 Branch
mozilla63
dev-doc-complete
Dependency tree / graph

Firefox Tracking Flags

(firefox63 verified)

Details

(Whiteboard: [design-decision-approved])

Attachments

(5 attachments)

(Assignee)

Description

a year ago
str
Posted file activeTabMenu.zip
When the user clicks on a menu item on a tab, then I expect the "activeTab" permission to grant the extension access to that tab.

However, the extension only receives access to the current tab.

STR:
1. Load attached extension at about:debugging.
2. Open two tabs (e.g. example.com and example.net)
3. Right-click on the inactive tab (example.com) and click on "Click here to test activeTab"
4. Open the global JS console (Ctrl-Shift-J) and look at it.

Expected:
- executeScript at 1 succeeded: http://example.com

Actual:
- executeScript at 1 failed: Error: Missing host permission for the tab


I think that this can be fixed by passing contextData.tab to this invocation of addActiveTabPermission: https://searchfox.org/mozilla-central/rev/3abf6fa7e2a6d9a7bfb88796141b0f012e68c2db/browser/components/extensions/ext-menus.js#277
Whiteboard: design-decision-needed
Hi Rob, this has been added to the agenda for the WebExtensions APIs triage on May 29, 2018. Anyone who is interested in this bug is welcome to attend the meeting. 

Here’s a quick overview of what to expect at the triage: 

* We normally spend 5 minutes per bug
* The more information in the bug, the better
* The goal of the triage is to give a general thumbs up or thumbs down on a proposal; we won't be going deep into implementation details

Relevant Links: 

* Wiki for the meeting: https://wiki.mozilla.org/WebExtensions/Triage#Next_Meeting
* Meeting agenda: https://docs.google.com/document/d/1Y_oYPldTT_kQOOouyJbC-8y3ASIizScLKFRhQfsDQWI/edit#heading=h.v63i1wz9d1pc
* Vision doc for WebExtensions: https://wiki.mozilla.org/WebExtensions/Vision
Whiteboard: design-decision-needed → [design-decision-approved]

Updated

9 months ago
Product: Toolkit → WebExtensions
(Assignee)

Updated

8 months ago
Assignee: nobody → rob
Blocks: 1466876
Status: NEW → ASSIGNED
(Assignee)

Updated

8 months ago
Keywords: dev-doc-needed
Comment hidden (mozreview-request)

Updated

8 months ago
Priority: -- → P2

Comment 3

8 months ago
mozreview-review
Comment on attachment 8993098 [details]
Bug 1446956 - Grant access to the clicked tab in menus.onClicked

https://reviewboard.mozilla.org/r/257920/#review265028

::: browser/components/extensions/parent/ext-menus.js:273
(Diff revision 1)
>          }
>          // Select the clicked radio item.
>          item.checked = true;
>        }
>  
> -      if (!contextData.onBookmark) {
> +      if (contextData.tab) {

I don't think that activeTab should be given for bookmark context menus.
(Assignee)

Comment 4

8 months ago
mozreview-review-reply
Comment on attachment 8993098 [details]
Bug 1446956 - Grant access to the clicked tab in menus.onClicked

https://reviewboard.mozilla.org/r/257920/#review265028

> I don't think that activeTab should be given for bookmark context menus.

That does not happen because the "tab" property is not set when "onBookmark is true: https://searchfox.org/mozilla-central/rev/c296d5b2391c8b37374b118180b64cca66c0aa16/browser/components/extensions/parent/ext-menus.js#764-768

I checked that every `.build(` call has the `tab` property set: https://searchfox.org/mozilla-central/rev/c296d5b2391c8b37374b118180b64cca66c0aa16/browser/components/extensions/parent/ext-menus.js#430-432,745-746,771-773,776-779

In case of the "on-build-contextmenu" observer, the sender of the notification is expected to set "tab", which it does: https://searchfox.org/mozilla-central/rev/88199de427d3c5762b7f3c2a4860c10734abd867/browser/base/content/nsContextMenu.js#108,110,132
(unless gBrowser is not set, but I believe that gBrowser is always set when a browser window is visible, so we can assume that "tab" is always set when needed)

I switched from `!contextData.onBookmark` to `contextData.tab` so that if we have another non-tab-specific menu in the future, that we don't inadvertently grant the "activeTab" permission for the current tab.


(I just checked, and there is no unit test that confirms that "activeTab" is not granted when the bookmark menu is used. Should I add a new patch with a unit test for that scenario?)
(In reply to Rob Wu [:robwu] from comment #4)

> (I just checked, and there is no unit test that confirms that "activeTab" is
> not granted when the bookmark menu is used. Should I add a new patch with a
> unit test for that scenario?)

If we're not going to programmatically prevent it, we should have the tests in case anyone down the road makes a change that would result in context.tab being set.
Comment hidden (mozreview-request)

Comment 7

8 months ago
mozreview-review
Comment on attachment 8993369 [details]
Bug 1446956 - Test that activeTab is not granted for bookmarks menu

https://reviewboard.mozilla.org/r/258150/#review265408
Attachment #8993369 - Flags: review?(mixedpuppy) → review+
As far as this patch goes, I'm r+.  Whether we should do this is a different question.  

activeTab is documented to work specifically on the activeTab itself.  This breaks that by providing activeTab permissions to other tabs.  

OTOH, it only happens via user action on a context menu, and in a fashion that the user should expect that action to do something on the tab the context menu is attached to.  

Extensions otherwise request all_urls permission to make this work, so it's not necessary to break the contract that activeTab has.  Allowing activeTab in this context does simplify things for the developer, and I don't see a way that this would break expectations of the user.

I'm on the fence.  extensions have a way to make it work already, but doing this makes it easier with potentially less permissions for the extension.

Requesting second opinions.
Flags: needinfo?(mconca)
I agree that this makes sense in the spirit of activeTab. Having extensions request <all_urls> just to show a context menu on other tabs is probably an unneeded, unintended consequence. In many ways, this is probably a better experience for everyone - it's easier for the developer, it constrains the extension's host permissions, and it is less scary for users when they install it and don't see the "can access all your data for all websites" permission prompt.

r+ from a product point-of-view
Flags: needinfo?(mconca)

Comment 10

8 months ago
mozreview-review
Comment on attachment 8993098 [details]
Bug 1446956 - Grant access to the clicked tab in menus.onClicked

https://reviewboard.mozilla.org/r/257920/#review265416

::: browser/components/extensions/test/browser/browser_ext_menus_activeTab.js:25
(Diff revision 1)
> +    browser.menus.onClicked.addListener(async (info, tab) => {
> +      await onTabMenuClicked(info, tab);
> +      browser.test.sendMessage("onCommand_on_tab_click");
> +    });
> +
> +    await browser.menus.create({

not a promise here, use the changes from your other patch
Attachment #8993098 - Flags: review?(mixedpuppy) → review+
Comment hidden (mozreview-request)
Comment hidden (mozreview-request)

Comment 13

8 months ago
We're sorry, Autoland could not rebase your commits for you automatically. Please manually rebase your commits and try again.

hg error in cmd: hg rebase -s 74f00e4c73248842657d8f87e43853d310b76719 -d a36535761268: rebasing 475561:74f00e4c7324 "Bug 1446956 - Grant access to the clicked tab in menus.onClicked r=mixedpuppy"
merging browser/components/extensions/test/browser/browser-common.ini
warning: conflicts while merging browser/components/extensions/test/browser/browser-common.ini! (edit, then use 'hg resolve --mark')
unresolved conflicts (see hg resolve, then hg rebase --continue)
Comment hidden (mozreview-request)
Comment hidden (mozreview-request)

Comment 16

8 months ago
Pushed by rob@robwu.nl:
https://hg.mozilla.org/integration/autoland/rev/7e49d55f0240
Grant access to the clicked tab in menus.onClicked r=mixedpuppy
https://hg.mozilla.org/integration/autoland/rev/cc67a75b9160
Test that activeTab is not granted for bookmarks menu r=mixedpuppy
Backed out changeset cc67a75b9160 (Bug 1446956) for browser_ext_omnibox.js failures.

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=cc67a75b9160b20b8ae96f2f367c52249b22d21b&filter-searchStr=browser-chrome&group_state=expanded&selectedJob=191135896

Backout link: https://hg.mozilla.org/integration/autoland/rev/87886f1778cdcfeba4c3b9a535dbdb876905f121
https://hg.mozilla.org/integration/autoland/rev/29aa979d08097da513bf36fabcd5fc603792b7f9

Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=191135896&repo=autoland&lineNumber=1771


[task 2018-07-31T15:17:01.343Z] 15:17:01     INFO - TEST-START | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js
[task 2018-07-31T15:17:06.402Z] 15:17:06     INFO - TEST-INFO | started process screentopng
[task 2018-07-31T15:17:07.194Z] 15:17:07     INFO - TEST-INFO | screentopng: exit 0
[task 2018-07-31T15:17:07.194Z] 15:17:07     INFO - Buffered messages logged at 15:17:01
[task 2018-07-31T15:17:07.194Z] 15:17:07     INFO - Entering test bound 
[task 2018-07-31T15:17:07.194Z] 15:17:07     INFO - Extension loaded
[task 2018-07-31T15:17:07.194Z] 15:17:07     INFO - Console message: Warning: attempting to write 13892 bytes to preference extensions.webextensions.uuids. This is bad for general performance and memory usage. Such an amount of data should rather be written to an external file. This preference will not be sent to any content processes.
[task 2018-07-31T15:17:07.194Z] 15:17:07     INFO - Buffered messages logged at 15:17:02
[task 2018-07-31T15:17:07.195Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-changed-fired" to have fired with text: "b". - 
[task 2018-07-31T15:17:07.198Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-changed-fired" to have fired with text: "bc". - 
[task 2018-07-31T15:17:07.202Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-changed-fired" to have fired with text: "b". - 
[task 2018-07-31T15:17:07.204Z] 15:17:07     INFO - Buffered messages logged at 15:17:03
[task 2018-07-31T15:17:07.207Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-changed-fired" to have fired with text: " ". - 
[task 2018-07-31T15:17:07.210Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-changed-fired" to have fired with text: "0". - 
[task 2018-07-31T15:17:07.213Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected heuristic result to have title: "Generated extension". - 
[task 2018-07-31T15:17:07.214Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected heuristic result to have displayurl: "test 0". - 
[task 2018-07-31T15:17:07.215Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-entered-fired" to have fired with text: "0". - 
[task 2018-07-31T15:17:07.216Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-entered-fired" to have fired with disposition: "currentTab". - 
[task 2018-07-31T15:17:07.224Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-changed-fired" to have fired with text: "1". - 
[task 2018-07-31T15:17:07.226Z] 15:17:07     INFO - Buffered messages logged at 15:17:04
[task 2018-07-31T15:17:07.227Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected heuristic result to have title: "hello world". - 
[task 2018-07-31T15:17:07.228Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected heuristic result to have displayurl: "test 1". - 
[task 2018-07-31T15:17:07.229Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-entered-fired" to have fired with text: "1". - 
[task 2018-07-31T15:17:07.233Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-entered-fired" to have fired with disposition: "currentTab". - 
[task 2018-07-31T15:17:07.234Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-changed-fired" to have fired with text: "2". - 
[task 2018-07-31T15:17:07.234Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected heuristic result to have title: "foo bar". - 
[task 2018-07-31T15:17:07.235Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected heuristic result to have displayurl: "test 2". - 
[task 2018-07-31T15:17:07.236Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-entered-fired" to have fired with text: "2". - 
[task 2018-07-31T15:17:07.237Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-entered-fired" to have fired with disposition: "currentTab". - 
[task 2018-07-31T15:17:07.241Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-changed-fired" to have fired with text: "3". - 
[task 2018-07-31T15:17:07.242Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-entered-fired" to have fired with text: "a". - 
[task 2018-07-31T15:17:07.243Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-entered-fired" to have fired with disposition: "currentTab". - 
[task 2018-07-31T15:17:07.246Z] 15:17:07     INFO - Buffered messages logged at 15:17:05
[task 2018-07-31T15:17:07.247Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-changed-fired" to have fired with text: "4". - 
[task 2018-07-31T15:17:07.250Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-entered-fired" to have fired with text: "b". - 
[task 2018-07-31T15:17:07.254Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-entered-fired" to have fired with disposition: "newForegroundTab". - 
[task 2018-07-31T15:17:07.255Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-changed-fired" to have fired with text: "5". - 
[task 2018-07-31T15:17:07.256Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-entered-fired" to have fired with text: "c". - 
[task 2018-07-31T15:17:07.257Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-entered-fired" to have fired with disposition: "newBackgroundTab". - 
[task 2018-07-31T15:17:07.259Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-changed-fired" to have fired with text: "6". - 
[task 2018-07-31T15:17:07.260Z] 15:17:07     INFO - Buffered messages logged at 15:17:06
[task 2018-07-31T15:17:07.264Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected item to exist - 
[task 2018-07-31T15:17:07.265Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected suggestion to have title: "select a". - 
[task 2018-07-31T15:17:07.266Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected suggestion to have displayurl: "test a". - 
[task 2018-07-31T15:17:07.270Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected item to exist - 
[task 2018-07-31T15:17:07.275Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected suggestion to have title: "select b". - 
[task 2018-07-31T15:17:07.275Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected suggestion to have displayurl: "test b". - 
[task 2018-07-31T15:17:07.276Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected item to exist - 
[task 2018-07-31T15:17:07.276Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected suggestion to have title: "select c". - 
[task 2018-07-31T15:17:07.277Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected suggestion to have displayurl: "test c". - 
[task 2018-07-31T15:17:07.280Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-entered-fired" to have fired with text: "6". - 
[task 2018-07-31T15:17:07.281Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-entered-fired" to have fired with disposition: "currentTab". - 
[task 2018-07-31T15:17:07.282Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-changed-fired" to have fired with text: "7". - 
[task 2018-07-31T15:17:07.287Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected item to exist - 
[task 2018-07-31T15:17:07.288Z] 15:17:07     INFO - Buffered messages finished
[task 2018-07-31T15:17:07.289Z] 15:17:07     INFO - TEST-UNEXPECTED-FAIL | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected suggestion to have title: "select a". - Got , expected select a
[task 2018-07-31T15:17:07.291Z] 15:17:07     INFO - Stack trace:
[task 2018-07-31T15:17:07.293Z] 15:17:07     INFO - chrome://mochikit/content/browser-test.js:test_is:1305
[task 2018-07-31T15:17:07.294Z] 15:17:07     INFO - chrome://mochitests/content/browser/browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js:expectSuggestion:238
[task 2018-07-31T15:17:07.295Z] 15:17:07     INFO - chrome://mochitests/content/browser/browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js:testSuggestions:250
[task 2018-07-31T15:17:07.296Z] 15:17:07     INFO - chrome://mochitests/content/browser/browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js:null:293
[task 2018-07-31T15:17:07.297Z] 15:17:07     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1103
[task 2018-07-31T15:17:07.297Z] 15:17:07     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1094
[task 2018-07-31T15:17:07.298Z] 15:17:07     INFO - chrome://mochikit/content/browser-test.js:nextTest/<:996
[task 2018-07-31T15:17:07.299Z] 15:17:07     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:795
[task 2018-07-31T15:17:07.300Z] 15:17:07     INFO - Not taking screenshot here: see the one that was previously logged
[task 2018-07-31T15:17:07.302Z] 15:17:07     INFO - TEST-UNEXPECTED-FAIL | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected suggestion to have displayurl: "test a". - Got 127.0.0.1:8888/browser/browser/components/extensions/test/browser/context.html, expected test a
[task 2018-07-31T15:17:07.303Z] 15:17:07     INFO - Stack trace:
[task 2018-07-31T15:17:07.304Z] 15:17:07     INFO - chrome://mochikit/content/browser-test.js:test_is:1305
[task 2018-07-31T15:17:07.304Z] 15:17:07     INFO - chrome://mochitests/content/browser/browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js:expectSuggestion:241
[task 2018-07-31T15:17:07.305Z] 15:17:07     INFO - chrome://mochitests/content/browser/browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js:testSuggestions:250
[task 2018-07-31T15:17:07.306Z] 15:17:07     INFO - chrome://mochitests/content/browser/browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js:null:293
[task 2018-07-31T15:17:07.307Z] 15:17:07     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1103
[task 2018-07-31T15:17:07.308Z] 15:17:07     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1094
[task 2018-07-31T15:17:07.309Z] 15:17:07     INFO - chrome://mochikit/content/browser-test.js:nextTest/<:996
[task 2018-07-31T15:17:07.310Z] 15:17:07     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:795
[task 2018-07-31T15:17:07.311Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected item to exist - 
[task 2018-07-31T15:17:07.312Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected suggestion to have title: "select b". - 
[task 2018-07-31T15:17:07.313Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected suggestion to have displayurl: "test b". - 
[task 2018-07-31T15:17:07.314Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected item to exist - 
[task 2018-07-31T15:17:07.315Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected suggestion to have title: "select c". - 
[task 2018-07-31T15:17:07.316Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected suggestion to have displayurl: "test c". - 
[task 2018-07-31T15:17:07.317Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-entered-fired" to have fired with text: "7". - 
[task 2018-07-31T15:17:07.318Z] 15:17:07     INFO - TEST-PASS | browser/components/extensions/test/browser/test-oop-extensions/browser_ext_omnibox.js | Expected "on-input-entered-fired" to have fired with disposition: "currentTab". - 
[task 2018-07-31T15:17:07.319Z] 15:17:07     INFO - Extension loaded
[task 2018-07-31T15:17:07.320Z] 15:17:07     INFO - Console message: Warning: attempting to write 13972 bytes to preference extensions.webextensions.uuids. This is bad for general performance and memory usage. Such an amount of data should rather be written to an external file. This preference will not be sent to any content processes.
[task 2018-07-31T15:17:07.321Z] 15:17:07     INFO - GECKO(1026) | monitorConsole | [0] did not match {"message":"Warning: attempting to write 13972 bytes to preference extensions.webextensions.uuids. This is bad for general performance and memory usage. Such an amount of data should rather be written to an external file. This preference will not be sent to any content processes.","errorMessage":null,"sourceName":null,"sourceLine":null,"lineNumber":null,"columnNumber":null,"category":null,"windowID":null,"isScriptError":false,"isConsoleEvent":false,"isWarning":false,"isException":false,"isStrict":false}
[task 2018-07-31T15:17:07.322Z] 15:17:07     INFO - GECKO(1026) | 1533050226516	addons.webextension.{8189d33b-2d03-44bf-bb66-44777d73a1de}	ERROR	Loading extension '{8189d33b-2d03-44bf-bb66-44777d73a1de}': Reading manifest: The keyword provided is already registered: "test"
[task 2018-07-31T15:17:07.323Z] 15:17:07     INFO - Console message: [JavaScript Error: "1533050226516	addons.webextension.{8189d33b-2d03-44bf-bb66-44777d73a1de}	ERROR	Loading extension '{8189d33b-2d03-44bf-bb66-44777d73a1de}': Reading manifest: The keyword provided is already registered: "test"" {file: "resource://gre/modules/Log.jsm" line: 853}]
[task 2018-07-31T15:17:07.324Z] 15:17:07     INFO - App_append@resource://gre/modules/Log.jsm:853:9
[task 2018-07-31T15:17:07.325Z] 15:17:07     INFO - log@resource://gre/modules/Log.jsm:467:7
[task 2018-07-31T15:17:07.326Z] 15:17:07     INFO - error@resource://gre/modules/Log.jsm:475:5
[task 2018-07-31T15:17:07.327Z] 15:17:07     INFO - _logMessage@resource://gre/modules/Extension.jsm:357:5
(Assignee)

Comment 18

8 months ago
That backout shouldn't have happened. The test is completely unrelated to the code that my patches touched.

That test has been unreliable, see bug 1417052, bug 1416103 and bug 1407890.

Bogdan,
In the interest of preventing this from happening again, can you tell me why you backed out my patches despite the existence of three bug reports of intermittents in that test?
Flags: needinfo?(btara)
(Assignee)

Comment 20

8 months ago
The patch for bug 1417052 was sent to autoland, so I'm going to reland this patch.
Depends on: 1417052

Comment 21

8 months ago
Pushed by rob@robwu.nl:
https://hg.mozilla.org/integration/autoland/rev/e6aa498748e8
Grant access to the clicked tab in menus.onClicked r=mixedpuppy
https://hg.mozilla.org/integration/autoland/rev/e880cb10c3f4
Test that activeTab is not granted for bookmarks menu r=mixedpuppy

Comment 22

8 months ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/e6aa498748e8
https://hg.mozilla.org/mozilla-central/rev/e880cb10c3f4
Status: ASSIGNED → RESOLVED
Last Resolved: 8 months ago
status-firefox63: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla63

Comment 23

8 months ago
Posted image Bug1446956.gif
This issue is verified as fixed on Firefox 63.0a1 (20180802220056) under Win 7 64-bit and Mac OS X 10.13.3.

Please see the attached video.

Updated

8 months ago
Status: RESOLVED → VERIFIED
status-firefox63: fixed → verified

Comment 24

8 months ago
Posted image Bug1446956Beta.gif
On Firefox 62.0b13 (20180730180407) under Win 7 64-bit and Mac OS X 10.13.3 I noticed that after the  “Actual result : - executeScript at 1 failed: Error: Missing host permission for the tab” is displayed you can trigger the “Expected result: - executeScript at 1 succeeded: http://example.com“

Is this expected?

Please see the attached video.
Flags: needinfo?(rob)
(Assignee)

Comment 25

8 months ago
Comment 23 shows (at the left side) the expected behavior. At the right, the behavior is undesired (from the functional point of view, i.e. this bug).
According to Cosmin: Firefox 63.0a1 (20180802220056) and at the left and at the right Firefox 62.0b13 (20180730180407)

comment 24 shows the same undesired behavior on Firefox Beta.

Since the bug was only fixed on Nightly, the undesired behavior is expected on Beta and these results are all expected.
Flags: needinfo?(rob)
I've noted this in https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/menus/ContextType. I didn't really think mentioning it in the compat table was appropriate, but if you think we should, please let me know.
Flags: needinfo?(rob)
(Assignee)

Comment 27

7 months ago
Agreed.

Could you mention this feature in the activeTab documentation section?
Flags: needinfo?(rob)
I've added this: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions#activeTab_permission. Marking dev-doc-complete, but please elt me know if we need anything else.
Keywords: dev-doc-needed → dev-doc-complete
(Assignee)

Comment 29

4 months ago
I have also added a reference to this bug to https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/63#Menus
and edited the article from comment 28 to explicitly state that the behavior only applies to Firefox 63 and later (because this functionality is not available in the current ESR, ESR 60).
You need to log in before you can comment on or make changes to this bug.