This is similar to bug 1728815, but now the toolbox itself is being destroyed and clears commands.
But we can also check if the related target is destroyed.
Differential Revision: https://phabricator.services.mozilla.com/D126055
This removes the `@CommandProvider` decorator and the need to implement
mach commands inside subclasses of `MachCommandBase`, and moves all
existing commands out from classes to module level functions.
Differential Revision: https://phabricator.services.mozilla.com/D121512
The "Edit Settings..." link opens about:profiling. It was only shown in the profiler popup and devtools "Performance" panel when the preset was "Custom", forcing the user to select "Custom" before being able to easily tailor settings in about:profiling.
Now that link is always there, so it's possible to quickly jump to about:profiling, including after selecting a preset than can then be customized.
Differential Revision: https://phabricator.services.mozilla.com/D125945
The test seemed to fail because the page was already loaded when we started
awaiting for `BrowserTestUtils.browserLoaded`.
This patch removes it and instead pass an `url` param to `BrowserTestUtils.waitForNewWindow`,
which means we'll wait for the page to be loaded.
Differential Revision: https://phabricator.services.mozilla.com/D126063
Note: The stencil will hold pointers into the StartupCache buffer;
There is an assumption in this patch that the lifetime of the buffer
is long enough that we can compile the stencil without causing issues.
Note, we have to adjust the test_source-03 expectation. Since we no longer
cache *scripts*, and instead cache *stencils*, it's not guaranteed the scripts
will have identical ScriptSourceObjects.
Differential Revision: https://phabricator.services.mozilla.com/D113012
This removes the `@CommandProvider` decorator and the need to implement
mach commands inside subclasses of `MachCommandBase`, and moves all
existing commands out from classes to module level functions.
Differential Revision: https://phabricator.services.mozilla.com/D121512
Depends on D125943
The Banner including the license text was introducing a white space which fails some of our linters.
The existing js files which are using the Banner plugin are probably skipped by the whitespace linter, but vendors.css is not.
The whitespace is removed in the string passed to the Banner plugin in webpack.config.js.
The rest of the diff comes from running `node devtools/client/debugger/bin/bundle.js`
Differential Revision: https://phabricator.services.mozilla.com/D125969
Depends on D125942
Not strictly related, but I was looking for build instructions and opened this file. The information is irrelevant and confusing nowadays, let's remove it.
Differential Revision: https://phabricator.services.mozilla.com/D125943
Depends on D125941
After removing devtools-splitter, the only css files picked up by the debugger build step are from react-aria-components, but they don't have individual license headers.
I am adding the regular mozilla license, I didn't find an easy way to create a license header matching the file being packaged by babel. And we were already not importing the right license text, so this is not a regression (for ref, the license is MIT)
Differential Revision: https://phabricator.services.mozilla.com/D125942
Depends on D125939
The custom drag:start and drag:end events are the main implementation difference I found between debugger's splitbox and the shared splitbox.
However I didn't find any usage for the classname it was setting, so I propose to remove it.
I tried to extensively use the splitters and didn't spot any issue.
Differential Revision: https://phabricator.services.mozilla.com/D125940
JSON preferences used to be stored in string preferences, which is compatible with special characters.
There should not be any data loss, char prefs seem to gracefully transition to string prefs.
Differential Revision: https://phabricator.services.mozilla.com/D125877
When we create targets for every frame, we need to tighten our different filters
so requests/resources are duplicated (we would get them from both the top-level
target as well as from their iframe).
Differential Revision: https://phabricator.services.mozilla.com/D125810
We do set `resourceCommand` from onTargetAvailable, without ever clearing it.
If we happen to leak targets, we end up leaking commands.
Differential Revision: https://phabricator.services.mozilla.com/D125540
We still do leak Toolbox/Inspector and some Documents.
Unmounting the React components and nullifying references to them
seems to allow clearing a few React component instances.
We weren't unmounting the splitBox/toolsidebar, nor destroying ruleViewSideBar instance.
Differential Revision: https://phabricator.services.mozilla.com/D125536
Currently, we do leak the Toolbox/Inspector and some Documents when
closing the toolbox.
So that these classes are kept in memory, while not nullifying all its references
to client classes.
By adding these few nullications we can at least avoid leaking the fronts and commands.
(also fix a failure due to null markup.walker in browser_rules_add-rule-with-menu.js)
Differential Revision: https://phabricator.services.mozilla.com/D125535
We do set `resourceCommand` from onTargetAvailable, without ever clearing it.
If we happen to leak targets, we end up leaking commands.
Differential Revision: https://phabricator.services.mozilla.com/D125540
We still do leak Toolbox/Inspector and some Documents.
Unmounting the React components and nullifying references to them
seems to allow clearing a few React component instances.
We weren't unmounting the splitBox/toolsidebar, nor destroying ruleViewSideBar instance.
Differential Revision: https://phabricator.services.mozilla.com/D125536
Currently, we do leak the Toolbox/Inspector and some Documents when
closing the toolbox.
So that these classes are kept in memory, while not nullifying all its references
to client classes.
By adding these few nullications we can at least avoid leaking the fronts and commands.
(also fix a failure due to null markup.walker in browser_rules_add-rule-with-menu.js)
Differential Revision: https://phabricator.services.mozilla.com/D125535
This patch introduces a new pref, devtools.every-frame-target.enabled,
that when set to true will cause target actors to be created on every
iframe, no matter if they are remote or not, no matter if Fission is
enabled or not.
This adds a ignoreSubFrames property on the BrowsingContextActor so
it can focus solely on the docShell it was passed.
Differential Revision: https://phabricator.services.mozilla.com/D125517