@@ -573,53 +573,46 @@ async function mainFetch (fetchParams, recursive = false) {
573
573
// 11. If response is null, then set response to the result of running
574
574
// the steps corresponding to the first matching statement:
575
575
if ( response === null ) {
576
- response = await ( async ( ) => {
577
- const currentURL = requestCurrentURL ( request )
578
-
579
- if (
580
- // - request’s current URL’s origin is same origin with request’s origin,
581
- // and request’s response tainting is "basic"
582
- ( sameOrigin ( currentURL , request . url ) && request . responseTainting === 'basic' ) ||
583
- // request’s current URL’s scheme is "data"
584
- ( currentURL . protocol === 'data:' ) ||
585
- // - request’s mode is "navigate" or "websocket"
586
- ( request . mode === 'navigate' || request . mode === 'websocket' )
587
- ) {
588
- // 1. Set request’s response tainting to "basic".
589
- request . responseTainting = 'basic'
590
-
591
- // 2. Return the result of running scheme fetch given fetchParams.
592
- return await schemeFetch ( fetchParams )
593
- }
594
-
595
- // request’s mode is "same-origin"
596
- if ( request . mode === 'same-origin' ) {
597
- // 1. Return a network error.
598
- return makeNetworkError ( 'request mode cannot be "same-origin"' )
599
- }
600
-
601
- // request’s mode is "no-cors"
602
- if ( request . mode === 'no-cors' ) {
603
- // 1. If request’s redirect mode is not "follow", then return a network
604
- // error.
605
- if ( request . redirect !== 'follow' ) {
606
- return makeNetworkError (
607
- 'redirect mode cannot be "follow" for "no-cors" request'
608
- )
609
- }
610
-
576
+ const currentURL = requestCurrentURL ( request )
577
+ if (
578
+ // - request’s current URL’s origin is same origin with request’s origin,
579
+ // and request’s response tainting is "basic"
580
+ ( sameOrigin ( currentURL , request . url ) && request . responseTainting === 'basic' ) ||
581
+ // request’s current URL’s scheme is "data"
582
+ ( currentURL . protocol === 'data:' ) ||
583
+ // - request’s mode is "navigate" or "websocket"
584
+ ( request . mode === 'navigate' || request . mode === 'websocket' )
585
+ ) {
586
+ // 1. Set request’s response tainting to "basic".
587
+ request . responseTainting = 'basic'
588
+
589
+ // 2. Return the result of running scheme fetch given fetchParams.
590
+ response = await schemeFetch ( fetchParams )
591
+
592
+ // request’s mode is "same-origin"
593
+ } else if ( request . mode === 'same-origin' ) {
594
+ // 1. Return a network error.
595
+ response = makeNetworkError ( 'request mode cannot be "same-origin"' )
596
+
597
+ // request’s mode is "no-cors"
598
+ } else if ( request . mode === 'no-cors' ) {
599
+ // 1. If request’s redirect mode is not "follow", then return a network
600
+ // error.
601
+ if ( request . redirect !== 'follow' ) {
602
+ response = makeNetworkError (
603
+ 'redirect mode cannot be "follow" for "no-cors" request'
604
+ )
605
+ } else {
611
606
// 2. Set request’s response tainting to "opaque".
612
607
request . responseTainting = 'opaque'
613
608
614
609
// 3. Return the result of running scheme fetch given fetchParams.
615
- return await schemeFetch ( fetchParams )
616
- }
617
-
618
- // request’s current URL’s scheme is not an HTTP(S) scheme
619
- if ( ! urlIsHttpHttpsScheme ( requestCurrentURL ( request ) ) ) {
620
- // Return a network error.
621
- return makeNetworkError ( 'URL scheme must be a HTTP(S) scheme' )
610
+ response = await schemeFetch ( fetchParams )
622
611
}
612
+ // request’s current URL’s scheme is not an HTTP(S) scheme
613
+ } else if ( ! urlIsHttpHttpsScheme ( requestCurrentURL ( request ) ) ) {
614
+ // Return a network error.
615
+ response = makeNetworkError ( 'URL scheme must be a HTTP(S) scheme' )
623
616
624
617
// - request’s use-CORS-preflight flag is set
625
618
// - request’s unsafe-request flag is set and either request’s method is
@@ -633,13 +626,14 @@ async function mainFetch (fetchParams, recursive = false) {
633
626
// 4. Return corsWithPreflightResponse.
634
627
// TODO
635
628
636
- // Otherwise
629
+ // Otherwise
630
+ } else {
637
631
// 1. Set request’s response tainting to "cors".
638
632
request . responseTainting = 'cors'
639
633
640
634
// 2. Return the result of running HTTP fetch given fetchParams.
641
- return await httpFetch ( fetchParams )
642
- } ) ( )
635
+ response = await httpFetch ( fetchParams )
636
+ }
643
637
}
644
638
645
639
// 12. If recursive is true, then return response.
0 commit comments