The checkbox for studies in about:preferences is now gated behind the telemetry
checkbox (like the extension recommendation checkbox). This pref is now
required to be set to enroll in telemetry and if it becomes unset, users will
be unenrolled from all Nimbus experiments and rollouts.
Differential Revision: https://phabricator.services.mozilla.com/D149297
Instead of relying on OS.File.setCurrentDirectory in the xpcshell test harness
we instead provide a function to directly change directory.
Differential Revision: https://phabricator.services.mozilla.com/D148977
The new address book layout in Thunderbird 102 uses masonry layout.
The UI team has requested that the feature be turned on as another
approach would not work as well due to the dynamic and modular
nature of the new UI.
Differential Revision: https://phabricator.services.mozilla.com/D148451
This only fail on MBT because it still uses non-EFT
and the top level document is displayed in the iframe dropdown
via the old "listFrames/frameUpdate" codepath.
So that its frameData's id isn't related to a target actor
but rather to a frame of the parent-process/window-global target actor...
I'm adding test coverage for the regular web toolbox,
but the fix only reproduce in the context of the browser toolbox.
Differential Revision: https://phabricator.services.mozilla.com/D148793
This add some minimal test coverage for the UI bits.
But more detailed test should rather be done around the TargetCommand API (browser_target_command_scope_flag.js).
Differential Revision: https://phabricator.services.mozilla.com/D149257
When passing an array, only booleans and number were accepted.
Also arrays were stringified to list of value coma separated,
as if arrays were refering to list of arguments.
That while passing a primitive value would be passed as a unique argument.
Clarify this by explicitely accepting arrays refering as list of argument,
or a primitive value being a unique argument.
I'm also fixing an issue with exceptions not being correctly reported.
Differential Revision: https://phabricator.services.mozilla.com/D149256
This introduces a checkbox in the iframe dropdown to enable/disable multiprocess debugging live.
Switching between:
- debugging only the main process (all documents, workers and priviledged JS)
- debugging all the processes (same, for each process, we will debug documents, workers, JS, ...)
This helps significantly speed up the browser toolbox when debugging only parent process resources,
while still allowing to switch to debug everything when required.
Differential Revision: https://phabricator.services.mozilla.com/D148527
This new feature will only work in the "MBT", when devtools.browsertoolbox.fission is true.
It is based on yet another preference, devtools.browsertoolbox.scope,
which is meant to be toggle by DevTools UI only (see next patches).
When the new pref is set to "everything", we will observe FRAME and PROCESS targets
and so debug everything running in content processes.
But when it is set to "parent-process", we will only observe WORKER
and be restricted to parent process resources only.
Differential Revision: https://phabricator.services.mozilla.com/D146891
At the end getDisplayedSources wasn't correctly memoized and generates new array instances
even if the content of the source tree doesn't change.
That's because internaly, it crafts an array which is always a new array instance.
Let's merge the two intermediate selectors into a single one so that we can more easily memoize it.
This should also help try to followup and attempt at generating the data structure needed for ManagedTree.
That, instead of generated the data for addToTree/updateTree which then feeds ManagedTree.
Differential Revision: https://phabricator.services.mozilla.com/D148526
Added 4 new functions, into Cu, for the following reasons:
* Cu.isModuleLoaded and Cu.loadedModule is kept for backward compatibility
* Cu.isModuleLoaded and Cu.loadedModule uses shim (bug 1769029 and
bug 1768922), and loaded ESM (.sys.mjs) is visible as JSM (`.jsm`) there
Differential Revision: https://phabricator.services.mozilla.com/D146167
This caused the test change in bug 1773813 to be backed out. I included the
test change here since it now covers both changes. Also, simplify some bits of
it a bit.
Differential Revision: https://phabricator.services.mozilla.com/D149447
The web platform test (WPT) framework doesn't support such user agent
specific buttons. The corresponding WPTs continue to use the pref
"dom.events.testing.asyncClipboard", which skips showing the button.
Differential Revision: https://phabricator.services.mozilla.com/D145058
This implements dispatching a custom "MozClipboardReadTextPaste" event
to the JS side, allowing the latter to show a "Paste" button. The JS
side may then report back to the C++ side, whether the user clicked or
dismissed the "Paste" button.
Combining these features is implemented in a following part and
`clipboard.readText()` is gated behind a pref in another following part.
The implementation bundles subsequent requests of `clipboard.readText()`
belonging to the same transient user activation timestamp.
For the first request of `clipboard.readText()`, a
"MozClipboardReadTextPaste" event is dispatched. As long as no response
for the event was received, further `readText()` requests are queued.
When the response is received, the calls are either resolved or rejected.
New calls following those, within the same transient user activation
period, are resolved/rejected too.
Differential Revision: https://phabricator.services.mozilla.com/D135335
Preparation for part 3).
The return type of `GetUserGestureStart` is a class, the return type of
`LastUserGestureTimeStamp` a `double`. Hence using the former is safer.
Differential Revision: https://phabricator.services.mozilla.com/D148758
Implements showing a "Paste" popup at the last mouse position (which
overlapped the browser window) when a certain custom event is received.
Creating and dispatchting that event is implemented in one of the
following parts.
Differential Revision: https://phabricator.services.mozilla.com/D135333