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

Unified Diff: components/safe_browsing_db/safe_browsing_db_util.h

Issue 1420123003: Move more declarations from c/b/sb/sb_util.h to components. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@01_components
Patch Set: Making 1415923004 the base issue, instead of 1399843003 which was reverted. Created 5 years, 2 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
Index: components/safe_browsing_db/safe_browsing_db_util.h
diff --git a/components/safe_browsing_db/safe_browsing_db_util.h b/components/safe_browsing_db/safe_browsing_db_util.h
index cf5a4a46bb92c2f62a2893bbceddfb807764badd..94c895f94359ba01b8480e2b369216bcf2c5dee1 100644
--- a/components/safe_browsing_db/safe_browsing_db_util.h
+++ b/components/safe_browsing_db/safe_browsing_db_util.h
@@ -9,26 +9,10 @@
#include "base/basictypes.h"
#include "base/strings/string_piece.h"
+#include "base/time/time.h"
-// A truncated hash's type.
-typedef uint32 SBPrefix;
-
-// A full hash.
-union SBFullHash {
- char full_hash[32];
- SBPrefix prefix;
-};
-
-inline bool SBFullHashEqual(const SBFullHash& a, const SBFullHash& b) {
- return !memcmp(a.full_hash, b.full_hash, sizeof(a.full_hash));
-}
-
-inline bool SBFullHashLess(const SBFullHash& a, const SBFullHash& b) {
- return memcmp(a.full_hash, b.full_hash, sizeof(a.full_hash)) < 0;
-}
-// Generate full hash for the given string.
-SBFullHash SBFullHashForString(const base::StringPiece& str);
+class GURL;
// Different types of threats that SafeBrowsing protects against.
enum SBThreatType {
@@ -59,4 +43,121 @@ enum SBThreatType {
SB_THREAT_TYPE_CLIENT_SIDE_MALWARE_URL,
};
+
+// TODO(vakh): Move all these declarations under safe_browsing namespace.
+// A truncated hash's type.
+typedef uint32 SBPrefix;
+
+// A full hash.
+union SBFullHash {
+ char full_hash[32];
+ SBPrefix prefix;
+};
+
+// Used when we get a gethash response.
+struct SBFullHashResult {
+ SBFullHash hash;
+ // TODO(shess): Refactor to allow ListType here.
+ int list_id;
+ std::string metadata;
+};
+
+// Caches individual response from GETHASH request.
+struct SBCachedFullHashResult {
+ SBCachedFullHashResult();
+ explicit SBCachedFullHashResult(const base::Time& in_expire_after);
+ ~SBCachedFullHashResult();
+
+ base::Time expire_after;
+ std::vector<SBFullHashResult> full_hashes;
+};
+
+
+namespace safe_browsing {
+
+// SafeBrowsing list names.
+extern const char kMalwareList[];
+extern const char kPhishingList[];
+// Binary Download list name.
+extern const char kBinUrlList[];
+// SafeBrowsing client-side detection whitelist list name.
+extern const char kCsdWhiteList[];
+// SafeBrowsing download whitelist list name.
+extern const char kDownloadWhiteList[];
+// SafeBrowsing extension list name.
+extern const char kExtensionBlacklist[];
+// SafeBrowsing csd malware IP blacklist name.
+extern const char kIPBlacklist[];
+// SafeBrowsing unwanted URL list.
+extern const char kUnwantedUrlList[];
+// SafeBrowsing off-domain inclusion whitelist list name.
+extern const char kInclusionWhitelist[];
+// This array must contain all Safe Browsing lists.
+extern const char* kAllLists[9];
+
+
+enum ListType {
+ INVALID = -1,
+ MALWARE = 0,
+ PHISH = 1,
+ BINURL = 2,
+ // Obsolete BINHASH = 3,
+ CSDWHITELIST = 4,
+ // SafeBrowsing lists are stored in pairs. Keep ListType 5
+ // available for a potential second list that we would store in the
+ // csd-whitelist store file.
+ DOWNLOADWHITELIST = 6,
+ // See above comment. Leave 7 available.
+ EXTENSIONBLACKLIST = 8,
+ // See above comment. Leave 9 available.
+ // Obsolete SIDEEFFECTFREEWHITELIST = 10,
+ // See above comment. Leave 11 available.
+ IPBLACKLIST = 12,
+ // See above comment. Leave 13 available.
+ UNWANTEDURL = 14,
+ // See above comment. Leave 15 available.
+ INCLUSIONWHITELIST = 16,
+ // See above comment. Leave 17 available.
+};
+
+
+inline bool SBFullHashEqual(const SBFullHash& a, const SBFullHash& b) {
+ return !memcmp(a.full_hash, b.full_hash, sizeof(a.full_hash));
+}
+
+inline bool SBFullHashLess(const SBFullHash& a, const SBFullHash& b) {
+ return memcmp(a.full_hash, b.full_hash, sizeof(a.full_hash)) < 0;
+}
+
+// Generate full hash for the given string.
+SBFullHash SBFullHashForString(const base::StringPiece& str);
+SBFullHash StringToSBFullHash(const std::string& hash_in);
+std::string SBFullHashToString(const SBFullHash& hash_out);
+
+
+// Maps a list name to ListType.
+ListType GetListId(const base::StringPiece& name);
+
+// Maps a ListId to list name. Return false if fails.
+bool GetListName(ListType list_id, std::string* list);
+
+// Canonicalizes url as per Google Safe Browsing Specification.
+// See section 6.1 in
+// http://code.google.com/p/google-safe-browsing/wiki/Protocolv2Spec.
+void CanonicalizeUrl(const GURL& url, std::string* canonicalized_hostname,
+ std::string* canonicalized_path,
+ std::string* canonicalized_query);
+
+// Given a URL, returns all the hosts we need to check. They are returned
+// in order of size (i.e. b.c is first, then a.b.c).
+void GenerateHostsToCheck(const GURL& url, std::vector<std::string>* hosts);
+
+// Given a URL, returns all the paths we need to check.
+void GeneratePathsToCheck(const GURL& url, std::vector<std::string>* paths);
+
+// Given a URL, returns all the patterns we need to check.
+void GeneratePatternsToCheck(const GURL& url, std::vector<std::string>* urls);
+
+} // namespace safe_browsing
+
#endif // COMPONENTS_SAFE_BROWSING_DB_SAFE_BROWSING_DB_UTIL_H_

Powered by Google App Engine
This is Rietveld 408576698