Stop checking whether `browser.menus.overrideContext` is called during
a `contextmenu` event, because the implementation cannot rely on
`window.event` due to bug 1493869.
Because of the removed check, `overrideContext` does not throw any more
when called outside of a "contextmenu" event. An extra check was added
to make sure that this does not impact menus of non-extension documents.
The new implementation has the following other effects:
- overrideContext can be called from shadow DOM (+tests).
- overrideContext can be called for context menu in a different
(same-origin) document (e.g. a menu in a blank child frame).
Differential Revision: https://phabricator.services.mozilla.com/D7249
This allows extensions to include tab/bookmark menu items from other
extensions. Built-in menu items from the browser are *not* added.
Depends on D6623
Differential Revision: https://phabricator.services.mozilla.com/D6624
The new method allows extensions to modify menu items in their own
moz-extension:-pages, with the following features:
- All matching extension items are shown in the root menu (instead of
being moved into a submenu), above other menu items, if any.
- The icons for these menu items are customizable.
- Optionally, the default menu items (including those from other
extensions) can be hidden.
Depends on D6621
Differential Revision: https://phabricator.services.mozilla.com/D6622
As we add more behaviors to EventManager, the signature of the constructor
is going to get really clumsy. Head that off by converting it to take a
general parameters object.
This introduces a compatibility problem for existing webextension experiments,
put in a backward-compatibility shim for now.
MozReview-Commit-ID: 72QDfiwRm5j