| 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 96d0a3d42e1dbb65ea27a36429f7de38db23bf68..1830ac4498f278decaed4794356e1fcd0ba6e264 100644
|
| --- a/chrome/browser/extensions/api/declarative_webrequest/webrequest_action.h
|
| +++ b/chrome/browser/extensions/api/declarative_webrequest/webrequest_action.h
|
| @@ -13,6 +13,7 @@
|
| #include "base/memory/linked_ptr.h"
|
| #include "chrome/browser/extensions/api/declarative_webrequest/request_stages.h"
|
| #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_rule.h"
|
| +#include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h"
|
| #include "chrome/common/extensions/api/events.h"
|
| #include "googleurl/src/gurl.h"
|
| #include "unicode/regex.h"
|
| @@ -43,7 +44,6 @@ typedef linked_ptr<extension_web_request_api_helpers::EventResponseDelta>
|
| LinkedPtrEventResponseDelta;
|
|
|
| // Base class for all WebRequestActions of the declarative Web Request API.
|
| -//
|
| class WebRequestAction {
|
| public:
|
| // Type identifiers for concrete WebRequestActions.
|
| @@ -58,6 +58,8 @@ class WebRequestAction {
|
| ACTION_ADD_RESPONSE_HEADER,
|
| ACTION_REMOVE_RESPONSE_HEADER,
|
| ACTION_IGNORE_RULES,
|
| + ACTION_MODIFY_REQUEST_COOKIE,
|
| + ACTION_MODIFY_RESPONSE_COOKIE,
|
| };
|
|
|
| WebRequestAction();
|
| @@ -389,8 +391,55 @@ class WebRequestIgnoreRulesAction : public WebRequestAction {
|
| DISALLOW_COPY_AND_ASSIGN(WebRequestIgnoreRulesAction);
|
| };
|
|
|
| -// TODO(battre) Implement further actions:
|
| -// Redirect by RegEx, Cookie manipulations, ...
|
| +// Action that instructs to modify (add, edit, remove) a request cookie.
|
| +class WebRequestRequestCookieAction : public WebRequestAction {
|
| + public:
|
| + typedef extension_web_request_api_helpers::RequestCookieModification
|
| + RequestCookieModification;
|
| +
|
| + explicit WebRequestRequestCookieAction(
|
| + linked_ptr<RequestCookieModification> request_cookie_modification);
|
| + virtual ~WebRequestRequestCookieAction();
|
| +
|
| + // Implementation of WebRequestAction:
|
| + virtual int GetStages() const OVERRIDE;
|
| + virtual Type GetType() const OVERRIDE;
|
| + virtual LinkedPtrEventResponseDelta CreateDelta(
|
| + net::URLRequest* request,
|
| + RequestStages request_stage,
|
| + const WebRequestRule::OptionalRequestData& optional_request_data,
|
| + const std::string& extension_id,
|
| + const base::Time& extension_install_time) const OVERRIDE;
|
| +
|
| + private:
|
| + linked_ptr<RequestCookieModification> request_cookie_modification_;
|
| + DISALLOW_COPY_AND_ASSIGN(WebRequestRequestCookieAction);
|
| +};
|
| +
|
| +// Action that instructs to modify (add, edit, remove) a response cookie.
|
| +class WebRequestResponseCookieAction : public WebRequestAction {
|
| + public:
|
| + typedef extension_web_request_api_helpers::ResponseCookieModification
|
| + ResponseCookieModification;
|
| +
|
| + explicit WebRequestResponseCookieAction(
|
| + linked_ptr<ResponseCookieModification> response_cookie_modification);
|
| + virtual ~WebRequestResponseCookieAction();
|
| +
|
| + // Implementation of WebRequestAction:
|
| + virtual int GetStages() const OVERRIDE;
|
| + virtual Type GetType() const OVERRIDE;
|
| + virtual LinkedPtrEventResponseDelta CreateDelta(
|
| + net::URLRequest* request,
|
| + RequestStages request_stage,
|
| + const WebRequestRule::OptionalRequestData& optional_request_data,
|
| + const std::string& extension_id,
|
| + const base::Time& extension_install_time) const OVERRIDE;
|
| +
|
| + private:
|
| + linked_ptr<ResponseCookieModification> response_cookie_modification_;
|
| + DISALLOW_COPY_AND_ASSIGN(WebRequestResponseCookieAction);
|
| +};
|
|
|
| } // namespace extensions
|
|
|
|
|