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

Unified Diff: chrome/browser/extensions/api/declarative_webrequest/webrequest_action.h

Issue 14358004: Almost all actions in Declarative Web Request require all_urls host permissions (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Without error messages yet Created 7 years, 8 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: chrome/browser/extensions/api/declarative_webrequest/webrequest_action.h
diff --git a/chrome/browser/extensions/api/declarative_webrequest/webrequest_action.h b/chrome/browser/extensions/api/declarative_webrequest/webrequest_action.h
index 2785cfce115367265dde99fd19a98c5eae1a18d9..5309ef80deb13a75f564f4c0b4c1166672c687ff 100644
--- a/chrome/browser/extensions/api/declarative_webrequest/webrequest_action.h
+++ b/chrome/browser/extensions/api/declarative_webrequest/webrequest_action.h
@@ -71,12 +71,9 @@ class WebRequestAction {
// Strategies for checking host permissions.
enum HostPermissionsStrategy {
STRATEGY_NONE, // Do not check host permissions.
- STRATEGY_DEFAULT, // Check host permissions in HasPermission,
- // before creating the delta.
- STRATEGY_ALLOW_SAME_DOMAIN, // Skip host permission checks if the request
- // URL and new URL have the same domain.
- // Do these checks in DeltaHasPermission,
- // after creating the delta.
+ STRATEGY_DEFAULT, // Check for host permissions for all URLs before
+ // creating the delta.
+ STRATEGY_HOST, // Check that host permissions match the URL of the request.
};
// Information necessary to decide how to apply a WebRequestAction
@@ -91,6 +88,7 @@ class WebRequestAction {
};
WebRequestAction();
Matt Perry 2013/04/19 21:55:28 Can the default constructor be removed?
vabr (Chromium) 2013/04/25 19:08:03 Done.
+ explicit WebRequestAction(HostPermissionsStrategy strategy);
virtual ~WebRequestAction();
// Returns a bit vector representing extensions::RequestStage. The bit vector
@@ -104,11 +102,9 @@ class WebRequestAction {
// this rule. Defaults to MIN_INT.
virtual int GetMinimumPriority() const;
- // Returns whether host permissions checks depend on the resulting delta
- // and therefore must be checked in DeltaHasPermission, after the delta
- // is created, rather than in HasPermission, before it is created.
- // Defaults to STRATEGY_DEFAULT.
- virtual HostPermissionsStrategy GetHostPermissionsStrategy() const;
+ HostPermissionsStrategy host_permissions_strategy() const {
+ return host_permissions_strategy_;
+ }
// Returns whether the specified extension has permission to execute this
// action on |request|. Checks the host permission if the host permissions
@@ -122,19 +118,6 @@ class WebRequestAction {
const net::URLRequest* request,
bool crosses_incognito) const;
- // Returns whether the specified extension has permission to modify the
- // |request| with this |delta|. This check is in addition to HasPermission;
- // if either fails, the request will not be modified. Unlike HasPermission,
- // it runs after the change is created, so it can use the full information
- // about what the change would be. Checks the host permission if the strategy
- // is STRATEGY_ALLOW_SAME_DOMAIN.
- virtual bool DeltaHasPermission(
- const ExtensionInfoMap* extension_info_map,
- const std::string& extension_id,
- const net::URLRequest* request,
- bool crosses_incognito,
- const LinkedPtrEventResponseDelta& delta) const;
-
// Factory method that instantiates a concrete WebRequestAction
// implementation according to |json_action|, the representation of the
// WebRequestAction as received from the extension API.
@@ -157,6 +140,10 @@ class WebRequestAction {
void Apply(const std::string& extension_id,
base::Time extension_install_time,
ApplyInfo* apply_info) const;
+
+ private:
+ // Defaults to STRATEGY_DEFAULT.
+ const HostPermissionsStrategy host_permissions_strategy_;
};
typedef DeclarativeActionSet<WebRequestAction> WebRequestActionSet;
@@ -174,7 +161,6 @@ class WebRequestCancelAction : public WebRequestAction {
// Implementation of WebRequestAction:
virtual int GetStages() const OVERRIDE;
virtual Type GetType() const OVERRIDE;
- virtual HostPermissionsStrategy GetHostPermissionsStrategy() const OVERRIDE;
virtual LinkedPtrEventResponseDelta CreateDelta(
const WebRequestData& request_data,
const std::string& extension_id,
@@ -193,7 +179,6 @@ class WebRequestRedirectAction : public WebRequestAction {
// Implementation of WebRequestAction:
virtual int GetStages() const OVERRIDE;
virtual Type GetType() const OVERRIDE;
- virtual HostPermissionsStrategy GetHostPermissionsStrategy() const OVERRIDE;
virtual LinkedPtrEventResponseDelta CreateDelta(
const WebRequestData& request_data,
const std::string& extension_id,
@@ -214,7 +199,6 @@ class WebRequestRedirectToTransparentImageAction : public WebRequestAction {
// Implementation of WebRequestAction:
virtual int GetStages() const OVERRIDE;
virtual Type GetType() const OVERRIDE;
- virtual HostPermissionsStrategy GetHostPermissionsStrategy() const OVERRIDE;
virtual LinkedPtrEventResponseDelta CreateDelta(
const WebRequestData& request_data,
const std::string& extension_id,
@@ -234,7 +218,6 @@ class WebRequestRedirectToEmptyDocumentAction : public WebRequestAction {
// Implementation of WebRequestAction:
virtual int GetStages() const OVERRIDE;
virtual Type GetType() const OVERRIDE;
- virtual HostPermissionsStrategy GetHostPermissionsStrategy() const OVERRIDE;
virtual LinkedPtrEventResponseDelta CreateDelta(
const WebRequestData& request_data,
const std::string& extension_id,
@@ -260,7 +243,6 @@ class WebRequestRedirectByRegExAction : public WebRequestAction {
// Implementation of WebRequestAction:
virtual int GetStages() const OVERRIDE;
virtual Type GetType() const OVERRIDE;
- virtual HostPermissionsStrategy GetHostPermissionsStrategy() const OVERRIDE;
virtual LinkedPtrEventResponseDelta CreateDelta(
const WebRequestData& request_data,
const std::string& extension_id,
@@ -368,7 +350,6 @@ class WebRequestIgnoreRulesAction : public WebRequestAction {
virtual int GetStages() const OVERRIDE;
virtual Type GetType() const OVERRIDE;
virtual int GetMinimumPriority() const OVERRIDE;
- virtual HostPermissionsStrategy GetHostPermissionsStrategy() const OVERRIDE;
virtual LinkedPtrEventResponseDelta CreateDelta(
const WebRequestData& request_data,
const std::string& extension_id,

Powered by Google App Engine
This is Rietveld 408576698