Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(106)

Unified Diff: extensions/browser/api/web_request/web_request_permissions.cc

Issue 2934583002: Reland: chrome.webRequest support for ExtensionSettings (Closed)
Patch Set: Fix flaky test ExtensionApiTestWithManagementPolicy.InitiatorProtectedByPolicy Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: extensions/browser/api/web_request/web_request_permissions.cc
diff --git a/extensions/browser/api/web_request/web_request_permissions.cc b/extensions/browser/api/web_request/web_request_permissions.cc
index a683ec3a66b7ed3e021bba438a91301488a6c019..ccfe22ba48e4572d463701f67c91c540220beaea 100644
--- a/extensions/browser/api/web_request/web_request_permissions.cc
+++ b/extensions/browser/api/web_request/web_request_permissions.cc
@@ -19,7 +19,6 @@
#include "extensions/common/permissions/permissions_data.h"
#include "net/url_request/url_request.h"
#include "url/gurl.h"
-#include "url/origin.h"
#if defined(OS_CHROMEOS)
#include "chromeos/login/login_state.h"
@@ -151,7 +150,8 @@ PermissionsData::AccessType WebRequestPermissions::CanExtensionAccessURL(
const GURL& url,
int tab_id,
bool crosses_incognito,
- HostPermissionsCheck host_permissions_check) {
+ HostPermissionsCheck host_permissions_check,
+ const base::Optional<url::Origin>& initiator) {
// extension_info_map can be NULL in testing.
if (!extension_info_map)
return PermissionsData::ACCESS_ALLOWED;
@@ -161,6 +161,12 @@ PermissionsData::AccessType WebRequestPermissions::CanExtensionAccessURL(
if (!extension)
return PermissionsData::ACCESS_DENIED;
+ // Prevent viewing / modifying requests initiated by a host protected by
+ // policy.
+ if (initiator && extension->permissions_data()->IsRuntimeBlockedHost(
+ initiator->GetPhysicalOrigin().GetURL()))
+ return PermissionsData::ACCESS_DENIED;
+
// When we are in a Public Session, allow all URLs for webRequests initiated
// by a regular extension (but don't allow chrome:// URLs).
#if defined(OS_CHROMEOS)
« no previous file with comments | « extensions/browser/api/web_request/web_request_permissions.h ('k') | extensions/common/permissions/permissions_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698