Index: extensions/common/manifest_handlers/csp_info.cc |
diff --git a/extensions/common/manifest_handlers/csp_info.cc b/extensions/common/manifest_handlers/csp_info.cc |
index 2c3838fa6351daad489a6fb16d9830d7775719d2..02c9e980e39a3cb5a649b387ec95faf6ab711eff 100644 |
--- a/extensions/common/manifest_handlers/csp_info.cc |
+++ b/extensions/common/manifest_handlers/csp_info.cc |
@@ -9,6 +9,7 @@ |
#include "base/strings/utf_string_conversions.h" |
#include "base/values.h" |
#include "extensions/common/csp_validator.h" |
+#include "extensions/common/install_warning.h" |
#include "extensions/common/manifest_constants.h" |
#include "extensions/common/manifest_handlers/sandboxed_page_info.h" |
@@ -109,7 +110,8 @@ bool CSPHandler::Parse(Extension* extension, base::string16* error) { |
kDefaultContentSecurityPolicy; |
CHECK(ContentSecurityPolicyIsSecure(content_security_policy, |
- GetValidatorOptions(extension))); |
+ GetValidatorOptions(extension), |
+ NULL, NULL)); |
extension->SetManifestData(keys::kContentSecurityPolicy, |
new CSPInfo(content_security_policy)); |
} |
@@ -125,11 +127,14 @@ bool CSPHandler::Parse(Extension* extension, base::string16* error) { |
*error = base::ASCIIToUTF16(errors::kInvalidContentSecurityPolicy); |
return false; |
} |
+ std::string sanitized_csp; |
+ std::vector<InstallWarning> warnings; |
if (extension->manifest_version() >= 2 && |
!ContentSecurityPolicyIsSecure(content_security_policy, |
- GetValidatorOptions(extension))) { |
- *error = base::ASCIIToUTF16(errors::kInsecureContentSecurityPolicy); |
- return false; |
+ GetValidatorOptions(extension), |
+ &sanitized_csp, &warnings)) { |
+ extension->AddInstallWarnings(warnings); |
+ content_security_policy = sanitized_csp; |
} |
extension->SetManifestData(keys::kContentSecurityPolicy, |