Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / panels / panel.h
index bd47a55..4e53ec8 100644 (file)
 #include "base/strings/string16.h"
 #include "chrome/browser/command_updater.h"
 #include "chrome/browser/command_updater_delegate.h"
-#include "chrome/browser/sessions/session_id.h"
 #include "chrome/browser/ui/panels/panel_constants.h"
+#include "components/sessions/session_id.h"
 #include "content/public/browser/notification_observer.h"
 #include "content/public/browser/notification_registrar.h"
+#include "extensions/browser/extension_registry_observer.h"
 #include "ui/base/base_window.h"
 #include "ui/gfx/image/image.h"
 #include "ui/gfx/rect.h"
@@ -36,6 +37,7 @@ struct NativeWebKeyboardEvent;
 
 namespace extensions {
 class Extension;
+class ExtensionRegistry;
 class WindowController;
 }
 
@@ -50,7 +52,8 @@ class WindowController;
 //   other Panels. For example deleting a panel would rearrange other panels.
 class Panel : public ui::BaseWindow,
               public CommandUpdaterDelegate,
-              public content::NotificationObserver {
+              public content::NotificationObserver,
+              public extensions::ExtensionRegistryObserver {
  public:
   enum ExpansionState {
     // The panel is fully expanded with both title-bar and the client-area.
@@ -145,6 +148,12 @@ class Panel : public ui::BaseWindow,
                        const content::NotificationSource& source,
                        const content::NotificationDetails& details) OVERRIDE;
 
+  //  extensions::ExtensionRegistryObserver.
+  virtual void OnExtensionUnloaded(
+      content::BrowserContext* browser_context,
+      const extensions::Extension* extension,
+      extensions::UnloadedExtensionInfo::Reason reason) OVERRIDE;
+
   // Construct a native panel implementation.
   static NativePanel* CreateNativePanel(Panel* panel,
                                         const gfx::Rect& bounds,
@@ -388,6 +397,7 @@ class Panel : public ui::BaseWindow,
   CommandUpdater command_updater_;
 
   content::NotificationRegistrar registrar_;
+  extensions::ExtensionRegistry* extension_registry_;
   const SessionID session_id_;
   scoped_ptr<extensions::WindowController> extension_window_controller_;
   scoped_ptr<PanelHost> panel_host_;