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

Unified Diff: chrome/common/extensions/matcher/regex_set_matcher.cc

Issue 12092096: Move c/c/extensions/matcher/ to top level extension dir (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: TOT 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/common/extensions/matcher/regex_set_matcher.cc
diff --git a/chrome/common/extensions/matcher/regex_set_matcher.cc b/chrome/common/extensions/matcher/regex_set_matcher.cc
deleted file mode 100644
index d2fc250caad4892651b59c669300a6f08204491d..0000000000000000000000000000000000000000
--- a/chrome/common/extensions/matcher/regex_set_matcher.cc
+++ /dev/null
@@ -1,110 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/common/extensions/matcher/regex_set_matcher.h"
-
-#include "base/logging.h"
-#include "base/string_util.h"
-#include "base/stl_util.h"
-#include "chrome/common/extensions/matcher/substring_set_matcher.h"
-#include "third_party/re2/re2/filtered_re2.h"
-#include "third_party/re2/re2/re2.h"
-
-namespace extensions {
-
-RegexSetMatcher::RegexSetMatcher() {}
-
-RegexSetMatcher::~RegexSetMatcher() {
- DeleteSubstringPatterns();
-}
-
-void RegexSetMatcher::AddPatterns(
- const std::vector<const StringPattern*>& regex_list) {
- if (regex_list.empty())
- return;
- for (size_t i = 0; i < regex_list.size(); ++i) {
- regexes_[regex_list[i]->id()] = regex_list[i];
- }
-
- RebuildMatcher();
-}
-
-void RegexSetMatcher::ClearPatterns() {
- regexes_.clear();
- RebuildMatcher();
-}
-
-bool RegexSetMatcher::Match(const std::string& text,
- std::set<StringPattern::ID>* matches) const {
- size_t old_number_of_matches = matches->size();
- if (regexes_.empty())
- return false;
- if (!filtered_re2_.get()) {
- LOG(ERROR) << "RegexSetMatcher was not initialized";
- return false;
- }
-
- // FilteredRE2 expects lowercase for prefiltering, but we still
- // match case-sensitively.
- std::vector<RE2ID> atoms(FindSubstringMatches(
- StringToLowerASCII(text)));
-
- std::vector<RE2ID> re2_ids;
- filtered_re2_->AllMatches(text, atoms, &re2_ids);
-
- std::set<StringPattern::ID> matched_ids;
- for (size_t i = 0; i < re2_ids.size(); ++i) {
- StringPattern::ID id = re2_id_map_[re2_ids[i]];
- matches->insert(id);
- }
- return old_number_of_matches != matches->size();
-}
-
-std::vector<RegexSetMatcher::RE2ID> RegexSetMatcher::FindSubstringMatches(
- const std::string& text) const {
- std::set<int> atoms_set;
- substring_matcher_->Match(text, &atoms_set);
- return std::vector<RE2ID>(atoms_set.begin(), atoms_set.end());
-}
-
-void RegexSetMatcher::RebuildMatcher() {
- re2_id_map_.clear();
- filtered_re2_.reset(new re2::FilteredRE2());
- if (regexes_.empty())
- return;
-
- for (RegexMap::iterator it = regexes_.begin(); it != regexes_.end(); ++it) {
- RE2ID re2_id;
- RE2::ErrorCode error = filtered_re2_->Add(
- it->second->pattern(), RE2::DefaultOptions, &re2_id);
- if (error == RE2::NoError) {
- DCHECK_EQ(static_cast<RE2ID>(re2_id_map_.size()), re2_id);
- re2_id_map_.push_back(it->first);
- } else {
- // Unparseable regexes should have been rejected already in
- // URLMatcherFactory::CreateURLMatchesCondition.
- LOG(ERROR) << "Could not parse regex (id=" << it->first << ", "
- << it->second->pattern() << ")";
- }
- }
-
- std::vector<std::string> strings_to_match;
- filtered_re2_->Compile(&strings_to_match);
-
- substring_matcher_.reset(new SubstringSetMatcher);
- DeleteSubstringPatterns();
- // Build SubstringSetMatcher from |strings_to_match|.
- // SubstringSetMatcher doesn't own its strings.
- for (size_t i = 0; i < strings_to_match.size(); ++i) {
- substring_patterns_.push_back(
- new StringPattern(strings_to_match[i], i));
- }
- substring_matcher_->RegisterPatterns(substring_patterns_);
-}
-
-void RegexSetMatcher::DeleteSubstringPatterns() {
- STLDeleteElements(&substring_patterns_);
-}
-
-} // namespace extensions
« no previous file with comments | « chrome/common/extensions/matcher/regex_set_matcher.h ('k') | chrome/common/extensions/matcher/regex_set_matcher_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698