diff --git a/src/client/shared/requests/xmlhttprequest.ts b/src/client/shared/requests/xmlhttprequest.ts index 39f8d1b..ca6fc01 100644 --- a/src/client/shared/requests/xmlhttprequest.ts +++ b/src/client/shared/requests/xmlhttprequest.ts @@ -1,18 +1,11 @@ import { flagEnabled } from "../../../scramjet"; import { config, unrewriteUrl, rewriteUrl } from "../../../shared"; import { ScramjetClient } from "../../client"; -let nativeworker; -let postmessage; - -if (self.Worker) { - nativeworker = Worker; - postmessage = Worker.prototype.postMessage; -} export default function (client: ScramjetClient, self: Self) { let worker; if (self.Worker && flagEnabled("syncxhr", client.url)) { - worker = new nativeworker(config.files.sync); + worker = new client.natives["Worker"](config.files.sync); } const ARGS = Symbol("xhr original args"); const HEADERS = Symbol("xhr headers"); @@ -50,7 +43,7 @@ export default function (client: ScramjetClient, self: Self) { const sab = new SharedArrayBuffer(1024, { maxByteLength: 2147483647 }); const view = new DataView(sab); - postmessage.call(worker, { + client.natives["Worker.prototype.postMessage"].call(worker, { sab, args, headers: ctx.this[HEADERS], diff --git a/src/client/shared/worker.ts b/src/client/shared/worker.ts index d00bd58..dde7749 100644 --- a/src/client/shared/worker.ts +++ b/src/client/shared/worker.ts @@ -4,11 +4,6 @@ import { rewriteUrl } from "../../shared"; import type { MessageC2W } from "../../worker"; import { ScramjetClient } from "../client"; -const sharedworkerpostmessage = MessagePort.prototype.postMessage; -let workerpostmessage; -if (self.Worker) { - workerpostmessage = Worker.prototype.postMessage; -} export default function (client: ScramjetClient, self: typeof globalThis) { if (self.Worker) { client.Proxy("Worker", { @@ -26,7 +21,7 @@ export default function (client: ScramjetClient, self: typeof globalThis) { (async () => { const port = await conn.getInnerPort(); - workerpostmessage.call( + client.natives["Worker.prototype.postMessage"].call( worker, { $scramjet$type: "baremuxinit", @@ -71,7 +66,7 @@ export default function (client: ScramjetClient, self: typeof globalThis) { (async () => { const port = await conn.getInnerPort(); - sharedworkerpostmessage.call( + client.natives["MessagePort.prototype.postMessage"].call( worker.port, { $scramjet$type: "baremuxinit",