Background task mode is roughly equivalent to `xpcshell`, but inside
the regular browser startup flow. There is no browser window (no
`Window` at all) and there should be no content processes. It's
sufficient to treat it like `xpcshell`, with its own stripped-down
actor and a few tweaks to the integration points.
The structural changes in this commit keep `--backgroundtask` mode
slim in the regular case when the Devtools are *not* requested. This
is reflected in the small changes needed to the
`browser_xpcom_graph_wait.js` test: loading the Devtools
unconditionally causes a huge amount of code to be loaded. In order
to load the Devtools framework conditionally, we check for
Devtools-specific command line flags and delegate to Devtools when
appropriate. In order to check the command line flags, we turn the
`BackgroundTasksManager` into an XPCOM service, which allows it to be
instantiated by XPCOM in order to handle the command line.
One final note: this leaves two XPCOM components, "backgroundtasks"
and "backgroundtasksmanager". Why not combine them? This is
technically possible but not attractive: we really do want a natural
place for native/C++ code ("backgroundtasks") and JavaScript code
("backgroundtasksmanager").
Differential Revision: https://phabricator.services.mozilla.com/D129771
This adds `Localization` to `builtin-modules.js` to make it accessible from
`definitions.js`. It's likely that the abstractions used in `definitions.js`
will need to be revisited when `startup.properties` is also migrated to Fluent.
Differential Revision: https://phabricator.services.mozilla.com/D131219
* Update green color used for success
* Fix actions menulist alignment
* Make various elements use new accent colors
* Fix lack of border on HTML checkboxes
* Update various colors to proton colors
* Update input border-radius to 4px
* Update border colors
Differential Revision: https://phabricator.services.mozilla.com/D110033
* Update green color used for success
* Fix actions menulist alignment
* Make various elements use new accent colors
* Fix lack of border on HTML checkboxes
* Update various colors to proton colors
* Update input border-radius to 2px
* Update border colors
Differential Revision: https://phabricator.services.mozilla.com/D110033
- implement the new "inspected-window" command
- move WebExtensionInspectedWindowFront implement to the command, making the front empty
- migrate tests to use the commands instead of front
- stop maintaining the current top level target in ExtensionParent.jsm, no longer have to use watchTargets
- stop creating a new descriptor on each new target
- instead only pull one new dedicated "commands" for WebExt (still in ExtensionParent.jsm)
- remove TabDescriptor isDevToolsExtensionContext as we no longer need anything special in the descriptor
- remove now unused methods on DevToolsShims (createWebExtensionInspectedWindowFront, createDescriptorForTabForWebExtension)
- remove the now unused TabDescriptorFactory.createDescriptorForTab's "forceCreationForWebextension" option, as CommandsFactory.forTab always instantiate a brand new commands
- migrate webext to use the command instead of front
Differential Revision: https://phabricator.services.mozilla.com/D108994
I kept a few having some overrides. But they may be irrelevant.
And I kept some eslint files for all folder that aren't matching the pattern matching "**/test*/**/browser*/".
Ideally we would rename these folder to match.
Last but not least, I identified one case where we were using mochitest file for xpcshell tests!
Differential Revision: https://phabricator.services.mozilla.com/D109481
Depends on D106426
Without this patch queue, `createDescriptorForTab` was not caching its descriptors, so each call to it would yield a new descriptor.
Since the webextension codebase really needs to use a different target from the one used by the DevTools toolbox, suddenly sharing the Toolbox's descriptor was an issue.
Addressing it with an explicit parameter to make this expectation from the webextension codebase a bit clearer for us.
Differential Revision: https://phabricator.services.mozilla.com/D107052
Depends on D106426
Without this patch queue, `createDescriptorForTab` was not caching its descriptors, so each call to it would yield a new descriptor.
Since the webextension codebase really needs to use a different target from the one used by the DevTools toolbox, suddenly sharing the Toolbox's descriptor was an issue.
Addressing it with an explicit parameter to make this expectation from the webextension codebase a bit clearer for us.
Differential Revision: https://phabricator.services.mozilla.com/D107052
The webplatform test runner recently added an option to open devtools during their tests.
The current implementation relies on TargetFactory::forTab and gDevTools::showToolbox.
Those methods will most likely change as we move away from targets and start using descriptors.
See previous WPT PR at https://github.com/web-platform-tests/wpt/pull/27309
Differential Revision: https://phabricator.services.mozilla.com/D105740