From d7c604460233df5184bb0bef92dd4f59a99626ed Mon Sep 17 00:00:00 2001 From: velzie Date: Tue, 30 Jul 2024 07:19:04 -0400 Subject: [PATCH] annoying ass logging --- src/client/dom/cookie.ts | 4 +- src/client/dom/serviceworker.ts | 95 ++++++++++++++++++--------------- 2 files changed, 53 insertions(+), 46 deletions(-) diff --git a/src/client/dom/cookie.ts b/src/client/dom/cookie.ts index e6c66e6..eb6ae49 100644 --- a/src/client/dom/cookie.ts +++ b/src/client/dom/cookie.ts @@ -25,13 +25,13 @@ export default function (client: ScramjetClient, self: typeof window) { return "sp_t=00246e00653d39d1341bbe9d10f138c4; OptanonConsent=isGpcEnabled=0&datestamp=Sat+Jul+20+2024+16%3A11%3A26+GMT-0400+(Eastern+Daylight+Time)&version=202405.2.0&browserGpcFlag=0&isIABGlobal=false&hosts=&landingPath=https%3A%2F%2Fopen.spotify.com%2F&groups=BG169%3A1%2Ct00%3A1%2Ci00%3A1%2CBG170%3A1%2Cs00%3A1%2Cf00%3A1%2Cm00%3A1%2Cf11%3A1"; }, set(ctx, value: string) { - dbg.debug("setting cookie", value); + // dbg.debug("setting cookie", value); const cookie = parse(value)[0]; let date = new Date(); let expires = cookie.expires; - dbg.error("expires", expires); + // dbg.error("expires", expires); // if (expires instanceof Date) { // if (isNaN(expires.getTime())) return; // if (expires.getTime() < date.getTime()) return; diff --git a/src/client/dom/serviceworker.ts b/src/client/dom/serviceworker.ts index 3cca508..7cd3473 100644 --- a/src/client/dom/serviceworker.ts +++ b/src/client/dom/serviceworker.ts @@ -8,49 +8,56 @@ export default function (client: ScramjetClient, self: Self) { }, }); - // client.Proxy("navigator.serviceWorker.register", { - // apply(ctx) { - // if (ctx.args[0] instanceof URL) ctx.args[0] = ctx.args[0].href; - // let url = encodeUrl(ctx.args[0]) + "?dest=serviceworker"; - // if (ctx.args[1] && ctx.args[1].type === "module") { - // url += "&type=module"; - // } - // let worker = new SharedWorker(url); - // - // let handle = worker.port; - // - // navigator.serviceWorker.controller.postMessage({ - // scramjet$type: "registerServiceWorker", - // port: handle, - // }); - // - // const fakeRegistration = new Proxy( - // { - // __proto__: ServiceWorkerRegistration.prototype, - // }, - // { - // get(target, prop) { - // if (prop === "installing") { - // return null; - // } - // if (prop === "waiting") { - // return null; - // } - // if (prop === "active") { - // return handle; - // } - // if (prop === "scope") { - // return ctx.args[0]; - // } - // - // return Reflect.get(target, prop); - // }, - // } - // ); - // - // ctx.return(new Promise((resolve) => resolve(fakeRegistration))); - // }, - // }); + client.Proxy("navigator.serviceWorker.register", { + apply(ctx) { + if (ctx.args[0] instanceof URL) ctx.args[0] = ctx.args[0].href; + let url = encodeUrl(ctx.args[0]) + "?dest=serviceworker"; + if (ctx.args[1] && ctx.args[1].type === "module") { + url += "&type=module"; + } + let worker = new SharedWorker(url); - delete self.navigator.serviceWorker; + let handle = worker.port; + + navigator.serviceWorker.controller.postMessage( + { + scramjet$type: "registerServiceWorker", + port: handle, + }, + [handle] + ); + + const fakeRegistration = new Proxy( + { + __proto__: ServiceWorkerRegistration.prototype, + }, + { + get(target, prop) { + if (prop === "installing") { + return null; + } + if (prop === "waiting") { + return null; + } + if (prop === "active") { + return handle; + } + if (prop === "scope") { + return ctx.args[0]; + } + + if (prop === "addEventListener") { + return () => {}; + } + + return Reflect.get(target, prop); + }, + } + ); + + ctx.return(new Promise((resolve) => resolve(fakeRegistration))); + }, + }); + + // delete self.navigator.serviceWorker; }