Index: extensions/renderer/user_script_injector.cc |
diff --git a/extensions/renderer/user_script_injector.cc b/extensions/renderer/user_script_injector.cc |
index 7a4c6e93b128003b5f374e2255da5750ea9a1650..2d49ca139cb08dd5d5979e0c67f1b8c2ff64cc09 100644 |
--- a/extensions/renderer/user_script_injector.cc |
+++ b/extensions/renderer/user_script_injector.cc |
@@ -8,6 +8,7 @@ |
#include "base/lazy_instance.h" |
#include "content/public/common/url_constants.h" |
+#include "content/public/renderer/render_view.h" |
#include "extensions/common/extension.h" |
#include "extensions/common/permissions/permissions_data.h" |
#include "extensions/renderer/script_context.h" |
@@ -131,6 +132,12 @@ PermissionsData::AccessType UserScriptInjector::CanExecuteOnFrame( |
if (tab_id == -1) |
return PermissionsData::ACCESS_ALLOWED; |
+ int routing_id = content::RenderView::FromWebView(web_frame->top()->view()) |
+ ->GetRoutingID(); |
+ if (script_->routing_info().render_view_id == routing_id && |
+ script_->consumer_instance_info().type() == ConsumerInstanceInfo::WEBVIEW) |
+ return PermissionsData::ACCESS_ALLOWED; |
+ |
GURL effective_document_url = ScriptContext::GetEffectiveDocumentURL( |
web_frame, web_frame->document().url(), script_->match_about_blank()); |
return injection_host->CanExecuteOnFrame( |