Commit Graph

24297 Commits

Author SHA1 Message Date
Alexandre Poirot
65cecb5a83 Bug 1749769 - [devtools] Lazy load target legacy listeners. r=nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D135832
2022-01-14 17:03:35 +00:00
Alexandre Poirot
3c7dc514f2 Bug 1749769 - [devtools] Lazy load all resource legacy listeners. r=nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D135831
2022-01-14 17:03:35 +00:00
Alexandre Poirot
719c84fb16 Bug 1749769 - [devtools] Lazy load all resource transformers. r=nchevobbe
Doing this helps load resource-command module from jest tests
which were throwing when loading the transformers.
And it probably is a small performance improvement.

Differential Revision: https://phabricator.services.mozilla.com/D135719
2022-01-14 17:03:34 +00:00
Alexandre Poirot
be162a1fe8 Bug 1569859 - [devtools] Automagically move the toolbox between the original tab we debug and its popups. r=nchevobbe
This is also behind "devtools.popups.debug", to be set to true manually.

This special mode break the old fundamental principal where a given toolbox
is bound to one unique given tab. Now one toolbox starts being shared between
many tabs.

When we select the original tab we debug, or any of its popups opened in distinct tabs,
we will move the toolbox between each of these tabs.
We will have one toolbox instance, one toolbox iframe, which will be moved
around each tab's host. This is somewhat similar to host switching within the same tab.
This is all based on the same trick where we swap the toolbox iframe to another location.

Differential Revision: https://phabricator.services.mozilla.com/D131802
2022-01-14 12:02:25 +00:00
Alexandre Poirot
e515c00f2a Bug 1569859 - [devtools] Fix SourceActor's url having stack trace in it. r=nchevobbe
Debugger.Source.url attribute may be of the form:
   "http://example.com/foo line 10 > inlineScript"
because of the following function `js::FormatIntroducedFilename`:
https://searchfox.org/mozilla-central/rev/253ae246f642fe9619597f44de3b087f94e45a2d/js/src/vm/JSScript.cpp#1816-1846
This isn't so easy to reproduce, but in next changeset, browser_dbg-breakpoints-popup.js's testPausedInTwoPopups covers this

Differential Revision: https://phabricator.services.mozilla.com/D135145
2022-01-14 12:02:25 +00:00
Alexandre Poirot
b42e2fdedc Bug 1569859 - [devtools] Always return sync content when using SourcesManager.urlContents with partial=true. r=nchevobbe
With popup debugging (next patches), we trigger a race condition in this code
where `SourcesManager.urlContents` is called *after* `devtools-html-content` is fired.
i.e. after the HTML document is parsed.
This lead to return an async promise instead of an immediate value.
This confuses `SourceActor._getStartLineColumnDisplacement` which no longer apply breakpoints right away.
We miss early breakpoint support for popups.

This isn't easy to reproduce beyond popup debugging,
in next changeset, browser_dbg-breakpoints-popup.js's testPausedByBreakpoint covers this.

Differential Revision: https://phabricator.services.mozilla.com/D135144
2022-01-14 12:02:25 +00:00
Alexandre Poirot
8f7f623182 Bug 1569859 - [devtools] Spawn WindowGlobal targets for popup opened by the currently debugged tab r=nchevobbe,devtools-backward-compat-reviewers
For now, we only do that when "devtools.popups.debug" is manually set to true.

This is introducing some complexity in the way we filter out the WindowGlobal
we should consider or not. Before this patch it was quite straightforward.
We accepted all WindowGlobal's matching the tab's `browserId`.
Now we also accept the WindowGlobal whose `opener`'s `browserId` matches.

With this patch only, popups start appearing in the iframe dropdown.
You still have to manually switch to the popup via the dropdown to debug it in the inspector or console.
In the debugger, you will already start seeing the popup source and break on it.

