Index: chrome/browser/extensions/api/declarative_webrequest/webrequest_action.cc |
diff --git a/chrome/browser/extensions/api/declarative_webrequest/webrequest_action.cc b/chrome/browser/extensions/api/declarative_webrequest/webrequest_action.cc |
index 739d0744b955c08569db4a8f5bf9f501b75c6541..7855a689d864c2157c3359108c4580b7b4e8e744 100644 |
--- a/chrome/browser/extensions/api/declarative_webrequest/webrequest_action.cc |
+++ b/chrome/browser/extensions/api/declarative_webrequest/webrequest_action.cc |
@@ -18,6 +18,8 @@ |
#include "chrome/browser/extensions/api/web_request/web_request_api_constants.h" |
#include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h" |
#include "chrome/browser/extensions/api/web_request/web_request_permissions.h" |
+#include "chrome/browser/extensions/extension_renderer_state.h" |
+#include "content/public/browser/resource_request_info.h" |
#include "content/public/common/url_constants.h" |
#include "extensions/browser/info_map.h" |
#include "extensions/common/error_utils.h" |
@@ -26,6 +28,8 @@ |
#include "net/url_request/url_request.h" |
#include "third_party/re2/re2/re2.h" |
+using content::ResourceRequestInfo; |
+ |
namespace extensions { |
namespace helpers = extension_web_request_api_helpers; |
@@ -481,6 +485,16 @@ bool WebRequestAction::HasPermission(const InfoMap* extension_info_map, |
if (!extension_info_map) |
return true; |
+ const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); |
+ int process_id = info->GetChildID(); |
+ int route_id = info->GetRouteID(); |
+ ExtensionRendererState::WebViewInfo webview_info; |
+ // The embedder can always access all hosts from within a <webview>. |
+ // The same is not true of extensions. |
+ if (ExtensionRendererState::GetInstance()->GetWebViewInfo( |
+ process_id, route_id, &webview_info)) { |
lazyboy
2014/05/29 17:50:14
Indent 4 more spaces.
Fady Samuel
2014/05/29 18:44:45
Done.
|
+ return true; |
+ } |
WebRequestPermissions::HostPermissionsCheck permission_check = |
WebRequestPermissions::REQUIRE_ALL_URLS; |
switch (host_permissions_strategy()) { |