Index: chrome/browser/extensions/activity_log/hashed_ad_network_database.cc |
diff --git a/chrome/browser/extensions/activity_log/ad_network_database.cc b/chrome/browser/extensions/activity_log/hashed_ad_network_database.cc |
similarity index 54% |
copy from chrome/browser/extensions/activity_log/ad_network_database.cc |
copy to chrome/browser/extensions/activity_log/hashed_ad_network_database.cc |
index 3ca6700e1e6c2c57dade37d20e85822d6948a4be..3e6f7ce4c26b85cd5eae063a0de87f3d09ec719d 100644 |
--- a/chrome/browser/extensions/activity_log/ad_network_database.cc |
+++ b/chrome/browser/extensions/activity_log/hashed_ad_network_database.cc |
@@ -2,15 +2,13 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/browser/extensions/activity_log/ad_network_database.h" |
+#include "chrome/browser/extensions/activity_log/hashed_ad_network_database.h" |
#include "base/basictypes.h" |
-#include "base/lazy_instance.h" |
+#include "base/logging.h" |
#include "base/memory/ref_counted_memory.h" |
#include "crypto/secure_hash.h" |
#include "crypto/sha2.h" |
-#include "grit/browser_resources.h" |
-#include "ui/base/resource/resource_bundle.h" |
#include "url/gurl.h" |
namespace extensions { |
@@ -30,33 +28,10 @@ COMPILE_ASSERT(kUrlHashSize <= sizeof(int64), url_hashes_must_fit_into_a_int64); |
const size_t kChecksumHashSize = 32u; |
-class AdNetworkDatabaseImpl : public AdNetworkDatabase { |
- public: |
- AdNetworkDatabaseImpl(); |
- virtual ~AdNetworkDatabaseImpl(); |
- |
- private: |
- virtual bool IsAdNetwork(const GURL& url) const OVERRIDE; |
- |
- // Initialize the AdNetworkDatabase. This means initializing the set of |
- // hashes from the shared memory. |
- void Init(); |
- |
- // The set of partial hashes for known ad networks. |
- base::hash_set<int64> entries_; |
-}; |
- |
-AdNetworkDatabaseImpl::AdNetworkDatabaseImpl() { |
- Init(); |
-} |
- |
-AdNetworkDatabaseImpl::~AdNetworkDatabaseImpl() {} |
- |
-void AdNetworkDatabaseImpl::Init() { |
- base::RefCountedStaticMemory* entries_memory = |
- ResourceBundle::GetSharedInstance().LoadDataResourceBytes( |
- IDR_AD_NETWORK_HASHES); |
+} // namespace |
+HashedAdNetworkDatabase::HashedAdNetworkDatabase( |
+ scoped_refptr<base::RefCountedStaticMemory> entries_memory) { |
// This can legitimately happen in unit tests. |
if (!entries_memory) |
return; |
@@ -94,7 +69,9 @@ void AdNetworkDatabaseImpl::Init() { |
} |
} |
-bool AdNetworkDatabaseImpl::IsAdNetwork(const GURL& url) const { |
+HashedAdNetworkDatabase::~HashedAdNetworkDatabase() {} |
+ |
+bool HashedAdNetworkDatabase::IsAdNetwork(const GURL& url) const { |
int64 hash = 0; |
crypto::SHA256HashString(url.host(), &hash, sizeof(hash)); |
// If initialization failed (most likely because this is a unittest), then |
@@ -103,49 +80,4 @@ bool AdNetworkDatabaseImpl::IsAdNetwork(const GURL& url) const { |
return entries_.count(hash) != 0; |
} |
-class AdNetworkDatabaseFactory { |
- public: |
- AdNetworkDatabaseFactory(); |
- ~AdNetworkDatabaseFactory(); |
- |
- const AdNetworkDatabase* GetDatabase(); |
- void SetDatabase(scoped_ptr<AdNetworkDatabase> database); |
- |
- private: |
- scoped_ptr<AdNetworkDatabase> database_; |
-}; |
- |
-AdNetworkDatabaseFactory::AdNetworkDatabaseFactory() {} |
-AdNetworkDatabaseFactory::~AdNetworkDatabaseFactory() {} |
- |
-const AdNetworkDatabase* AdNetworkDatabaseFactory::GetDatabase() { |
- // Construct a new database, if we don't have one. |
- if (!database_.get()) |
- database_.reset(new AdNetworkDatabaseImpl()); |
- |
- return database_.get(); |
-} |
- |
-void AdNetworkDatabaseFactory::SetDatabase( |
- scoped_ptr<AdNetworkDatabase> database) { |
- database_.reset(database.release()); |
-} |
- |
-base::LazyInstance<AdNetworkDatabaseFactory> g_factory = |
- LAZY_INSTANCE_INITIALIZER; |
- |
-} // namespace |
- |
-AdNetworkDatabase::~AdNetworkDatabase() {} |
- |
-// static |
-const AdNetworkDatabase* AdNetworkDatabase::Get() { |
- return g_factory.Get().GetDatabase(); |
-} |
- |
-// static |
-void AdNetworkDatabase::SetForTesting(scoped_ptr<AdNetworkDatabase> database) { |
- g_factory.Get().SetDatabase(database.Pass()); |
-} |
- |
} // namespace extensions |