Chromium Code Reviews| 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..c1ad5cad3b05ab15f16f14414458151c766946ed 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,27 @@ 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); |
|
battre
2013/01/16 15:41:10
nit: move to previous line?
Jeffrey Yasskin
2013/01/16 23:11:14
Done.
|
| + 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 +486,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 +519,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 +557,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 +593,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 +682,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 +726,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 +758,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 +792,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 +837,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 +893,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 +921,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 +954,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 +988,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()); |