Like BrowsingContextTargetActor.detach which was throwing { error: wrongState }
and we were logging "(void 0)" because error.message was undefined,
while error was the thrown JS object.
Differential Revision: https://phabricator.services.mozilla.com/D107986
This parsing is hidden behind the pref layout.css.page-size.enabled.
It isn't ideal that we parse this as a property, but we can't treat it as a
descriptor because of compatibility issues with other browsers. There are also
outstanding spec issues related to how descriptors like page-size are cascaded,
and whether the !important specifier is valid or not.
Differential Revision: https://phabricator.services.mozilla.com/D103958
This is to fix intermittent failure on all browser toolbox tests.
It looks like these patches make toolbox.destroy shuts down connection faster
and lead to evaluateJSAsync request still be pending while the connection is closed
and actors and fronts are destroyed.
Differential Revision: https://phabricator.services.mozilla.com/D108630
Close method may be called by the transport on close.
This was highlighted by browser_target_from_url.js
Surprisingly devtools/shared/tests/xpcshell/test_debugger_client.js
tries quite hard to cover such issue, but we seem to get yet another type of reentrancy.
This probably depends on WebSocketTransport, which is a bit hard to get covered.
No test seems to be spawning a WebSocket DevToolsServer...
Differential Revision: https://phabricator.services.mozilla.com/D107988
This is to fix intermittent failure on all browser toolbox tests.
It looks like these patches make toolbox.destroy shuts down connection faster
and lead to evaluateJSAsync request still be pending while the connection is closed
and actors and fronts are destroyed.
Differential Revision: https://phabricator.services.mozilla.com/D108630
Still use a shouldCloseClient flag, but instead of closing the client from the target's destruction,
from which we should ignore cross process target switching,
we now close it from the descriptor destruction.
Descriptor destruction should only happen when the toolbox is meant to be closed.
Differential Revision: https://phabricator.services.mozilla.com/D106835
Close method may be called by the transport on close.
This was highlighted by browser_target_from_url.js
Surprisingly devtools/shared/tests/xpcshell/test_debugger_client.js
tries quite hard to cover such issue, but we seem to get yet another type of reentrancy.
This probably depends on WebSocketTransport, which is a bit hard to get covered.
No test seems to be spawning a WebSocket DevToolsServer...
Differential Revision: https://phabricator.services.mozilla.com/D107988
Starting with macOS 10.14, the generic light/dark vibrancy is deprecated, and semantic vibrancy names are preferred.
If we ever need more vibrancy, we can add new values with semantic names.
Depends on D107910
Differential Revision: https://phabricator.services.mozilla.com/D108152
When enabling the watcher support, we end up having duplicate platform messages as we
received them both from the content process and the parent process (the messages are cloned).
A couple test cases are added to ensure we handle all kind of messages properly.
Depends on D107648
Differential Revision: https://phabricator.services.mozilla.com/D103285
We're getting those messages directly from the frame targets, so we can safely
ignore them in the content process.
A test case is added in a following patch in this queue.
Differential Revision: https://phabricator.services.mozilla.com/D108632
The patch for Bug 1697453 made it so we weren't dispatching resources tied to
a target being destroyed. This revealed an issue when adding a test for webextension
popup messages, where the target is being destroyed before the browser console can
consume it (see following patches in this queue).
Since Bug 1697453 was only done to try to make `browser_toolbox_backward_forward_navigation.js`
pass when fission is enabled, and given it's still failing, let's revert this
patch for now and reassess if this is needed, and if so, if we shoul only do that
for some specific resources.
Differential Revision: https://phabricator.services.mozilla.com/D108631
We bail out early in TargetList#hasTargetWatcherSupport and ResourceWatcher#hasResourceWatcherSupport
if we're in the browser toolbox or browser console and the pref is disabled.
Depends on D107410
Differential Revision: https://phabricator.services.mozilla.com/D107648
This parsing is hidden behind the pref layout.css.page-size.enabled.
It isn't ideal that we parse this as a property, but we can't treat it as a
descriptor because of compatibility issues with other browsers. There are also
outstanding spec issues related to how descriptors like page-size are cascaded,
and whether the !important specifier is valid or not.
Differential Revision: https://phabricator.services.mozilla.com/D103958
The test wasn't doing a target switch, which it was supposed to do, so this patch
fixes that.
The other issue was that in the case we're navigating back and forth immediately,
we might get into cases where the `goForward` command was ignored. The fix here
is to use `waitForLocationChange` which does wait just enough so the navigation
was taken into account.
Differential Revision: https://phabricator.services.mozilla.com/D108477
This prevented existing webextension documents targets to not be created, which
caused a few issues (couldn't expand webextension browser element in the inspector,
missing webextension messages in the browser console when watcher support is enabled, …).
A test is added for the inspector test case (for the console, a test already exists).
Depends on D108394
Differential Revision: https://phabricator.services.mozilla.com/D108453
For now, we have:
- detach
- exit
- destroy
all complexly interleaved.
Some detach and exit won't lead to actor destruction, and may lead to pending actor
still registered in pools...
Differential Revision: https://phabricator.services.mozilla.com/D108062
The previous algorithm was ignoring THREAD_STATE resources.
We should consider thread as being paused or running based on these events,
which will fire RESUME and PAUSED actions.
Differential Revision: https://phabricator.services.mozilla.com/D107831
This help get rid of the redundant threadcx.isPaused attribute,
which isn't trivial to maintain as it duplicates a per thread data.
The SELECT_THREAD codepath was especially special as we bound isPaused
to perThreadData.frames being defined or not.
But "frames" is having a very different behavior from isPaused.
Following changeset is going to revisit how we define that a thread is paused.
Differential Revision: https://phabricator.services.mozilla.com/D107830
This is mostly a prep work for the next changeset.
So that we can pull the isPaused information from the already existing per-thread state object.
Differential Revision: https://phabricator.services.mozilla.com/D107829