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

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

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
« no previous file with comments | « chrome/common/extensions/matcher/OWNERS ('k') | chrome/common/extensions/matcher/regex_set_matcher.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/common/extensions/matcher/regex_set_matcher.h
diff --git a/chrome/common/extensions/matcher/regex_set_matcher.h b/chrome/common/extensions/matcher/regex_set_matcher.h
deleted file mode 100644
index 79c6641b5870e7bc446d819f8aa39e3247eb1628..0000000000000000000000000000000000000000
--- a/chrome/common/extensions/matcher/regex_set_matcher.h
+++ /dev/null
@@ -1,80 +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.
-
-#ifndef CHROME_COMMON_EXTENSIONS_MATCHER_REGEX_SET_MATCHER_H_
-#define CHROME_COMMON_EXTENSIONS_MATCHER_REGEX_SET_MATCHER_H_
-
-#include <map>
-#include <set>
-#include <string>
-#include <vector>
-
-#include "base/memory/scoped_ptr.h"
-#include "chrome/common/extensions/matcher/string_pattern.h"
-#include "chrome/common/extensions/matcher/substring_set_matcher.h"
-
-namespace re2 {
-class FilteredRE2;
-}
-
-namespace extensions {
-
-// Efficiently matches URLs against a collection of regular expressions,
-// using FilteredRE2 to reduce the number of regexes that must be matched
-// by pre-filtering with substring matching. See:
-// http://swtch.com/~rsc/regexp/regexp3.html#analysis
-class RegexSetMatcher {
- public:
- RegexSetMatcher();
- virtual ~RegexSetMatcher();
-
- // Adds the regex patterns in |regex_list| to the matcher. Also rebuilds
- // the FilteredRE2 matcher; thus, for efficiency, prefer adding multiple
- // patterns at once.
- // Ownership of the patterns remains with the caller.
- void AddPatterns(const std::vector<const StringPattern*>& regex_list);
-
- // Removes all regex patterns.
- void ClearPatterns();
-
- // Appends the IDs of regular expressions in our set that match the |text|
- // to |matches|.
- bool Match(const std::string& text,
- std::set<StringPattern::ID>* matches) const;
-
- private:
- typedef int RE2ID;
- typedef std::map<StringPattern::ID, const StringPattern*> RegexMap;
- typedef std::vector<StringPattern::ID> RE2IDMap;
-
- // Use Aho-Corasick SubstringSetMatcher to find which literal patterns
- // match the |text|.
- std::vector<RE2ID> FindSubstringMatches(const std::string& text) const;
-
- // Rebuild FilteredRE2 from scratch. Needs to be called whenever
- // our set of regexes changes.
- // TODO(yoz): investigate if it could be done incrementally;
- // apparently not supported by FilteredRE2.
- void RebuildMatcher();
-
- // Clean up StringPatterns in |substring_patterns_|.
- void DeleteSubstringPatterns();
-
- // Mapping of regex StringPattern::IDs to regexes.
- RegexMap regexes_;
- // Mapping of RE2IDs from FilteredRE2 (which are assigned in order)
- // to regex StringPattern::IDs.
- RE2IDMap re2_id_map_;
-
- scoped_ptr<re2::FilteredRE2> filtered_re2_;
- scoped_ptr<SubstringSetMatcher> substring_matcher_;
-
- // The substring patterns from FilteredRE2, which are used in
- // |substring_matcher_| but whose lifetime is managed here.
- std::vector<const StringPattern*> substring_patterns_;
-};
-
-} // namespace extensions
-
-#endif // CHROME_COMMON_EXTENSIONS_MATCHER_REGEX_SET_MATCHER_H_
« no previous file with comments | « chrome/common/extensions/matcher/OWNERS ('k') | chrome/common/extensions/matcher/regex_set_matcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698