Skip to content

Commit 99c5917

Browse files
committed
[core] rename CookieStore to CookieJar to avoid conflicting with existing browser api
1 parent 8e8953c commit 99c5917

File tree

8 files changed

+78
-82
lines changed

8 files changed

+78
-82
lines changed

packages/scramjet/src/client/client.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { createWrapFn } from "@client/shared/wrap";
77
import { NavigateEvent } from "@client/events";
88
import { rewriteUrl, unrewriteUrl, type URLMeta } from "@rewriters/url";
99
import { config, flagEnabled } from "@/shared";
10-
import { CookieStore } from "@/shared/cookie";
10+
import { CookieJar } from "@/shared/cookie";
1111
import { iswindow } from "./entry";
1212
import { SingletonBox } from "./singletonbox";
1313

@@ -70,7 +70,7 @@ export class ScramjetClient {
7070
descriptors: DescriptorStore;
7171
wrapfn: (i: any, ...args: any) => any;
7272

73-
cookieStore = new CookieStore();
73+
cookieStore = new CookieJar();
7474

7575
eventcallbacks: Map<
7676
any,

packages/scramjet/src/shared/cookie.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export type Cookie = {
1313
sameSite?: "strict" | "lax" | "none";
1414
};
1515

16-
export class CookieStore {
16+
export class CookieJar {
1717
private cookies: Record<string, Cookie> = {};
1818

1919
setCookies(cookies: string[], url: URL) {

packages/scramjet/src/shared/htmlRules.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { CookieStore } from "@/shared/cookie";
1+
import { CookieJar } from "@/shared/cookie";
22
import { rewriteCss } from "@rewriters/css";
33
import { rewriteHtml, rewriteSrcset } from "@rewriters/html";
44
import { rewriteUrl, unrewriteBlob, URLMeta } from "@rewriters/url";
55

66
export const htmlRules: {
77
[key: string]: "*" | string[] | ((...any: any[]) => string | null);
8-
fn: (value: string, meta: URLMeta, cookieStore: CookieStore) => string | null;
8+
fn: (value: string, meta: URLMeta, cookieStore: CookieJar) => string | null;
99
}[] = [
1010
{
1111
fn: (value: string, meta: URLMeta) => {
@@ -71,7 +71,7 @@ export const htmlRules: {
7171
imagesrcset: ["link"],
7272
},
7373
{
74-
fn: (value: string, meta: URLMeta, cookieStore: CookieStore) =>
74+
fn: (value: string, meta: URLMeta, cookieStore: CookieJar) =>
7575
rewriteHtml(
7676
value,
7777
cookieStore,

packages/scramjet/src/shared/rewriters/html.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ import render from "dom-serializer";
44
import { URLMeta, rewriteUrl } from "@rewriters/url";
55
import { rewriteCss } from "@rewriters/css";
66
import { rewriteJs } from "@rewriters/js";
7-
import { CookieStore } from "@/shared/cookie";
7+
import { CookieJar } from "@/shared/cookie";
88
import { config } from "@/shared";
99
import { htmlRules } from "@/shared/htmlRules";
1010

1111
export function getInjectScripts<T>(
12-
cookieStore: CookieStore,
12+
cookieStore: CookieJar,
1313
script: (src: string) => T
1414
): T[] {
1515
const dump = JSON.stringify(cookieStore.dump());
@@ -34,7 +34,7 @@ export function getInjectScripts<T>(
3434
const encoder = new TextEncoder();
3535
function rewriteHtmlInner(
3636
html: string,
37-
cookieStore: CookieStore,
37+
cookieStore: CookieJar,
3838
meta: URLMeta,
3939
fromTop: boolean = false,
4040
preRewrite?: (handler: DomHandler) => void,
@@ -82,7 +82,7 @@ function rewriteHtmlInner(
8282

8383
export function rewriteHtml(
8484
html: string,
85-
cookieStore: CookieStore,
85+
cookieStore: CookieJar,
8686
meta: URLMeta,
8787
fromTop: boolean = false,
8888
preRewrite?: (handler: DomHandler) => void,
@@ -146,11 +146,7 @@ export function unrewriteHtml(html: string) {
146146

147147
// i need to add the attributes in during rewriting
148148

149-
function traverseParsedHtml(
150-
node: any,
151-
cookieStore: CookieStore,
152-
meta: URLMeta
153-
) {
149+
function traverseParsedHtml(node: any, cookieStore: CookieJar, meta: URLMeta) {
154150
if (node.name === "base" && node.attribs.href !== undefined) {
155151
meta.base = new URL(node.attribs.href, meta.origin);
156152
}

packages/scramjet/src/shared/rewriters/wasm.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { htmlRules } from "@/shared/htmlRules";
1010
import { rewriteCss } from "@rewriters/css";
1111
import { rewriteJs } from "@rewriters/js";
1212
import { getInjectScripts } from "@rewriters/html";
13-
import { CookieStore } from "@/shared/cookie";
13+
import { CookieJar } from "@/shared/cookie";
1414

1515
let wasm_u8: Uint8Array<ArrayBuffer>;
1616

@@ -64,7 +64,7 @@ export function getRewriter(meta: URLMeta): [Rewriter, () => void] {
6464
rewriteUrl,
6565
rewriteCss,
6666
rewriteJs,
67-
getHtmlInjectCode(cookieStore: CookieStore, foundHead: boolean) {
67+
getHtmlInjectCode(cookieStore: CookieJar, foundHead: boolean) {
6868
let inject = getInjectScripts(
6969
cookieStore,
7070
(src) => `<script src="${src}"></script>`
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export * from "./forceReferrer";
1+
// export * from "./forceReferrer";
22
export * from "./siteTests";

packages/scramjet/src/worker/fetch.ts

Lines changed: 62 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { BareClient, BareHeaders, BareResponseFetch } from "../bare-mux-custom";
33
import { MessageW2C, ScramjetServiceWorker } from "@/worker";
44
import { renderError } from "@/worker/error";
55
import { FakeServiceWorker } from "@/worker/fakesw";
6-
import { CookieStore } from "@/shared/cookie";
6+
import { CookieJar } from "@/shared/cookie";
77

88
import {
99
rewriteUrl,
@@ -32,7 +32,7 @@ export interface ScramjetFetchContext {
3232

3333
forceCrossOriginIsolated: boolean;
3434
initialHeaders: ScramjetHeaders;
35-
cookieStore: CookieStore;
35+
cookieStore: CookieJar;
3636

3737
rawClientUrl?: URL;
3838
}
@@ -584,57 +584,57 @@ export async function rewriteHeaders(
584584
// Emulate the referrer policy to set it back to what it should've been without Force Referrer in place
585585
if (typeof headers["referer"] === "string") {
586586
const referrerUrl = new URL(headers["referer"]);
587-
const storedPolicyData = await getReferrerPolicy(referrerUrl.href);
588-
if (storedPolicyData) {
589-
const storedReferrerPolicy = storedPolicyData.policy
590-
.toLowerCase()
591-
.split(",")
592-
.map((rawDir) => rawDir.trim());
593-
if (
594-
storedReferrerPolicy.includes("no-referrer") ||
595-
(storedReferrerPolicy.includes("no-referrer-when-downgrade") &&
596-
parsed.meta.origin.protocol === "http:" &&
597-
referrerUrl.protocol === "https:")
598-
) {
599-
delete headers["referer"];
600-
} else if (storedReferrerPolicy.includes("origin")) {
601-
headers["referer"] = referrerUrl.origin;
602-
} else if (storedReferrerPolicy.includes("origin-when-cross-origin")) {
603-
if (referrerUrl.origin !== parsed.meta.origin.origin) {
604-
headers["referer"] = referrerUrl.origin;
605-
} else {
606-
headers["referer"] = referrerUrl.href;
607-
}
608-
} else if (storedReferrerPolicy.includes("same-origin")) {
609-
if (referrerUrl.origin === parsed.meta.origin.origin) {
610-
headers["referer"] = referrerUrl.href;
611-
} else {
612-
delete headers["referer"];
613-
}
614-
} else if (storedReferrerPolicy.includes("strict-origin")) {
615-
if (
616-
parsed.meta.origin.protocol === "http:" &&
617-
referrerUrl.protocol === "https:"
618-
) {
619-
delete headers["referer"];
620-
} else {
621-
headers["referer"] = referrerUrl.origin;
622-
}
623-
}
624-
// `strict-origin-when-cross-origin` is the default behavior anyway
625-
else {
626-
if (referrerUrl.origin === parsed.meta.origin.origin) {
627-
headers["referer"] = referrerUrl.href;
628-
} else if (
629-
parsed.meta.origin.protocol === "http:" &&
630-
referrerUrl.protocol === "https:"
631-
) {
632-
delete headers["referer"];
633-
} else {
634-
headers["referer"] = referrerUrl.origin;
635-
}
636-
}
587+
// const storedPolicyData = await getReferrerPolicy(referrerUrl.href);
588+
// if (storedPolicyData) {
589+
// const storedReferrerPolicy = storedPolicyData.policy
590+
// .toLowerCase()
591+
// .split(",")
592+
// .map((rawDir) => rawDir.trim());
593+
// if (
594+
// storedReferrerPolicy.includes("no-referrer") ||
595+
// (storedReferrerPolicy.includes("no-referrer-when-downgrade") &&
596+
// parsed.meta.origin.protocol === "http:" &&
597+
// referrerUrl.protocol === "https:")
598+
// ) {
599+
// delete headers["referer"];
600+
// } else if (storedReferrerPolicy.includes("origin")) {
601+
// headers["referer"] = referrerUrl.origin;
602+
// } else if (storedReferrerPolicy.includes("origin-when-cross-origin")) {
603+
// if (referrerUrl.origin !== parsed.meta.origin.origin) {
604+
// headers["referer"] = referrerUrl.origin;
605+
// } else {
606+
// headers["referer"] = referrerUrl.href;
607+
// }
608+
// } else if (storedReferrerPolicy.includes("same-origin")) {
609+
// if (referrerUrl.origin === parsed.meta.origin.origin) {
610+
// headers["referer"] = referrerUrl.href;
611+
// } else {
612+
// delete headers["referer"];
613+
// }
614+
// } else if (storedReferrerPolicy.includes("strict-origin")) {
615+
// if (
616+
// parsed.meta.origin.protocol === "http:" &&
617+
// referrerUrl.protocol === "https:"
618+
// ) {
619+
// delete headers["referer"];
620+
// } else {
621+
// headers["referer"] = referrerUrl.origin;
622+
// }
623+
// }
624+
// // `strict-origin-when-cross-origin` is the default behavior anyway
625+
// else {
626+
if (referrerUrl.origin === parsed.meta.origin.origin) {
627+
headers["referer"] = referrerUrl.href;
628+
} else if (
629+
parsed.meta.origin.protocol === "http:" &&
630+
referrerUrl.protocol === "https:"
631+
) {
632+
delete headers["referer"];
633+
} else {
634+
headers["referer"] = referrerUrl.origin;
637635
}
636+
// }
637+
// }
638638
}
639639
if (
640640
typeof headers["sec-fetch-dest"] === "string" &&
@@ -661,18 +661,18 @@ export async function rewriteHeaders(
661661
}
662662
}
663663

664-
const isNavigationRequest =
665-
context.mode === "navigate" &&
666-
["document", "iframe"].includes(context.destination);
664+
// const isNavigationRequest =
665+
// context.mode === "navigate" &&
666+
// ["document", "iframe"].includes(context.destination);
667667

668668
// Store referrer policy from navigation responses for Force Referrer
669-
if (isNavigationRequest && headers["referrer-policy"] && context.referrer) {
670-
await storeReferrerPolicy(
671-
parsed.url.href,
672-
headers["referrer-policy"],
673-
context.referrer
674-
);
675-
}
669+
// if (isNavigationRequest && headers["referrer-policy"] && context.referrer) {
670+
// await storeReferrerPolicy(
671+
// parsed.url.href,
672+
// headers["referrer-policy"],
673+
// context.referrer
674+
// );
675+
// }
676676

677677
if (headers["accept"] === "text/event-stream") {
678678
headers["content-type"] = "text/event-stream";

packages/scramjet/src/worker/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { handleFetch, ScramjetFetchContext } from "@/worker/fetch";
77
import { BareClient } from "../bare-mux-custom";
88
import { ScramjetConfig, ScramjetDB } from "@/types";
99
import { asyncSetWasm } from "@rewriters/wasm";
10-
import { CookieStore } from "@/shared/cookie";
10+
import { CookieJar } from "@/shared/cookie";
1111
import { ScramjetHeaders, setConfig, unrewriteUrl } from "@/shared";
1212
import { openDB } from "idb";
1313
import { ScramjetDownload } from "@client/events";
@@ -42,7 +42,7 @@ export class ScramjetServiceWorker extends EventTarget {
4242
/**
4343
* Scramjet's cookie jar for cookie emulation through other storage means, connected to a client.
4444
*/
45-
cookieStore = new CookieStore();
45+
cookieStore = new CookieJar();
4646

4747
/**
4848
* Fake service worker registrations, so that some sites don't complain.

0 commit comments

Comments
 (0)