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

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

Issue 11547033: Implement declarativeContent API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years 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 08e5fa7efb0d3d944d53c3672e712834e1cedf0f..8fe8c204779c754bfbf9a843707e5a610a752f85 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"
@@ -428,70 +429,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,
+ const 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
@@ -516,7 +474,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());
@@ -549,7 +507,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());
@@ -587,7 +545,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());
@@ -623,7 +581,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());
@@ -712,7 +670,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());
@@ -756,7 +714,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());
@@ -788,7 +746,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());
@@ -822,7 +780,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());
@@ -867,7 +825,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());
@@ -923,7 +881,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());
@@ -951,7 +909,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());
@@ -984,7 +942,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());

Powered by Google App Engine
This is Rietveld 408576698