Index: chrome/browser/ui/startup/session_crashed_prompt.cc |
=================================================================== |
--- chrome/browser/ui/startup/session_crashed_prompt.cc (revision 175396) |
+++ chrome/browser/ui/startup/session_crashed_prompt.cc (working copy) |
@@ -4,7 +4,6 @@ |
#include "chrome/browser/ui/startup/session_crashed_prompt.h" |
-#include "chrome/browser/api/infobars/confirm_infobar_delegate.h" |
#include "chrome/browser/api/infobars/infobar_service.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/sessions/session_restore.h" |
@@ -24,38 +23,25 @@ |
#include "ui/base/l10n/l10n_util.h" |
#include "ui/base/resource/resource_bundle.h" |
-namespace { |
+// static |
+void SessionCrashedInfoBarDelegate::Create(Browser* browser) { |
+ // Assume that if the user is launching incognito they were previously |
+ // running incognito so that we have nothing to restore from. |
+ if (browser->profile()->IsOffTheRecord()) |
+ return; |
-// A delegate for the InfoBar shown when the previous session has crashed. |
-class SessionCrashedInfoBarDelegate : public ConfirmInfoBarDelegate, |
- public content::NotificationObserver { |
- public: |
- SessionCrashedInfoBarDelegate(InfoBarService* infobar_service, |
- Browser* browser); |
+ // In ChromeBot tests, there might be a race. This line appears to get |
+ // called during shutdown and |web_contents| can be NULL. |
+ content::WebContents* tab = |
+ browser->tab_strip_model()->GetActiveWebContents(); |
+ if (!tab) |
+ return; |
- private: |
- virtual ~SessionCrashedInfoBarDelegate(); |
+ InfoBarService* infobar_service = InfoBarService::FromWebContents(tab); |
+ infobar_service->AddInfoBar(scoped_ptr<InfoBarDelegate>( |
+ new SessionCrashedInfoBarDelegate(infobar_service, browser))); |
+} |
- // 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; |
- |
- content::NotificationRegistrar registrar_; |
- bool accepted_; |
- bool removed_notification_received_; |
- Browser* browser_; |
- |
- DISALLOW_COPY_AND_ASSIGN(SessionCrashedInfoBarDelegate); |
-}; |
- |
SessionCrashedInfoBarDelegate::SessionCrashedInfoBarDelegate( |
InfoBarService* infobar_service, |
Browser* browser) |
@@ -128,31 +114,3 @@ |
removed_notification_received_ = true; |
} |
} |
- |
-} // namespace |
- |
-namespace chrome { |
- |
-void ShowSessionCrashedPrompt(Browser* browser) { |
- // Assume that if the user is launching incognito they were previously |
- // running incognito so that we have nothing to restore from. |
- if (browser->profile()->IsOffTheRecord()) |
- return; |
- |
- // In ChromeBot tests, there might be a race. This line appears to get |
- // called during shutdown and |tab| can be NULL. |
- content::WebContents* tab = |
- browser->tab_strip_model()->GetActiveWebContents(); |
- if (!tab) |
- return; |
- |
- // Don't show the info-bar if there are already info-bars showing. |
- InfoBarService* infobar_service = InfoBarService::FromWebContents(tab); |
- if (infobar_service->GetInfoBarCount() > 0) |
- return; |
- |
- infobar_service->AddInfoBar( |
- new SessionCrashedInfoBarDelegate(infobar_service, browser)); |
-} |
- |
-} // namespace chrome |