Bug 1620280 Comment 0 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

The Resources API (bug 1576624) will allow to listen for resources earlier than the current setup where we use the TargetList to listen to new target, and only then, request to listen after the target is created.
With the Resources API, we will know as early as the document starts loading that we have to start listening for something.

This bug is about focusing on Debugger Sources, currently fetched via ThreadActor.sources request + newSource event.

Migrating to the resources API will surely address bug 1523947 and this comment:
https://phabricator.services.mozilla.com/D55671?id=203483#inline-343063

See bug 1620234 for an example of such work.
Bug 157662 introduced the `ResourceWatcher` API, accessible via `toolbox.resourceWatcher`. This API will help listen to data that is being created early, when the document just started loading.

We should migrate the whole DevTools codebase to this API for any data that:
* DevTools frontend listen to, or care about,
**and,**
* may be created or be notified early, when the document just starts being loaded.
This data will typically be: console messages, errors, warnings, sources, Root element NodeFront, storage values, network events, stylesheets, ...

We are typically *not* going to use this API for:
* data being fetched on-demand, from user's input. For ex: webconsole evaluation input, or, DOM element expands from the Markup view.
* events which we only want to record when the user cares about them. For ex: animation events.

For some more high level context, please have a look at [Migration to Fission-compatible APIs](https://docs.google.com/document/d/1O80ElDQw9zQ8B2oziwzrQrc9I73RXh0Tpa8U6Kw453I/edit#heading=h.lfe9ax4ms0tc), which describes all Fission-related refactorings.

The typical task for this bug will be about migrating code that:
* start listening and register a RDP event listener,
* retrieve already existings data,
from panel's codebase, to the `ResourceWatcher` module, in the `LegacyListener` object.
And then, the panel should use the `ResourceWatcher` instead.

Bug 1620234 is a good example of such migration, applied to Console Messages.
Bug 1623699 is also useful example as it demonstrates how to write tests for such migration.

This bug is about focusing on only one usecase in the debugger: the JS sources.

JS Sources are currently being listened via `newSource` RDP event from here:
https://searchfox.org/mozilla-central/rev/9c6e7500c0015a2c60be7b1b888261d95095ce27/devtools/client/debugger/src/client/firefox/events.js#146
https://searchfox.org/mozilla-central/rev/9c6e7500c0015a2c60be7b1b888261d95095ce27/devtools/client/debugger/src/client/firefox/events.js#42
and already existing ones fetch via `ThreadFront.sources()`, from here:
https://searchfox.org/mozilla-central/rev/9c6e7500c0015a2c60be7b1b888261d95095ce27/devtools/client/debugger/src/client/firefox/commands.js#399

Back to Bug 1620280 Comment 0