1010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// found in the LICENSE file.
4010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
5010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#ifndef CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_HASHED_AD_NETWORK_DATABASE_H_
6010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#define CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_HASHED_AD_NETWORK_DATABASE_H_
7010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "chrome/browser/extensions/activity_log/ad_network_database.h"
9010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace extensions {
11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// The standard ("real") implementation of the AdNetworkDatabase, which stores
13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// a list of hashes of ad networks.
14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)class HashedAdNetworkDatabase : public AdNetworkDatabase {
15010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) public:
16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  HashedAdNetworkDatabase();
17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  virtual ~HashedAdNetworkDatabase();
18010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void set_entries_for_testing(const char** entries, int num_entries) {
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    entries_ = entries;
21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    num_entries_ = num_entries;
22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
24010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) private:
25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  // AdNetworkDatabase implementation.
26010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  virtual bool IsAdNetwork(const GURL& url) const OVERRIDE;
27010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // Points to the array of hash entries. In practice, this is always set to
29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // kHashedAdNetworks, but is exposed via set_entries_for_testing().
30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  const char** entries_;
31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // The number of entries.
33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  int num_entries_;
34010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)};
35010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
36010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}  // namespace extensions
37010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
38010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#endif  // CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_HASHED_AD_NETWORK_DATABASE_H_
39