Skip to content
This repository was archived by the owner on Sep 21, 2021. It is now read-only.

Commit d613557

Browse files
committed
Strip browser-loader part in frames url for the Error rep stacktrace.
Fixes #971.
1 parent 52e40ba commit d613557

File tree

4 files changed

+120
-2
lines changed

4 files changed

+120
-2
lines changed

packages/devtools-reps/src/reps/error.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,11 @@ function getStacktraceElements(preview) {
9797
functionName = line;
9898
} else {
9999
functionName = result[1];
100-
location = ` (${result[2]})`;
100+
101+
// If the resource was loaded by base-loader.js, the location looks like:
102+
// resource://devtools/shared/base-loader.js -> resource://path/to/file.js .
103+
// What's needed is only the last part after " -> ".
104+
location = result[2].split(" -> ").pop();
101105
}
102106

103107
stack.push(
@@ -108,7 +112,7 @@ function getStacktraceElements(preview) {
108112
span({
109113
key: "location" + index,
110114
className: "objectBox-stackTrace-location"
111-
}, location)
115+
}, ` (${location})`)
112116
);
113117
});
114118

packages/devtools-reps/src/reps/stubs/error.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,4 +189,24 @@ stubs.set("DOMException", {
189189
}
190190
});
191191

192+
stubs.set("base-loader Error", {
193+
"type": "object",
194+
"actor": "server1.conn1.child1/obj1020",
195+
"class": "Error",
196+
"ownPropertyLength": 4,
197+
"preview": {
198+
"kind": "Error",
199+
"name": "Error",
200+
"message": "Error message",
201+
"stack":
202+
"onPacket@resource://devtools/shared/base-loader.js -> resource://devtools/shared/client/debugger-client.js:856:9\n" +
203+
"send/<@resource://devtools/shared/base-loader.js -> resource://devtools/shared/transport/transport.js:569:13\n" +
204+
"exports.makeInfallible/<@resource://devtools/shared/base-loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:109:14\n" +
205+
"exports.makeInfallible/<@resource://devtools/shared/base-loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:109:14\n",
206+
"fileName": "debugger-client.js",
207+
"lineNumber": 859,
208+
"columnNumber": 9
209+
}
210+
});
211+
192212
module.exports = stubs;

packages/devtools-reps/src/reps/tests/__snapshots__/error.js.snap

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,3 +257,76 @@ exports[`Error - URI error renders with expected text for URIError 1`] = `
257257
</span>
258258
</span>
259259
`;
260+
261+
exports[`Error - base-loader.js renders as expected in tiny mode 1`] = `
262+
<span
263+
className="objectBox-stackTrace"
264+
data-link-actor-id="server1.conn1.child1/obj1020"
265+
>
266+
Error
267+
</span>
268+
`;
269+
270+
exports[`Error - base-loader.js renders as expected without mode 1`] = `
271+
<span
272+
className="objectBox-stackTrace"
273+
data-link-actor-id="server1.conn1.child1/obj1020"
274+
>
275+
Error: "Error message"
276+
277+
278+
<span
279+
className="objectBox-stackTrace-grid"
280+
key="stack"
281+
>
282+
<span
283+
className="objectBox-stackTrace-fn"
284+
key="fn0"
285+
>
286+
onPacket
287+
</span>
288+
<span
289+
className="objectBox-stackTrace-location"
290+
key="location0"
291+
>
292+
(resource://devtools/shared/client/debugger-client.js:856:9)
293+
</span>
294+
<span
295+
className="objectBox-stackTrace-fn"
296+
key="fn1"
297+
>
298+
send/&lt;
299+
</span>
300+
<span
301+
className="objectBox-stackTrace-location"
302+
key="location1"
303+
>
304+
(resource://devtools/shared/transport/transport.js:569:13)
305+
</span>
306+
<span
307+
className="objectBox-stackTrace-fn"
308+
key="fn2"
309+
>
310+
exports.makeInfallible/&lt;
311+
</span>
312+
<span
313+
className="objectBox-stackTrace-location"
314+
key="location2"
315+
>
316+
(resource://devtools/shared/ThreadSafeDevToolsUtils.js:109:14)
317+
</span>
318+
<span
319+
className="objectBox-stackTrace-fn"
320+
key="fn3"
321+
>
322+
exports.makeInfallible/&lt;
323+
</span>
324+
<span
325+
className="objectBox-stackTrace-location"
326+
key="location3"
327+
>
328+
(resource://devtools/shared/ThreadSafeDevToolsUtils.js:109:14)
329+
</span>
330+
</span>
331+
</span>
332+
`;

packages/devtools-reps/src/reps/tests/error.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,3 +311,24 @@ describe("Error - DOMException", () => {
311311
expect(renderedComponent.text()).toEqual("DOMException");
312312
});
313313
});
314+
315+
describe("Error - base-loader.js", () => {
316+
const stub = stubs.get("base-loader Error");
317+
318+
it("renders as expected without mode", () => {
319+
const renderedComponent = shallow(ErrorRep.rep({
320+
object: stub
321+
}));
322+
323+
expect(renderedComponent).toMatchSnapshot();
324+
});
325+
326+
it("renders as expected in tiny mode", () => {
327+
const renderedComponent = shallow(ErrorRep.rep({
328+
object: stub,
329+
mode: MODE.TINY
330+
}));
331+
332+
expect(renderedComponent).toMatchSnapshot();
333+
});
334+
});

0 commit comments

Comments
 (0)