Skip to content

Commit 3fa1f55

Browse files
authored
Issue 52908: Ignore webpack:// source paths in mothership.js (#6605)
1 parent d005ee6 commit 3fa1f55

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

core/webapp/mothership.js

+17-8
Original file line numberDiff line numberDiff line change
@@ -143,20 +143,29 @@ LABKEY.Mothership = (function () {
143143
// matches: ?_dc=12345 or ?12345
144144
var _defeatCacheRegex = /\?(_dc=)?\d+/;
145145

146+
// Issue 52908: Ignore webpack:// source paths
147+
// Workaround suggested here https://github.com/stacktracejs/stacktrace-gps/issues/65
148+
function filterRequest(location, opts) {
149+
if (location.includes('webpack://')) return '';
150+
return fetch(location, opts).then((res) => res.status === 200 ? res.text() : '');
151+
}
152+
153+
// Remove stacktrace.js and mothership.js from the stack
154+
const fileNameFilters = ['/stacktrace.min.js', '/mothership.js'];
155+
146156
function filterTrace(stackframe) {
147157
"use strict";
148158

149-
var fileName = stackframe.getFileName();
159+
const fileName = stackframe.getFileName();
150160

151161
// remove stack elements for errors generated from within the Chrome console
152-
if (!fileName)
162+
if (!fileName) {
153163
return false;
164+
}
154165

155-
// remove stacktrace.js and mothership.js from the stack
156-
if (_filterStacktrace &&
157-
fileName.indexOf("/stacktrace.min.js") > -1 ||
158-
fileName.indexOf("/mothership.js") != -1)
166+
if (_filterStacktrace && fileNameFilters.some(s => fileName.includes(s))) {
159167
return false;
168+
}
160169

161170
// remove defeat cache and server-session number from URLs
162171
// so stack doesn't change between server requests.
@@ -383,10 +392,10 @@ LABKEY.Mothership = (function () {
383392

384393
if (window.Promise) {
385394
if (error instanceof Error) {
386-
promise = StackTrace.fromError(error, {filter: filterTrace});
395+
promise = StackTrace.fromError(error, { ajax: filterRequest, filter: filterTrace });
387396
}
388397
else if (_generateStacktrace) {
389-
promise = StackTrace.get({filter: filterTrace});
398+
promise = StackTrace.get({ ajax: filterRequest, filter: filterTrace });
390399
}
391400
}
392401

0 commit comments

Comments
 (0)