Skip to content

Commit 2e451d3

Browse files
Use CustomEvent instead of postMessage
to avoid conflicts with websites
1 parent 679ca1a commit 2e451d3

File tree

11 files changed

+38
-29
lines changed

11 files changed

+38
-29
lines changed

extensions/chrome/content_script.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

extensions/chrome/webgpu_inspector.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

extensions/chrome/webgpu_inspector_worker.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

extensions/firefox/content_script.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

extensions/firefox/webgpu_inspector.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

extensions/firefox/webgpu_inspector_worker.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/extension/content_script.js

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const port = new MessagePort("webgpu-inspector-page", 0, (message) => {
1212
}
1313

1414
if (action === PanelActions.RequestTexture || action === PanelActions.CompileShader || action === PanelActions.RevertShader) {
15-
window.postMessage(message, "*");
15+
window.dispatchEvent(new CustomEvent("__WebGPUInspector", { detail: message }))
1616
return;
1717
}
1818

@@ -36,8 +36,9 @@ const port = new MessagePort("webgpu-inspector-page", 0, (message) => {
3636
inspectMessage = messageString;
3737
} else {
3838
sessionStorage.setItem(webgpuInspectorCaptureFrameKey, messageString);
39-
window.postMessage({ __webgpuInspector: true, __webgpuInspectorPanel: true, action: PanelActions.Capture,
40-
data: messageString }, "*");
39+
const message = { __webgpuInspector: true, __webgpuInspectorPanel: true, action: PanelActions.Capture,
40+
data: messageString };
41+
window.dispatchEvent(new CustomEvent("__WebGPUInspector", { detail: message }))
4142
}
4243
}
4344

@@ -59,11 +60,8 @@ window.addEventListener('pageshow', (event) => {
5960
});
6061

6162
// Listen for messages from the page
62-
window.addEventListener('message', (event) => {
63-
if (event.source !== window) {
64-
return;
65-
}
66-
const message = event.data;
63+
window.addEventListener("__WebGPUInspector", (event) => {
64+
const message = event.detail;
6765
if (typeof message !== 'object' || message === null) {
6866
return;
6967
}
@@ -119,7 +117,6 @@ if (recordMessage) {
119117
removeUnusedResources: 1,
120118
messageRecording: 1
121119
});
122-
123120
}
124121

125122
port.postMessage({action: "PageLoaded"});

src/webgpu_inspector.js

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export let webgpuInspector = null;
1515
const _document = self.document;
1616
const _sessionStorage = self.sessionStorage;
1717
const _postMessage = self.postMessage;
18+
const _dispatchEvent = self.dispatchEvent;
1819

1920
const webgpuInspectorCaptureFrameKey = "WEBGPU_INSPECTOR_CAPTURE_FRAME";
2021

@@ -181,18 +182,16 @@ export let webgpuInspector = null;
181182
};
182183

183184
// Listen for messages from the content-script.
184-
_self.addEventListener("message", (event) => {
185-
if (_window && event.source !== _window) {
186-
return;
187-
}
188-
const message = event.data;
185+
186+
function eventCallback(event) {
187+
const message = event.detail || event.data;
189188
if (typeof message !== "object" || !message.__webgpuInspector) {
190189
return;
191190
}
192191

193192
if (message.action === Actions.DeltaTime) {
194193
if (message.__webgpuInspectorWorker) {
195-
this._updateFrameRate(message.deltaTime);
194+
self._updateFrameRate(message.deltaTime);
196195
}
197196
} else if (message.action === PanelActions.RequestTexture) {
198197
const textureId = message.id;
@@ -212,7 +211,13 @@ export let webgpuInspector = null;
212211
self._captureData = message.data;
213212
}
214213
}
215-
});
214+
}
215+
216+
if (!_window) {
217+
_self.addEventListener("message", eventCallback);
218+
} else {
219+
_self.addEventListener("__WebGPUInspector", eventCallback);
220+
}
216221
}
217222

218223
captureWorker(canvas) {
@@ -231,7 +236,11 @@ export let webgpuInspector = null;
231236
message.__webgpuInspector = true;
232237
message.__webgpuInspectorPage = true;
233238
message.__webgpuInspectorWorker = !_window;
234-
_postMessage(message);
239+
if (!_window) {
240+
_postMessage(message);
241+
} else {
242+
_dispatchEvent(new CustomEvent("__WebGPUInspector", { detail: message }));
243+
}
235244
}
236245

237246
_updateCanvasAttachment(attachment) {

src/webgpu_inspector_worker.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@ export function webgpuInspectorWorker(worker) {
1818

1919
worker.addEventListener("message", (event) => {
2020
if (event.data.__webgpuInspector) {
21-
window.postMessage(event.data, "*");
21+
window.dispatchEvent(new CustomEvent("__WebGPUInspector", { detail: event.data }));
2222
}
2323
});
2424

25-
window.addEventListener("message", (event) => {
25+
window.addEventListener("__WebGPUInspector", (event) => {
2626
// Forward messages from the page to the worker, if the worker hasn't been terminated,
2727
// the message is from the inspector, and the message is not from the worker.
28-
if (worker.__webgpuInspector && event.data.__webgpuInspector &&
29-
!event.data.__webgpuInspectorPage) {
30-
worker.postMessage(event.data);
28+
if (worker.__webgpuInspector && event.detail.__webgpuInspector &&
29+
!event.detail.__webgpuInspectorPage) {
30+
worker.postMessage(event.detail);
3131
}
3232
});
3333
}

test/webgpu_worker.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { webgpuInspector } from 'https://cdn.jsdelivr.net/gh/brendan-duncan/[email protected]/src/webgpu_inspector.js';
2+
//import { webgpuInspector } from '../src/webgpu_inspector.js';
23

34
self.addEventListener('message', (ev) => {
45
switch (ev.data.type) {

0 commit comments

Comments
 (0)