Closed Bug 1563512 Opened 5 years ago Closed 4 years ago

Can't see JS evaluated in a blob that's been revoked

Categories

(DevTools :: Debugger, defect, P3)

defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: bbouvier, Unassigned)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

Attached file index.html

See attached index.html file. Open it in Firefox, observe alert, open devtools in the debugger tab, so as to look at the source of the blob.

If the alert has not been closed yet, the debugger is able to show the source of the blob. But when the alert is closed, the blob is revoked and the debugger now prints a big JS stack trace in the source tab, like this:

Erreur lors du chargement de cet URI : Protocol error (unknownError): Could not load the source for blob:http://localhost:8000/8b556da7-2259-460a-aa89-f83683e263d3.
[Exception... "Failed to open input source 'blob:http://localhost:8000/8b556da7-2259-460a-aa89-f83683e263d3'"  nsresult: "0x805303f4 (<unknown>)"  location: "JS frame :: resource://devtools/shared/DevToolsUtils.js :: mainThreadFetch/< :: line 631"  data: yes]
Stack: mainThreadFetch/<@resource://devtools/shared/DevToolsUtils.js:631:15
mainThreadFetch@resource://devtools/shared/DevToolsUtils.js:512:10
_getSourceText@resource://devtools/server/actors/source.js:276:27
promise callback*onSource@resource://devtools/server/actors/source.js:377:8
handler@resource://devtools/shared/protocol/Actor.js:146:37
onPacket@resource://devtools/server/main.js:1298:58
receiveMessage@resource://devtools/shared/transport/child-transport.js:66:16
MessageListener.receiveMessage*_addListener@resource://devtools/shared/transport/child-transport.js:40:14
ready@resource://devtools/shared/transport/child-transport.js:57:10
_onConnection@resource://devtools/server/main.js:880:15
connectToParent@resource://devtools/server/main.js:296:17
onConnect<@resource://devtools/server/startup/frame.js:59:35
exports.makeInfallible/<@resource://devtools/shared/ThreadSafeDevToolsUtils.js:109:22
MessageListener.receiveMessage*@resource://devtools/server/startup/frame.js:80:5
@resource://devtools/server/startup/frame.js:160:5
Line: 631, column: 0

It'd be nice to still be able to look at the source of a revoked blob; Chromium works perfectly fine in the same scenario.

Blocks: dbg-sources
Component: General → Debugger
Priority: -- → P3

This should be mostly fixed in nightly via https://bugzilla.mozilla.org/show_bug.cgi?id=1643540. If the source has since been GCed, you'd still get the error since there's no-where we can get it back from, but I think that's more understandable. There is also https://bugzilla.mozilla.org/show_bug.cgi?id=1206391 to track the issue of GCed sources that performed console logs and such.

Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: