Index: extensions/browser/api/web_request/web_request_api.cc |
diff --git a/extensions/browser/api/web_request/web_request_api.cc b/extensions/browser/api/web_request/web_request_api.cc |
index d2e230904eab9a3009dd1badf2bc0149b903aa46..61a565eb36e4660e84ceefa139abe1f8de2a194f 100644 |
--- a/extensions/browser/api/web_request/web_request_api.cc |
+++ b/extensions/browser/api/web_request/web_request_api.cc |
@@ -1499,6 +1499,18 @@ void ExtensionWebRequestEventRouter::GetMatchingListenersImpl( |
extension_info_map, listener->id.extension_id, url, |
frame_data.tab_id, crosses_incognito, |
WebRequestPermissions::REQUIRE_HOST_PERMISSION); |
+ |
+ // Check if URL blocked from view/modification by policy (URL || Origin). |
+ if (extension_info_map) { |
+ const extensions::Extension* extension = |
+ extension_info_map->extensions().GetByID(listener->id.extension_id); |
+ if (extension->permissions_data()->IsRuntimeBlockedHost(url)) |
Devlin
2017/05/15 20:54:51
Why do we need this? WebRequestPermissions::CanEx
nrpeter
2017/05/15 22:44:43
IIUC, if you want to redirect a web request, the e
|
+ access = PermissionsData::ACCESS_WITHHELD; |
Devlin
2017/05/15 20:54:51
We would want DENIED, right? WITHHELD will surfac
nrpeter
2017/05/15 22:44:43
Done.
|
+ else if (extension->permissions_data()->IsRuntimeBlockedHost( |
+ request->first_party_for_cookies())) |
+ access = PermissionsData::ACCESS_WITHHELD; |
+ } |
+ |
if (access != PermissionsData::ACCESS_ALLOWED) { |
if (access == PermissionsData::ACCESS_WITHHELD && |
web_request_event_router_delegate_) { |