Using arrays speeds up the serialization and transmission of traces between the server and the client
as it goes through JS Actors/IPC by serializing the JSON RDP packets.
This also allows to better align with the profiler data format.
Differential Revision: https://phabricator.services.mozilla.com/D212807
The enhancer was brittle as nothing was waiting for its completion.
We should rather do such work from the action layer. At least this can delay the action completion,
which the test header (setFilterState) already wait for.
Differential Revision: https://phabricator.services.mozilla.com/D205602
The enhancer was brittle as nothing was waiting for its completion.
We should rather do such work from the action layer. At least this can delay the action completion,
which the test header (setFilterState) already wait for.
Differential Revision: https://phabricator.services.mozilla.com/D205602
The enhancer was brittle as nothing was waiting for its completion.
We should rather do such work from the action layer. At least this can delay the action completion,
which the test header (setFilterState) already wait for.
Differential Revision: https://phabricator.services.mozilla.com/D205602
This patch displays a notification in the console when the debugger is paused
in an original file with original variable mapping is turned off.
The notification is displayed when console input is focused, also if the user selects
a generated file, or is no longer paused or switches on varaible mapping, the notification is removed
once the console input is refocused.
Also added support for specific notifications to control displaying the close button.
Differential Revision: https://phabricator.services.mozilla.com/D191568
This patch displays a notification in the console when the debugger is paused
in an original file with original variable mapping is turned off.
The notification is displayed when console input is focused, also if the user selects
a generated file, or is no longer paused or switches on varaible mapping, the notification is removed
once the console input is refocused.
Also added support for specific notifications to control displaying the close button.
Differential Revision: https://phabricator.services.mozilla.com/D191568
This patch displays a notification in the console when the debugger is paused
in an original file with original variable mapping is turned off.
The notification is displayed when console input is focused, also if the user selects
a generated file, or is no longer paused or switches on varaible mapping, the notification is removed
once the console input is refocused.
Also added support for specific notifications to control displaying the close button.
Differential Revision: https://phabricator.services.mozilla.com/D191568
When persist log is enabled and console.clear is called,
don't clear the output and display a message to indicate
the method was ignored
Differential Revision: https://phabricator.services.mozilla.com/D183854
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
This makes the console behave like the other React panels.
We can also get rid of the specific bits for mocha in devtools-node-test-runner.js
Differential Revision: https://phabricator.services.mozilla.com/D167233
This will help transition to ES Modules as this symbol is exposed to them.
$ sed -ie "/require(.Services.)/d" $(git grep -l 'require("Services")' devtools/)
$ sed -ie "/loader.lazyRequireGetter(this, .Services./d" $(git grep -l 'loader.lazyRequireGetter(this, "Services"' devtools/)
+ the edition of builtin-modules.js + eslintrc.js
+ manual eslint fixes
+ removal of devtools-services in the debugger, except for jest tests
Differential Revision: https://phabricator.services.mozilla.com/D156401
We remove all messages from target destroy with `isModeSwitching`, as well as
prune unhandled resources in the WebconsoleWrapper queues.
Finally, we also cleanup the resource command pendingEvents so we don't receive
resources after the target was destroyed.
Differential Revision: https://phabricator.services.mozilla.com/D152031
We need to load the toolbox.ftl bundle and wrap the WebConsole App in a LocalizationProvider
when we're in the Browser Console.
Differential Revision: https://phabricator.services.mozilla.com/D150576
We remove all messages from target destroy with `isModeSwitching`, as well as
prune unhandled resources in the WebconsoleWrapper queues.
Finally, we also cleanup the resource command pendingEvents so we don't receive
resources after the target was destroyed.
Differential Revision: https://phabricator.services.mozilla.com/D152031
We need to load the toolbox.ftl bundle and wrap the WebConsole App in a LocalizationProvider
when we're in the Browser Console.
Differential Revision: https://phabricator.services.mozilla.com/D150576
This allows to pull out target management code out from toolbox back to TargetCommand.
And then allows to more easily share this store in the context of the browser console,
where there is no toolbox.
This is also an interesting example on how commands may populate redux store directly
so that we avoid having each panel translate commands's event into actions.
An alternative here, would be to introduce some generic layer between commands and redux.
Which would be the glue between a command and populating a store.
Differential Revision: https://phabricator.services.mozilla.com/D151493
This introduces functionality to support disabling weconsole messages.
Also introduces code to disable all network messages, which would be
used by the netmonitor.
You'll probably need the fullstack of patches to test easily
Will add mochitest in a followup
Differential Revision: https://phabricator.services.mozilla.com/D149753
This is a naive implementation where we re-create a ConsoleOutput
element, reusing the existing store, and passing a specific prop
so all the messages would be rendered.
In order to include stacktraces, we pass a `0` initial render delay to the
callsites of the `SmartTrace` component.
We take this as an opportunity to extend the test coverage of `SmartTrace` around
this feature.
Differential Revision: https://phabricator.services.mozilla.com/D142189
This is a naive implementation where we re-create a ConsoleOutput
element, reusing the existing store, and passing a specific prop
so all the messages would be rendered.
In order to include stacktraces, we pass a `0` initial render delay to the
callsites of the `SmartTrace` component.
We take this as an opportunity to extend the test coverage of `SmartTrace` around
this feature.
Differential Revision: https://phabricator.services.mozilla.com/D142189
The property is renamed, prefixed with `mutable` to better highlight that it is
special; the associated selector is renamed as well.
The only change necessary was adding a `messageCount` prop to the `ConsoleOutput`
component so its lifecycle method could check if the number of messages changed.
Differential Revision: https://phabricator.services.mozilla.com/D138293
Fixes the leaks of the cached stacktrace info in stackTraceInfoByActorID.
Prior to this fix, the stacktrace info in the cache is only removed when the stacktrace
details panel is opened, meaning if the details panel is never opened the
info is never cleared and leaks.
This fixes the netmonitor and the webconsole as they both use the data provider
### Leak Info
#### Netmonitor
Before: 151 leaked objects (14611 with missing allocation site) in the parent process
After: -111 leaked objects (14150 with missing allocation site) in the parent process
#### Webconsole
Before: 271 leaked objects (13996 with missing allocation site) in the parent process
After: 1 leaked objects (13810 with missing allocation site) in the parent process
Differential Revision: https://phabricator.services.mozilla.com/D128015
This method is meant to replace the direct usage
of webconsoleFront.evaluateJSAsync.
The WebConsoleCommands file is removed, and all
client calls to evaluateJSAsync are migrated to
the new method. Callsites are simplified when
possible, and some test are refactored to switch
to spawned task to retrieve content page information.
Differential Revision: https://phabricator.services.mozilla.com/D116242
Surprisingly, there is no issue with ResourceWatcher cache,
but only with the WebConsoleWrapper which gets its inner cache purged.
Differential Revision: https://phabricator.services.mozilla.com/D112232
Note that the timestamp being set in WebConsoleWrapper is overriding the one passed from will-navigate
and ends up being wrong and too late.
Differential Revision: https://phabricator.services.mozilla.com/D115974
After some investigations,I'l try to explain what i see. What seems to be happening is that the data provider is
intialized when the webconsole-ui is initialized so that is when the instance of the console
front is created. When a target switch happens, that instance of the console front gets destroyed
so when the data provider needs to request the network details it fails and this._client
is null.
This patch moves the creation of the data provider to onTargetAvailable (as we do with that in the network panel).
This fixes the issue, and TRY seems to be good with it, I wonder if this is best solution or this can be improved.
What are your thoughts?
I can add a test if we think this is the way to go.
Differential Revision: https://phabricator.services.mozilla.com/D113167