| Index: chrome/browser/safe_browsing/safe_browsing_util.h
|
| diff --git a/chrome/browser/safe_browsing/safe_browsing_util.h b/chrome/browser/safe_browsing/safe_browsing_util.h
|
| index 9cbb3cd97583c7f99754b8bf56911ccc9e52ff89..b01f6a3d4e4607498e424d2f6cb2f3dc39b777b4 100644
|
| --- a/chrome/browser/safe_browsing/safe_browsing_util.h
|
| +++ b/chrome/browser/safe_browsing/safe_browsing_util.h
|
| @@ -16,11 +16,13 @@
|
| #include "base/strings/string_piece.h"
|
| #include "base/time/time.h"
|
| #include "chrome/browser/safe_browsing/chunk_range.h"
|
| -#include "components/safe_browsing_db/util.h"
|
| +#include "components/safe_browsing_db/safe_browsing_db_util.h"
|
|
|
| namespace safe_browsing {
|
| class ChunkData;
|
| };
|
| +
|
| +class GURL;
|
|
|
| // Container for holding a chunk URL and the list it belongs to.
|
| struct ChunkUrl {
|
| @@ -63,6 +65,24 @@
|
| DISALLOW_COPY_AND_ASSIGN(SBChunkData);
|
| };
|
|
|
| +// 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;
|
| +};
|
| +
|
| // Contains information about a list in the database.
|
| struct SBListChunkRanges {
|
| explicit SBListChunkRanges(const std::string& n);
|
| @@ -82,4 +102,81 @@
|
| std::vector<ChunkRange> chunk_del;
|
| };
|
|
|
| +// Utility functions -----------------------------------------------------------
|
| +
|
| +namespace safe_browsing_util {
|
| +
|
| +// 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.
|
| +};
|
| +
|
| +// 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);
|
| +
|
| +SBFullHash StringToSBFullHash(const std::string& hash_in);
|
| +std::string SBFullHashToString(const SBFullHash& hash_out);
|
| +
|
| +} // namespace safe_browsing_util
|
| +
|
| #endif // CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_UTIL_H_
|
|
|