| 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..96d0a3d42e1dbb65ea27a36429f7de38db23bf68 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,21 @@ 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
|
| + // ShouldEnforceHostPermissions instructs to do that.
|
| + // |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 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 ShouldEnforceHostPermissions() const;
|
|
|
| // Factory method that instantiates a concrete WebRequestAction
|
| // implementation according to |json_action|, the representation of the
|
| @@ -123,11 +134,12 @@ 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 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 +209,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 ShouldEnforceHostPermissions() const OVERRIDE;
|
| virtual LinkedPtrEventResponseDelta CreateDelta(
|
| net::URLRequest* request,
|
| RequestStages request_stage,
|
| @@ -220,8 +231,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 ShouldEnforceHostPermissions() const OVERRIDE;
|
| virtual LinkedPtrEventResponseDelta CreateDelta(
|
| net::URLRequest* request,
|
| RequestStages request_stage,
|
| @@ -366,8 +376,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 ShouldEnforceHostPermissions() const OVERRIDE;
|
| virtual LinkedPtrEventResponseDelta CreateDelta(
|
| net::URLRequest* request,
|
| RequestStages request_stage,
|
|
|