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 65ccef233a3b9c670a81068548c834fc326ff35d..934b556e2abbd03bb994acd57f64f0e23f87980e 100644 |
--- a/chrome/browser/extensions/api/declarative_webrequest/webrequest_action.h |
+++ b/chrome/browser/extensions/api/declarative_webrequest/webrequest_action.h |
@@ -14,6 +14,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" |
@@ -38,8 +39,6 @@ typedef linked_ptr<extension_web_request_api_helpers::EventResponseDelta> |
LinkedPtrEventResponseDelta; |
// Base class for all WebRequestActions of the declarative Web Request API. |
-// |
-// TODO(battre): Add method that corresponds to executing the action. |
class WebRequestAction { |
public: |
// Type identifiers for concrete WebRequestActions. |
@@ -54,6 +53,7 @@ class WebRequestAction { |
ACTION_ADD_RESPONSE_HEADER, |
ACTION_REMOVE_RESPONSE_HEADER, |
ACTION_IGNORE_RULES, |
+ ACTION_MODIFY_COOKIE, |
}; |
WebRequestAction(); |
@@ -363,8 +363,33 @@ 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 cookie. |
+class WebRequestCookieAction : public WebRequestAction { |
+ public: |
+ typedef extension_web_request_api_helpers::RequestCookieModification |
+ RequestCookieModification; |
+ typedef extension_web_request_api_helpers::ResponseCookieModification |
+ ResponseCookieModification; |
+ |
+ WebRequestCookieAction( |
+ linked_ptr<RequestCookieModification> request_cookie_modification, |
+ linked_ptr<ResponseCookieModification> response_cookie_modification); |
+ virtual ~WebRequestCookieAction(); |
+ |
+ // 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_; |
+ linked_ptr<ResponseCookieModification> response_cookie_modification_; |
+}; |
} // namespace extensions |