Home | History | Annotate | Download | only in browser
      1 // Copyright (c) 2011 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_PLUGIN_OBSERVER_H_
      6 #define CHROME_BROWSER_PLUGIN_OBSERVER_H_
      7 #pragma once
      8 
      9 #include "content/browser/tab_contents/tab_contents_observer.h"
     10 
     11 class FilePath;
     12 class GURL;
     13 class InfoBarDelegate;
     14 class PluginInstallerInfoBarDelegate;
     15 class TabContents;
     16 
     17 class PluginObserver : public TabContentsObserver {
     18  public:
     19   explicit PluginObserver(TabContents* tab_contents);
     20   ~PluginObserver();
     21 
     22   // IPC::Channel::Listener implementation.
     23   virtual bool OnMessageReceived(const IPC::Message& message);
     24 
     25  private:
     26   // Returns the PluginInstallerInfoBarDelegate, creating it if necessary.
     27   PluginInstallerInfoBarDelegate* GetPluginInstaller();
     28 
     29   void OnMissingPluginStatus(int status);
     30   void OnCrashedPlugin(const FilePath& plugin_path);
     31   void OnBlockedOutdatedPlugin(const string16& name, const GURL& update_url);
     32 
     33   scoped_ptr<InfoBarDelegate> plugin_installer_;  // Lazily created.
     34 
     35   DISALLOW_COPY_AND_ASSIGN(PluginObserver);
     36 };
     37 
     38 #endif  // CHROME_BROWSER_PLUGIN_OBSERVER_H_
     39