Chromium Code Reviews| 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 01f7e4aea1ac1e9b6cf2beeb9e5025c527858b50..41e5476f7b632611cf84993bcd447d2a60373461 100644 |
| --- a/chrome/browser/extensions/api/declarative_webrequest/webrequest_action.h |
| +++ b/chrome/browser/extensions/api/declarative_webrequest/webrequest_action.h |
| @@ -17,6 +17,8 @@ |
| #include "googleurl/src/gurl.h" |
| #include "unicode/regex.h" |
| +class WebRequestPermission; |
| + |
| namespace base { |
| class DictionaryValue; |
| class Time; |
| @@ -72,12 +74,22 @@ class WebRequestAction { |
| // this rule. Defaults to MIN_INT. |
| virtual int GetMinimumPriority() const; |
| - // Returns whether |extension| has permission to execute this action |
| - // on |request|. Defaults to checking the host permission. |
| - // |extension| may only be NULL for during testing, in which case |
| - // host permissions are ignored. |
| - virtual bool HasPermission(const extensions::Extension* extension, |
| - const net::URLRequest* request) const; |
| + // Returns whether the specified extension has permission to execute this |
| + // action on |request|. Checks the host permission if |
| + // GetEnforceHostPermissions instructs to do that. |
| + // |permissions| and |extension_info_map| may only be NULL for during testing, |
| + // in which case host permissions are ignored. |crosses_incognito| specifies |
| + // whether the request comes from a different profile than |extension_id| |
| + // but was processed because the extension is in spanning mode. |
| + virtual bool HasPermission(const WebRequestPermissions* permissions, |
| + const ExtensionInfoMap* extension_info_map, |
| + const std::string& extension_id, |
| + const net::URLRequest* request, |
| + bool crosses_incognito) const; |
| + |
| + // Returns whether host permissions shall be enforced by this actions. |
| + // Used by the standard implementation of HasPermission. Defaults to true. |
| + virtual bool GetEnforceHostPermissions() const; |
|
Matt Perry
2012/07/25 21:27:56
nit: ShouldEnforceHostPermissions?
battre
2012/07/26 16:38:43
Done.
|
| // Factory method that instantiates a concrete WebRequestAction |
| // implementation according to |json_action|, the representation of the |
| @@ -123,11 +135,13 @@ class WebRequestActionSet { |
| // |actions_| that can be executed at |request_stage|. If |extension| |
| // is not NULL, permissions of extensions are checked. |
| std::list<LinkedPtrEventResponseDelta> CreateDeltas( |
| - const extensions::Extension* extension, |
| + const WebRequestPermissions* permissions, |
| + const ExtensionInfoMap* extension_info_map, |
| + const std::string& extension_id, |
| net::URLRequest* request, |
| + bool crosses_incognito, |
| RequestStages request_stage, |
| const WebRequestRule::OptionalRequestData& optional_request_data, |
| - const std::string& extension_id, |
| const base::Time& extension_install_time) const; |
| // Returns the minimum priority of rules that may be evaluated after |
| @@ -197,8 +211,7 @@ class WebRequestRedirectToTransparentImageAction : public WebRequestAction { |
| // Implementation of WebRequestAction: |
| virtual int GetStages() const OVERRIDE; |
| virtual Type GetType() const OVERRIDE; |
| - virtual bool HasPermission(const extensions::Extension* extension, |
| - const net::URLRequest* request) const OVERRIDE; |
| + virtual bool GetEnforceHostPermissions() const OVERRIDE; |
| virtual LinkedPtrEventResponseDelta CreateDelta( |
| net::URLRequest* request, |
| RequestStages request_stage, |
| @@ -220,8 +233,7 @@ class WebRequestRedirectToEmptyDocumentAction : public WebRequestAction { |
| // Implementation of WebRequestAction: |
| virtual int GetStages() const OVERRIDE; |
| virtual Type GetType() const OVERRIDE; |
| - virtual bool HasPermission(const extensions::Extension* extension, |
| - const net::URLRequest* request) const OVERRIDE; |
| + virtual bool GetEnforceHostPermissions() const OVERRIDE; |
| virtual LinkedPtrEventResponseDelta CreateDelta( |
| net::URLRequest* request, |
| RequestStages request_stage, |
| @@ -366,8 +378,7 @@ class WebRequestIgnoreRulesAction : public WebRequestAction { |
| virtual int GetStages() const OVERRIDE; |
| virtual Type GetType() const OVERRIDE; |
| virtual int GetMinimumPriority() const OVERRIDE; |
| - virtual bool HasPermission(const extensions::Extension* extension, |
| - const net::URLRequest* request) const OVERRIDE; |
| + virtual bool GetEnforceHostPermissions() const OVERRIDE; |
| virtual LinkedPtrEventResponseDelta CreateDelta( |
| net::URLRequest* request, |
| RequestStages request_stage, |