Differential Revision: https://phabricator.services.mozilla.com/D133350
2022-01-14 12:02:24 +00:00
Nicolas Chevobbe
f1670e6b04 Bug 1737972 - [devtools] Remove usage of lodash fromPairs/toPairs from debugger. r=jdescottes.
Differential Revision: https://phabricator.services.mozilla.com/D135709
2022-01-14 11:22:16 +00:00
Nicolas Chevobbe
c70fae1218 Bug 1737985 - [devtools] Remove lodash sortBy usage. r=bomsy.
This patch replaces sortBy calls by good old Array#sort.

Differential Revision: https://phabricator.services.mozilla.com/D135601
2022-01-14 11:22:16 +00:00
Nicolas Chevobbe
647c857c5f Bug 1749550 - [devtools] Add distinct style to event badge in markup view when an event listener is disabled. r=ochameau.
Differential Revision: https://phabricator.services.mozilla.com/D135680
2022-01-14 10:21:14 +00:00
Claudia
f6d60d9cd8 Bug 1745383 - [devtools] Clean up the selected request reducer and adds a new selector to get clicked request r=bomsy
Differential Revision: https://phabricator.services.mozilla.com/D135241
2022-01-14 10:04:56 +00:00
Hubert Boma Manilla
c150b0a2c0 Bug 1746368 - [devtools] Add blackbox checks for specfic paused frame location lines r=ochameau
Differential Revision: https://phabricator.services.mozilla.com/D135393
2022-01-12 23:44:19 +00:00
Nicolas Chevobbe
eec59321db Bug 1492497 - [devtools] Add a way to disable (and re-enable) event listener for a given node. r=ochameau,devtools-backward-compat-reviewers,bomsy.
This patch adds a checkbox at the end of each event listeners in the EventTooltip,
which allow the user to disable/re-enable a given event listener.

This is done by managing a Map of nsIEventListenerInfo object in the NodeActor,
which we populate from `getEventListenerInfo`. Each `nsIEventListenerInfo` is
assigned a generated id, which can then be used to call the new NodeActor
methods, `(enable|disable)EventListener`.

We don't support disabling jquery/React event listeners at the moment, so we
display the checkbox for them as well, but disabled.

Differential Revision: https://phabricator.services.mozilla.com/D135133
2022-01-12 18:36:23 +00:00
Hubert Boma Manilla
5eb7f48c3c Bug 1748618 - [devtools] Add blackbox line context menu item r=nchevobbe
This patch adds context menu item to ignore single lines in the editor and in the gutter

Differential Revision: https://phabricator.services.mozilla.com/D135116
2022-01-12 14:26:31 +00:00
Cristian Tuns
52254e1b6b Backed out changeset 5a82b7a2951e (bug 1492497) for causing leaks CLOSED TREE 2022-01-12 09:29:06 -05:00
Alexandre Poirot
dc913e4b3e Bug 1749512 - [devtools] Create all SessionContext objects from a single module. r=jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D135603
2022-01-12 13:33:20 +00:00
Nicolas Chevobbe
a232d2448c Bug 1492497 - [devtools] Add a way to disable (and re-enable) event listener for a given node. r=ochameau,devtools-backward-compat-reviewers,bomsy.
This patch adds a checkbox at the end of each event listeners in the EventTooltip,
which allow the user to disable/re-enable a given event listener.

This is done by managing a Map of nsIEventListenerInfo object in the NodeActor,
which we populate from `getEventListenerInfo`. Each `nsIEventListenerInfo` is
assigned a generated id, which can then be used to call the new NodeActor
methods, `(enable|disable)EventListener`.

We don't support disabling jquery/React event listeners at the moment, so we
display the checkbox for them as well, but disabled.

