Index: extensions/renderer/extension_injection_host.cc |
diff --git a/extensions/renderer/extension_injection_host.cc b/extensions/renderer/extension_injection_host.cc |
index 16b0831b6e2f4bd72537678c6d324fd450ff0ced..ec75068ed1244a1eb31fbcb240ccedf80accbaac 100644 |
--- a/extensions/renderer/extension_injection_host.cc |
+++ b/extensions/renderer/extension_injection_host.cc |
@@ -57,8 +57,10 @@ PermissionsData::AccessType ExtensionInjectionHost::CanExecuteOnFrame( |
blink::WebSecurityOrigin top_frame_security_origin = |
render_frame->GetWebFrame()->top()->securityOrigin(); |
+ // Only whitelisted extensions may run scripts on another extension's page. |
if (top_frame_security_origin.protocol().utf8() == kExtensionScheme && |
- top_frame_security_origin.host().utf8() != extension_->id()) |
+ top_frame_security_origin.host().utf8() != extension_->id() && |
+ !PermissionsData::CanExecuteScriptEverywhere(extension_)) |
return PermissionsData::ACCESS_DENIED; |
// Declarative user scripts use "page access" (from "permissions" section in |