(fetchParams, recursive = false)
| 14080 | return fetchParams.controller; |
| 14081 | } |
| 14082 | function mainFetch(fetchParams, recursive = false) { |
| 14083 | return __async(this, null, function* () { |
| 14084 | const request = fetchParams.request; |
| 14085 | let response = null; |
| 14086 | if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) { |
| 14087 | response = makeNetworkError("local URLs only"); |
| 14088 | } |
| 14089 | tryUpgradeRequestToAPotentiallyTrustworthyURL(request); |
| 14090 | if (requestBadPort(request) === "blocked") { |
| 14091 | response = makeNetworkError("bad port"); |
| 14092 | } |
| 14093 | if (request.referrerPolicy === "") { |
| 14094 | request.referrerPolicy = request.policyContainer.referrerPolicy; |
| 14095 | } |
| 14096 | if (request.referrer !== "no-referrer") { |
| 14097 | request.referrer = determineRequestsReferrer(request); |
| 14098 | } |
| 14099 | if (response === null) { |
| 14100 | response = yield (() => __async(this, null, function* () { |
| 14101 | const currentURL = requestCurrentURL(request); |
| 14102 | if ( |
| 14103 | // - request’s current URL’s origin is same origin with request’s origin, |
| 14104 | // and request’s response tainting is "basic" |
| 14105 | sameOrigin(currentURL, request.url) && request.responseTainting === "basic" || // request’s current URL’s scheme is "data" |
| 14106 | currentURL.protocol === "data:" || // - request’s mode is "navigate" or "websocket" |
| 14107 | (request.mode === "navigate" || request.mode === "websocket") |
| 14108 | ) { |
| 14109 | request.responseTainting = "basic"; |
| 14110 | return yield schemeFetch(fetchParams); |
| 14111 | } |
| 14112 | if (request.mode === "same-origin") { |
| 14113 | return makeNetworkError('request mode cannot be "same-origin"'); |
| 14114 | } |
| 14115 | if (request.mode === "no-cors") { |
| 14116 | if (request.redirect !== "follow") { |
| 14117 | return makeNetworkError( |
| 14118 | 'redirect mode cannot be "follow" for "no-cors" request' |
| 14119 | ); |
| 14120 | } |
| 14121 | request.responseTainting = "opaque"; |
| 14122 | return yield schemeFetch(fetchParams); |
| 14123 | } |
| 14124 | if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) { |
| 14125 | return makeNetworkError("URL scheme must be a HTTP(S) scheme"); |
| 14126 | } |
| 14127 | request.responseTainting = "cors"; |
| 14128 | return yield httpFetch(fetchParams); |
| 14129 | }))(); |
| 14130 | } |
| 14131 | if (recursive) { |
| 14132 | return response; |
| 14133 | } |
| 14134 | if (response.status !== 0 && !response.internalResponse) { |
| 14135 | if (request.responseTainting === "cors") { |
| 14136 | } |
| 14137 | if (request.responseTainting === "basic") { |
| 14138 | response = filterResponse(response, "basic"); |
| 14139 | } else if (request.responseTainting === "cors") { |
no test coverage detected