@@ -12,40 +12,3 @@ export const isworker = "WorkerGlobalScope" in globalThis;
1212export const issw = "ServiceWorkerGlobalScope" in globalThis ;
1313export const isdedicated = "DedicatedWorkerGlobalScope" in globalThis ;
1414export const isshared = "SharedWorkerGlobalScope" in globalThis ;
15-
16- function createFrameId ( ) {
17- return `${ Array ( 8 )
18- . fill ( 0 )
19- . map ( ( ) => Math . floor ( Math . random ( ) * 36 ) . toString ( 36 ) )
20- . join ( "" ) } `;
21- }
22-
23- export type ScramjetClientInit = {
24- context : ScramjetContext ;
25- transport : BareTransport ;
26- sendSetCookie : ( url : URL , cookie : string ) => Promise < void > ;
27- shouldPassthroughWebsocket ?: ( url : string | URL ) => boolean ;
28- shouldBlockMessageEvent ?: ( ev : MessageEvent ) => boolean ;
29- } ;
30-
31- export function loadAndHook ( init : ScramjetClientInit ) {
32- dbg . log ( "initializing scramjet client" ) ;
33- // if it already exists, that means the handlers have probably already been setup by the parent document
34- if ( ! ( SCRAMJETCLIENT in < Partial < typeof self > > globalThis ) ) {
35- const client = new ScramjetClient ( globalThis , init ) ;
36-
37- const frame : HTMLIFrameElement =
38- globalThis . frameElement as HTMLIFrameElement ;
39- if ( frame && ! frame . name ) {
40- // all frames need to be named for our logic to work
41- frame . name = createFrameId ( ) ;
42- }
43-
44- client . hook ( ) ;
45-
46- const contextev = new ScramjetContextEvent ( client . global . window , client ) ;
47- client . frame ?. dispatchEvent ( contextev ) ;
48- const urlchangeev = new UrlChangeEvent ( client . url . href ) ;
49- if ( ! client . isSubframe ) client . frame ?. dispatchEvent ( urlchangeev ) ;
50- }
51- }
0 commit comments