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

Unified Diff: chrome/browser/supervised_user/supervised_user_site_list.h

Issue 1469813002: Supervised user whitelists optimization: Store raw sha1 hashes rather than strings (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review Created 5 years 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 | « no previous file | chrome/browser/supervised_user/supervised_user_site_list.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/supervised_user/supervised_user_site_list.h
diff --git a/chrome/browser/supervised_user/supervised_user_site_list.h b/chrome/browser/supervised_user/supervised_user_site_list.h
index 4f813ef2a03ce447ef54afd57177ad5774a888c2..eb33e394fdbe885d00c9d6bc296251167e8d3284 100644
--- a/chrome/browser/supervised_user/supervised_user_site_list.h
+++ b/chrome/browser/supervised_user/supervised_user_site_list.h
@@ -5,6 +5,7 @@
#ifndef CHROME_BROWSER_SUPERVISED_USER_SUPERVISED_USER_SITE_LIST_H_
#define CHROME_BROWSER_SUPERVISED_USER_SUPERVISED_USER_SITE_LIST_H_
+#include <array>
#include <string>
#include <vector>
@@ -12,6 +13,7 @@
#include "base/files/file_path.h"
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
+#include "base/sha1.h"
#include "base/strings/string16.h"
#include "base/time/time.h"
#include "url/gurl.h"
@@ -34,6 +36,22 @@ class Value;
class SupervisedUserSiteList
: public base::RefCountedThreadSafe<SupervisedUserSiteList> {
public:
+ class HostnameHash {
+ public:
+ explicit HostnameHash(const std::string& hostname);
+ // |bytes| must have a size of at least |base::kSHA1Length|.
+ explicit HostnameHash(const std::vector<uint8>& bytes);
+
+ bool operator==(const HostnameHash& rhs) const;
+
+ // Returns a hash code suitable for putting this into hash maps.
+ size_t hash() const;
+
+ private:
+ std::array<uint8, base::kSHA1Length> bytes_;
+ // Copy and assign are allowed.
+ };
+
using LoadedCallback =
base::Callback<void(const scoped_refptr<SupervisedUserSiteList>&)>;
@@ -46,7 +64,7 @@ class SupervisedUserSiteList
const base::string16& title() const { return title_; }
const GURL& entry_point() const { return entry_point_; }
const std::vector<std::string>& patterns() const { return patterns_; }
- const std::vector<std::string>& hostname_hashes() const {
+ const std::vector<HostnameHash>& hostname_hashes() const {
return hostname_hashes_;
}
@@ -73,8 +91,8 @@ class SupervisedUserSiteList
// A list of URL patterns that should be whitelisted.
std::vector<std::string> patterns_;
- // A list of hex-encoded SHA1 hashes of hostnames that should be whitelisted.
- std::vector<std::string> hostname_hashes_;
+ // A list of SHA1 hashes of hostnames that should be whitelisted.
+ std::vector<HostnameHash> hostname_hashes_;
DISALLOW_COPY_AND_ASSIGN(SupervisedUserSiteList);
};
« no previous file with comments | « no previous file | chrome/browser/supervised_user/supervised_user_site_list.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698