MCPcopy Create free account
hub / github.com/angular/dev-infra / schemeFetch

Function schemeFetch

github-actions/browserstack/set-browserstack-env.js:14181–14271  ·  view source on GitHub ↗
(fetchParams)

Source from the content-addressed store, hash-verified

14179 if (request.responseTainting === "cors") {
14180 }
14181 if (request.responseTainting === "basic") {
14182 response = filterResponse(response, "basic");
14183 } else if (request.responseTainting === "cors") {
14184 response = filterResponse(response, "cors");
14185 } else if (request.responseTainting === "opaque") {
14186 response = filterResponse(response, "opaque");
14187 } else {
14188 assert(false);
14189 }
14190 }
14191 let internalResponse = response.status === 0 ? response : response.internalResponse;
14192 if (internalResponse.urlList.length === 0) {
14193 internalResponse.urlList.push(...request.urlList);
14194 }
14195 if (!request.timingAllowFailed) {
14196 response.timingAllowPassed = true;
14197 }
14198 if (response.type === "opaque" && internalResponse.status === 206 && internalResponse.rangeRequested && !request.headers.contains("range", true)) {
14199 response = internalResponse = makeNetworkError();
14200 }
14201 if (response.status !== 0 && (request.method === "HEAD" || request.method === "CONNECT" || nullBodyStatus.includes(internalResponse.status))) {
14202 internalResponse.body = null;
14203 fetchParams.controller.dump = true;
14204 }
14205 if (request.integrity) {
14206 const processBodyError = (reason) => fetchFinale(fetchParams, makeNetworkError(reason));
14207 if (request.responseTainting === "opaque" || response.body == null) {
14208 processBodyError(response.error);
14209 return;
14210 }
14211 const processBody = (bytes) => {
14212 if (!bytesMatch(bytes, request.integrity)) {
14213 processBodyError("integrity mismatch");
14214 return;
14215 }
14216 response.body = safelyExtractBody(bytes)[0];
14217 fetchFinale(fetchParams, response);
14218 };
14219 yield fullyReadBody(response.body, processBody, processBodyError);
14220 } else {
14221 fetchFinale(fetchParams, response);
14222 }
14223 });
14224 }
14225 function schemeFetch(fetchParams) {
14226 if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {
14227 return Promise.resolve(makeAppropriateNetworkError(fetchParams));
14228 }
14229 const { request } = fetchParams;
14230 const { protocol: scheme } = requestCurrentURL(request);
14231 switch (scheme) {
14232 case "about:": {
14233 return Promise.resolve(makeNetworkError("about scheme is not supported"));
14234 }
14235 case "blob:": {
14236 if (!resolveObjectURL) {
14237 resolveObjectURL = __require("buffer").resolveObjectURL;
14238 }

Callers 1

mainFetchFunction · 0.70

Calls 15

isCancelledFunction · 0.70
requestCurrentURLFunction · 0.70
makeNetworkErrorFunction · 0.70
isBlobLikeFunction · 0.70
makeResponseFunction · 0.70
isomorphicEncodeFunction · 0.70
extractBodyFunction · 0.70
simpleRangeHeaderValueFunction · 0.70
buildContentRangeFunction · 0.70
dataURLProcessorFunction · 0.70
serializeAMimeTypeFunction · 0.70

Tested by

no test coverage detected