[web] Set COEP:credentialless on flutter run/drive. (#152413)
This PR changes the value of the `COEP` response header from `require-corp` to `credentialless` in the Flutter tool, when running `flutter run`/`drive` for Web projects. This enables running tests compiled to wasm, that access 3P resources (like Google Maps) without blocking those resources. Docs: * https://developer.chrome.com/blog/coep-credentialless-origin-trial#credentialless_to_the_rescue ## Issue * https://github.com/flutter/flutter/issues/152411
This commit is contained in:
parent
4778895036
commit
111b4fe6d1
@ -1196,7 +1196,7 @@ class ReleaseAssetServer {
|
|||||||
'Access-Control-Allow-Origin': '*',
|
'Access-Control-Allow-Origin': '*',
|
||||||
if (_needsCoopCoep && _fileSystem.path.extension(file.path) == '.html') ...<String, String>{
|
if (_needsCoopCoep && _fileSystem.path.extension(file.path) == '.html') ...<String, String>{
|
||||||
'Cross-Origin-Opener-Policy': 'same-origin',
|
'Cross-Origin-Opener-Policy': 'same-origin',
|
||||||
'Cross-Origin-Embedder-Policy': 'require-corp',
|
'Cross-Origin-Embedder-Policy': 'credentialless',
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -1208,7 +1208,7 @@ class ReleaseAssetServer {
|
|||||||
'Content-Type': 'text/html',
|
'Content-Type': 'text/html',
|
||||||
if (_needsCoopCoep) ...<String, String>{
|
if (_needsCoopCoep) ...<String, String>{
|
||||||
'Cross-Origin-Opener-Policy': 'same-origin',
|
'Cross-Origin-Opener-Policy': 'same-origin',
|
||||||
'Cross-Origin-Embedder-Policy': 'require-corp',
|
'Cross-Origin-Embedder-Policy': 'credentialless',
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,7 @@ shelf.Handler createDirectoryHandler(Directory directory, { required bool crossO
|
|||||||
if (needsCrossOriginIsolated)
|
if (needsCrossOriginIsolated)
|
||||||
...<String, String>{
|
...<String, String>{
|
||||||
'Cross-Origin-Opener-Policy': 'same-origin',
|
'Cross-Origin-Opener-Policy': 'same-origin',
|
||||||
'Cross-Origin-Embedder-Policy': 'require-corp',
|
'Cross-Origin-Embedder-Policy': 'credentialless',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
@ -539,7 +539,7 @@ class FlutterWebPlatform extends PlatformPlugin {
|
|||||||
if (webRenderer == WebRendererMode.skwasm)
|
if (webRenderer == WebRendererMode.skwasm)
|
||||||
...<String, String>{
|
...<String, String>{
|
||||||
'Cross-Origin-Opener-Policy': 'same-origin',
|
'Cross-Origin-Opener-Policy': 'same-origin',
|
||||||
'Cross-Origin-Embedder-Policy': 'require-corp',
|
'Cross-Origin-Embedder-Policy': 'credentialless',
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -160,7 +160,7 @@ void main() {
|
|||||||
expect(response.statusCode, HttpStatus.ok);
|
expect(response.statusCode, HttpStatus.ok);
|
||||||
final Map<String, String> headers = response.headers;
|
final Map<String, String> headers = response.headers;
|
||||||
expect(headers['Cross-Origin-Opener-Policy'], 'same-origin');
|
expect(headers['Cross-Origin-Opener-Policy'], 'same-origin');
|
||||||
expect(headers['Cross-Origin-Embedder-Policy'], 'require-corp');
|
expect(headers['Cross-Origin-Embedder-Policy'], 'credentialless');
|
||||||
});
|
});
|
||||||
|
|
||||||
testWithoutContext('release asset server serves html content without COOP/COEP headers when specified', () async {
|
testWithoutContext('release asset server serves html content without COOP/COEP headers when specified', () async {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user