The library is added in devtools/client/shared/vendor, like the other third-party
libraries we use in DevTools.
This was the latest file that justified the debugger-specific vendor machinery,
so we can clean that up now.
First, we can remove the vendor.js file.
With this, this means that bin/bundle.js now only bundles the workers, using rollup,
so we can remove webpack and its associated packages from package.json, as well
as the webpack.config.js.
Finally, we can stop handling debugger vendors in build-debugger.js
Differential Revision: https://phabricator.services.mozilla.com/D193916
The library was only used to make the quick search panel
and the shortcut modal to show with a slide-in animation.
This can be replaced with a simple CSS animation instead.
I'm taking this as an opportunity to cleanup a few things
that were unecessary or not ideal in the CSS file.
Differential Revision: https://phabricator.services.mozilla.com/D192266
We were creating them and later filtering them out.
Also `getUniqueIdentifiers` was duplicating a possibly 100M+ large array...
Differential Revision: https://phabricator.services.mozilla.com/D190177
On bug 1843454 STR, symbols.identifiers is a 100M large array.
So all these intermediate array cause a serious amount of short-lived arrays.
Differential Revision: https://phabricator.services.mozilla.com/D190176
As `callExpressions` are only used for knowing if that's a react module...
We could avoid a bunch of intermediate objects by computing right away if we have a react import.
Differential Revision: https://phabricator.services.mozilla.com/D190782
As `imports` are only used for knowing if that's a react module...
We could avoid a bunch of intermediate objects by computing right away if we have a react import.
Differential Revision: https://phabricator.services.mozilla.com/D190781
These three attributes are very large arrays and we could easily keep them
within the worker thread by exposing new dedicated method.
Differential Revision: https://phabricator.services.mozilla.com/D187436
This is needed to handle the new Regexp `v` flag.
I'm taking this as an opportunity to fix a couple issue in the bundle script.
Differential Revision: https://phabricator.services.mozilla.com/D180675
Instead clear per removed thread so that state of the previous page
doesn't get cleared as the navigation of the next page starts.
This will also be useful for service worker debugging.
Differential Revision: https://phabricator.services.mozilla.com/D179941
This patch makes the SearchInput a connected component, This allows us cleanup
all the seperate actions and reducer logic and makes it easier to add new SearchInput
with modifers functionality.
Differential Revision: https://phabricator.services.mozilla.com/D171034
On the server side, this patch introduces:
* a new "tracer" Target Scope actor to start and stop tracing per target
* a new TRACING_STATE resource in order to report to the client when we start/stop tracing and with which log method.
On the frontend side, this patch introduces:
* a global tracer button, which will enable/disable tracing for all targets/threads
all at once.
* a global header, similar to pause, reporting if any target is tracing or not.
The header reuses the pause header and we may want to followup to better coordinate case
where we pause and trace at the same time. Only one of the two states is displayed.
We may want to followup here to be able to trace only one target and see the state per target.
Differential Revision: https://phabricator.services.mozilla.com/D163614
In this patch
- Move search modifiers support into the SearchInput component, so that it can be shared across the Project Search, File Search and the Quick modal Search.
- Add on the actions, reducers and workers support for search modifiers to project search
Differential Revision: https://phabricator.services.mozilla.com/D168932
In this patch
- Move search modifiers support into the SearchInput component, so that it can be shared across the Project Search, File Search and the Quick modal Search.
- Add on the actions, reducers and workers support for search modifiers to project search
Differential Revision: https://phabricator.services.mozilla.com/D168932
* remove prettyPrint.spec.js as it only contains trivial assertions mostly covered by mochitests.
Duplicated calls to toggle pretty print to the same source has been converted to a mochitest (browser_dbg-pretty-print-flow.js).
But we can't easily replicate the exact same assertion as the assert() from `togglePrettyPrint` only thows on Node...
I tweaked assert module to highlight how to try enabling it on mochitests via flags.testing.
Removing this jest test helps remove useless export of `createPrettyPrintSource`, better highlighting the external API of prettyPrint.js
About the mochitest, awaiting for togglePrettyPrint makes it useless to wait asynchronously for tabs opening.
* I removed a jest test from project-text-search.spec.js which started failing
and should already be covered by mochitests?
* about `selectPrettyLocation`, we do not need to pass the generatedLocation argument,
as this is always the currently selected location. Also we were selecting it once,
mostly to force the loading of the original/pretty source via `selectSource()`.
And then we were calling `selectSpecificLocation` a second time.
We could select the source only once, if we force loading the original source first.
We only need to populate the SourceMapLoader before trying to update the selection.
This change may slow down the display of pretty printed source, but should avoid intermittents
and unexpected changes of selected location.
* last but not least, `setSymbols` can be removed as this is done when calling `selectLocation`.
This was the main goal, so that we can revise `setSymbols` more easily in following patches.
Differential Revision: https://phabricator.services.mozilla.com/D168425
We used to get the mappings array from the pretty fast worker to the prettyPrint
action, and then pass this array to the sourceMap service (also a worker).
As the mapping can be quite large, and given it has a complex shape, passing it
to and from workers (via `postMessage`) was costly.
So here, instead of passing only the mapping, we directly generate the sourceMap
from the pretty fast worker, and pass it to the action which forwards it to
the sourceMap service.
This helps reduce the overhead we were seeing when not buffering the lines in
the pretty print worker, in the previous patch of this stack.
Differential Revision: https://phabricator.services.mozilla.com/D168384
Because of this, we have to now pass the worker URL via WorkerDispatcher constructor.
Doing this should help then extend WorkerDispatcher instead of manually instantiating it.
About browser_jsterm_hide_when_devtools_chrome_enabled_false.js, as the SourceMapLoader
is now started lazily, the worker is no longer started during this test
and so we no longer have to wait for it.
And browser_jsterm_await_paused.js was failing because we resumed too quickly.
I added some code to better wait for awaitExpression full evaluation.
Differential Revision: https://phabricator.services.mozilla.com/D164547
Because of this, we have to now pass the worker URL via WorkerDispatcher constructor.
Doing this should help then extend WorkerDispatcher instead of manually instantiating it.
About browser_jsterm_hide_when_devtools_chrome_enabled_false.js, as the SourceMapLoader
is now started lazily, the worker is no longer started during this test
and so we no longer have to wait for it.
And browser_jsterm_await_paused.js was failing because we resumed too quickly.
I added some code to better wait for awaitExpression full evaluation.
Differential Revision: https://phabricator.services.mozilla.com/D164547