summaryrefslogtreecommitdiffstats
path: root/devtools/client/netmonitor/src
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/netmonitor/src')
-rw-r--r--devtools/client/netmonitor/src/actions/http-custom-request.js2
-rw-r--r--devtools/client/netmonitor/src/actions/request-blocking.js4
-rw-r--r--devtools/client/netmonitor/src/actions/search.js10
-rw-r--r--devtools/client/netmonitor/src/app.js2
-rw-r--r--devtools/client/netmonitor/src/assets/styles/NetworkDetailsBar.css2
-rw-r--r--devtools/client/netmonitor/src/components/CustomRequestPanel.js2
-rw-r--r--devtools/client/netmonitor/src/components/StatisticsPanel.js2
-rw-r--r--devtools/client/netmonitor/src/components/Toolbar.js2
-rw-r--r--devtools/client/netmonitor/src/components/new-request/HTTPCustomRequestPanel.js6
-rw-r--r--devtools/client/netmonitor/src/components/request-details/HeadersPanel.js2
-rw-r--r--devtools/client/netmonitor/src/components/request-details/ResponsePanel.js4
-rw-r--r--devtools/client/netmonitor/src/components/request-details/TimingsPanel.js2
-rw-r--r--devtools/client/netmonitor/src/connector/firefox-data-provider.js2
-rw-r--r--devtools/client/netmonitor/src/har/har-automation.js6
-rw-r--r--devtools/client/netmonitor/src/har/har-builder.js2
-rw-r--r--devtools/client/netmonitor/src/har/har-collector.js2
-rw-r--r--devtools/client/netmonitor/src/har/har-exporter.js2
-rw-r--r--devtools/client/netmonitor/src/har/har-menu-utils.js2
-rw-r--r--devtools/client/netmonitor/src/har/test/browser.toml5
-rw-r--r--devtools/client/netmonitor/src/har/test/browser_net_har_copy_all_as_har.js3
-rw-r--r--devtools/client/netmonitor/src/har/test/html_har_post-data-test-page.html2
-rw-r--r--devtools/client/netmonitor/src/middleware/batching.js2
-rw-r--r--devtools/client/netmonitor/src/middleware/prefs.js4
-rw-r--r--devtools/client/netmonitor/src/middleware/throttling.js2
-rw-r--r--devtools/client/netmonitor/src/reducers/messages.js2
-rw-r--r--devtools/client/netmonitor/src/reducers/request-blocking.js6
-rw-r--r--devtools/client/netmonitor/src/reducers/timing-markers.js2
-rw-r--r--devtools/client/netmonitor/src/utils/context-menu-utils.js2
-rw-r--r--devtools/client/netmonitor/src/widgets/WaterfallBackground.js6
29 files changed, 48 insertions, 44 deletions
diff --git a/devtools/client/netmonitor/src/actions/http-custom-request.js b/devtools/client/netmonitor/src/actions/http-custom-request.js
index e045107410..7b2da3b403 100644
--- a/devtools/client/netmonitor/src/actions/http-custom-request.js
+++ b/devtools/client/netmonitor/src/actions/http-custom-request.js
@@ -34,7 +34,7 @@ const {
* @returns {Function}
*/
function openHTTPCustomRequest(isOpen) {
- return ({ dispatch, getState }) => {
+ return ({ dispatch }) => {
dispatch({ type: OPEN_ACTION_BAR, open: isOpen });
dispatch({
diff --git a/devtools/client/netmonitor/src/actions/request-blocking.js b/devtools/client/netmonitor/src/actions/request-blocking.js
index 502999c79f..ab2a1430a9 100644
--- a/devtools/client/netmonitor/src/actions/request-blocking.js
+++ b/devtools/client/netmonitor/src/actions/request-blocking.js
@@ -114,7 +114,7 @@ function closeRequestBlocking() {
}
function openRequestBlockingAndAddUrl(url) {
- return async ({ dispatch, getState }) => {
+ return async ({ dispatch }) => {
const showBlockingPanel = Services.prefs.getBoolPref(
"devtools.netmonitor.features.requestBlocking"
);
@@ -127,7 +127,7 @@ function openRequestBlockingAndAddUrl(url) {
}
function openRequestBlockingAndDisableUrls(url) {
- return async ({ dispatch, getState }) => {
+ return async ({ dispatch }) => {
const showBlockingPanel = Services.prefs.getBoolPref(
"devtools.netmonitor.features.requestBlocking"
);
diff --git a/devtools/client/netmonitor/src/actions/search.js b/devtools/client/netmonitor/src/actions/search.js
index 97b123d361..647164cc11 100644
--- a/devtools/client/netmonitor/src/actions/search.js
+++ b/devtools/client/netmonitor/src/actions/search.js
@@ -176,7 +176,7 @@ function clearSearchResults() {
* @returns {Function}
*/
function clearSearchResultAndCancel() {
- return ({ dispatch, getState }) => {
+ return ({ dispatch }) => {
dispatch(stopOngoingSearch());
dispatch(clearSearchResults());
};
@@ -196,7 +196,7 @@ function updateSearchStatus(status) {
* Close the entire search panel.
*/
function closeSearch() {
- return ({ dispatch, getState }) => {
+ return ({ dispatch }) => {
dispatch(stopOngoingSearch());
dispatch({ type: OPEN_ACTION_BAR, open: false });
};
@@ -207,7 +207,7 @@ function closeSearch() {
* @returns {Function}
*/
function openSearch() {
- return ({ dispatch, getState }) => {
+ return ({ dispatch }) => {
dispatch({ type: OPEN_ACTION_BAR, open: true });
dispatch({
@@ -222,7 +222,7 @@ function openSearch() {
* @returns {Function}
*/
function toggleCaseSensitiveSearch() {
- return ({ dispatch, getState }) => {
+ return ({ dispatch }) => {
dispatch({ type: TOGGLE_SEARCH_CASE_SENSITIVE_SEARCH });
};
}
@@ -280,7 +280,7 @@ function stopOngoingSearch() {
* clicked search result.
*/
function navigate(searchResult) {
- return ({ dispatch, getState }) => {
+ return ({ dispatch }) => {
// Store target search result in Search reducer. It's used
// for search result navigation within the side panels.
dispatch(setTargetSearchResult(searchResult));
diff --git a/devtools/client/netmonitor/src/app.js b/devtools/client/netmonitor/src/app.js
index d7cf642d48..a41ae2156c 100644
--- a/devtools/client/netmonitor/src/app.js
+++ b/devtools/client/netmonitor/src/app.js
@@ -41,7 +41,7 @@ function NetMonitorApp(api) {
}
NetMonitorApp.prototype = {
- async bootstrap({ toolbox, document, win }) {
+ async bootstrap({ toolbox, document }) {
// Get the root element for mounting.
this.mount = document.querySelector("#mount");
diff --git a/devtools/client/netmonitor/src/assets/styles/NetworkDetailsBar.css b/devtools/client/netmonitor/src/assets/styles/NetworkDetailsBar.css
index 4ab1c2f2bc..6f91a78bc7 100644
--- a/devtools/client/netmonitor/src/assets/styles/NetworkDetailsBar.css
+++ b/devtools/client/netmonitor/src/assets/styles/NetworkDetailsBar.css
@@ -508,7 +508,7 @@
height: 12px;
vertical-align: -1px;
margin-inline-start: 5px;
- background-image: url(chrome://devtools/skin/images/alert-small.svg);
+ background-image: url(resource://devtools-shared-images/alert-small.svg);
background-size: cover;
-moz-context-properties: fill;
fill: var(--yellow-60);
diff --git a/devtools/client/netmonitor/src/components/CustomRequestPanel.js b/devtools/client/netmonitor/src/components/CustomRequestPanel.js
index 66f63b7d8d..14ca7ca214 100644
--- a/devtools/client/netmonitor/src/components/CustomRequestPanel.js
+++ b/devtools/client/netmonitor/src/components/CustomRequestPanel.js
@@ -361,7 +361,7 @@ class CustomRequestPanel extends Component {
module.exports = connect(
state => ({ request: getSelectedRequest(state) }),
- (dispatch, props) => ({
+ dispatch => ({
removeSelectedCustomRequest: () =>
dispatch(Actions.removeSelectedCustomRequest()),
sendCustomRequest: () => dispatch(Actions.sendCustomRequest()),
diff --git a/devtools/client/netmonitor/src/components/StatisticsPanel.js b/devtools/client/netmonitor/src/components/StatisticsPanel.js
index e3d6787819..d7b2fb9ddf 100644
--- a/devtools/client/netmonitor/src/components/StatisticsPanel.js
+++ b/devtools/client/netmonitor/src/components/StatisticsPanel.js
@@ -108,7 +108,7 @@ class StatisticsPanel extends Component {
});
}
- componentDidUpdate(prevProps) {
+ componentDidUpdate() {
MediaQueryList.addListener(this.onLayoutChange);
const { hasLoad, requests } = this.props;
diff --git a/devtools/client/netmonitor/src/components/Toolbar.js b/devtools/client/netmonitor/src/components/Toolbar.js
index 0da3d826c2..d48d96b846 100644
--- a/devtools/client/netmonitor/src/components/Toolbar.js
+++ b/devtools/client/netmonitor/src/components/Toolbar.js
@@ -336,7 +336,7 @@ class Toolbar extends Component {
/**
* Render a blocking button.
*/
- renderBlockingButton(toggleSearchPanel) {
+ renderBlockingButton() {
const {
networkActionBarOpen,
toggleRequestBlockingPanel,
diff --git a/devtools/client/netmonitor/src/components/new-request/HTTPCustomRequestPanel.js b/devtools/client/netmonitor/src/components/new-request/HTTPCustomRequestPanel.js
index 826f0317ba..1894f1be04 100644
--- a/devtools/client/netmonitor/src/components/new-request/HTTPCustomRequestPanel.js
+++ b/devtools/client/netmonitor/src/components/new-request/HTTPCustomRequestPanel.js
@@ -476,12 +476,12 @@ class HTTPCustomRequestPanel extends Component {
url: this.state.url,
cause: this.props.request?.cause,
urlQueryParams: this.state.urlQueryParams.map(
- ({ checked, ...params }) => params
+ ({ ...params }) => params
),
requestHeaders: {
headers: this.state.headers
.filter(({ checked }) => checked)
- .map(({ checked, ...headersValues }) => headersValues),
+ .map(({ ...headersValues }) => headersValues),
},
};
@@ -504,7 +504,7 @@ class HTTPCustomRequestPanel extends Component {
module.exports = connect(
state => ({ request: getClickedRequest(state) }),
- (dispatch, props) => ({
+ dispatch => ({
sendCustomRequest: request =>
dispatch(Actions.sendHTTPCustomRequest(request)),
})
diff --git a/devtools/client/netmonitor/src/components/request-details/HeadersPanel.js b/devtools/client/netmonitor/src/components/request-details/HeadersPanel.js
index 09226b72c5..5b8822d53b 100644
--- a/devtools/client/netmonitor/src/components/request-details/HeadersPanel.js
+++ b/devtools/client/netmonitor/src/components/request-details/HeadersPanel.js
@@ -907,7 +907,7 @@ module.exports = connect(
state => ({
shouldExpandPreview: state.ui.shouldExpandHeadersUrlPreview,
}),
- (dispatch, props) => ({
+ dispatch => ({
setHeadersUrlPreviewExpanded: expanded =>
dispatch(Actions.setHeadersUrlPreviewExpanded(expanded)),
openRequestBlockingAndAddUrl: url =>
diff --git a/devtools/client/netmonitor/src/components/request-details/ResponsePanel.js b/devtools/client/netmonitor/src/components/request-details/ResponsePanel.js
index ac4435ea1d..d222f7bc5e 100644
--- a/devtools/client/netmonitor/src/components/request-details/ResponsePanel.js
+++ b/devtools/client/netmonitor/src/components/request-details/ResponsePanel.js
@@ -228,7 +228,7 @@ class ResponsePanel extends Component {
image: "",
priority: PriorityLevels.PRIORITY_INFO_HIGH,
type: "info",
- eventCallback: e => {},
+ eventCallback: () => {},
buttons: [
{
mdnUrl: getCORSErrorURL(blockedReason),
@@ -394,7 +394,7 @@ class ResponsePanel extends Component {
image: "",
priority: PriorityLevels.PRIORITY_INFO_MEDIUM,
type: "info",
- eventCallback: e => {},
+ eventCallback: () => {},
buttons: [],
});
diff --git a/devtools/client/netmonitor/src/components/request-details/TimingsPanel.js b/devtools/client/netmonitor/src/components/request-details/TimingsPanel.js
index 6cba22fa71..8452e0ecb9 100644
--- a/devtools/client/netmonitor/src/components/request-details/TimingsPanel.js
+++ b/devtools/client/netmonitor/src/components/request-details/TimingsPanel.js
@@ -78,7 +78,7 @@ class TimingsPanel extends Component {
{ className: "label-separator" },
L10N.getStr("netmonitor.timings.serviceWorkerTiming")
),
- Object.entries(serviceWorkerTimings).map(([key, value], index) => {
+ Object.entries(serviceWorkerTimings).map(([key, value]) => {
if (preValue > 0) {
offset += preValue / totalTime;
}
diff --git a/devtools/client/netmonitor/src/connector/firefox-data-provider.js b/devtools/client/netmonitor/src/connector/firefox-data-provider.js
index 9cdf6fc1d7..ea3cf9cd83 100644
--- a/devtools/client/netmonitor/src/connector/firefox-data-provider.js
+++ b/devtools/client/netmonitor/src/connector/firefox-data-provider.js
@@ -460,7 +460,7 @@ class FirefoxDataProvider {
* @param {string} protocols webSocket protocols
* @param {string} extensions
*/
- async onWebSocketOpened(httpChannelId, effectiveURI, protocols, extensions) {}
+ async onWebSocketOpened() {}
/**
* The "webSocketClosed" message type handler.
diff --git a/devtools/client/netmonitor/src/har/har-automation.js b/devtools/client/netmonitor/src/har/har-automation.js
index b3c4153d1e..f798b2965f 100644
--- a/devtools/client/netmonitor/src/har/har-automation.js
+++ b/devtools/client/netmonitor/src/har/har-automation.js
@@ -21,7 +21,7 @@ const prefDomain = "devtools.netmonitor.har.";
// Helper tracer. Should be generic sharable by other modules (bug 1171927)
const trace = {
- log(...args) {},
+ log() {},
};
/**
@@ -88,7 +88,7 @@ HarAutomation.prototype = {
);
},
- pageLoadBegin(response) {
+ pageLoadBegin() {
this.resetCollector();
},
@@ -120,7 +120,7 @@ HarAutomation.prototype = {
trace.log("HarAutomation.pageLoadDone; ", response);
if (this.collector) {
- this.collector.waitForHarLoad().then(collector => {
+ this.collector.waitForHarLoad().then(() => {
return this.autoExport();
});
}
diff --git a/devtools/client/netmonitor/src/har/har-builder.js b/devtools/client/netmonitor/src/har/har-builder.js
index 8f1a9095c7..ee281e20f6 100644
--- a/devtools/client/netmonitor/src/har/har-builder.js
+++ b/devtools/client/netmonitor/src/har/har-builder.js
@@ -208,7 +208,7 @@ HarBuilder.prototype = {
return entry;
},
- buildPageTimings(page, networkEvent) {
+ buildPageTimings() {
// Event timing info isn't available
const timings = {
onContentLoad: -1,
diff --git a/devtools/client/netmonitor/src/har/har-collector.js b/devtools/client/netmonitor/src/har/har-collector.js
index c5a4ae959d..c02669be6e 100644
--- a/devtools/client/netmonitor/src/har/har-collector.js
+++ b/devtools/client/netmonitor/src/har/har-collector.js
@@ -10,7 +10,7 @@ const {
// Helper tracer. Should be generic sharable by other modules (bug 1171927)
const trace = {
- log(...args) {},
+ log() {},
};
/**
diff --git a/devtools/client/netmonitor/src/har/har-exporter.js b/devtools/client/netmonitor/src/har/har-exporter.js
index fb401c2737..9204e98994 100644
--- a/devtools/client/netmonitor/src/har/har-exporter.js
+++ b/devtools/client/netmonitor/src/har/har-exporter.js
@@ -18,7 +18,7 @@ var uid = 1;
// Helper tracer. Should be generic sharable by other modules (bug 1171927)
const trace = {
- log(...args) {},
+ log() {},
};
/**
diff --git a/devtools/client/netmonitor/src/har/har-menu-utils.js b/devtools/client/netmonitor/src/har/har-menu-utils.js
index 756d9d9f96..7fb9f7aee7 100644
--- a/devtools/client/netmonitor/src/har/har-menu-utils.js
+++ b/devtools/client/netmonitor/src/har/har-menu-utils.js
@@ -57,7 +57,7 @@ var HarMenuUtils = {
openHarFile(actions, openSplitConsole) {
const fp = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker);
fp.init(
- window,
+ window.browsingContext,
L10N.getStr("netmonitor.har.importHarDialogTitle"),
Ci.nsIFilePicker.modeOpen
);
diff --git a/devtools/client/netmonitor/src/har/test/browser.toml b/devtools/client/netmonitor/src/har/test/browser.toml
index 7a11328f5a..6964b542dd 100644
--- a/devtools/client/netmonitor/src/har/test/browser.toml
+++ b/devtools/client/netmonitor/src/har/test/browser.toml
@@ -21,8 +21,9 @@ support-files = [
["browser_net_har_copy_all_as_har.js"]
skip-if = [
- "!debug && os == 'mac'", #Bug 1622925
- "!debug && os == 'linux'", #Bug 1622925
+ "apple_catalina && !debug", #Bug 1622925
+ "apple_silicon && !debug", #Bug 1622925
+ "os == 'linux' && os_version == '18.04' && !debug", #Bug 1622925
"win11_2009", # Bug 1797751
]
diff --git a/devtools/client/netmonitor/src/har/test/browser_net_har_copy_all_as_har.js b/devtools/client/netmonitor/src/har/test/browser_net_har_copy_all_as_har.js
index bcbb4bef2a..2faaf01b73 100644
--- a/devtools/client/netmonitor/src/har/test/browser_net_har_copy_all_as_har.js
+++ b/devtools/client/netmonitor/src/har/test/browser_net_har_copy_all_as_har.js
@@ -111,7 +111,7 @@ async function testManyReloads({ tab, monitor, toolbox }) {
assertNavigationRequestEntry(entry);
}
-async function testClearedRequests({ tab, monitor, toolbox }) {
+async function testClearedRequests({ tab, monitor }) {
info("Navigate to an empty page");
const topDocumentURL =
"https://example.org/document-builder.sjs?html=empty-document";
@@ -196,7 +196,6 @@ function assertNavigationRequestEntry(entry) {
* Reload the page and copy all as HAR.
*/
async function reloadAndCopyAllAsHar({
- tab,
monitor,
toolbox,
reloadTwice = false,
diff --git a/devtools/client/netmonitor/src/har/test/html_har_post-data-test-page.html b/devtools/client/netmonitor/src/har/test/html_har_post-data-test-page.html
index 5e42c6139d..9be2e3c16a 100644
--- a/devtools/client/netmonitor/src/har/test/html_har_post-data-test-page.html
+++ b/devtools/client/netmonitor/src/har/test/html_har_post-data-test-page.html
@@ -44,7 +44,7 @@
post(url, data);
}
- function executeTest3(size) {
+ function executeTest3() {
const url = "html_har_post-data-test-page.html";
get(url);
}
diff --git a/devtools/client/netmonitor/src/middleware/batching.js b/devtools/client/netmonitor/src/middleware/batching.js
index 9d8c57084c..c546cc2e22 100644
--- a/devtools/client/netmonitor/src/middleware/batching.js
+++ b/devtools/client/netmonitor/src/middleware/batching.js
@@ -20,7 +20,7 @@ const REQUESTS_REFRESH_RATE = 50; // ms
* - BATCH_ENABLE can be used to enable and disable the batching.
* - BATCH_RESET discards the actions that are currently in the queue.
*/
-function batchingMiddleware(store) {
+function batchingMiddleware() {
return next => {
let queuedActions = [];
let enabled = true;
diff --git a/devtools/client/netmonitor/src/middleware/prefs.js b/devtools/client/netmonitor/src/middleware/prefs.js
index 6034a95dbf..2ccbb4db3c 100644
--- a/devtools/client/netmonitor/src/middleware/prefs.js
+++ b/devtools/client/netmonitor/src/middleware/prefs.js
@@ -30,8 +30,8 @@ function prefsMiddleware(store) {
const filters = Object.entries(
store.getState().filters.requestFilterTypes
)
- .filter(([type, check]) => check)
- .map(([type, check]) => type);
+ .filter(([, check]) => check)
+ .map(([type]) => type);
Services.prefs.setCharPref(
"devtools.netmonitor.filters",
JSON.stringify(filters)
diff --git a/devtools/client/netmonitor/src/middleware/throttling.js b/devtools/client/netmonitor/src/middleware/throttling.js
index 30f5a9b5f4..ac72b556bb 100644
--- a/devtools/client/netmonitor/src/middleware/throttling.js
+++ b/devtools/client/netmonitor/src/middleware/throttling.js
@@ -14,7 +14,7 @@ const {
* according to user actions.
*/
function throttlingMiddleware(connector) {
- return store => next => action => {
+ return () => next => action => {
const res = next(action);
if (action.type === CHANGE_NETWORK_THROTTLING) {
connector.updateNetworkThrottling(action.enabled, action.profile);
diff --git a/devtools/client/netmonitor/src/reducers/messages.js b/devtools/client/netmonitor/src/reducers/messages.js
index 27d7da28c7..cb21a08b91 100644
--- a/devtools/client/netmonitor/src/reducers/messages.js
+++ b/devtools/client/netmonitor/src/reducers/messages.js
@@ -208,7 +208,7 @@ function toggleMessageFilterType(state, action) {
/**
* Toggle control frames for the WebSocket connection.
*/
-function toggleControlFrames(state, action) {
+function toggleControlFrames(state) {
return {
...state,
showControlFrames: !state.showControlFrames,
diff --git a/devtools/client/netmonitor/src/reducers/request-blocking.js b/devtools/client/netmonitor/src/reducers/request-blocking.js
index ffd0d8c97a..18dbe574f8 100644
--- a/devtools/client/netmonitor/src/reducers/request-blocking.js
+++ b/devtools/client/netmonitor/src/reducers/request-blocking.js
@@ -99,14 +99,14 @@ function removeBlockedUrl(state, action) {
};
}
-function removeAllBlockedUrls(state, action) {
+function removeAllBlockedUrls(state) {
return {
...state,
blockedUrls: [],
};
}
-function enableAllBlockedUrls(state, action) {
+function enableAllBlockedUrls(state) {
const blockedUrls = state.blockedUrls.map(item => ({
...item,
enabled: true,
@@ -117,7 +117,7 @@ function enableAllBlockedUrls(state, action) {
};
}
-function disableAllBlockedUrls(state, action) {
+function disableAllBlockedUrls(state) {
const blockedUrls = state.blockedUrls.map(item => ({
...item,
enabled: false,
diff --git a/devtools/client/netmonitor/src/reducers/timing-markers.js b/devtools/client/netmonitor/src/reducers/timing-markers.js
index 4a41f9b495..1b63674833 100644
--- a/devtools/client/netmonitor/src/reducers/timing-markers.js
+++ b/devtools/client/netmonitor/src/reducers/timing-markers.js
@@ -51,7 +51,7 @@ function addTimingMarker(state, action) {
return state;
}
-function clearTimingMarkers(state) {
+function clearTimingMarkers() {
return new TimingMarkers();
}
diff --git a/devtools/client/netmonitor/src/utils/context-menu-utils.js b/devtools/client/netmonitor/src/utils/context-menu-utils.js
index 3b44ff20cc..2643913d11 100644
--- a/devtools/client/netmonitor/src/utils/context-menu-utils.js
+++ b/devtools/client/netmonitor/src/utils/context-menu-utils.js
@@ -8,7 +8,7 @@
* The default format for the content copied to the
* clipboard when the `Copy Value` option is selected.
*/
-function baseCopyFormatter({ name, value, object, hasChildren }) {
+function baseCopyFormatter({ name, value, hasChildren }) {
if (hasChildren) {
return baseCopyAllFormatter({ [name]: value });
}
diff --git a/devtools/client/netmonitor/src/widgets/WaterfallBackground.js b/devtools/client/netmonitor/src/widgets/WaterfallBackground.js
index e2be7f5715..807b5a25b6 100644
--- a/devtools/client/netmonitor/src/widgets/WaterfallBackground.js
+++ b/devtools/client/netmonitor/src/widgets/WaterfallBackground.js
@@ -133,7 +133,11 @@ class WaterfallBackground {
// Flush the image data and cache the waterfall background.
pixelArray.set(view8bit);
- this.ctx.putImageData(imageData, 0, 0);
+ try {
+ this.ctx.putImageData(imageData, 0, 0);
+ } catch (e) {
+ console.error("WaterfallBackground crash error", e);
+ }
this.setImageElement("waterfall-background", this.canvas);
}