Add a UsbService::Observer function for cleanup actions.
[chromium-blink-merge.git] / extensions / browser / test_extension_registry_observer.h
blob34e9a18fbf74e6da2e1596f1807136e25e35a5e7
1 // Copyright 2014 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 EXTENSIONS_BROWSER_TEST_EXTENSION_REGISTRY_OBSERVER_H_
6 #define EXTENSIONS_BROWSER_TEST_EXTENSION_REGISTRY_OBSERVER_H_
8 #include "base/scoped_observer.h"
9 #include "extensions/browser/extension_registry_observer.h"
11 namespace extensions {
12 class ExtensionRegistry;
14 // A helper class that listen for ExtensionRegistry notifications.
15 class TestExtensionRegistryObserver : public ExtensionRegistryObserver {
16 public:
17 explicit TestExtensionRegistryObserver(ExtensionRegistry* registry,
18 const std::string& extension_id);
19 ~TestExtensionRegistryObserver() override;
21 void WaitForExtensionWillBeInstalled();
22 void WaitForExtensionUninstalled();
23 void WaitForExtensionLoaded();
24 void WaitForExtensionUnloaded();
26 private:
27 class Waiter;
29 // ExtensionRegistryObserver.
30 void OnExtensionWillBeInstalled(content::BrowserContext* browser_context,
31 const Extension* extension,
32 bool is_update,
33 bool from_ephemeral,
34 const std::string& old_name) override;
35 void OnExtensionUninstalled(content::BrowserContext* browser_context,
36 const Extension* extension,
37 extensions::UninstallReason reason) override;
38 void OnExtensionLoaded(content::BrowserContext* browser_context,
39 const Extension* extension) override;
40 void OnExtensionUnloaded(content::BrowserContext* browser_context,
41 const Extension* extension,
42 UnloadedExtensionInfo::Reason reason) override;
44 scoped_ptr<Waiter> will_be_installed_waiter_;
45 scoped_ptr<Waiter> uninstalled_waiter_;
46 scoped_ptr<Waiter> loaded_waiter_;
47 scoped_ptr<Waiter> unloaded_waiter_;
49 ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver>
50 extension_registry_observer_;
52 std::string extension_id_;
54 DISALLOW_COPY_AND_ASSIGN(TestExtensionRegistryObserver);
57 } // namespace extensions
59 #endif // EXTENSIONS_BROWSER_TEST_EXTENSION_REGISTRY_OBSERVER_H_