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

Unified Diff: components/safe_browsing_db/util.cc

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/util.h ('k') | components/safe_browsing_db/util_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/safe_browsing_db/util.cc
diff --git a/chrome/browser/safe_browsing/safe_browsing_util.cc b/components/safe_browsing_db/util.cc
similarity index 69%
copy from chrome/browser/safe_browsing/safe_browsing_util.cc
copy to components/safe_browsing_db/util.cc
index 3a5ba42464e87b273c6ef8195a6e932f39d60a6b..8d95b9c849f023118976d63f79e53d5cf542edcf 100644
--- a/chrome/browser/safe_browsing/safe_browsing_util.cc
+++ b/components/safe_browsing_db/util.cc
@@ -1,155 +1,21 @@
-// 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.
-#include "chrome/browser/safe_browsing/safe_browsing_util.h"
+#include "components/safe_browsing_db/util.h"
-#include "base/logging.h"
#include "base/strings/string_util.h"
-#include "base/strings/stringprintf.h"
-#include "chrome/browser/safe_browsing/chunk.pb.h"
-#include "components/google/core/browser/google_util.h"
#include "crypto/sha2.h"
#include "net/base/escape.h"
#include "url/gurl.h"
#include "url/url_util.h"
-// SBCachedFullHashResult ------------------------------------------------------
-
-SBCachedFullHashResult::SBCachedFullHashResult() {}
-
-SBCachedFullHashResult::SBCachedFullHashResult(
- const base::Time& in_expire_after)
- : expire_after(in_expire_after) {}
-
-SBCachedFullHashResult::~SBCachedFullHashResult() {}
-
-// SBChunkData -----------------------------------------------------------------
-
-// TODO(shess): Right now this contains a scoped_ptr<ChunkData> so that the
-// proto buffer isn't copied all over the place, then these are contained in a
-// ScopedVector for purposes of passing things around between tasks. This seems
-// convoluted. Maybe it would make sense to have an overall container class
-// returning references to a nested per-chunk class?
-
-SBChunkData::SBChunkData() {
-}
-
-SBChunkData::SBChunkData(safe_browsing::ChunkData* raw_data)
- : chunk_data_(raw_data) {
- DCHECK(chunk_data_.get());
-}
-
-SBChunkData::~SBChunkData() {
-}
-
-bool SBChunkData::ParseFrom(const unsigned char* data, size_t length) {
- scoped_ptr<safe_browsing::ChunkData> chunk(new safe_browsing::ChunkData());
- if (!chunk->ParseFromArray(data, length))
- return false;
-
- if (chunk->chunk_type() != safe_browsing::ChunkData::ADD &&
- chunk->chunk_type() != safe_browsing::ChunkData::SUB) {
- return false;
- }
-
- size_t hash_size = 0;
- if (chunk->prefix_type() == safe_browsing::ChunkData::PREFIX_4B) {
- hash_size = sizeof(SBPrefix);
- } else if (chunk->prefix_type() == safe_browsing::ChunkData::FULL_32B) {
- hash_size = sizeof(SBFullHash);
- } else {
- return false;
- }
-
- const size_t hash_count = chunk->hashes().size() / hash_size;
- if (hash_count * hash_size != chunk->hashes().size())
- return false;
-
- if (chunk->chunk_type() == safe_browsing::ChunkData::SUB &&
- static_cast<size_t>(chunk->add_numbers_size()) != hash_count) {
- return false;
- }
-
- chunk_data_.swap(chunk);
- return true;
-}
-
-int SBChunkData::ChunkNumber() const {
- return chunk_data_->chunk_number();
-}
-
-bool SBChunkData::IsAdd() const {
- return chunk_data_->chunk_type() == safe_browsing::ChunkData::ADD;
-}
-
-bool SBChunkData::IsSub() const {
- return chunk_data_->chunk_type() == safe_browsing::ChunkData::SUB;
-}
-
-int SBChunkData::AddChunkNumberAt(size_t i) const {
- DCHECK(IsSub());
- DCHECK((IsPrefix() && i < PrefixCount()) ||
- (IsFullHash() && i < FullHashCount()));
- return chunk_data_->add_numbers(i);
-}
-
-bool SBChunkData::IsPrefix() const {
- return chunk_data_->prefix_type() == safe_browsing::ChunkData::PREFIX_4B;
-}
-
-size_t SBChunkData::PrefixCount() const {
- DCHECK(IsPrefix());
- return chunk_data_->hashes().size() / sizeof(SBPrefix);
-}
-
-SBPrefix SBChunkData::PrefixAt(size_t i) const {
- DCHECK(IsPrefix());
- DCHECK_LT(i, PrefixCount());
-
- SBPrefix prefix;
- memcpy(&prefix, chunk_data_->hashes().data() + i * sizeof(SBPrefix),
- sizeof(SBPrefix));
- return prefix;
-}
-
-bool SBChunkData::IsFullHash() const {
- return chunk_data_->prefix_type() == safe_browsing::ChunkData::FULL_32B;
-}
-
-size_t SBChunkData::FullHashCount() const {
- DCHECK(IsFullHash());
- return chunk_data_->hashes().size() / sizeof(SBFullHash);
-}
-
-SBFullHash SBChunkData::FullHashAt(size_t i) const {
- DCHECK(IsFullHash());
- DCHECK_LT(i, FullHashCount());
-
- SBFullHash full_hash;
- memcpy(&full_hash, chunk_data_->hashes().data() + i * sizeof(SBFullHash),
- sizeof(SBFullHash));
- return full_hash;
-}
-
-// SBListChunkRanges -----------------------------------------------------------
-
-SBListChunkRanges::SBListChunkRanges(const std::string& n)
- : name(n) {
-}
-
-// SBChunkDelete ---------------------------------------------------------------
-
-SBChunkDelete::SBChunkDelete() : is_sub_del(false) {}
-
-SBChunkDelete::~SBChunkDelete() {}
-
// Utility functions -----------------------------------------------------------
namespace {
bool IsKnownList(const std::string& name) {
- for (size_t i = 0; i < arraysize(safe_browsing_util::kAllLists); ++i) {
- if (!strcmp(safe_browsing_util::kAllLists[i], name.c_str())) {
+ for (size_t i = 0; i < arraysize(safe_browsing::kAllLists); ++i) {
+ if (!strcmp(safe_browsing::kAllLists[i], name.c_str())) {
return true;
}
}
@@ -157,7 +23,19 @@ bool IsKnownList(const std::string& name) {
}
} // namespace
-namespace safe_browsing_util {
+
+// SBCachedFullHashResult ------------------------------------------------------
+
+SBCachedFullHashResult::SBCachedFullHashResult() {}
+
+SBCachedFullHashResult::SBCachedFullHashResult(
+ const base::Time& in_expire_after)
+ : expire_after(in_expire_after) {}
+
+SBCachedFullHashResult::~SBCachedFullHashResult() {}
+
+
+namespace safe_browsing {
// Listnames that browser can process.
const char kMalwareList[] = "goog-malware-shavar";
@@ -184,23 +62,23 @@ const char* kAllLists[9] = {
ListType GetListId(const base::StringPiece& name) {
ListType id;
- if (name == safe_browsing_util::kMalwareList) {
+ if (name == kMalwareList) {
id = MALWARE;
- } else if (name == safe_browsing_util::kPhishingList) {
+ } else if (name == kPhishingList) {
id = PHISH;
- } else if (name == safe_browsing_util::kBinUrlList) {
+ } else if (name == kBinUrlList) {
id = BINURL;
- } else if (name == safe_browsing_util::kCsdWhiteList) {
+ } else if (name == kCsdWhiteList) {
id = CSDWHITELIST;
- } else if (name == safe_browsing_util::kDownloadWhiteList) {
+ } else if (name == kDownloadWhiteList) {
id = DOWNLOADWHITELIST;
- } else if (name == safe_browsing_util::kExtensionBlacklist) {
+ } else if (name == kExtensionBlacklist) {
id = EXTENSIONBLACKLIST;
- } else if (name == safe_browsing_util::kIPBlacklist) {
+ } else if (name == kIPBlacklist) {
id = IPBLACKLIST;
- } else if (name == safe_browsing_util::kUnwantedUrlList) {
+ } else if (name == kUnwantedUrlList) {
id = UNWANTEDURL;
- } else if (name == safe_browsing_util::kInclusionWhitelist) {
+ } else if (name == kInclusionWhitelist) {
id = INCLUSIONWHITELIST;
} else {
id = INVALID;
@@ -211,31 +89,31 @@ ListType GetListId(const base::StringPiece& name) {
bool GetListName(ListType list_id, std::string* list) {
switch (list_id) {
case MALWARE:
- *list = safe_browsing_util::kMalwareList;
+ *list = kMalwareList;
break;
case PHISH:
- *list = safe_browsing_util::kPhishingList;
+ *list = kPhishingList;
break;
case BINURL:
- *list = safe_browsing_util::kBinUrlList;
+ *list = kBinUrlList;
break;
case CSDWHITELIST:
- *list = safe_browsing_util::kCsdWhiteList;
+ *list = kCsdWhiteList;
break;
case DOWNLOADWHITELIST:
- *list = safe_browsing_util::kDownloadWhiteList;
+ *list = kDownloadWhiteList;
break;
case EXTENSIONBLACKLIST:
- *list = safe_browsing_util::kExtensionBlacklist;
+ *list = kExtensionBlacklist;
break;
case IPBLACKLIST:
- *list = safe_browsing_util::kIPBlacklist;
+ *list = kIPBlacklist;
break;
case UNWANTEDURL:
- *list = safe_browsing_util::kUnwantedUrlList;
+ *list = kUnwantedUrlList;
break;
case INCLUSIONWHITELIST:
- *list = safe_browsing_util::kInclusionWhitelist;
+ *list = kInclusionWhitelist;
break;
default:
return false;
@@ -244,6 +122,26 @@ bool GetListName(ListType list_id, std::string* list) {
return true;
}
+
+SBFullHash SBFullHashForString(const base::StringPiece& str) {
+ SBFullHash h;
+ crypto::SHA256HashString(str, &h.full_hash, sizeof(h.full_hash));
+ return h;
+}
+
+SBFullHash StringToSBFullHash(const std::string& hash_in) {
+ DCHECK_EQ(crypto::kSHA256Length, hash_in.size());
+ SBFullHash hash_out;
+ memcpy(hash_out.full_hash, hash_in.data(), crypto::kSHA256Length);
+ return hash_out;
+}
+
+std::string SBFullHashToString(const SBFullHash& hash) {
+ DCHECK_EQ(crypto::kSHA256Length, sizeof(hash.full_hash));
+ return std::string(hash.full_hash, sizeof(hash.full_hash));
+}
+
+
std::string Unescape(const std::string& url) {
std::string unescaped_str(url);
std::string old_unescaped_str;
@@ -470,16 +368,4 @@ void GeneratePatternsToCheck(const GURL& url, std::vector<std::string>* urls) {
}
}
-SBFullHash StringToSBFullHash(const std::string& hash_in) {
- DCHECK_EQ(crypto::kSHA256Length, hash_in.size());
- SBFullHash hash_out;
- memcpy(hash_out.full_hash, hash_in.data(), crypto::kSHA256Length);
- return hash_out;
-}
-
-std::string SBFullHashToString(const SBFullHash& hash) {
- DCHECK_EQ(crypto::kSHA256Length, sizeof(hash.full_hash));
- return std::string(hash.full_hash, sizeof(hash.full_hash));
-}
-
-} // namespace safe_browsing_util
+} // namespace safe_browsing
« no previous file with comments | « components/safe_browsing_db/util.h ('k') | components/safe_browsing_db/util_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698