Commit Graph
227 Commits
Author SHA1 Message Date
Henrik Skupin 3a548b37ef Bug 1912237 - [devtools] Remove backward compatibility code for Firefox 131 release. r=devtools-backward-compat-reviewers,devtools-reviewers,bomsy
Differential Revision: https://phabricator.services.mozilla.com/D219877
2024-08-23 17:22:32 +00:00
Emilio Cobos Álvarez bb2400428b Bug 1076583 - Make src attribute not load sync. r=smaug,extension-reviewers,devtools-reviewers,robwu,nchevobbe
This fixes src loads to be consistent with srcset/picture loads, modulo
the special synchronous case in the spec
(https://html.spec.whatwg.org/#update-the-image-data step 7), which
requires src loads to be sync if the image is available.

We now avoid triggering the load from the parser consistently for src /
srcset / picture, and unify the codepath with BindToTree. That should
avoid some useless task allocations.

Only the sync load code-path needs a script runner (mostly to deal with
anonymous content like the video poster <img> and such, but it also
helps not trigger sync loads at unexpected times like on adoption).

About the HTMLImageElement::Complete() getter change, we need to also
return false if there's an existing load task. That is the proposal in
https://github.com/whatwg/html/issues/4884, and prevents some failures
in the-img-element/{update-src-complete,img.complete}.html WPTs. It
technically changes our behavior on .srcset changes, but it makes it
consistent with .src changes and other browsers, so seems fine.

There are a couple regressions in CSP tests and the networkEvent stubs,
but these are really a pre-existing issue. What happens is that, since
the loads are now async, CSP can't figure out the script that triggered
the load anymore. I need to look if there's an easy way to propagate
that information in the image load tasks, but this is trivially
reproducible by changing these tests to use srcset rather than src.

The rest of the test changes are as expected: either new passes, or
expected test changes from this.

Differential Revision: https://phabricator.services.mozilla.com/D215519
2024-08-05 12:23:44 +00:00
Emilio Cobos Álvarez 77c40caac6 Bug 1910698 - Remove nsIScriptError.sourceLine. r=smaug,devtools-reviewers,webdriver-reviewers,necko-reviewers,nchevobbe,kershaw,jdescottes,credential-management-reviewers,dimi
Afaict the source lines are not exposed anywhere in the UI.

Differential Revision: https://phabricator.services.mozilla.com/D218115
2024-08-01 17:12:48 +00:00
Alexandre Poirot df9fea0485 Bug 1901644 - [devtools] Uncapsulate CONSOLE_MESSAGE resource. r=devtools-reviewers,nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D213225
2024-06-18 18:33:18 +00:00
Nicolas Chevobbe e249389848 Bug 1844087 - [devtools] Make SearchBox input described by summary element. r=devtools-reviewers,accessibility-frontend-reviewers,ochameau,ayeddi.
This should allow the number of hidden messages to be notified to
screen reader users.
We update the Console FilterBar behavior to always show the "X hidden" message
when the input is focused, so screen reader can also pick up when no messages
are hidden.

Differential Revision: https://phabricator.services.mozilla.com/D213181
2024-06-17 06:31:26 +00:00
Nicolas Chevobbe 8a13e46e2e Bug 1901942 - [devtools] Remove unused FilterCheckbox component. r=devtools-reviewers,jdescottes.
Differential Revision: https://phabricator.services.mozilla.com/D213391
2024-06-12 11:54:38 +00:00
Alexandre Poirot 9454c9e3e8 Bug 1651518 - [devtools] Ensure waiting for CSS Warning full listening when toggling the filter from tests. r=devtools-reviewers,nchevobbe
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
2024-05-27 09:53:53 +00:00
Cristian Tuns d0272b92b7 Backed out 8 changesets (bug 1651518, bug 1883847) dt failures in nsTArray.h. CLOSED TREE
Backed out changeset 481558275c1d (bug 1651518)
Backed out changeset 5337435e8bca (bug 1651518)
Backed out changeset 8fe0c1a4da7f (bug 1651518)
Backed out changeset 840a0d9db260 (bug 1651518)
Backed out changeset eaab9de5819d (bug 1651518)
Backed out changeset cf71de92d782 (bug 1651518)
Backed out changeset d778691464db (bug 1651518)
Backed out changeset af28e5f719e8 (bug 1883847)
2024-05-22 09:02:19 -04:00
Alexandre Poirot 2ca6803e58 Bug 1651518 - [devtools] Ensure waiting for CSS Warning full listening when toggling the filter from tests. r=devtools-reviewers,nchevobbe
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
2024-05-22 11:50:43 +00:00
Cristina Horotan ca70119cfa Backed out 8 changesets (bug 1651518, bug 1883847) for causing damp failures at toolbox/browser-toolbox.js CLOSED TREE
Backed out changeset 4ec70db12f48 (bug 1651518)
Backed out changeset b2b138889ad6 (bug 1651518)
Backed out changeset efda5c09b0ea (bug 1651518)
Backed out changeset b0de4113f8fb (bug 1651518)
Backed out changeset 03cf235d2a80 (bug 1651518)
Backed out changeset 58e71c27f1fd (bug 1651518)
Backed out changeset f7fb390c3965 (bug 1651518)
Backed out changeset b8a2473c47c0 (bug 1883847)
2024-05-22 04:00:53 +03:00
Alexandre Poirot 77d5f78f48 Bug 1651518 - [devtools] Ensure waiting for CSS Warning full listening when toggling the filter from tests. r=devtools-reviewers,nchevobbe
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
2024-05-21 14:09:33 +00:00
Dave Townsend 2af4d349f3 Bug 1864896: Autofix unused function arguments (devtools). r=profiler-reviewers,devtools-reviewers,nchevobbe,julienw
Differential Revision: https://phabricator.services.mozilla.com/D202959
2024-03-05 14:21:15 +00:00
Nicolas Chevobbe 57c4155db4 Bug 1883305 - [devtools] Remove 123 backward compatibility code. r=ochameau,devtools-reviewers.
Differential Revision: https://phabricator.services.mozilla.com/D203395
2024-03-04 14:20:53 +00:00
Alexandre Poirot 75fcbff4a7 Bug 1875045 - [devtools] Release Object actors by bulk. r=devtools-reviewers,devtools-backward-compat-reviewers,nchevobbe
For now we were releasing object actors one by one.
This would force to send an individual RDP request for each of them.
The console often release all objects actors related to older console message
going over the maximum limit of displayed console messages (10k).
This can easily grow in a large number of actors to be released,
either if console message are receiving many arguments and/or
if many console are logged.

We have to have one request per target as the actors could only be reached
within same-thread actor.
In order to prepare for ObjectFront removal, introduce a target-scoped "Objects" actor
which is a singleton per Target. It will receive the new "release in bulk objects actors"
method. Later, it will start implementing all the existing methods of the Object Actor
in order to migrate away from having to instantiate one Object Front (notice the singular on "Object"),
per inspected JS Object.

On the fronted side a new Object Command is introduced in order to abstract away the RDP/Fronts work.

Differential Revision: https://phabricator.services.mozilla.com/D198784
2024-01-29 13:59:51 +00:00
Iulian Moraru f78b22948f Backed out 2 changesets (bug 1875045) for causing dt failures on browser_webconsole_console_logging_workers_api.js. CLOSED TREE
Backed out changeset 533ecc686bac (bug 1875045)
Backed out changeset f4ac089ead5a (bug 1875045)
2024-01-26 16:09:31 +02:00
Alexandre Poirot 3574d88b24 Bug 1875045 - [devtools] Release Object actors by bulk. r=devtools-reviewers,devtools-backward-compat-reviewers,nchevobbe
For now we were releasing object actors one by one.
This would force to send an individual RDP request for each of them.
The console often release all objects actors related to older console message
going over the maximum limit of displayed console messages (10k).
This can easily grow in a large number of actors to be released,
either if console message are receiving many arguments and/or
if many console are logged.

We have to have one request per target as the actors could only be reached
within same-thread actor.
In order to prepare for ObjectFront removal, introduce a target-scoped "Objects" actor
which is a singleton per Target. It will receive the new "release in bulk objects actors"
method. Later, it will start implementing all the existing methods of the Object Actor
in order to migrate away from having to instantiate one Object Front (notice the singular on "Object"),
per inspected JS Object.

On the fronted side a new Object Command is introduced in order to abstract away the RDP/Fronts work.

Differential Revision: https://phabricator.services.mozilla.com/D198784
2024-01-26 10:41:43 +00:00
Joel Maher 4072dc32c4 Bug 1869590 - Batch 19 - convert remaining mochitest ini to toml. r=aryx,necko-reviewers,devtools-reviewers,dom-storage-reviewers,asuth,valentin,nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D196203
2023-12-13 15:44:04 +00:00
Nicolas Chevobbe 9a88c4becd Bug 1844091 - [devtools] Add proper labels to evaluation and evaluation result message icons. r=devtools-reviewers,ochameau.
Differential Revision: https://phabricator.services.mozilla.com/D189332
2023-09-29 05:23:22 +00:00
Tooru Fujisawa 8c4bd5d59d Bug 1846913 - Part 1: Use 1-origin column number for compile errors, compile wanring, and error notes. r=iain,devtools-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D185370
2023-08-11 08:11:48 +00:00
Katherine Patenio 99d830d71b Bug 1830418 - Convert browser/components/customizableui/CustomizableUI.jsm to ESM r=Standard8,devtools-reviewers,nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D177423
2023-05-24 15:52:34 +00:00
Mark Banner 91fde42f7b Bug 1826062 - Automatic fixes for Prettier 2.0.5 upgrade. r=mossop,perftest-reviewers,webcompat-reviewers,geckoview-reviewers,denschub,devtools-reviewers,sparky,owlish
Differential Revision: https://phabricator.services.mozilla.com/D177025
2023-05-20 12:26:49 +00:00
Mark Banner 0fadbc1ec4 Bug 1829618 - Enable Prettier on json files (automatic fixes). r=perftest-reviewers,webcompat-reviewers,extension-reviewers,andi,desktop-theme-reviewers,pip-reviewers,devtools-reviewers,sync-reviewers,mossop,denschub,dao,sparky,robwu,geckoview-reviewers,owlish
Differential Revision: https://phabricator.services.mozilla.com/D176336
2023-05-09 16:14:51 +00:00
Nicolas Chevobbe 484e6f8a71 Bug 1777608 - [devtools] Change how we render cropped URLs in String rep. r=bomsy.
Instead of rendering the cropped URL, we split the URL in 3 parts, so the full
URL text will be in the DOM, but we visually hide the middle part and replace
it with an ellipsis.
This way copying the message will still put the full URL in the clipboard.
A test case is added to ensure this works as expected.

Differential Revision: https://phabricator.services.mozilla.com/D165805
2023-02-13 16:01:21 +00:00
Nicolas Chevobbe 4cf60bdd90 Bug 1543012 - [devtools] Migrate console node test to jest. r=jdescottes.
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
2023-01-19 14:55:39 +00:00
Alexandre Poirot d7a3f2cb45 Bug 1807898 - [devtools] Remove all callsites passing a now-useless telemetry sessionId. r=devtools-reviewers,nchevobbe
Note that there is still one leftover usage of sessionId related to performance markers,
which isn't related to telemetry... but a way to distinguish toolbox instances.

Differential Revision: https://phabricator.services.mozilla.com/D165936
2023-01-04 18:28:33 +00:00
Alexandre Poirot e1ce06e74c Bug 1806405 - [devtools] Remove code related to "show content message" toggle. r=perftest-reviewers,nchevobbe,kshampur
This was no longer implemented/shown in the fission browser toolbox.
Now that we removed the non-fission toolbox, we can remove this feature.
Instead, content process messages are shown/hidden depending on browser toolbox's scope.
"everything" will show them. "parent-process" won't.

Differential Revision: https://phabricator.services.mozilla.com/D165026
2022-12-20 19:30:30 +00:00
Nicolas Chevobbe da78eb0ace Bug 1800832 - [devtools] Explicitly allow data urls in cleanupStyle. r=jdescottes.
Differential Revision: https://phabricator.services.mozilla.com/D162990
2022-12-13 06:29:50 +00:00
Nicolas Chevobbe 3410904da6 Bug 1803508 - [devtools] Fix console stubs generation. r=jdescottes
All calls to `writeStubsToFile` were updated, but not the function signature itself,
which we do in this patch.
We also take this as an opportunity to fix the require calls in the stub file template.

Differential Revision: https://phabricator.services.mozilla.com/D163489
2022-12-08 14:54:02 +00:00
Mark Banner a88d045081 Bug 1799314 - Convert most of the JSM modules in testing/ to ES modules. r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D161431
2022-11-17 12:00:25 +00:00
Alexandre Poirot 6b99a0beed Bug 1793396 - [devtools] Fix webconsole mocha tests with absolute URLs require paths. r=Honza
Differential Revision: https://phabricator.services.mozilla.com/D158490
2022-10-03 18:57:13 +00:00
Alexandre Poirot bde1f19196 Bug 1792847 - [devtools] Allow node/jest to load modules from absolute resource:// URLs. r=jdescottes
Note that TreeView is blocked by jsonview, and only devtools/client is being moved to resource:// URIs

Differential Revision: https://phabricator.services.mozilla.com/D158325
2022-09-30 15:17:40 +00:00
Alexandre Poirot 465fac9684 Bug 1792847 - [devtools] Use absolute URLs to import modules in devtools/client/webconsole. r=jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D158380
2022-09-30 15:17:40 +00:00
Alexandre Poirot 0c4e317914 Bug 1789980 - [devtools] Migrate all callsites using require("chrome") to use Components.* global symbols. r=jdescottes,perftest-reviewers,AlexandruIonescu
This will help transition to ES Modules as we won't be able to expose a magic "chrome" ESM.
Also, most of these symbols are exposed as global already.
All but:
* `components` which is `Components`,
* `CC` which is `Components.Constructor`,
* `Cm` which is `Components.manager`.

$ sed -ie "/require(.chrome.)/d" $(git grep -l 'require("chrome")' devtools/)
+ manual edits for all three exceptions

Differential Revision: https://phabricator.services.mozilla.com/D156936
2022-09-20 12:52:27 +00:00
Alexandre Poirot 86c7a14e62 Bug 1789202 - [devtools] Expose ChromeUtils as a global to all DevTools modules. r=perftest-reviewers,nchevobbe,AlexandruIonescu
This will help transition to ES Modules as this symbol is exposed to them.

$ sed -ie "/require(.ChromeUtils.)/d" $(git grep -l 'require("ChromeUtils")' devtools/)
$ sed -ie "/loader.lazyRequireGetter(this, .ChromeUtils./d" $(git grep -l 'loader.lazyRequireGetter(this, "ChromeUtils"' devtools/)
+ the edition of builtin-modules.js + eslintrc.js + manual eslint fixes

Differential Revision: https://phabricator.services.mozilla.com/D156402
2022-09-09 07:22:51 +00:00
Alexandre Poirot 0f32f335e3 Bug 1789201 - [devtools] Expose Services as a global to all DevTools modules. r=perftest-reviewers,nchevobbe,julienw,AlexandruIonescu
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
2022-09-09 07:22:51 +00:00
Nicolas Chevobbe 82d9a314cd Bug 1787514 - [devtools] Fix failing webconsole mocha tests. r=ochameau.
It looks like there was some (hardware?) changes on TRY
which caused the test to run in Coordinated Universal Time
timezone, when one test expect it to be CEST.
We force the timezone in the test command so it will
always be CEST.

Differential Revision: https://phabricator.services.mozilla.com/D155818
2022-08-30 16:08:58 +00:00
Mark Banner 3387a89bc7 Bug 1786197 - Turn on ESLint rule for prefer-boolean-length-check for devtools. r=jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D155167
2022-08-26 13:39:34 +00:00
Mark Banner 6d03c63e2d Bug 1330099 - Enable object-shorthand eslint rule. r=jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D153567
2022-08-03 14:57:05 +00:00
Nicolas Chevobbe 2d526bc067 Bug 1780418 - [devtools] Remove .only call in eager-ealuation.test.js. r=jdescottes.
Differential Revision: https://phabricator.services.mozilla.com/D152280
2022-07-20 15:18:32 +00:00
Nicolas Chevobbe 1c33930d57 Bug 1780134 - [devtools] Guard EagerEvaluation rendering on undefined terminalEagerResult. r=jdescottes.
This was only _not_ rendering when `terminalEagerResult` was `null`, but with
Bug 1776376, we're getting `undefined` results in some case, which was crashing
the component.
While this should be fixed at an upper level, this patch makes the component a bit
more robust so we don't crash the whole console client.
A node test is added for basic rendering with various result values, and proper
mochitest will be added in follow-up patches in this queue.

Differential Revision: https://phabricator.services.mozilla.com/D152161
2022-07-19 12:28:38 +00:00
Tooru Fujisawa a58ec20af8 Bug 1667455 - Part 17: Update devtools stub. r=devtools-reviewers,nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D150906
2022-07-11 12:41:55 +00:00
Hubert Boma Manilla d310c72aff Bug 1775058 - [devtools] Functionality to disable webconsole messages r=nchevobbe
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
2022-07-04 17:18:50 +00:00
Hubert Boma Manilla bdf7d13e3a Bug 1775058 - [devtools] Add support for custom titles to MessageIcon r=nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D150474
2022-07-04 17:18:49 +00:00
Nicolas Chevobbe f0c6879b4f Bug 1776145 - [devtools] Remove WebConsoleConnectionProxy. r=ochameau.
Differential Revision: https://phabricator.services.mozilla.com/D150087
2022-07-04 13:27:52 +00:00
Nicolas Chevobbe cb68e10ddc Bug 1776145 - [devtools] Remove unnecessary WebConsoleUI additionalProxies. r=ochameau,devtools-backward-compat-reviewers,jdescottes.
`WebConsoleConnectionProxy` is now only used for:
- listening to `lastPrivateContextExited`, which can be done from the top-level
  console front instead
- setting `NetworkMonitor.saveRequestAndResponseBodies` for toolbox we don't have
  network resource support for, which would be better done in `startWatchingNetworkResources`.

This means we don't need to keep a Map of additional proxies.
The only impact is on `clearMessagesCache`, where we now fetch all fronts with
`getAllFronts` instead of looping through the Map of additional proxies.
This change highlighted some race condition in tests, as it's now slightly slower.
So we add a new `clearMessagesCacheAsync` function, which is doing the same thing
as `clearMessagesCache`, except it's not `oneway`, so we can know when the cache
was indeed cleared, and we emit an event to indicate when the cache was cleared.
We can't simply remove `oneway` from `clearMessagesCache` as it causes backward
compatibility issues we can't avoid.
This also highlighted an issue with the cache not being cleared on `console.clear`
when it is batched, so we fix this (a test was failing without it).

The next patch in the queue will completely remove `WebConsoleConnectionProxy`.

Differential Revision: https://phabricator.services.mozilla.com/D150085
2022-07-04 13:27:51 +00:00
Nicolas Chevobbe bacc964ac1 Bug 1764501 - [devtools] Speedup adding messages out of order. r=ochameau.
In the console we might receive messages that need to be inserted at a specific
position in the output to respect the chronological order.
This is very visible when evaluating an expression in the console while we are
fetching cached messages, or when the expression is logging lots of messages, since
the evaluation result doesn't go through the ResourceCommand itself.
Since we were relying on the order of insertion in `mutableMessagesById` for the
order of messages in the output, we had no choice but clone the Map to insert
the new message at the specific position.
With lots of messages, this can be utterly slow, and is something people are experiencing.

To fix this, we're adding a new state property, `mutableMessagesOrder`, which holds
message ids in the chronological order. It's then used to compute `visibleMessages`.
As we don't have to clone the Map anymore, it makes reordering as fast as looking
for an index in the array and splicing it (which is fast).

We also take this opportunity to switch away from our `findIndex` usage; most often
than not, the messages will be reinserted at the end of the array, so we can loop
through it backward to find the index faster.

We still keep `mutableMessagesById` as a Map so lookup are fast, and we don't have
to deal with impacts we'd have if we'd switch to an object.

The existing node test helper to get a message at a specific index are migrated
to make use of `mutableMessagesOrder`, and a few test cases and assertions are
added to check that the new property is handled correctly.

Differential Revision: https://phabricator.services.mozilla.com/D148658
2022-06-15 12:57:07 +00:00
Hubert Boma Manilla 955342fc90 Bug 1764348 - Enable browser console / browser toolbox console users turn on network monitoring manually r=nchevobbe
Highlights
- Network monitoring is turned off by default in browser console/ browser toolbox console on initial load.
- A new "Enable Network Monitoring" setting is added to enable users toggle on an off as they desire.
- The user setting is persisted across toolbox reopens.

Differential Revision: https://phabricator.services.mozilla.com/D145234
2022-06-06 13:56:05 +00:00
Hubert Boma Manilla c81fa5cbf5 Bug 1764348 - Cleanup hidePersistLogsCheckbox and hideShowContentMessagesCheckbox property r=nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D145550
2022-06-06 13:56:05 +00:00
Iulian Moraru c9a321526f Backed out 4 changesets (bug 1764348, bug 1771277) for causing multiple dt failures. CLOSED TREE
Backed out changeset 21c03813c9d0 (bug 1771277)
Backed out changeset 0ee89f81d7da (bug 1764348)
Backed out changeset 47658c248d9e (bug 1764348)
Backed out changeset 712947c3a514 (bug 1764348)
2022-06-02 23:13:28 +03:00
Hubert Boma Manilla 8c4b58faf5 Bug 1764348 - Enable browser console / browser toolbox console users turn on network monitoring manually r=nchevobbe
Highlights
- Network monitoring is turned off by default in browser console/ browser toolbox console on initial load.
- A new "Enable Network Monitoring" setting is added to enable users toggle on an off as they desire.
- The user setting is persisted across toolbox reopens.

Differential Revision: https://phabricator.services.mozilla.com/D145234
2022-06-02 14:35:24 +00:00