Open
Bug 1464603
Opened 7 years ago
Updated 3 years ago
ObjectWithURL previewer can throw
Categories
(DevTools :: Console, defect, P2)
DevTools
Console
Tracking
(Not tracked)
NEW
People
(Reporter: Oriol, Unassigned)
Details
Run this code in the browser console:
var win = OpenBrowserWindow();
win.close();
setTimeout(() => console.log([win]), 5e3);
Result:
ObjectActor.prototype.grip previewer function threw an exception: [Exception... "Illegal value" nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)" location: "JS frame :: resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/object/previewers.js :: ObjectWithURL :: line 527" data: no]
Stack: ObjectWithURL@resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/object/previewers.js:527:7
grip@resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/object.js:161:13
objectGrip@resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/webconsole.js:486:12
createValueGrip@resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/object/utils.js:106:14
createValueGrip@resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/webconsole.js:435:12
createValueGrip@resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/webconsole.js:479:29
previewers.Array<@resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/object/previewers.js:142:20
grip@resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/object.js:161:13
objectGrip@resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/webconsole.js:486:12
createValueGrip@resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/object/utils.js:106:14
createValueGrip@resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/webconsole.js:435:12
prepareConsoleMessageForRemote/result.arguments<@resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/webconsole.js:1807:14
prepareConsoleMessageForRemote@resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/webconsole.js:1805:24
onConsoleAPICall@resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/webconsole.js:1619:16
observe@resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/webconsole/listeners.js:262:5
CS_recordEvent@jar:file:///C:/Program%20Files/Mozilla%20Firefox/Test/omni.ja!/components/ConsoleAPIStorage.js:135:5
@debugger eval code:3:18
setTimeout handler*@debugger eval code:3:1
evalWithDebugger@resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/webconsole.js:1418:16
evaluateJS@resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/webconsole.js:926:20
evaluateJSAsync@resource://devtools/shared/base-loader.js -> resource://devtools/server/actors/webconsole.js:897:20
onPacket@resource://devtools/shared/base-loader.js -> resource://devtools/server/main.js:1761:15
send/<@resource://devtools/shared/base-loader.js -> resource://devtools/shared/transport/transport.js:553:13
exports.makeInfallible/<@resource://devtools/shared/base-loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:109:14
exports.makeInfallible/<@resource://devtools/shared/base-loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:109:14
Line: 527, column: 0
Seriously, running getters in rawObj with no check is a bad idea. Can fail in lots of different ways, the above just an example. DevToolsUtils has some methods to do this kind of things in a safe way.
https://searchfox.org/mozilla-central/rev/ce86c6c0472d5021ef693cf99abaaa0644c89e55/devtools/server/actors/object/previewers.js#527
Updated•7 years ago
|
Priority: -- → P2
Updated•7 years ago
|
Product: Firefox → DevTools
Updated•3 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•