Index: chrome/renderer/extensions/extension_resource_request_policy.cc |
diff --git a/chrome/renderer/extensions/extension_resource_request_policy.cc b/chrome/renderer/extensions/extension_resource_request_policy.cc |
index 4bee495a511e706bca009a2133a6132850dcdf74..4c3a9edc6a5ec29d7adfacd6999ae88a42661677 100644 |
--- a/chrome/renderer/extensions/extension_resource_request_policy.cc |
+++ b/chrome/renderer/extensions/extension_resource_request_policy.cc |
@@ -76,5 +76,28 @@ bool ExtensionResourceRequestPolicy::CanRequestResource( |
return true; |
} |
+// static |
+bool ExtensionResourceRequestPolicy::CanRequestExtensionResourceScheme( |
+ const GURL& resource_url, |
+ WebKit::WebFrame* frame, |
+ const ExtensionSet* loaded_extensions) { |
+ CHECK(resource_url.SchemeIs(chrome::kExtensionResourceScheme)); |
+ |
+ GURL frame_url = frame->document().url(); |
+ if (!frame_url.is_empty() && |
+ !frame_url.SchemeIs(chrome::kExtensionScheme)) { |
+ std::string message = base::StringPrintf( |
+ "Denying load of %s. chrome-extension-resources:// can only be " |
+ "loaded from extensions.", |
+ resource_url.spec().c_str()); |
+ frame->addMessageToConsole( |
+ WebKit::WebConsoleMessage(WebKit::WebConsoleMessage::LevelError, |
+ WebKit::WebString::fromUTF8(message))); |
+ return false; |
+ } |
+ |
+ return true; |
+} |
+ |
ExtensionResourceRequestPolicy::ExtensionResourceRequestPolicy() { |
} |