Commit Graph

42 Commits

Author SHA1 Message Date
Luca Greco
d4c9385f21 Bug 1536473 - ext-menu onWindowOpen handler should wait for SidebarUI to be fully initialized. r=mixedpuppy,Gijs
Differential Revision: https://phabricator.services.mozilla.com/D24034
2019-03-25 20:47:27 +00:00
Shane Caraveo
4ff8365127 Bug 1516707 support incognito permission in menus api r=robwu,zombie
Differential Revision: https://phabricator.services.mozilla.com/D17293
2019-01-30 19:51:43 +00:00
Kris Maglione
856fa07b17 Bug 1514594: Part 3 - Change ChromeUtils.import API.
***
Bug 1514594: Part 3a - Change ChromeUtils.import to return an exports object; not pollute global. r=mccr8

This changes the behavior of ChromeUtils.import() to return an exports object,
rather than a module global, in all cases except when `null` is passed as a
second argument, and changes the default behavior not to pollute the global
scope with the module's exports. Thus, the following code written for the old
model:

  ChromeUtils.import("resource://gre/modules/Services.jsm");

is approximately the same as the following, in the new model:

  var {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");

Since the two behaviors are mutually incompatible, this patch will land with a
scripted rewrite to update all existing callers to use the new model rather
than the old.
***
Bug 1514594: Part 3b - Mass rewrite all JS code to use the new ChromeUtils.import API. rs=Gijs

This was done using the followng script:

https://bitbucket.org/kmaglione/m-c-rewrites/src/tip/processors/cu-import-exports.jsm
***
Bug 1514594: Part 3c - Update ESLint plugin for ChromeUtils.import API changes. r=Standard8

Differential Revision: https://phabricator.services.mozilla.com/D16747
***
Bug 1514594: Part 3d - Remove/fix hundreds of duplicate imports from sync tests. r=Gijs

Differential Revision: https://phabricator.services.mozilla.com/D16748
***
Bug 1514594: Part 3e - Remove no-op ChromeUtils.import() calls. r=Gijs

Differential Revision: https://phabricator.services.mozilla.com/D16749
***
Bug 1514594: Part 3f.1 - Cleanup various test corner cases after mass rewrite. r=Gijs
***
Bug 1514594: Part 3f.2 - Cleanup various non-test corner cases after mass rewrite. r=Gijs

Differential Revision: https://phabricator.services.mozilla.com/D16750
2019-01-17 10:18:31 -08:00
Peter Simonyi
2c64c09be9 Bug 1419195: Show items from WebExtensions in Places Library context menu r=mixedpuppy
Depends on D16413

Differential Revision: https://phabricator.services.mozilla.com/D16414
2019-01-17 09:49:38 +00:00
Peter Simonyi
23fe08f5d6 Bug 1419195: Show items from WebExtensions in bookmarks sidebar context menu r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D16413
2019-01-17 09:49:36 +00:00
Gurzau Raul
5eba4bbdf4 Backed out 3 changesets (bug 1515810, bug 1419195) for failing at /browser/browser_ext_contextMenus.js on a CLOSED TREE
Backed out changeset 437003de9fff (bug 1515810)
Backed out changeset c04c2376a213 (bug 1419195)
Backed out changeset d9a81de35ac3 (bug 1419195)
2019-01-15 17:07:06 +02:00
Peter Simonyi
50669f34c3 Bug 1419195: Show items from WebExtensions in Places Library context menu r=mixedpuppy
Depends on D16413

Differential Revision: https://phabricator.services.mozilla.com/D16414
2019-01-15 14:05:44 +00:00
Peter Simonyi
9bc416544f Bug 1419195: Show items from WebExtensions in bookmarks sidebar context menu r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D16413
2019-01-15 14:06:03 +00:00
Noemi Erli
75a1557802 Backed out changeset ee53bdc5b1d4 (bug 1419195) for failing in browser_ext_contextMenus.js 2019-01-14 18:59:02 +02:00
Noemi Erli
bfb157f169 Backed out changeset 732184f122e3 (bug 1419195) for failing in browser_ext_contextMenus.js 2019-01-14 18:58:48 +02:00
Peter Simonyi
969563efc3 Bug 1419195: Show items from WebExtensions in Places Library context menu r=mixedpuppy
Depends on D16413

Differential Revision: https://phabricator.services.mozilla.com/D16414
2019-01-14 15:43:29 +00:00
Peter Simonyi
5b36f866d3 Bug 1419195: Show items from WebExtensions in bookmarks sidebar context menu r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D16413
2019-01-14 15:41:27 +00:00
Luca Greco
62d0d158a0 Bug 1512421 - contextMenus documentUrlPatterns should allow unrestricted schemes on privileged mozilla addons. r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D13907
2018-12-07 16:46:32 +00:00
Rob Wu
32a29a5dc1 Bug 1508144 - Ignore clicks on non-clickable menu items r=mixedpuppy
Bug 1469148 added support for detecting which mouse button was used,
by synthetizing "command" events when a "click" event was captured.
The implementation did not account for unclickable menu items, such
as items that act as the parent of a submenu (see bug report),
separators and disabled menu items.

This patch adds the necessary checks and regression tests for these
scenarios to make sure that such clicks are ignored, as expected.

Differential Revision: https://phabricator.services.mozilla.com/D13084
2018-11-28 15:09:26 +00:00
Rob Wu
2e34a4522e Bug 1498896 - Apply documentUrlPatterns to original target document when viewTypes is set r=mixedpuppy
Usually, documentUrlPatterns applies to the URL of the document where
the context menu is opened. In some cases, there is no document, such
as menus on browser UI (extension action buttons, tools menu, tabs).
In these cases, `documentUrlPatterns` matches the (active) tab's URL.

This causes ambiguity when `browser.menus.overrideContext` is used to
change the context to the "tab" context.
Before this patch, `documentUrlPatterns` applied to the tab's URL.
After this patch, `documentUrlPatterns` applies to the URL of the
document where the menu was opened, *if* `viewTypes` is also set.
Using this property is a strong signal from the extension that the menu
is meant to be shown in a document rather than browser UI, so extensions
can reasonably expect `documentUrlPatterns` to match the original
document's URL instead of the URL of the spoofed tab context.

There was no existing test coverage for documentUrlPatterns on tab
contexts, so this does not only add tests for documentUrlPatterns on
overridden contexts (browser_ext_menus_replace_menu_context.js), but
also documentUrlPatterns in normal tab contexts (browser_ext_menus.js).

Differential Revision: https://phabricator.services.mozilla.com/D9249
2018-10-22 14:17:29 +00:00
Rob Wu
3a839b492e Bug 1416839 - Add viewType/viewTypes to menus API r=mixedpuppy
- Support viewTypes property in menus.create / menus.update.
- Add info.viewType to menus.onShown / menus.onClicked event.
- This "viewType" reuses the existing extension.ViewType enum,
  which is a "tab", "popup" (pageAction/browserAction) or "sidebar".

Differential Revision: https://phabricator.services.mozilla.com/D6205
2018-10-01 16:56:53 +00:00
Rob Wu
836fd50f9c Bug 1280347 - Remove <all_urls> requirement for the "tab" context r=mixedpuppy
See https://bugzilla.mozilla.org/show_bug.cgi?id=1280347#c28

Differential Revision: https://phabricator.services.mozilla.com/D6831
2018-09-27 15:32:14 +00:00
Rob Wu
124ccb5eab Bug 1280347 - Support changing context type to tab and bookmark r=mixedpuppy
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
2018-09-27 08:21:05 +00:00
Rob Wu
f05b3204a5 Bug 1367160 - Allow extensions to hide default menu items r=mixedpuppy
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
2018-09-25 16:41:47 +00:00
Rob Wu
5ccf147970 Bug 1367160 - Refactor to support multiple menu items in the root menu r=mixedpuppy
This refactor is mainly meant to support bug 1367160, but it also eases
the implementation of bug 1294429, bug 1325758 or bug 1370735 if we ever
decide to fix those bugs.

Previously, the menu was constructed by creating one root menu item
and moving the submenu to the root if there was only one item.

The refactored code constructs the menu items by generating a list of
(potentially more than one) top-level menu items, and moving excess menu
items to a submenu (as before). Besides the ability to support an
arbitrary number of top-level menu items, this new implementation also
makes it easier to insert menu items and optionally separators at
arbitrary locations in the menu.

The refactored code obsoletes some separate code paths for browserAction
and pageAction menus, which improves the maintainability of the code.

There are two user-visible functional changes in this commit:
- Excess action menu items (more than ACTION_MENU_TOP_LEVEL_LIMIT = 6)
  are not silently discarded, but shown in a submenu. See updated test.
- menus.onShown/onHidden are now always fired when the action menu is
  shown, even if the extension has not created any action menu items.

Differential Revision: https://phabricator.services.mozilla.com/D6621
2018-09-24 17:33:17 +00:00
Arshad Kazmi
18124bd57d Bug 1469148 - Add button info to click event of contextMenus API r=robwu,mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D4960
2018-09-06 12:02:49 +00:00
Andreea Pavel
89341a7077 Backed out changeset 0adb1474cc23 (bug 1469148) for failing bc at browser/components/extensions/test/browser/test-oop-extensions/browser_ext_menus_capture_secondary_click.js on a CLOSED TREE 2018-09-05 23:38:31 +03:00
tushararora.cs
524b4fb83b Bug 1414566 browser.menus.update() does not support updating icon r=robwu,mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D4628
2018-09-04 14:25:37 +00:00
Arshad Kazmi
be8d6907a3 Bug 1469148 - Add button info to click event of contextMenus API r=robwu,mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D4960
2018-09-05 16:33:50 +00:00
Brendan Dahl
532fe1f6b0 Bug 1485426 - Use createXULElement instead of createElement in XUL docs. r=bgrins
Preparing for transitioning to XHTML.

MozReview-Commit-ID: JLlmUxsvhIB

Differential Revision: https://phabricator.services.mozilla.com/D4265
2018-08-25 00:16:27 +00:00
Rob Wu
ff9ebc7c4d Bug 1482529 - Support "visible" in menus.create and menus.update r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D3794
2018-08-20 15:16:09 +00:00
Peter Simonyi
fb4a5413d0 Bug 1469705: allow menus.refresh() without an onShown listener r=mixedpuppy
MozReview-Commit-ID: 3GbQEoSFTW8
2018-07-05 22:06:23 -04:00
Rob Wu
ff5525ac1e Bug 1481179 - Stop extensions from changing the icon in the top-level menu r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D3198
2018-08-13 13:25:50 +00:00
Rob Wu
cd1bdb8e47 Bug 1325814 - Add extension API to find menu target r=mixedpuppy
- Add info.targetElementId to menus.onShown event.

- Add info.targetElementId to menus.onClicked event.

- Add menus.getTargetElement API that is available to all contexts,
  including content scripts, which allows extensions to get the DOM
  element for a given targetElementId.

- Add new schema instead of re-using schemas/menus.json to avoid sending
  too much schema data (of the existing menus API) to content processes.

MozReview-Commit-ID: 6Onf7jZlIho
2018-08-04 18:09:49 +02:00
Brian Grinstead
1c86f46ecd Bug 1479125 - Migrate calls that expect an element to be returned to use element variation firstChild etc to firstElementChild etc;r=Paolo
This allows the JS to work in HTML documents, where whitespace is preserved. In XUL
documents, whitespace is ignored when parsing so text nodes are generally not returned.

The following changes were made, with manual cleanups as necessary (i.e. when firstChild actually
refers to a text node, or when firstChild is used in a loop to empty out an element):

  firstChild->firstElementChild
  lastChild->lastElementChild
  nextSibling->nextElementSibling
  previousSibling->previousElementSibling
  childNodes->children

MozReview-Commit-ID: 95NQ8syBhYw
2018-08-08 15:22:53 -07:00
Rob Wu
260e8dfda5 Bug 1280370 - Allow any scheme in targetUrlPatterns r=mixedpuppy
MozReview-Commit-ID: KupQIiAkz0h
2018-07-24 17:26:23 +02:00
Rob Wu
8582e3a340 Bug 1320462 - Support access keys in extension menus. r=mixedpuppy
MozReview-Commit-ID: GsLE3PwNeiC
2018-08-06 16:58:21 +02:00
Rob Wu
1ce2ab7936 Bug 1446956 - Grant access to the clicked tab in menus.onClicked r=mixedpuppy
MozReview-Commit-ID: 3mVWOEcZFYn
2018-07-18 22:04:58 +02:00
Bogdan Tara
6f081ed278 Backed out changeset 7e49d55f0240 (bug 1446956) for browser_ext_omnibox.js failures CLOSED TREE 2018-07-31 21:07:33 +03:00
Rob Wu
1d79655b12 Bug 1446956 - Grant access to the clicked tab in menus.onClicked r=mixedpuppy
MozReview-Commit-ID: 3mVWOEcZFYn
2018-07-18 22:04:58 +02:00
Peter Simonyi
f6b1902574 Bug 1473720: Fix firing menus.onShown for bookmark items r=mixedpuppy
MozReview-Commit-ID: BzZ61Zfh7Oq
2018-07-05 16:43:15 -04:00
Rob Wu
8af3a68015 Bug 1461115 - Emit menus.onShown even if there is no tab r=mixedpuppy
MozReview-Commit-ID: 6Bc7HHvaCRW
2018-05-18 13:55:09 +02:00
Andrew Swan
dfdaca71bf Bug 1450388 Part 1 Refactor EventManager r=kmag
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
2018-03-14 14:52:44 -07:00
Tomislav Jovanovic
49321a5a7e Bug 1422605 - Fix permissions.request() from menus.onClicked listeners r=aswan
MozReview-Commit-ID: A035FUb1fq5
2018-03-31 16:04:17 +02:00
Kris Maglione
12808f301b Bug 1372406: Stop misusing import-globals-from in extension API scripts. r=aswan
MozReview-Commit-ID: FTkcmuguOwq
2018-03-25 21:20:17 -07:00
Margareta Eliza Balazs
6f3465c977 Backed out changeset 6af40fb76692 (bug 1372406) for Doc lint failure in builds/worker/checkouts/gecko/docs-out/html/main/_staging/python/mach.commands.rst on a CLOSED TREE 2018-03-28 07:26:10 +03:00
Kris Maglione
908b434d49 Bug 1372406: Stop misusing import-globals-from in extension API scripts. r=aswan
MozReview-Commit-ID: FTkcmuguOwq
2018-03-25 21:20:17 -07:00