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()); |