Index: chrome/browser/ui/views/hung_renderer_view_win.h |
=================================================================== |
--- chrome/browser/ui/views/hung_renderer_view_win.h (revision 147919) |
+++ chrome/browser/ui/views/hung_renderer_view_win.h (working copy) |
@@ -5,16 +5,45 @@ |
#ifndef CHROME_BROWSER_UI_VIEWS_HUNG_RENDERER_VIEW_WIN_H_ |
#define CHROME_BROWSER_UI_VIEWS_HUNG_RENDERER_VIEW_WIN_H_ |
-#include "chrome/browser/ui/views/hung_renderer_view.h" |
+#include "base/basictypes.h" |
+#include "chrome/browser/ui/tab_contents/tab_contents.h" |
+#include "content/public/browser/web_contents.h" |
-class HungRendererDialogViewWin : public HungRendererDialogView { |
+// This class provides functionality to display a Windows 8 metro style hung |
+// renderer dialog. |
+class HungRendererDialogMetro { |
public: |
- HungRendererDialogViewWin() {} |
- virtual ~HungRendererDialogViewWin() {} |
+ // Creates or returns the global instance of the HungRendererDialogMetro |
+ // class |
+ static HungRendererDialogMetro* Create(); |
+ static HungRendererDialogMetro* GetInstance(); |
- // HungRendererDialogView overrides. |
- virtual void ShowForWebContents(WebContents* contents) OVERRIDE; |
- virtual void EndForWebContents(WebContents* contents) OVERRIDE; |
+ void Show(content::WebContents* contents); |
+ void Hide(content::WebContents* contents); |
+ |
+ private: |
+ HungRendererDialogMetro(); |
+ ~HungRendererDialogMetro(); |
+ |
+ // Handlers for the hang monitor dialog displayed in Windows 8 metro. |
+ static void OnMetroKillProcess(); |
+ static void OnMetroWait(); |
+ |
+ // Resets Windows 8 metro specific state like whether the dialog was |
+ // displayed, etc. |
+ void ResetMetroState(); |
+ |
+ content::WebContents* contents_; |
+ |
+ // Set to true if the metro version of the hang dialog is displayed. |
+ // Helps ensure that only one instance of the dialog is displayed at any |
+ // given time. |
+ bool metro_dialog_displayed_; |
+ |
+ // Pointer to the global instance of the HungRendererDialogMetro class. |
+ static HungRendererDialogMetro* g_instance_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(HungRendererDialogMetro); |
}; |
#endif // CHROME_BROWSER_UI_VIEWS_HUNG_RENDERER_VIEW_WIN_H_ |