XPCNativeWrapper may be going away (bug 1481337). Stop defining it in the main environments and only define it
where necessary to discourage more uses.
This also helps to clarify the ESLint test environment globals.
Differential Revision: https://phabricator.services.mozilla.com/D168211
* Note that "conn" attribute is now managed by Actor.
* We might want to finally remove "requestTypes".
This isn't used by the frontend... may be third party use it?
This allows to list all available RDP methods of all actors.
* All actors now have to be instantiated via "new ".
Differential Revision: https://phabricator.services.mozilla.com/D168254
This removes the devtools.target-switching.server.enabled preference,
which was only having an impact on tab debugging.
Toolboxes other than tabs aren't yet using "server side target switching",
which will probably happen once we enable EFT in these and
we would probably not use a preference for enabling this.
This remove all assertions in tests covering client side target switching.
And it removed a couple of tests that became irrelevant.
Differential Revision: https://phabricator.services.mozilla.com/D166921
I actually regressed this from D166661 within this current patch queue.
It isn't clear why the old code was somehow keeping the parent/ext-storage.js class
alive -or- somehow magically recalling apiManager.asyncGetAPI after addon reload.
But now we handle the case of addon reload explicitly.
Differential Revision: https://phabricator.services.mozilla.com/D167364
This actor was only used by the legacy listener.
Its main method was listStores which exposed all the storage type actors.
Now they are exposed via storage Resource watchers.
This requires to tweak the decision making to show the storage panel
as the actor no longer exists... Unfortunately we can't check for
resource traits on the watcher actor as the browser toolbox
on older runtime won't expose it.
Note that this.front wasn't used for a little while in ui.js.
I had to keep a few things in the frontend in order to still be able
to connect to old servers. But I put lots of comments to do proper cleanup later.
Differential Revision: https://phabricator.services.mozilla.com/D166770
This glue, necessary to communicated between content and parent processes
was only necessary when manually spawning the storage actors.
Now that this code is only used via ResourceWatcher, running in the right process
right away, we no longer need any cross process communication.
Differential Revision: https://phabricator.services.mozilla.com/D166694
This was the last resource type requiring to keep the old storage actor as-is.
This will help drastically simplify it and move storage type code into each Resource Watcher class.
Differential Revision: https://phabricator.services.mozilla.com/D166661
In JsonML, "object" tag can be used to be replaced by an actual object, that
may or may not be formatted.
e.g. `["object", { object: 42 }]`, should be replaced with `42` in the returned
JsonMl array.
In order to do that, we need to parse the result of `header` and `body` recursively
to produce the final JsonMl that will be consumed by the client.
On the client, this means that we need to create object fronts for any object
actor that might have been created, so we can use them later (e.g. when the user
expand them, call the `customFormatterBody` method.
We also need to handle plain object grips (i.e. not formatted), and display them
using our regular `ObjectInspector`.
Some tests are added to ensure this works as expected.
Differential Revision: https://phabricator.services.mozilla.com/D164220
menupopup elements created for select widgets will not be children of the select itself.
Therefore the check in HTMLTooltip to ignore events if they are triggered from within the tooltip container is not working.
There is no straightforward way to link the select to its popup, and we also can't do a coordinate check (because the menupopup might expand outside
of the initial tooltip), so for now we just ignore all events coming from a menupopup element.
A browser mochitest for the filter widget has been modified to verify this scenario.
Differential Revision: https://phabricator.services.mozilla.com/D167805
In JsonML, "object" tag can be used to be replaced by an actual object, that
may or may not be formatted.
e.g. `["object", { object: 42 }]`, should be replaced with `42` in the returned
JsonMl array.
In order to do that, we need to parse the result of `header` and `body` recursively
to produce the final JsonMl that will be consumed by the client.
On the client, this means that we need to create object fronts for any object
actor that might have been created, so we can use them later (e.g. when the user
expand them, call the `customFormatterBody` method.
We also need to handle plain object grips (i.e. not formatted), and display them
using our regular `ObjectInspector`.
Some tests are added to ensure this works as expected.
Differential Revision: https://phabricator.services.mozilla.com/D164220
It looks like this is all filtered by getAllBrowsingContextsForContext and isWindowGlobalPartOfContext
so it should only process the expected window globals.
Differential Revision: https://phabricator.services.mozilla.com/D166658
They should work out of the box as they filter by WindowGlobalTargetActor.windows
and this should be correct for the ParentProcesTargetActor.
Differential Revision: https://phabricator.services.mozilla.com/D166657
Closing during its initialization (easy to reproduce with the multiprocess mode)
ends up disallowing any further reopening of the browser console.
You would have to restart firefox to make it work again.
This was related to _browserConsoleInitializing never been cleared.
There was another one highlighted by the test related to waitAsyncDispatches.
As the wrapper module is loaded via the browser loader,
it uses the document's setTimeout method which is disabled when the console closes
and its document is destroyed. This ended up creating a never resolving promise...
Do not try to run the test on verify as it is quite intensive already.
Differential Revision: https://phabricator.services.mozilla.com/D167527
The debugger and the thread actor don't support window-global target actor's iframe switching.
So disable this entirely in the frontend.
This feature only applies to webextension and browser toolbox
which are the only one supporting more than one target and still
not EFT-compliant.
Once they become compliant we might be able to work on the frontend
to support client side target selection and filtering the SourceTree
for the currently selected target.
Differential Revision: https://phabricator.services.mozilla.com/D167268
Parent process pages use a DevTools server loaded in the devtools global but should still load shared singletons in the regular global.
Differential Revision: https://phabricator.services.mozilla.com/D167731
view-timeline shorthand includes view-timeline-name and
view-timeline-axis, but excludes view-timeline-inset.
Note: We will fix the test of "view-timeline-name: auto" in the next patch.
Differential Revision: https://phabricator.services.mozilla.com/D166404
view-timeline-name: `none | <custom-ident>#`
view-timeline-axis: `[ block | inline | vertical | horizontal ]#`
Note:
Both view-timeline-name and scroll-timeline-name should accept `auto`.
We will fix it in this patch series.
Differential Revision: https://phabricator.services.mozilla.com/D166242
view-timeline shorthand includes view-timeline-name and
view-timeline-axis, but excludes view-timeline-inset.
Note: We will fix the test of "view-timeline-name: auto" in the next patch.
Differential Revision: https://phabricator.services.mozilla.com/D166404
view-timeline-name: `none | <custom-ident>#`
view-timeline-axis: `[ block | inline | vertical | horizontal ]#`
Note:
Both view-timeline-name and scroll-timeline-name should accept `auto`.
We will fix it in this patch series.
Differential Revision: https://phabricator.services.mozilla.com/D166242
When prefers-reduced-motion is enabled, the most impacting highlighters can use stroke instead of fill.
This requires to join the paths on the JS side, otherwise the change is purely handled in CSS.
Differential Revision: https://phabricator.services.mozilla.com/D167141
But keep unwrapping sources for DOM event handlers like:
<div onclick="foo()" />
Whose source should be:
foo()
and not:
function onclick() { foo() }
Differential Revision: https://phabricator.services.mozilla.com/D165721
The modification made to Loader isn't necessary as the sandboxName
isn't relevant/used. The global will be the one crafted by C++
and be named "Devtools global".
But in case something change, this may catch yet another unexpected behavior.
Differential Revision: https://phabricator.services.mozilla.com/D166122