Add ENABLE_MEDIA_ROUTER define to builds other than Android and iOS.
[chromium-blink-merge.git] / chrome / browser / extensions / fake_safe_browsing_database_manager.h
blobb890c24c227f47ba6e6b14714d51ee0e0a5c5684
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_EXTENSIONS_FAKE_SAFE_BROWSING_DATABASE_MANAGER_H_
6 #define CHROME_BROWSER_EXTENSIONS_FAKE_SAFE_BROWSING_DATABASE_MANAGER_H_
8 #include <set>
9 #include <string>
11 #include "chrome/browser/safe_browsing/database_manager.h"
13 namespace extensions {
15 // A fake safe browsing database manager for use with extensions tests.
17 // By default it is disabled (returning true and ignoring |unsafe_ids_|);
18 // call set_enabled to enable it.
19 class FakeSafeBrowsingDatabaseManager : public SafeBrowsingDatabaseManager {
20 public:
21 explicit FakeSafeBrowsingDatabaseManager(bool enabled);
23 // Returns true if synchronously safe, false if not in which case the unsafe
24 // IDs taken from |unsafe_ids_| are passed to to |client| on the current
25 // message loop.
26 bool CheckExtensionIDs(const std::set<std::string>& extension_ids,
27 Client* client) override;
29 // Return |this| to chain together SetUnsafe(...).NotifyUpdate() conveniently.
30 FakeSafeBrowsingDatabaseManager& Enable();
31 FakeSafeBrowsingDatabaseManager& Disable();
32 FakeSafeBrowsingDatabaseManager& ClearUnsafe();
33 FakeSafeBrowsingDatabaseManager& SetUnsafe(const std::string& a);
34 FakeSafeBrowsingDatabaseManager& SetUnsafe(const std::string& a,
35 const std::string& b);
36 FakeSafeBrowsingDatabaseManager& SetUnsafe(const std::string& a,
37 const std::string& b,
38 const std::string& c);
39 FakeSafeBrowsingDatabaseManager& SetUnsafe(const std::string& a,
40 const std::string& b,
41 const std::string& c,
42 const std::string& d);
43 FakeSafeBrowsingDatabaseManager& AddUnsafe(const std::string& a);
44 FakeSafeBrowsingDatabaseManager& RemoveUnsafe(const std::string& a);
46 // Send the update notification.
47 void NotifyUpdate();
49 private:
50 ~FakeSafeBrowsingDatabaseManager() override;
52 // Runs client->SafeBrowsingResult(result).
53 void OnSafeBrowsingResult(scoped_ptr<SafeBrowsingCheck> result,
54 Client* client);
56 // Whether to respond to CheckExtensionIDs immediately with true (indicating
57 // that there is definitely no extension ID match).
58 bool enabled_;
60 // The extension IDs considered unsafe.
61 std::set<std::string> unsafe_ids_;
64 } // namespace extensions
66 #endif // CHROME_BROWSER_EXTENSIONS_FAKE_SAFE_BROWSING_DATABASE_MANAGER_H_