Differential Revision: https://phabricator.services.mozilla.com/D135133
2022-01-12 12:42:48 +00:00
Neil Deakin
5f1ff58926 Bug 371900, remove more now-unneeded empty oncommand attributes, r=bgrins,preferences-reviewers,Gijs
Differential Revision: https://phabricator.services.mozilla.com/D135243
2022-01-11 20:02:30 +00:00
Alexandre Poirot
83e6733608 Bug 1749519 - [devtools] Prevent exception when reloading a page while having devtools opened. r=nchevobbe
Unfortunately, I haven't find any useful attribute on JSWindowActorChild/WindowGlobalChild/BrowsingContext
to detect that things are destroyed, or to be destroyed and avoid calling sendAsyncMessage,
or detect in the exception handler that we got destroyed.

So I'm falling back to ignore the exception based on its message...

Differential Revision: https://phabricator.services.mozilla.com/D135608
2022-01-11 16:16:33 +00:00
Nicolas Chevobbe
19bf4f97d1 Bug 1749449 - [devtools] Cleanup hasNativeConsoleAPI state through the codebase. r=jdescottes,devtools-backward-compat-reviewers.
This removes all the mention of this property which aren't
actually used to display the warning message in the end.

Differential Revision: https://phabricator.services.mozilla.com/D135587
2022-01-11 15:17:24 +00:00
Nicolas Chevobbe
4b0411240e Bug 1749123 - [devtools] Include hasNativeConsoleAPI in documentEvent. r=jdescottes,devtools-backward-compat-reviewers.
In the Browser Console, document-event resources are retrieved from a
legacy listener built on top of the documentEvent event, sent by the
webconsole actor.
documentEvent wasn't including hasNativeConsoleAPI, and we were displaying
a misleading overriden console API message there.
This patch fixes this and adds a test case to make sure we don't regress.
Funnily, the mochitest test harness _does_ override the global's console
property, and we have to reset it in the test to make sure the warning message
is not displayed.

Differential Revision: https://phabricator.services.mozilla.com/D135585
2022-01-11 15:17:23 +00:00
Nicolas Chevobbe
4b03a1cb7a Bug 1749025 - [devtools] Re-generate debugger bundles. r=ochameau.
Looks like some past commits had impact on bundles, let's update them.

Differential Revision: https://phabricator.services.mozilla.com/D135360
2022-01-11 12:54:40 +00:00
Randell Jesup
cae53dc9cc WIP: Bug 1747261: enable ServiceWorker process-isolation for all domains r=jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D134505
2022-01-11 11:48:48 +00:00
James Graham
1501d682e7 Bug 1748845 - Update source-relative links in devtools docs, r=firefox-source-docs-reviewers,Honza,sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D135382
2022-01-11 10:48:20 +00:00
Kershaw Chang
f159addb13 Bug 1741425 - Enable more xpcshell tests with socket process, r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D134484
2022-01-11 09:50:14 +00:00
Kershaw Chang
5d806765a0 Bug 1741425 - Enable more mochitest with socket process, r=ahal,webdriver-reviewers,preferences-reviewers,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D134485
2022-01-11 09:49:45 +00:00
Alexandre Poirot
b3b44589a8 Bug 1745240 - [devtools] Factorize some more code around isBrowsingContextPartOfContext. r=nchevobbe,jdescottes
Track all code which may filter BrowsingContext or WindowGlobal in the server codebase
in order to use a unique filtering method.

Differential Revision: https://phabricator.services.mozilla.com/D134423
2022-01-10 17:42:10 +00:00
Alexandre Poirot
6343e9ad93 Bug 1745240 - [devtools] Use only one method to filter both BrowsingContext and WindowGlobals. r=nchevobbe,jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D135098
2022-01-10 17:42:09 +00:00
Alexandre Poirot
d2db0a255a Bug 1745240 - [devtools] Unify target helpers and JS Window actors to use a shared method to filter BrowsingContext/WindowGlobal's. r=nchevobbe,jdescottes
Popup debugging (bug 1569859) will force to revisit how we filter out the BrowsingContext
that are meant to be debugged. We won't only accept BrowsingContext based on their browserId.
This would force us to carefuly review all the codes where we filter BrowsingContexts.
And if we later have to tweak this, do this again.

It would be nice to have a unique method to filter things out.
It will also be beneficial once we add new debuggable contexts like workers
as we would only have to tweak this method.

