| Index: chrome/browser/supervised_user/supervised_user_url_filter.cc
|
| diff --git a/chrome/browser/supervised_user/supervised_user_url_filter.cc b/chrome/browser/supervised_user/supervised_user_url_filter.cc
|
| index a343a6c0a41f8c1e0aafb56bc097d26449eb2d66..e9a1a68bd25cbd2f6106973f23595ca8e9c6ff98 100644
|
| --- a/chrome/browser/supervised_user/supervised_user_url_filter.cc
|
| +++ b/chrome/browser/supervised_user/supervised_user_url_filter.cc
|
| @@ -33,9 +33,21 @@ using policy::URLBlacklist;
|
| using url_matcher::URLMatcher;
|
| using url_matcher::URLMatcherConditionSet;
|
|
|
| +using HostnameHash = SupervisedUserSiteList::HostnameHash;
|
| +
|
| +namespace {
|
| +
|
| +struct HashHostnameHash {
|
| + size_t operator()(const HostnameHash& value) const {
|
| + return value.hash();
|
| + }
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| struct SupervisedUserURLFilter::Contents {
|
| URLMatcher url_matcher;
|
| - base::hash_set<std::string> hostname_hashes;
|
| + base::hash_set<HostnameHash, HashHostnameHash> hostname_hashes;
|
| // TODO(treib,bauerb): Add infrastructure to track from which whitelist each
|
| // pattern/hash came. crbug.com/557651
|
| };
|
| @@ -53,11 +65,6 @@ const char* kFilteredSchemes[] = {
|
| "wss"
|
| };
|
|
|
| -std::string GetHostnameHash(const GURL& url) {
|
| - const std::string hash = base::SHA1HashString(url.host());
|
| - return base::HexEncode(hash.data(), hash.length());
|
| -}
|
| -
|
| // This class encapsulates all the state that is required during construction of
|
| // a new SupervisedUserURLFilter::Contents.
|
| class FilterBuilder {
|
| @@ -69,7 +76,7 @@ class FilterBuilder {
|
| bool AddPattern(const std::string& pattern);
|
|
|
| // Adds a single hostname SHA1 hash.
|
| - void AddHostnameHash(const std::string& hash);
|
| + void AddHostnameHash(const HostnameHash& hash);
|
|
|
| // Adds all the sites in |site_list|, with URL patterns and hostname hashes.
|
| void AddSiteList(const scoped_refptr<SupervisedUserSiteList>& site_list);
|
| @@ -116,8 +123,8 @@ bool FilterBuilder::AddPattern(const std::string& pattern) {
|
| return true;
|
| }
|
|
|
| -void FilterBuilder::AddHostnameHash(const std::string& hash) {
|
| - contents_->hostname_hashes.insert(base::ToUpperASCII(hash));
|
| +void FilterBuilder::AddHostnameHash(const HostnameHash& hash) {
|
| + contents_->hostname_hashes.insert(hash);
|
| }
|
|
|
| void FilterBuilder::AddSiteList(
|
| @@ -125,7 +132,7 @@ void FilterBuilder::AddSiteList(
|
| for (const std::string& pattern : site_list->patterns())
|
| AddPattern(pattern);
|
|
|
| - for (const std::string& hash : site_list->hostname_hashes())
|
| + for (const HostnameHash& hash : site_list->hostname_hashes())
|
| AddHostnameHash(hash);
|
| }
|
|
|
| @@ -316,7 +323,7 @@ SupervisedUserURLFilter::GetFilteringBehaviorForURL(
|
| return ALLOW;
|
|
|
| // Check the list of hostname hashes.
|
| - if (contents_->hostname_hashes.count(GetHostnameHash(url)))
|
| + if (contents_->hostname_hashes.count(HostnameHash(url.host())))
|
| return ALLOW;
|
|
|
| // Check the static blacklist, unless the default is to block anyway.
|
|
|