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

Unified Diff: components/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: Minor: Replace safe_browsing_util:: with safe_browsing:: and use safe_browsing:: namespace prefix Created 5 years, 1 month 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 | « components/safe_browsing_db/prefix_set_unittest.cc ('k') | components/safe_browsing_db/util.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/safe_browsing_db/util.h
diff --git a/chrome/browser/safe_browsing/safe_browsing_util.h b/components/safe_browsing_db/util.h
similarity index 59%
copy from chrome/browser/safe_browsing/safe_browsing_util.h
copy to components/safe_browsing_db/util.h
index b01f6a3d4e4607498e424d2f6cb2f3dc39b777b4..666e0815f5cf81a137705e5997a7ea243e9fc8c6 100644
--- a/chrome/browser/safe_browsing/safe_browsing_util.h
+++ b/components/safe_browsing_db/util.h
@@ -1,68 +1,61 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright (c) 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
-// Utilities for the SafeBrowsing code.
+// Utilities for the SafeBrowsing DB code.
-#ifndef CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_UTIL_H_
-#define CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_UTIL_H_
+#ifndef COMPONENTS_SAFE_BROWSING_DB_UTIL_H_
+#define COMPONENTS_SAFE_BROWSING_DB_UTIL_H_
#include <cstring>
#include <string>
#include <vector>
#include "base/basictypes.h"
-#include "base/memory/scoped_ptr.h"
#include "base/strings/string_piece.h"
#include "base/time/time.h"
-#include "chrome/browser/safe_browsing/chunk_range.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 {
- std::string url;
- std::string list_name;
+// Different types of threats that SafeBrowsing protects against.
+enum SBThreatType {
+ // No threat at all.
+ SB_THREAT_TYPE_SAFE,
+
+ // The URL is being used for phishing.
+ SB_THREAT_TYPE_URL_PHISHING,
+
+ // The URL hosts malware.
+ SB_THREAT_TYPE_URL_MALWARE,
+
+ // The URL hosts unwanted programs.
+ SB_THREAT_TYPE_URL_UNWANTED,
+
+ // The download URL is malware.
+ SB_THREAT_TYPE_BINARY_MALWARE_URL,
+
+ // Url detected by the client-side phishing model. Note that unlike the
+ // above values, this does not correspond to a downloaded list.
+ SB_THREAT_TYPE_CLIENT_SIDE_PHISHING_URL,
+
+ // The Chrome extension or app (given by its ID) is malware.
+ SB_THREAT_TYPE_EXTENSION,
+
+ // Url detected by the client-side malware IP list. This IP list is part
+ // of the client side detection model.
+ SB_THREAT_TYPE_CLIENT_SIDE_MALWARE_URL,
};
-// Data for an individual chunk sent from the server.
-class SBChunkData {
- public:
- SBChunkData();
- ~SBChunkData();
-
- // Create with manufactured data, for testing only.
- // TODO(shess): Right now the test code calling this is in an anonymous
- // namespace. Figure out how to shift this into private:.
- explicit SBChunkData(safe_browsing::ChunkData* chunk_data);
-
- // Read serialized ChunkData, returning true if the parse suceeded.
- bool ParseFrom(const unsigned char* data, size_t length);
-
- // Access the chunk data. |AddChunkNumberAt()| can only be called if
- // |IsSub()| returns true. |Prefix*()| and |FullHash*()| can only be called
- // if the corrosponding |Is*()| returned true.
- int ChunkNumber() const;
- bool IsAdd() const;
- bool IsSub() const;
- int AddChunkNumberAt(size_t i) const;
- bool IsPrefix() const;
- size_t PrefixCount() const;
- SBPrefix PrefixAt(size_t i) const;
- bool IsFullHash() const;
- size_t FullHashCount() const;
- SBFullHash FullHashAt(size_t i) const;
-
- private:
- // Protocol buffer sent from server.
- scoped_ptr<safe_browsing::ChunkData> chunk_data_;
-
- DISALLOW_COPY_AND_ASSIGN(SBChunkData);
+
+// 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.
@@ -83,28 +76,8 @@ struct SBCachedFullHashResult {
std::vector<SBFullHashResult> full_hashes;
};
-// Contains information about a list in the database.
-struct SBListChunkRanges {
- explicit SBListChunkRanges(const std::string& n);
-
- std::string name; // The list name.
- std::string adds; // The ranges for add chunks.
- std::string subs; // The ranges for sub chunks.
-};
-
-// Container for deleting chunks from the database.
-struct SBChunkDelete {
- SBChunkDelete();
- ~SBChunkDelete();
-
- std::string list_name;
- bool is_sub_del;
- std::vector<ChunkRange> chunk_del;
-};
-
-// Utility functions -----------------------------------------------------------
-namespace safe_browsing_util {
+namespace safe_browsing {
// SafeBrowsing list names.
extern const char kMalwareList[];
@@ -123,10 +96,10 @@ extern const char kIPBlacklist[];
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,
@@ -151,6 +124,21 @@ enum ListType {
// 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);
@@ -174,9 +162,6 @@ 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
+} // namespace safe_browsing
-#endif // CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_UTIL_H_
+#endif // COMPONENTS_SAFE_BROWSING_DB_UTIL_H_
« no previous file with comments | « components/safe_browsing_db/prefix_set_unittest.cc ('k') | components/safe_browsing_db/util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698