For now, this patch focuses only on Target helpers and JSWindowActor's,
but I'll followup to other server modules.

Note that I'm changing the behavior of getAllRemoteBrowsingContexts
in order to also return the top browsing context by default.
We were having a few places where we were re-adding it after,
but that's not trivial. It is easier to remove it in the rare function that need that.

Differential Revision: https://phabricator.services.mozilla.com/D134422
2022-01-10 17:42:09 +00:00
Alexandre Poirot
f64039933c Bug 1745240 - [devtools] Move WatcherActor.isServerTargetSwitchingEnabled into session's context. r=nchevobbe,jdescottes
This boolean helps know for which BrowsingContext we should create a target or track resources.
So that it is part of what defines the context we should debug and will be handy to have
in all filtering functions we use to filter browsing context or platform objects.

Differential Revision: https://phabricator.services.mozilla.com/D134421
2022-01-10 17:42:08 +00:00
Greg Tatum
81b009eef2 Bug 1580599 Add a Fluent string helper to shared-head.js - r=nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D135358
2022-01-10 17:09:17 +00:00
Greg Tatum
302855c2a4 Bug 1580599 - Add pseudo-locale configuration to the browser toolbox; r=platform-i18n-reviewers,devtools-reviewers,fluent-reviewers,nchevobbe,dminor
This commit adds support for setting the pseudo-locale for the browser
UI directly from the Browser Toolbox. This places the icons in the same
place as the "Disable Popup Autohide" command. This will make it easier
for Firefox developers to test that their UI is properly localized.

The SVGs were optimized for size using an optimizer that dropped the
path precision and any extra tags. I tested that they work correctly in
both light and dark modes.

Pseudo-localization is documented here:
https://firefox-source-docs.mozilla.org/l10n/fluent/tutorial.html#pseudolocalization

After this patch lands I'll follow-up with updating that documentation.

Differential Revision: https://phabricator.services.mozilla.com/D134420
2022-01-10 17:09:17 +00:00
Greg Tatum
c6eeab3adf Bug 1580599 - Migrate DevTools toolbox meatball menu to fluent; r=devtools-reviewers,fluent-reviewers,nchevobbe,flod
Differential Revision: https://phabricator.services.mozilla.com/D134419
2022-01-10 17:09:16 +00:00
Nicolas Chevobbe
260704f2d1 Bug 1748589 - [devtools] Fix event listener breakpoints toggling. r=bomsy.
In target-actor-mixin, we were calling `setActiveEventBreakpoints` only with the
new events we were receiving, which mean if the user was clicking a first event in
the UI, and then a second one, only the second one would have a functioning event breakpoint.
Also, we were not handling removing event breakpoints at all.
We're adding `(add|remove)EventBreakpoints` to the thread actor so it's easier
to update the list of event breakpoints.

The existing event breakpoints test is modified to ensure we don't regress such behaviour.

The call to `setEventListenerBreakpoints` is moved before dispatch the `UPDATE_EVENT_LISTENERS`
action so we can properly wait for the breakpoint to be set in tests.

Differential Revision: https://phabricator.services.mozilla.com/D135216
2022-01-10 14:10:23 +00:00
Alexandre Poirot
6cd7bcb3bc Bug 1747816 - [devtools] Always use reducer's source's isOriginal attribute to know if a source is an original one. r=bomsy
"original" here refers to not being generated.
It overlaps with pretty printed sources, which are considered as original sources.

