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, |