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

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

Issue 11572061: Create DeclarativeConditionSet, DeclarativeActionSet, and DeclarativeRule templates (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase to Vaclav's CL and fix Dominic's comments 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_condition.cc
diff --git a/chrome/browser/extensions/api/declarative_webrequest/webrequest_condition.cc b/chrome/browser/extensions/api/declarative_webrequest/webrequest_condition.cc
index 30217b5dae6ade2c95551737a9256f29c8226f12..8d5aa2242a52a41b1f3c380c5f6f94830cb0f34b 100644
--- a/chrome/browser/extensions/api/declarative_webrequest/webrequest_condition.cc
+++ b/chrome/browser/extensions/api/declarative_webrequest/webrequest_condition.cc
@@ -11,7 +11,6 @@
#include "chrome/browser/extensions/api/declarative_webrequest/request_stage.h"
#include "chrome/browser/extensions/api/declarative_webrequest/webrequest_condition_attribute.h"
#include "chrome/browser/extensions/api/declarative_webrequest/webrequest_constants.h"
-#include "chrome/browser/extensions/api/declarative_webrequest/webrequest_constants.h"
#include "chrome/common/extensions/matcher/url_matcher.h"
#include "chrome/common/extensions/matcher/url_matcher_factory.h"
#include "net/url_request/url_request.h"
@@ -58,11 +57,10 @@ WebRequestCondition::WebRequestCondition(
WebRequestCondition::~WebRequestCondition() {}
bool WebRequestCondition::IsFulfilled(
- const std::set<URLMatcherConditionSet::ID>& url_matches,
- const WebRequestRule::RequestData& request_data) const {
+ const DeclarativeWebRequestData& request_data) const {
// Check a UrlFilter attribute if present.
if (url_matcher_conditions_.get() &&
- !ContainsKey(url_matches, url_matcher_conditions_->id()))
+ !ContainsKey(*request_data.url_matches, url_matcher_conditions_->id()))
return false;
// All condition attributes must be fulfilled for a fulfilled condition.
@@ -148,76 +146,4 @@ scoped_ptr<WebRequestCondition> WebRequestCondition::Create(
return result.Pass();
}
-//
-// WebRequestConditionSet
-//
-
-namespace {
-
-// Returns whether there is a condition among |conditions| which has no
-// URLMatcherConditionSet assigned.
-bool HasConditionWithoutUrlMatcher(
- const WebRequestConditionSet::Conditions& conditions) {
- for (WebRequestConditionSet::Conditions::const_iterator i =
- conditions.begin();
- i != conditions.end(); ++i) {
- if (!(*i)->url_matcher_condition_set().get())
- return true;
- }
- return false;
-}
-
-} // namespace
-
-WebRequestConditionSet::WebRequestConditionSet(
- const WebRequestConditionSet::Conditions& conditions)
- : conditions_(conditions),
- has_conditions_without_urls_(HasConditionWithoutUrlMatcher(conditions)) {
-}
-
-WebRequestConditionSet::~WebRequestConditionSet() {}
-
-bool WebRequestConditionSet::IsFulfilled(
- const std::set<URLMatcherConditionSet::ID>& url_matches,
- const WebRequestRule::RequestData& request_data) const {
- for (Conditions::const_iterator i = conditions_.begin();
- i != conditions_.end(); ++i) {
- if ((*i)->IsFulfilled(url_matches, request_data))
- return true;
- }
- return false;
-}
-
-void WebRequestConditionSet::GetURLMatcherConditionSets(
- URLMatcherConditionSet::Vector* condition_sets) const {
- for (Conditions::const_iterator i = conditions_.begin();
- i != conditions_.end(); ++i) {
- scoped_refptr<URLMatcherConditionSet> set =
- (*i)->url_matcher_condition_set();
- if (set.get())
- condition_sets->push_back(set);
- }
-}
-
-// static
-scoped_ptr<WebRequestConditionSet> WebRequestConditionSet::Create(
- URLMatcherConditionFactory* url_matcher_condition_factory,
- const AnyVector& conditions,
- std::string* error) {
- WebRequestConditionSet::Conditions result;
-
- for (AnyVector::const_iterator i = conditions.begin();
- i != conditions.end(); ++i) {
- CHECK(i->get());
- scoped_ptr<WebRequestCondition> condition =
- WebRequestCondition::Create(url_matcher_condition_factory,
- (*i)->value(), error);
- if (!error->empty())
- return scoped_ptr<WebRequestConditionSet>(NULL);
- result.push_back(make_linked_ptr(condition.release()));
- }
-
- return scoped_ptr<WebRequestConditionSet>(new WebRequestConditionSet(result));
-}
-
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698