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

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

Issue 11572061: Create DeclarativeConditionSet, DeclarativeActionSet, and DeclarativeRule templates (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix kalman's nit Created 7 years, 11 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.cc
diff --git a/chrome/browser/extensions/api/declarative_webrequest/webrequest_action.cc b/chrome/browser/extensions/api/declarative_webrequest/webrequest_action.cc
index 8d573dea3f26aa506ac8cf1e3d912c28ad3e7ef1..f0b1fd7edf285e567df7ecc9bdc56570bd4404ec 100644
--- a/chrome/browser/extensions/api/declarative_webrequest/webrequest_action.cc
+++ b/chrome/browser/extensions/api/declarative_webrequest/webrequest_action.cc
@@ -12,6 +12,7 @@
#include "base/string_util.h"
#include "base/values.h"
#include "chrome/browser/extensions/api/declarative_webrequest/request_stage.h"
+#include "chrome/browser/extensions/api/declarative_webrequest/webrequest_condition.h"
#include "chrome/browser/extensions/api/declarative_webrequest/webrequest_constants.h"
#include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h"
#include "chrome/browser/extensions/api/web_request/web_request_permissions.h"
@@ -440,70 +441,26 @@ scoped_ptr<WebRequestAction> WebRequestAction::Create(
return scoped_ptr<WebRequestAction>();
}
-
-//
-// WebRequestActionSet
-//
-
-WebRequestActionSet::WebRequestActionSet(const Actions& actions)
- : actions_(actions) {}
-
-WebRequestActionSet::~WebRequestActionSet() {}
-
-// static
-scoped_ptr<WebRequestActionSet> WebRequestActionSet::Create(
- const AnyVector& actions,
- std::string* error,
- bool* bad_message) {
- *error = "";
- *bad_message = false;
- Actions result;
-
- for (AnyVector::const_iterator i = actions.begin();
- i != actions.end(); ++i) {
- CHECK(i->get());
- scoped_ptr<WebRequestAction> action =
- WebRequestAction::Create((*i)->value(), error, bad_message);
- if (!error->empty() || *bad_message)
- return scoped_ptr<WebRequestActionSet>(NULL);
- result.push_back(make_linked_ptr(action.release()));
- }
-
- return scoped_ptr<WebRequestActionSet>(new WebRequestActionSet(result));
-}
-
-std::list<LinkedPtrEventResponseDelta> WebRequestActionSet::CreateDeltas(
- const ExtensionInfoMap* extension_info_map,
- const std::string& extension_id,
- const WebRequestRule::RequestData& request_data,
- bool crosses_incognito,
- const base::Time& extension_install_time) const {
- std::list<LinkedPtrEventResponseDelta> result;
- for (Actions::const_iterator i = actions_.begin(); i != actions_.end(); ++i) {
- if (!(*i)->HasPermission(extension_info_map, extension_id,
- request_data.request, crosses_incognito))
- continue;
- if ((*i)->GetStages() & request_data.stage) {
- LinkedPtrEventResponseDelta delta = (*i)->CreateDelta(
- request_data, extension_id, extension_install_time);
- if (delta.get()) {
- if ((*i)->DeltaHasPermission(extension_info_map, extension_id,
- request_data.request, crosses_incognito,
- delta))
- result.push_back(delta);
- }
+void WebRequestAction::Apply(const std::string& extension_id,
+ base::Time extension_install_time,
+ ApplyInfo* apply_info) const {
+ if (!HasPermission(apply_info->extension_info_map, extension_id,
+ apply_info->request_data.request,
+ apply_info->crosses_incognito))
+ return;
+ if (GetStages() & apply_info->request_data.stage) {
+ LinkedPtrEventResponseDelta delta = CreateDelta(
+ apply_info->request_data, extension_id, extension_install_time);
+ if (delta.get()) {
+ if (DeltaHasPermission(apply_info->extension_info_map, extension_id,
+ apply_info->request_data.request,
+ apply_info->crosses_incognito,
+ delta))
+ apply_info->deltas->push_back(delta);
}
}
- return result;
}
-int WebRequestActionSet::GetMinimumPriority() const {
- int minimum_priority = std::numeric_limits<int>::min();
- for (Actions::const_iterator i = actions_.begin(); i != actions_.end(); ++i) {
- minimum_priority = std::max(minimum_priority, (*i)->GetMinimumPriority());
- }
- return minimum_priority;
-}
//
// WebRequestCancelAction
@@ -528,7 +485,7 @@ WebRequestCancelAction::GetHostPermissionsStrategy() const {
}
LinkedPtrEventResponseDelta WebRequestCancelAction::CreateDelta(
- const WebRequestRule::RequestData& request_data,
+ const DeclarativeWebRequestData& request_data,
const std::string& extension_id,
const base::Time& extension_install_time) const {
CHECK(request_data.stage & GetStages());
@@ -561,7 +518,7 @@ WebRequestRedirectAction::GetHostPermissionsStrategy() const {
}
LinkedPtrEventResponseDelta WebRequestRedirectAction::CreateDelta(
- const WebRequestRule::RequestData& request_data,
+ const DeclarativeWebRequestData& request_data,
const std::string& extension_id,
const base::Time& extension_install_time) const {
CHECK(request_data.stage & GetStages());
@@ -599,7 +556,7 @@ WebRequestRedirectToTransparentImageAction::GetHostPermissionsStrategy() const {
LinkedPtrEventResponseDelta
WebRequestRedirectToTransparentImageAction::CreateDelta(
- const WebRequestRule::RequestData& request_data,
+ const DeclarativeWebRequestData& request_data,
const std::string& extension_id,
const base::Time& extension_install_time) const {
CHECK(request_data.stage & GetStages());
@@ -635,7 +592,7 @@ WebRequestRedirectToEmptyDocumentAction::GetHostPermissionsStrategy() const {
LinkedPtrEventResponseDelta
WebRequestRedirectToEmptyDocumentAction::CreateDelta(
- const WebRequestRule::RequestData& request_data,
+ const DeclarativeWebRequestData& request_data,
const std::string& extension_id,
const base::Time& extension_install_time) const {
CHECK(request_data.stage & GetStages());
@@ -724,7 +681,7 @@ WebRequestRedirectByRegExAction::GetHostPermissionsStrategy() const {
}
LinkedPtrEventResponseDelta WebRequestRedirectByRegExAction::CreateDelta(
- const WebRequestRule::RequestData& request_data,
+ const DeclarativeWebRequestData& request_data,
const std::string& extension_id,
const base::Time& extension_install_time) const {
CHECK(request_data.stage & GetStages());
@@ -768,7 +725,7 @@ WebRequestSetRequestHeaderAction::GetType() const {
LinkedPtrEventResponseDelta
WebRequestSetRequestHeaderAction::CreateDelta(
- const WebRequestRule::RequestData& request_data,
+ const DeclarativeWebRequestData& request_data,
const std::string& extension_id,
const base::Time& extension_install_time) const {
CHECK(request_data.stage & GetStages());
@@ -800,7 +757,7 @@ WebRequestRemoveRequestHeaderAction::GetType() const {
LinkedPtrEventResponseDelta
WebRequestRemoveRequestHeaderAction::CreateDelta(
- const WebRequestRule::RequestData& request_data,
+ const DeclarativeWebRequestData& request_data,
const std::string& extension_id,
const base::Time& extension_install_time) const {
CHECK(request_data.stage & GetStages());
@@ -834,7 +791,7 @@ WebRequestAddResponseHeaderAction::GetType() const {
LinkedPtrEventResponseDelta
WebRequestAddResponseHeaderAction::CreateDelta(
- const WebRequestRule::RequestData& request_data,
+ const DeclarativeWebRequestData& request_data,
const std::string& extension_id,
const base::Time& extension_install_time) const {
CHECK(request_data.stage & GetStages());
@@ -879,7 +836,7 @@ WebRequestRemoveResponseHeaderAction::GetType() const {
LinkedPtrEventResponseDelta
WebRequestRemoveResponseHeaderAction::CreateDelta(
- const WebRequestRule::RequestData& request_data,
+ const DeclarativeWebRequestData& request_data,
const std::string& extension_id,
const base::Time& extension_install_time) const {
CHECK(request_data.stage & GetStages());
@@ -935,7 +892,7 @@ WebRequestIgnoreRulesAction::GetHostPermissionsStrategy() const {
}
LinkedPtrEventResponseDelta WebRequestIgnoreRulesAction::CreateDelta(
- const WebRequestRule::RequestData& request_data,
+ const DeclarativeWebRequestData& request_data,
const std::string& extension_id,
const base::Time& extension_install_time) const {
CHECK(request_data.stage & GetStages());
@@ -963,7 +920,7 @@ WebRequestAction::Type WebRequestRequestCookieAction::GetType() const {
}
LinkedPtrEventResponseDelta WebRequestRequestCookieAction::CreateDelta(
- const WebRequestRule::RequestData& request_data,
+ const DeclarativeWebRequestData& request_data,
const std::string& extension_id,
const base::Time& extension_install_time) const {
CHECK(request_data.stage & GetStages());
@@ -996,7 +953,7 @@ WebRequestAction::Type WebRequestResponseCookieAction::GetType() const {
}
LinkedPtrEventResponseDelta WebRequestResponseCookieAction::CreateDelta(
- const WebRequestRule::RequestData& request_data,
+ const DeclarativeWebRequestData& request_data,
const std::string& extension_id,
const base::Time& extension_install_time) const {
CHECK(request_data.stage & GetStages());
@@ -1030,7 +987,7 @@ WebRequestAction::Type WebRequestSendMessageToExtensionAction::GetType() const {
}
LinkedPtrEventResponseDelta WebRequestSendMessageToExtensionAction::CreateDelta(
- const WebRequestRule::RequestData& request_data,
+ const DeclarativeWebRequestData& request_data,
const std::string& extension_id,
const base::Time& extension_install_time) const {
CHECK(request_data.stage & GetStages());

Powered by Google App Engine
This is Rietveld 408576698