Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5157)

Unified Diff: chrome/browser/extensions/api/declarative_webrequest/webrequest_action.h

Issue 10447090: Support Cookie modifications in Declarative WebRequest API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merged with ToT Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698