| Index: components/subresource_filter/core/common/indexed_ruleset.cc
|
| diff --git a/components/subresource_filter/core/common/indexed_ruleset.cc b/components/subresource_filter/core/common/indexed_ruleset.cc
|
| index 3771632159e86a24477aebeecdd15609c00281e1..c0e1b163ac8a546c78a13584d2c3aeac55eaf484 100644
|
| --- a/components/subresource_filter/core/common/indexed_ruleset.cc
|
| +++ b/components/subresource_filter/core/common/indexed_ruleset.cc
|
| @@ -13,7 +13,6 @@
|
| #include "components/subresource_filter/core/common/first_party_origin.h"
|
| #include "components/subresource_filter/core/common/ngram_extractor.h"
|
| #include "components/subresource_filter/core/common/url_pattern.h"
|
| -#include "components/subresource_filter/core/common/url_pattern_matching.h"
|
| #include "third_party/flatbuffers/src/include/flatbuffers/flatbuffers.h"
|
|
|
| namespace subresource_filter {
|
| @@ -64,15 +63,10 @@ class UrlRuleFlatBufferConverter {
|
|
|
| auto url_pattern_offset = builder->CreateString(rule_.url_pattern());
|
|
|
| - std::vector<uint8_t> failure_function;
|
| - BuildFailureFunction(UrlPattern(rule_), &failure_function);
|
| - auto failure_function_offset =
|
| - builder->CreateVector(failure_function.data(), failure_function.size());
|
| -
|
| return flat::CreateUrlRule(*builder, options_, element_types_,
|
| activation_types_, url_pattern_type_,
|
| anchor_left_, anchor_right_, domains_offset,
|
| - url_pattern_offset, failure_function_offset);
|
| + url_pattern_offset);
|
| }
|
|
|
| private:
|
| @@ -151,13 +145,6 @@ class UrlRuleFlatBufferConverter {
|
| }
|
|
|
| bool InitializeUrlPattern() {
|
| - if (rule_.url_pattern().size() >
|
| - static_cast<size_t>(std::numeric_limits<uint8_t>::max())) {
|
| - // Failure function can not always be stored as an array of uint8_t in
|
| - // case the pattern's length exceeds 255.
|
| - return false;
|
| - }
|
| -
|
| switch (rule_.url_pattern_type()) {
|
| case proto::URL_PATTERN_TYPE_SUBSTRING:
|
| url_pattern_type_ = flat::UrlPatternType_SUBSTRING;
|
| @@ -165,10 +152,9 @@ class UrlRuleFlatBufferConverter {
|
| case proto::URL_PATTERN_TYPE_WILDCARDED:
|
| url_pattern_type_ = flat::UrlPatternType_WILDCARDED;
|
| break;
|
| - case proto::URL_PATTERN_TYPE_REGEXP:
|
| - url_pattern_type_ = flat::UrlPatternType_REGEXP;
|
| - break;
|
|
|
| + // TODO(pkalinnikov): Implement REGEXP rules matching.
|
| + case proto::URL_PATTERN_TYPE_REGEXP:
|
| default:
|
| return false; // Unsupported URL pattern type.
|
| }
|
| @@ -200,7 +186,7 @@ class UrlRuleFlatBufferConverter {
|
| // RulesetIndexer --------------------------------------------------------------
|
|
|
| // static
|
| -const int RulesetIndexer::kIndexedFormatVersion = 12;
|
| +const int RulesetIndexer::kIndexedFormatVersion = 13;
|
|
|
| RulesetIndexer::MutableUrlPatternIndex::MutableUrlPatternIndex() = default;
|
| RulesetIndexer::MutableUrlPatternIndex::~MutableUrlPatternIndex() = default;
|
| @@ -218,11 +204,9 @@ bool RulesetIndexer::AddUrlRule(const proto::UrlRule& rule) {
|
| (rule.semantics() == proto::RULE_SEMANTICS_BLACKLIST ? &blacklist_
|
| : &whitelist_);
|
|
|
| - NGram ngram = 0;
|
| - if (rule.url_pattern_type() != proto::URL_PATTERN_TYPE_REGEXP) {
|
| - ngram =
|
| - GetMostDistinctiveNGram(index_part->ngram_index, rule.url_pattern());
|
| - }
|
| + DCHECK_NE(rule.url_pattern_type(), proto::URL_PATTERN_TYPE_REGEXP);
|
| + NGram ngram =
|
| + GetMostDistinctiveNGram(index_part->ngram_index, rule.url_pattern());
|
|
|
| if (ngram) {
|
| index_part->ngram_index[ngram].push_back(rule_offset);
|
| @@ -405,16 +389,9 @@ bool MatchesAny(const FlatUrlRuleList* rules,
|
| return false;
|
| for (const flat::UrlRule* rule : *rules) {
|
| DCHECK_NE(rule, nullptr);
|
| -
|
| - if (rule->url_pattern_type() != flat::UrlPatternType_REGEXP) {
|
| - const uint8_t* begin = rule->failure_function()->data();
|
| - const uint8_t* end = begin + rule->failure_function()->size();
|
| - if (!IsUrlPatternMatch(url, UrlPattern(*rule), begin, end))
|
| - continue;
|
| - } else {
|
| - // TODO(pkalinnikov): Implement REGEXP rules matching.
|
| + DCHECK_NE(rule->url_pattern_type(), flat::UrlPatternType_REGEXP);
|
| + if (!UrlPattern(*rule).MatchesUrl(url))
|
| continue;
|
| - }
|
|
|
| // TODO(pkalinnikov): Match the medatada before the URL pattern, but maybe
|
| // excluding the domain list.
|
|
|