• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 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.
4 
5 #ifndef CHROME_BROWSER_PLUGINS_PLUGIN_INSTALLER_OBSERVER_H_
6 #define CHROME_BROWSER_PLUGINS_PLUGIN_INSTALLER_OBSERVER_H_
7 
8 #include <string>
9 
10 class PluginInstaller;
11 
12 class PluginInstallerObserver {
13  public:
14   explicit PluginInstallerObserver(PluginInstaller* installer);
15   virtual ~PluginInstallerObserver();
16 
17  protected:
installer()18   PluginInstaller* installer() const { return installer_; }
19 
20  private:
21   friend class PluginInstaller;
22 
23   virtual void DownloadStarted();
24   virtual void DownloadFinished();
25   virtual void DownloadError(const std::string& message);
26   virtual void DownloadCancelled();
27 
28   // Weak pointer; Owned by PluginFinder, which is a singleton.
29   PluginInstaller* installer_;
30 };
31 
32 // A WeakPluginInstallerObserver is like a weak pointer to the installer, in the
33 // sense that if only weak observers are left, we don't need to show
34 // installation UI anymore.
35 class WeakPluginInstallerObserver : public PluginInstallerObserver {
36  public:
37   explicit WeakPluginInstallerObserver(PluginInstaller* installer);
38   virtual ~WeakPluginInstallerObserver();
39 
40  private:
41   friend class PluginInstaller;
42 
43   virtual void OnlyWeakObserversLeft();
44 };
45 
46 #endif  // CHROME_BROWSER_PLUGINS_PLUGIN_INSTALLER_OBSERVER_H_
47