Migrate blocklist and allowlists to use base::Value::List
Triggered by the migration of PrefService::GetList to
PrefService::GetValueList.
Bug: 1341998
Change-Id: I57de2ba691fe8a42d68c3067675678e0770ceba7
Tests: Existing tests
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3687660
Commit-Queue: Roland Bock <[email protected]>
Reviewed-by: Gabriel Charette <[email protected]>
Owners-Override: Gabriel Charette <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1024834}
diff --git a/components/enterprise/content/clipboard_restriction_service.cc b/components/enterprise/content/clipboard_restriction_service.cc
index cd87f4e..ad34c6b 100644
--- a/components/enterprise/content/clipboard_restriction_service.cc
+++ b/components/enterprise/content/clipboard_restriction_service.cc
@@ -83,11 +83,6 @@
enable_url_matcher_ = std::make_unique<url_matcher::URLMatcher>();
disable_url_matcher_ = std::make_unique<url_matcher::URLMatcher>();
- // Convert the `base::Value`s to `base::ListValue`s because that's what
- // AddFilters expects.
- const base::ListValue* enable_list = &base::Value::AsListValue(*enable);
- const base::ListValue* disable_list = &base::Value::AsListValue(*disable);
-
// For the following 2 calls, the second param is a bool called `allow`. In
// this context, we're not concerned about a URL being "allowed" or not, but
// rather with this prevention feature being enabled on a given URL. Because
@@ -98,9 +93,9 @@
// same policy format as the content analysis connector, which also has
// "enable" and "disable" lists used in this way.
url_matcher::util::AddFilters(enable_url_matcher_.get(), true, &next_id_,
- enable_list);
+ enable->GetList());
url_matcher::util::AddFilters(disable_url_matcher_.get(), false, &next_id_,
- disable_list);
+ disable->GetList());
absl::optional<int> min_data_size = settings->FindIntKey(
enterprise::content::kCopyPreventionSettingsMinDataSizeFieldName);
@@ -140,4 +135,4 @@
KeyedService* ClipboardRestrictionServiceFactory::BuildServiceInstanceFor(
content::BrowserContext* context) const {
return new ClipboardRestrictionService(user_prefs::UserPrefs::Get(context));
-}
\ No newline at end of file
+}
diff --git a/components/invalidation/impl/invalidator_registrar_with_memory.cc b/components/invalidation/impl/invalidator_registrar_with_memory.cc
index e470156..51a5692b 100644
--- a/components/invalidation/impl/invalidator_registrar_with_memory.cc
+++ b/components/invalidation/impl/invalidator_registrar_with_memory.cc
@@ -123,8 +123,8 @@
if (migrate_old_prefs) {
MigratePrefs(prefs_, sender_id_);
}
- const base::Value* pref_data =
- prefs_->Get(kTopicsToHandler)->FindDictKey(sender_id_);
+ const base::Value::Dict* pref_data =
+ prefs_->GetValueDict(kTopicsToHandler).FindDict(sender_id_);
if (!pref_data) {
DictionaryPrefUpdate update(prefs_, kTopicsToHandler);
update->SetKey(sender_id_, base::Value(base::Value::Type::DICTIONARY));
@@ -133,7 +133,7 @@
// Restore |handler_name_to_subscribed_topics_map_| from prefs.
if (!base::FeatureList::IsEnabled(kRestoreInterestingTopicsFeature))
return;
- for (auto it : pref_data->DictItems()) {
+ for (auto it : *pref_data) {
const std::string& topic_name = it.first;
if (it.second.is_dict()) {
const std::string* handler = it.second.FindStringKey(kHandler);
diff --git a/components/policy/core/browser/url_blocklist_manager.cc b/components/policy/core/browser/url_blocklist_manager.cc
index 555636a..2451c25 100644
--- a/components/policy/core/browser/url_blocklist_manager.cc
+++ b/components/policy/core/browser/url_blocklist_manager.cc
@@ -77,18 +77,18 @@
#endif
// Returns a blocklist based on the given |block| and |allow| pattern lists.
-std::unique_ptr<URLBlocklist> BuildBlocklist(const base::Value* block,
- const base::Value* allow) {
+std::unique_ptr<URLBlocklist> BuildBlocklist(const base::Value::List* block,
+ const base::Value::List* allow) {
auto blocklist = std::make_unique<URLBlocklist>();
if (block)
- blocklist->Block(&base::Value::AsListValue(*block));
+ blocklist->Block(*block);
if (allow)
- blocklist->Allow(&base::Value::AsListValue(*allow));
+ blocklist->Allow(*allow);
return blocklist;
}
-const base::Value* GetPrefValue(PrefService* pref_service,
- absl::optional<std::string> pref_path) {
+const base::Value::List* GetPrefList(PrefService* pref_service,
+ absl::optional<std::string> pref_path) {
DCHECK(pref_service);
if (!pref_path)
@@ -97,7 +97,7 @@
DCHECK(!pref_path->empty());
return pref_service->HasPrefPath(*pref_path)
- ? pref_service->GetList(*pref_path)
+ ? &pref_service->GetValueList(*pref_path)
: nullptr;
}
@@ -131,12 +131,12 @@
URLBlocklist::~URLBlocklist() = default;
-void URLBlocklist::Block(const base::ListValue* filters) {
+void URLBlocklist::Block(const base::Value::List& filters) {
url_matcher::util::AddFilters(url_matcher_.get(), false, &id_, filters,
&filters_);
}
-void URLBlocklist::Allow(const base::ListValue* filters) {
+void URLBlocklist::Allow(const base::Value::List& filters) {
url_matcher::util::AddFilters(url_matcher_.get(), true, &id_, filters,
&filters_);
}
@@ -237,8 +237,10 @@
// Start enforcing the policies without a delay when they are present at
// startup.
- const base::Value* block = GetPrefValue(pref_service_, blocklist_pref_path_);
- const base::Value* allow = GetPrefValue(pref_service_, allowlist_pref_path_);
+ const base::Value::List* block =
+ GetPrefList(pref_service_, blocklist_pref_path_);
+ const base::Value::List* allow =
+ GetPrefList(pref_service_, allowlist_pref_path_);
if (block || allow)
SetBlocklist(BuildBlocklist(block, allow));
}
@@ -264,16 +266,20 @@
// The URLBlocklist is built in the background. Once it's ready, it is passed
// to the URLBlocklistManager back on ui_task_runner_.
- const base::Value* block = GetPrefValue(pref_service_, blocklist_pref_path_);
- const base::Value* allow = GetPrefValue(pref_service_, allowlist_pref_path_);
+ const base::Value::List* block =
+ GetPrefList(pref_service_, blocklist_pref_path_);
+ const base::Value::List* allow =
+ GetPrefList(pref_service_, allowlist_pref_path_);
base::PostTaskAndReplyWithResult(
background_task_runner_.get(), FROM_HERE,
base::BindOnce(
&BuildBlocklist,
- base::Owned(block ? base::Value::ToUniquePtrValue(block->Clone())
- : nullptr),
- base::Owned(allow ? base::Value::ToUniquePtrValue(allow->Clone())
- : nullptr)),
+ base::Owned(block
+ ? std::make_unique<base::Value::List>(block->Clone())
+ : nullptr),
+ base::Owned(allow
+ ? std::make_unique<base::Value::List>(allow->Clone())
+ : nullptr)),
base::BindOnce(&URLBlocklistManager::SetBlocklist,
ui_weak_ptr_factory_.GetWeakPtr()));
}
diff --git a/components/policy/core/browser/url_blocklist_manager.h b/components/policy/core/browser/url_blocklist_manager.h
index fd66142..2dd9a59 100644
--- a/components/policy/core/browser/url_blocklist_manager.h
+++ b/components/policy/core/browser/url_blocklist_manager.h
@@ -15,6 +15,7 @@
#include "base/memory/raw_ptr.h"
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
+#include "base/values.h"
#include "components/policy/policy_export.h"
#include "components/prefs/pref_change_registrar.h"
#include "components/url_matcher/url_matcher.h"
@@ -24,7 +25,6 @@
class PrefService;
namespace base {
-class ListValue;
class SequencedTaskRunner;
} // namespace base
@@ -55,11 +55,11 @@
// URLs matching one of the |filters| will be blocked. The filter format is
// documented at
// http://www.chromium.org/administrators/url-blocklist-filter-format.
- void Block(const base::ListValue* filters);
+ void Block(const base::Value::List& filters);
// URLs matching one of the |filters| will be allowed. If a URL is both
// Blocked and Allowed, Allow takes precedence.
- void Allow(const base::ListValue* filters);
+ void Allow(const base::Value::List& filters);
// Returns true if the URL is blocked.
bool IsURLBlocked(const GURL& url) const;
diff --git a/components/policy/core/browser/url_blocklist_manager_unittest.cc b/components/policy/core/browser/url_blocklist_manager_unittest.cc
index 52cc185..9880d391 100644
--- a/components/policy/core/browser/url_blocklist_manager_unittest.cc
+++ b/components/policy/core/browser/url_blocklist_manager_unittest.cc
@@ -96,9 +96,9 @@
URLBlocklist blocklist;
// Add the pattern to blocklist.
- base::Value blocked(base::Value::Type::LIST);
+ base::Value::List blocked;
blocked.Append(pattern);
- blocklist.Block(&base::Value::AsListValue(blocked));
+ blocklist.Block(blocked);
return blocklist.IsURLBlocked(GURL(url));
}
@@ -111,23 +111,23 @@
URLBlocklist blocklist;
// Add the pattern to list.
- base::Value blocked(base::Value::Type::LIST);
+ base::Value::List blocked;
blocked.Append(pattern);
if (use_allowlist) {
- blocklist.Allow(&base::Value::AsListValue(blocked));
+ blocklist.Allow(blocked);
} else {
- blocklist.Block(&base::Value::AsListValue(blocked));
+ blocklist.Block(blocked);
}
return blocklist.GetURLBlocklistState(GURL(url));
}
TEST_F(URLBlocklistManagerTest, LoadBlocklistOnCreate) {
- base::Value list(base::Value::Type::LIST);
+ base::Value::List list;
list.Append("example.com");
pref_service_.SetManagedPref(policy_prefs::kUrlBlocklist,
- base::Value::ToUniquePtrValue(std::move(list)));
+ std::make_unique<base::Value>(std::move(list)));
auto manager = std::make_unique<URLBlocklistManager>(
&pref_service_, policy_prefs::kUrlBlocklist, policy_prefs::kUrlAllowlist);
task_environment_.RunUntilIdle();
@@ -219,14 +219,14 @@
EXPECT_FALSE(IsMatch("123.123.123.123", "http://123.123.123.124/"));
// Test exceptions to path prefixes, and most specific matches.
- base::Value blocked(base::Value::Type::LIST);
- base::Value allowed(base::Value::Type::LIST);
+ base::Value::List blocked;
+ base::Value::List allowed;
blocked.Append("s.xxx.com/a");
allowed.Append("s.xxx.com/a/b");
blocked.Append("https://s.xxx.com/a/b/c");
allowed.Append("https://s.xxx.com/a/b/c/d");
- blocklist.Block(&base::Value::AsListValue(blocked));
- blocklist.Allow(&base::Value::AsListValue(allowed));
+ blocklist.Block(blocked);
+ blocklist.Allow(allowed);
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://s.xxx.com/a")));
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://s.xxx.com/a/x")));
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("https://s.xxx.com/a/x")));
@@ -244,20 +244,20 @@
EXPECT_FALSE(blocklist.IsURLBlocked(GURL("http://xxx.com/a/b")));
// Open an exception.
- blocked.ClearList();
+ blocked.clear();
blocked.Append("google.com");
- allowed.ClearList();
+ allowed.clear();
allowed.Append("plus.google.com");
- blocklist.Block(&base::Value::AsListValue(blocked));
- blocklist.Allow(&base::Value::AsListValue(allowed));
+ blocklist.Block(blocked);
+ blocklist.Allow(allowed);
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://google.com/")));
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://www.google.com/")));
EXPECT_FALSE(blocklist.IsURLBlocked(GURL("http://plus.google.com/")));
// Open an exception only when using https for mail.
- allowed.ClearList();
+ allowed.clear();
allowed.Append("https://mail.google.com");
- blocklist.Allow(&base::Value::AsListValue(allowed));
+ blocklist.Allow(allowed);
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://google.com/")));
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://mail.google.com/")));
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://www.google.com/")));
@@ -266,21 +266,21 @@
// Match exactly "google.com", only for http. Subdomains without exceptions
// are still blocked.
- allowed.ClearList();
+ allowed.clear();
allowed.Append("http://.google.com");
- blocklist.Allow(&base::Value::AsListValue(allowed));
+ blocklist.Allow(allowed);
EXPECT_FALSE(blocklist.IsURLBlocked(GURL("http://google.com/")));
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("https://google.com/")));
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://www.google.com/")));
// A smaller path match in an exact host overrides a longer path for hosts
// that also match subdomains.
- blocked.ClearList();
+ blocked.clear();
blocked.Append("yyy.com/aaa");
- blocklist.Block(&base::Value::AsListValue(blocked));
- allowed.ClearList();
+ blocklist.Block(blocked);
+ allowed.clear();
allowed.Append(".yyy.com/a");
- blocklist.Allow(&base::Value::AsListValue(allowed));
+ blocklist.Allow(allowed);
EXPECT_FALSE(blocklist.IsURLBlocked(GURL("http://yyy.com")));
EXPECT_FALSE(blocklist.IsURLBlocked(GURL("http://yyy.com/aaa")));
EXPECT_FALSE(blocklist.IsURLBlocked(GURL("http://yyy.com/aaa2")));
@@ -289,35 +289,35 @@
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://www.yyy.com/aaa2")));
// If the exact entry is both allowed and blocked, allowing takes precedence.
- blocked.ClearList();
+ blocked.clear();
blocked.Append("example.com");
- blocklist.Block(&base::Value::AsListValue(blocked));
- allowed.ClearList();
+ blocklist.Block(blocked);
+ allowed.clear();
allowed.Append("example.com");
- blocklist.Allow(&base::Value::AsListValue(allowed));
+ blocklist.Allow(allowed);
EXPECT_FALSE(blocklist.IsURLBlocked(GURL("http://example.com")));
// Devtools should not be blocked.
- blocked.ClearList();
+ blocked.clear();
blocked.Append("*");
- blocklist.Block(&base::Value::AsListValue(blocked));
- allowed.ClearList();
+ blocklist.Block(blocked);
+ allowed.clear();
allowed.Append("devtools://*");
- blocklist.Allow(&base::Value::AsListValue(allowed));
+ blocklist.Allow(allowed);
EXPECT_FALSE(blocklist.IsURLBlocked(GURL("devtools://something.com")));
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("https://something.com")));
}
TEST_F(URLBlocklistManagerTest, QueryParameters) {
URLBlocklist blocklist;
- base::Value blocked(base::Value::Type::LIST);
- base::Value allowed(base::Value::Type::LIST);
+ base::Value::List blocked;
+ base::Value::List allowed;
// Block domain and all subdomains, for any filtered scheme.
blocked.Append("youtube.com");
allowed.Append("youtube.com/watch?v=XYZ");
- blocklist.Block(&base::Value::AsListValue(blocked));
- blocklist.Allow(&base::Value::AsListValue(allowed));
+ blocklist.Block(blocked);
+ blocklist.Allow(allowed);
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://youtube.com")));
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://youtube.com/watch?v=123")));
@@ -331,9 +331,9 @@
EXPECT_FALSE(
blocklist.IsURLBlocked(GURL("http://youtube.com/watch?foo=bar&v=XYZ")));
- allowed.ClearList();
+ allowed.clear();
allowed.Append("youtube.com/watch?av=XYZ&ag=123");
- blocklist.Allow(&base::Value::AsListValue(allowed));
+ blocklist.Allow(allowed);
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://youtube.com")));
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://youtube.com/watch?av=123")));
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://youtube.com/watch?av=XYZ")));
@@ -350,9 +350,9 @@
EXPECT_TRUE(blocklist.IsURLBlocked(
GURL("http://youtube.com/watch?av=XYZ&ag=123&ag=1234")));
- allowed.ClearList();
+ allowed.clear();
allowed.Append("youtube.com/watch?foo=bar*&vid=2*");
- blocklist.Allow(&base::Value::AsListValue(allowed));
+ blocklist.Allow(allowed);
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://youtube.com")));
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://youtube.com/watch?vid=2")));
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://youtube.com/watch?foo=bar")));
@@ -365,9 +365,9 @@
EXPECT_FALSE(blocklist.IsURLBlocked(
GURL("http://youtube.com/watch?vid=234&foo=bar23")));
- blocked.ClearList();
+ blocked.clear();
blocked.Append("youtube1.com/disallow?v=44678");
- blocklist.Block(&base::Value::AsListValue(blocked));
+ blocklist.Block(blocked);
EXPECT_FALSE(blocklist.IsURLBlocked(GURL("http://youtube1.com")));
EXPECT_FALSE(blocklist.IsURLBlocked(GURL("http://youtube1.com?v=123")));
// Path does not match
@@ -381,9 +381,9 @@
EXPECT_TRUE(blocklist.IsURLBlocked(
GURL("http://youtube1.com/disallow?v=4467&v=123&v=44678")));
- blocked.ClearList();
+ blocked.clear();
blocked.Append("youtube1.com/disallow?g=*");
- blocklist.Block(&base::Value::AsListValue(blocked));
+ blocklist.Block(blocked);
EXPECT_FALSE(blocklist.IsURLBlocked(GURL("http://youtube1.com")));
EXPECT_FALSE(blocklist.IsURLBlocked(GURL("http://youtube1.com?ag=123")));
EXPECT_TRUE(
@@ -391,9 +391,9 @@
EXPECT_TRUE(
blocklist.IsURLBlocked(GURL("http://youtube1.com/disallow?ag=13&g=123")));
- blocked.ClearList();
+ blocked.clear();
blocked.Append("youtube2.com/disallow?a*");
- blocklist.Block(&base::Value::AsListValue(blocked));
+ blocklist.Block(blocked);
EXPECT_FALSE(blocklist.IsURLBlocked(GURL("http://youtube2.com")));
EXPECT_TRUE(blocklist.IsURLBlocked(
GURL("http://youtube2.com/disallow?b=123&a21=467")));
@@ -402,12 +402,12 @@
EXPECT_FALSE(
blocklist.IsURLBlocked(GURL("http://youtube2.com/disallow?baba=true")));
- allowed.ClearList();
- blocked.ClearList();
+ allowed.clear();
+ blocked.clear();
blocked.Append("youtube3.com");
allowed.Append("youtube3.com/watch?fo*");
- blocklist.Block(&base::Value::AsListValue(blocked));
- blocklist.Allow(&base::Value::AsListValue(allowed));
+ blocklist.Block(blocked);
+ blocklist.Allow(allowed);
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://youtube3.com")));
EXPECT_TRUE(
blocklist.IsURLBlocked(GURL("http://youtube3.com/watch?b=123&a21=467")));
@@ -421,22 +421,22 @@
blocklist.IsURLBlocked(GURL("http://youtube3.com/watch?foreign=true")));
EXPECT_FALSE(blocklist.IsURLBlocked(GURL("http://youtube3.com/watch?fold")));
- allowed.ClearList();
- blocked.ClearList();
+ allowed.clear();
+ blocked.clear();
blocked.Append("youtube4.com");
allowed.Append("youtube4.com?*");
- blocklist.Block(&base::Value::AsListValue(blocked));
- blocklist.Allow(&base::Value::AsListValue(allowed));
+ blocklist.Block(blocked);
+ blocklist.Allow(allowed);
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://youtube4.com")));
EXPECT_FALSE(blocklist.IsURLBlocked(GURL("http://youtube4.com/?hello")));
EXPECT_FALSE(blocklist.IsURLBlocked(GURL("http://youtube4.com/?foo")));
- allowed.ClearList();
- blocked.ClearList();
+ allowed.clear();
+ blocked.clear();
blocked.Append("youtube5.com?foo=bar");
allowed.Append("youtube5.com?foo1=bar1&foo2=bar2&");
- blocklist.Block(&base::Value::AsListValue(blocked));
- blocklist.Allow(&base::Value::AsListValue(allowed));
+ blocklist.Block(blocked);
+ blocklist.Allow(allowed);
EXPECT_FALSE(blocklist.IsURLBlocked(GURL("http://youtube5.com")));
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://youtube5.com/?foo=bar&a=b")));
// More specific filter is given precedence.
@@ -447,15 +447,15 @@
TEST_F(URLBlocklistManagerTest, BlockAllWithExceptions) {
URLBlocklist blocklist;
- base::Value blocked(base::Value::Type::LIST);
- base::Value allowed(base::Value::Type::LIST);
+ base::Value::List blocked;
+ base::Value::List allowed;
blocked.Append("*");
allowed.Append(".www.google.com");
allowed.Append("plus.google.com");
allowed.Append("https://mail.google.com");
allowed.Append("https://very.safe/path");
- blocklist.Block(&base::Value::AsListValue(blocked));
- blocklist.Allow(&base::Value::AsListValue(allowed));
+ blocklist.Block(blocked);
+ blocklist.Allow(allowed);
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://random.com")));
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://google.com")));
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://s.www.google.com")));
@@ -472,11 +472,11 @@
TEST_F(URLBlocklistManagerTest, DefaultBlocklistExceptions) {
URLBlocklist blocklist;
- base::Value blocked(base::Value::Type::LIST);
+ base::Value::List blocked;
// Blocklist everything:
blocked.Append("*");
- blocklist.Block(&base::Value::AsListValue(blocked));
+ blocklist.Block(blocked);
// Internal NTP and extension URLs are not blocked by the "*":
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://www.google.com")));
@@ -497,10 +497,10 @@
// Unless they are explicitly on the blocklist:
blocked.Append("chrome-extension://*");
- base::Value allowed(base::Value::Type::LIST);
+ base::Value::List allowed;
allowed.Append("chrome-extension://abc");
- blocklist.Block(&base::Value::AsListValue(blocked));
- blocklist.Allow(&base::Value::AsListValue(allowed));
+ blocklist.Block(blocked);
+ blocklist.Allow(allowed);
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("http://www.google.com")));
EXPECT_TRUE(blocklist.IsURLBlocked(GURL("chrome-extension://xyz")));
diff --git a/components/safe_browsing/content/common/file_type_policies_policy_util.cc b/components/safe_browsing/content/common/file_type_policies_policy_util.cc
index 15df3fa..e13effdc 100644
--- a/components/safe_browsing/content/common/file_type_policies_policy_util.cc
+++ b/components/safe_browsing/content/common/file_type_policies_policy_util.cc
@@ -43,7 +43,7 @@
const std::string lower_extension = base::ToLowerASCII(extension);
if (heuristic_overrides) {
- base::ListValue domains_for_extension;
+ base::Value::List domains_for_extension;
for (const base::Value& entry : heuristic_overrides->GetListDeprecated()) {
const base::DictionaryValue& extension_domain_patterns_dict =
base::Value::AsDictionaryValue(entry);
@@ -62,11 +62,10 @@
}
}
- if (!domains_for_extension.GetListDeprecated().empty()) {
+ if (!domains_for_extension.empty()) {
url_matcher::URLMatcher matcher;
base::MatcherStringPattern::ID id(0);
- url_matcher::util::AddFilters(&matcher, true, &id,
- &domains_for_extension);
+ url_matcher::util::AddFilters(&matcher, true, &id, domains_for_extension);
auto matching_set_size = matcher.MatchURL(normalized_url).size();
return matching_set_size > 0;
}
diff --git a/components/url_matcher/url_util.cc b/components/url_matcher/url_util.cc
index 4cec96d..5d33c5b8 100644
--- a/components/url_matcher/url_util.cc
+++ b/components/url_matcher/url_util.cc
@@ -411,20 +411,15 @@
void AddFilters(URLMatcher* matcher,
bool allow,
base::MatcherStringPattern::ID* id,
- const base::ListValue* patterns,
+ const base::Value::List& patterns,
std::map<base::MatcherStringPattern::ID,
url_matcher::util::FilterComponents>* filters) {
URLMatcherConditionSet::Vector all_conditions;
- base::Value::ConstListView patterns_list = patterns->GetListDeprecated();
- size_t size = std::min(kMaxFiltersAllowed, patterns_list.size());
+ size_t size = std::min(kMaxFiltersAllowed, patterns.size());
scoped_refptr<URLMatcherConditionSet> condition_set;
for (size_t i = 0; i < size; ++i) {
- std::string pattern;
- if (patterns_list[i].is_string()) {
- pattern = patterns_list[i].GetString();
- } else {
- DCHECK(false);
- }
+ DCHECK(patterns[i].is_string());
+ const std::string pattern = patterns[i].GetString();
FilterComponents components;
components.allow = allow;
if (!FilterToComponents(pattern, &components.scheme, &components.host,
@@ -480,7 +475,7 @@
}
void AddAllowFilters(url_matcher::URLMatcher* matcher,
- const base::ListValue* patterns) {
+ const base::Value::List& patterns) {
base::MatcherStringPattern::ID id(0);
AddFilters(matcher, true, &id, patterns);
}
diff --git a/components/url_matcher/url_util.h b/components/url_matcher/url_util.h
index 8a29308..2d1a14b159 100644
--- a/components/url_matcher/url_util.h
+++ b/components/url_matcher/url_util.h
@@ -99,7 +99,7 @@
url_matcher::URLMatcher* matcher,
bool allow,
base::MatcherStringPattern::ID* id,
- const base::ListValue* patterns,
+ const base::Value::List& patterns,
std::map<base::MatcherStringPattern::ID,
url_matcher::util::FilterComponents>* filters = nullptr);
@@ -121,7 +121,7 @@
url_matcher::util::FilterComponents>* filters = nullptr);
URL_MATCHER_EXPORT void AddAllowFilters(url_matcher::URLMatcher* matcher,
- const base::ListValue* patterns);
+ const base::Value::List& patterns);
URL_MATCHER_EXPORT void AddAllowFilters(
url_matcher::URLMatcher* matcher,
diff --git a/components/url_matcher/url_util_unittest.cc b/components/url_matcher/url_util_unittest.cc
index 4849019..fb35ac7 100644
--- a/components/url_matcher/url_util_unittest.cc
+++ b/components/url_matcher/url_util_unittest.cc
@@ -79,10 +79,10 @@
const std::string& url) {
// Add the pattern to the matcher.
URLMatcher matcher;
- base::Value list(base::Value::Type::LIST);
+ base::Value::List list;
for (const auto& pattern : patterns)
list.Append(pattern);
- AddAllowFilters(&matcher, &base::Value::AsListValue(list));
+ AddAllowFilters(&matcher, list);
return !matcher.MatchURL(GURL(url)).empty();
}