summaryrefslogtreecommitdiffstats
path: root/extensions/browser/extension_protocols.cc
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/browser/extension_protocols.cc')
-rw-r--r--extensions/browser/extension_protocols.cc15
1 files changed, 11 insertions, 4 deletions
diff --git a/extensions/browser/extension_protocols.cc b/extensions/browser/extension_protocols.cc
index 53315cb..bb61b25 100644
--- a/extensions/browser/extension_protocols.cc
+++ b/extensions/browser/extension_protocols.cc
@@ -411,17 +411,24 @@ ExtensionProtocolHandler::MaybeCreateJob(
std::string content_security_policy;
bool send_cors_header = false;
bool follow_symlinks_anywhere = false;
+
if (extension) {
std::string resource_path = request->url().path();
- content_security_policy =
- extensions::CSPInfo::GetResourceContentSecurityPolicy(extension,
- resource_path);
+
+ // Use default CSP for <webview>.
+ if (!ExtensionsBrowserClient::Get()->IsWebViewRequest(request)) {
+ content_security_policy =
+ extensions::CSPInfo::GetResourceContentSecurityPolicy(extension,
+ resource_path);
+ }
+
if ((extension->manifest_version() >= 2 ||
extensions::WebAccessibleResourcesInfo::HasWebAccessibleResources(
extension)) &&
extensions::WebAccessibleResourcesInfo::IsResourceWebAccessible(
- extension, resource_path))
+ extension, resource_path)) {
send_cors_header = true;
+ }
follow_symlinks_anywhere =
(extension->creation_flags() & Extension::FOLLOW_SYMLINKS_ANYWHERE)