Index: extensions/renderer/user_script_injector.cc |
diff --git a/extensions/renderer/user_script_injector.cc b/extensions/renderer/user_script_injector.cc |
index c3e15ef36e909c4a9cd0ec3568f226e1ce252587..8bcdb3eba25335e33991c9612e50a82c25fd6179 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/injection_host.h" |
@@ -127,6 +128,15 @@ PermissionsData::AccessType UserScriptInjector::CanExecuteOnFrame( |
blink::WebFrame* web_frame, |
int tab_id, |
const GURL& top_url) const { |
+ if (script_->consumer_instance_type() == |
+ UserScript::ConsumerInstanceType::WEBVIEW) { |
+ int routing_id = content::RenderView::FromWebView(web_frame->top()->view()) |
+ ->GetRoutingID(); |
+ return script_->routing_info().render_view_id == routing_id |
+ ? PermissionsData::ACCESS_ALLOWED |
+ : PermissionsData::ACCESS_DENIED; |
+ } |
+ |
// If we don't have a tab id, we have no UI surface to ask for user consent. |
// For now, we treat this as an automatic allow. |
if (tab_id == -1) |