Differential Revision: https://phabricator.services.mozilla.com/D134751
2022-01-10 13:10:37 +00:00
Oriol Brufau
1da3a93991 Bug 1749013 - Fix browser_jsonview_save_json.js checking disk data too early. r=Honza
Differential Revision: https://phabricator.services.mozilla.com/D135446
2022-01-10 10:14:55 +00:00
Sai Hemanth B
8a196d598a Bug 1737968 - Replace lodash difference usage with filter. r=nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D135443
2022-01-10 09:30:10 +00:00
Butkovits Atila
7411a18abf Bug 1701439 - disable browser_jsterm_screenshot_command_warnings.js on Linux_64_opt for frequent failures. r=intermittent-reviewers,jmaher DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D135439
2022-01-10 06:37:58 +00:00
Alexandre Poirot
618f997097 Bug 1747815 - [devtools] Document sources and source-actors reducers. r=bomsy
Differential Revision: https://phabricator.services.mozilla.com/D134752
2022-01-09 22:16:50 +00:00
Alexandre Poirot
da27f388fa Bug 1747815 - [devtools] Remove unused focusedItem attribute from sources reducer. r=bomsy
Differential Revision: https://phabricator.services.mozilla.com/D134787
2022-01-09 22:16:50 +00:00
Alexandre Poirot
6c350b4a42 Bug 1747815 - [devtools] Use a single method to create all reducer's source objects. r=bomsy
And better document all types of source objects:
* generated
* source map original sources
* pretty printed sources

As well as source object attributes!

Differential Revision: https://phabricator.services.mozilla.com/D134786
2022-01-09 22:16:49 +00:00
criss
e2948093fb Backed out 2 changesets (bug 371900) for causing bug 1749182 . CLOSED TREE
Backed out changeset e59035c65af3 (bug 371900)
Backed out changeset 6434bce9c7d4 (bug 371900)
2022-01-09 16:26:02 +02:00
Neil Deakin
64a4726936 Bug 371900, remove more now-unneeded empty oncommand attributes, r=bgrins,preferences-reviewers,Gijs
Differential Revision: https://phabricator.services.mozilla.com/D135243
2022-01-08 18:07:21 +00:00
Julian Descottes
f8849e5bf5 Bug 1748405 - [devtools] Update all storage cache tests to properly wait for setup and clear steps r=Honza
Depends on D135054

Differential Revision: https://phabricator.services.mozilla.com/D135314
2022-01-07 18:08:39 +00:00
Julian Descottes
849351229b Bug 1748405 - [devtools] Wait for caches and cell count in browser_storage_cache_overflow r=Honza
Differential Revision: https://phabricator.services.mozilla.com/D135054
2022-01-07 18:08:38 +00:00
Hubert Boma Manilla
471efce1da Bug 1747494 - [devtools] Should display only one request per URL for images from the cache r=ochameau
Differential Revision: https://phabricator.services.mozilla.com/D135038
2022-01-07 15:18:48 +00:00
Hubert Boma Manilla
985ea76fd5 Bug 1747494 - [devtools] Small cleanups r=ochameau
Differential Revision: https://phabricator.services.mozilla.com/D135037
2022-01-07 15:18:47 +00:00
Oriol Brufau
fa4f6cdf2d Bug 1748688 - Improve browser_jsonview_save_json.js. r=Honza
Avoids using context menu, affected by bug 1478596, so that the test can be
re-enabled in Linux WebRender.

Replaces deprecated OS.File with IOUtils.

Adds try..catch as an attempt to investigate timeouts like bug 1650268.

Adds some extra checks, and some refactorings.

Differential Revision: https://phabricator.services.mozilla.com/D135146
2022-01-07 12:36:25 +00:00
wartmanm
93d857cb3c Bug 1653779 - Lazily create parent map r=nchevobbe,bomsy
parentMap appears to only be used when pressing the left arrow key to navigate
to the parent folder in the source tree.  If this is too slow it could be
replaced with a traverseTree search.

Differential Revision: https://phabricator.services.mozilla.com/D115318
2022-01-07 09:54:21 +00:00
nchevobbe
6f6df94e79 Bug 1748864 - [devtools] Update webidl-deprecated-list.js. r=bomsy.
The file was generated via devtools/shared/webconsole/GenerateDataFromWebIdls.py.

Differential Revision: https://phabricator.services.mozilla.com/D135235
2022-01-07 08:35:37 +00:00