summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/startup/session_crashed_prompt.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/ui/startup/session_crashed_prompt.h')
-rw-r--r--chrome/browser/ui/startup/session_crashed_prompt.h38
1 files changed, 34 insertions, 4 deletions
diff --git a/chrome/browser/ui/startup/session_crashed_prompt.h b/chrome/browser/ui/startup/session_crashed_prompt.h
index 8427313..af17728 100644
--- a/chrome/browser/ui/startup/session_crashed_prompt.h
+++ b/chrome/browser/ui/startup/session_crashed_prompt.h
@@ -5,13 +5,43 @@
#ifndef CHROME_BROWSER_UI_STARTUP_SESSION_CRASHED_PROMPT_H_
#define CHROME_BROWSER_UI_STARTUP_SESSION_CRASHED_PROMPT_H_
+#include "chrome/browser/api/infobars/confirm_infobar_delegate.h"
+#include "content/public/browser/notification_observer.h"
+#include "content/public/browser/notification_registrar.h"
+
class Browser;
-namespace chrome {
+// A delegate for the InfoBar shown when the previous session has crashed.
+class SessionCrashedInfoBarDelegate : public ConfirmInfoBarDelegate,
+ public content::NotificationObserver {
+ public:
+ // If |browser| is not incognito, creates a session crashed delegate and adds
+ // it to the InfoBarService for |browser|.
+ static void Create(Browser* browser);
+
+ private:
+ SessionCrashedInfoBarDelegate(InfoBarService* infobar_service,
+ Browser* browser);
+ virtual ~SessionCrashedInfoBarDelegate();
+
+ // ConfirmInfoBarDelegate:
+ virtual gfx::Image* GetIcon() const OVERRIDE;
+ virtual string16 GetMessageText() const OVERRIDE;
+ virtual int GetButtons() const OVERRIDE;
+ virtual string16 GetButtonLabel(InfoBarButton button) const OVERRIDE;
+ virtual bool Accept() OVERRIDE;
+
+ // content::NotificationObserver:
+ virtual void Observe(int type,
+ const content::NotificationSource& source,
+ const content::NotificationDetails& details) OVERRIDE;
-// Shows the session crashed prompt for |browser| if required.
-void ShowSessionCrashedPrompt(Browser* browser);
+ content::NotificationRegistrar registrar_;
+ bool accepted_;
+ bool removed_notification_received_;
+ Browser* browser_;
-} // namespace chrome
+ DISALLOW_COPY_AND_ASSIGN(SessionCrashedInfoBarDelegate);
+};
#endif // CHROME_BROWSER_UI_STARTUP_SESSION_CRASHED_PROMPT_H_