Make default apps cache multiprofile friendly
[chromium-blink-merge.git] / chrome / browser / extensions / install_tracker.h
blobc8b2c477fea278be2fce5a95f09582e16a57564e
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_INSTALL_TRACKER_H_
6 #define CHROME_BROWSER_EXTENSIONS_INSTALL_TRACKER_H_
8 #include "base/observer_list.h"
9 #include "base/prefs/pref_change_registrar.h"
10 #include "chrome/browser/extensions/install_observer.h"
11 #include "components/browser_context_keyed_service/browser_context_keyed_service.h"
12 #include "content/public/browser/notification_observer.h"
13 #include "content/public/browser/notification_registrar.h"
15 class Profile;
17 namespace gfx {
18 class ImageSkia;
21 namespace extensions {
23 class ExtensionPrefs;
25 class InstallTracker : public BrowserContextKeyedService,
26 public content::NotificationObserver {
27 public:
28 InstallTracker(Profile* profile,
29 extensions::ExtensionPrefs* prefs);
30 virtual ~InstallTracker();
32 void AddObserver(InstallObserver* observer);
33 void RemoveObserver(InstallObserver* observer);
35 void OnBeginExtensionInstall(
36 const std::string& extension_id,
37 const std::string& extension_name,
38 const gfx::ImageSkia& installing_icon,
39 bool is_app,
40 bool is_platform_app);
41 void OnDownloadProgress(const std::string& extension_id,
42 int percent_downloaded);
43 void OnInstallFailure(const std::string& extension_id);
45 // Overriddes for BrowserContextKeyedService:
46 virtual void Shutdown() OVERRIDE;
48 // content::NotificationObserver
49 virtual void Observe(int type,
50 const content::NotificationSource& source,
51 const content::NotificationDetails& details) OVERRIDE;
53 private:
54 void OnAppsReordered();
56 ObserverList<InstallObserver> observers_;
57 content::NotificationRegistrar registrar_;
58 PrefChangeRegistrar pref_change_registrar_;
60 DISALLOW_COPY_AND_ASSIGN(InstallTracker);
63 } // namespace extensions
65 #endif // CHROME_BROWSER_EXTENSIONS_INSTALL_TRACKER_H_