File tree Expand file tree Collapse file tree 1 file changed +32
-12
lines changed Expand file tree Collapse file tree 1 file changed +32
-12
lines changed Original file line number Diff line number Diff line change @@ -55,25 +55,45 @@ export async function handleFetch(
5555 }
5656
5757 let workerType = "" ;
58- if ( requestUrl . searchParams . has ( "type" ) ) {
59- workerType = requestUrl . searchParams . get ( "type" ) as string ;
60- requestUrl . searchParams . delete ( "type" ) ;
61- }
62- if ( requestUrl . searchParams . has ( "dest" ) ) {
63- requestUrl . searchParams . delete ( "dest" ) ;
58+ let topFrameName ;
59+ let parentFrameName ;
60+
61+ let extraParams : Record < string , string > = { } ;
62+ for ( const [ param , value ] of requestUrl . searchParams . entries ( ) ) {
63+ switch ( param ) {
64+ case "type" :
65+ workerType = value ;
66+ break ;
67+ case "dest" :
68+ break ;
69+ case "topFrame" :
70+ topFrameName = value ;
71+ break ;
72+ case "parentFrame" :
73+ parentFrameName = value ;
74+ break ;
75+ default :
76+ dbg . warn (
77+ `${ requestUrl . href } extraneous query parameter ${ param } . Assuming <form> element`
78+ ) ;
79+ extraParams [ param ] = value ;
80+ break ;
81+ }
82+ requestUrl . searchParams . delete ( param ) ;
6483 }
84+
6585 const url = new URL ( unrewriteUrl ( requestUrl ) ) ;
86+ // now that we're past unrewriting it's safe to add back the params
87+ for ( const [ param , value ] of Object . entries ( extraParams ) ) {
88+ url . searchParams . set ( param , value ) ;
89+ }
6690
6791 const meta : URLMeta = {
6892 origin : url ,
6993 base : url ,
94+ topFrameName,
95+ parentFrameName,
7096 } ;
71- if ( requestUrl . searchParams . has ( "topFrame" ) ) {
72- meta . topFrameName = requestUrl . searchParams . get ( "topFrame" ) ;
73- }
74- if ( requestUrl . searchParams . has ( "parentFrame" ) ) {
75- meta . parentFrameName = requestUrl . searchParams . get ( "parentFrame" ) ;
76- }
7797
7898 if (
7999 requestUrl . pathname . startsWith ( `${ this . config . prefix } blob:` ) ||
You can’t perform that action at this time.
0 commit comments