| Index: chrome/browser/ui/startup/session_crashed_infobar_delegate.cc
 | 
| ===================================================================
 | 
| --- chrome/browser/ui/startup/session_crashed_infobar_delegate.cc	(revision 238220)
 | 
| +++ chrome/browser/ui/startup/session_crashed_infobar_delegate.cc	(working copy)
 | 
| @@ -4,7 +4,6 @@
 | 
|  
 | 
|  #include "chrome/browser/ui/startup/session_crashed_infobar_delegate.h"
 | 
|  
 | 
| -#include "chrome/browser/chrome_notification_types.h"
 | 
|  #include "chrome/browser/infobars/infobar.h"
 | 
|  #include "chrome/browser/profiles/profile.h"
 | 
|  #include "chrome/browser/search/search.h"
 | 
| @@ -14,7 +13,6 @@
 | 
|  #include "chrome/browser/ui/tabs/tab_strip_model.h"
 | 
|  #include "chrome/common/url_constants.h"
 | 
|  #include "content/public/browser/dom_storage_context.h"
 | 
| -#include "content/public/browser/notification_service.h"
 | 
|  #include "content/public/browser/storage_partition.h"
 | 
|  #include "grit/chromium_strings.h"
 | 
|  #include "grit/generated_resources.h"
 | 
| @@ -34,31 +32,21 @@
 | 
|    if (profile->IsOffTheRecord() || !web_contents)
 | 
|      return;
 | 
|  
 | 
| -  InfoBarService* infobar_service =
 | 
| -      InfoBarService::FromWebContents(web_contents);
 | 
| -  infobar_service->AddInfoBar(scoped_ptr<InfoBarDelegate>(
 | 
| -      new SessionCrashedInfoBarDelegate(infobar_service, profile)));
 | 
| +  InfoBarService::FromWebContents(web_contents)->AddInfoBar(
 | 
| +      ConfirmInfoBarDelegate::CreateInfoBar(scoped_ptr<ConfirmInfoBarDelegate>(
 | 
| +          new SessionCrashedInfoBarDelegate(profile))));
 | 
|  }
 | 
|  
 | 
| -SessionCrashedInfoBarDelegate::SessionCrashedInfoBarDelegate(
 | 
| -    InfoBarService* infobar_service,
 | 
| -    Profile* profile)
 | 
| -    : ConfirmInfoBarDelegate(infobar_service),
 | 
| +SessionCrashedInfoBarDelegate::SessionCrashedInfoBarDelegate(Profile* profile)
 | 
| +    : ConfirmInfoBarDelegate(),
 | 
|        accepted_(false),
 | 
| -      removed_notification_received_(false),
 | 
|        profile_(profile) {
 | 
| -  // TODO(pkasting,marja): Once InfoBars own they delegates, this is not needed
 | 
| -  // any more. Then we can rely on delegates getting destroyed, and we can
 | 
| -  // initiate the session storage scavenging only in the destructor. (Currently,
 | 
| -  // info bars are leaked if they get closed while they're in background tabs.)
 | 
| -  registrar_.Add(this, chrome::NOTIFICATION_TAB_CONTENTS_INFOBAR_REMOVED,
 | 
| -                 content::NotificationService::AllSources());
 | 
|  }
 | 
|  
 | 
|  SessionCrashedInfoBarDelegate::~SessionCrashedInfoBarDelegate() {
 | 
|    // If the info bar wasn't accepted, it was either dismissed or expired. In
 | 
|    // that case, session restore won't happen.
 | 
| -  if (!accepted_ && !removed_notification_received_) {
 | 
| +  if (!accepted_) {
 | 
|      content::BrowserContext::GetDefaultStoragePartition(profile_)->
 | 
|          GetDOMStorageContext()->StartScavengingUnusedSessionStorage();
 | 
|    }
 | 
| @@ -84,8 +72,7 @@
 | 
|  
 | 
|  bool SessionCrashedInfoBarDelegate::Accept() {
 | 
|    uint32 behavior = 0;
 | 
| -  Browser* browser =
 | 
| -      chrome::FindBrowserWithWebContents(owner()->web_contents());
 | 
| +  Browser* browser = chrome::FindBrowserWithWebContents(web_contents());
 | 
|    if (browser->tab_strip_model()->count() == 1) {
 | 
|      const content::WebContents* active_tab =
 | 
|          browser->tab_strip_model()->GetWebContentsAt(0);
 | 
| @@ -102,17 +89,3 @@
 | 
|    accepted_ = true;
 | 
|    return true;
 | 
|  }
 | 
| -
 | 
| -void SessionCrashedInfoBarDelegate::Observe(
 | 
| -    int type,
 | 
| -    const content::NotificationSource& source,
 | 
| -    const content::NotificationDetails& details) {
 | 
| -  DCHECK(type == chrome::NOTIFICATION_TAB_CONTENTS_INFOBAR_REMOVED);
 | 
| -  if (content::Details<InfoBar::RemovedDetails>(details)->first != this)
 | 
| -    return;
 | 
| -  if (!accepted_) {
 | 
| -    content::BrowserContext::GetDefaultStoragePartition(profile_)->
 | 
| -        GetDOMStorageContext()->StartScavengingUnusedSessionStorage();
 | 
| -    removed_notification_received_ = true;
 | 
| -  }
 | 
| -}
 | 
| 
 |