| Index: ios/chrome/browser/crash_report/crash_restore_helper.mm
|
| diff --git a/ios/chrome/browser/crash_report/crash_restore_helper.mm b/ios/chrome/browser/crash_report/crash_restore_helper.mm
|
| index a2e23b5fbf35f08926f5ced343398cc95400aca1..12b96763967641aa3707160212fef4d2037c7bf3 100644
|
| --- a/ios/chrome/browser/crash_report/crash_restore_helper.mm
|
| +++ b/ios/chrome/browser/crash_report/crash_restore_helper.mm
|
| @@ -20,6 +20,7 @@
|
| #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
|
| #import "ios/chrome/browser/crash_report/breakpad_helper.h"
|
| #include "ios/chrome/browser/sessions/ios_chrome_tab_restore_service_factory.h"
|
| +#import "ios/chrome/browser/sessions/session_ios.h"
|
| #import "ios/chrome/browser/sessions/session_service_ios.h"
|
| #import "ios/chrome/browser/sessions/session_window_ios.h"
|
| #import "ios/chrome/browser/tabs/tab.h"
|
| @@ -259,13 +260,15 @@ int SessionCrashedInfoBarDelegate::GetIconId() const {
|
| DCHECK(!_sessionRestored);
|
| _sessionRestored = YES;
|
| _infoBarBridge.reset();
|
| - SessionWindowIOS* sessionWindow = [[SessionServiceIOS sharedService]
|
| - loadSessionWindowFromPath:[self sessionBackupPath]];
|
| - if (sessionWindow) {
|
| - breakpad_helper::WillStartCrashRestoration();
|
| - return [_tabModel restoreSessionWindow:sessionWindow];
|
| - }
|
| - return NO;
|
| +
|
| + SessionIOS* session = [[SessionServiceIOS sharedService]
|
| + loadSessionFromPath:[self sessionBackupPath]];
|
| + if (!session)
|
| + return NO;
|
| +
|
| + DCHECK_EQ(session.sessionWindows.count, 1u);
|
| + breakpad_helper::WillStartCrashRestoration();
|
| + return [_tabModel restoreSessionWindow:session.sessionWindows[0]];
|
| }
|
|
|
| - (void)infoBarRemoved:(infobars::InfoBar*)infobar {
|
| @@ -281,12 +284,14 @@ int SessionCrashedInfoBarDelegate::GetIconId() const {
|
| // the recently closed tabs.
|
| _sessionRestored = YES;
|
|
|
| - SessionWindowIOS* window = [[SessionServiceIOS sharedService]
|
| - loadSessionWindowFromPath:[self sessionBackupPath]];
|
| - DCHECK(window);
|
| - NSArray* sessions = window.sessions;
|
| + SessionIOS* session = [[SessionServiceIOS sharedService]
|
| + loadSessionFromPath:[self sessionBackupPath]];
|
| + DCHECK_EQ(session.sessionWindows.count, 1u);
|
| +
|
| + NSArray<CRWSessionStorage*>* sessions = session.sessionWindows[0].sessions;
|
| if (!sessions.count)
|
| return;
|
| +
|
| sessions::TabRestoreService* const tabRestoreService =
|
| IOSChromeTabRestoreServiceFactory::GetForBrowserState(_browserState);
|
| tabRestoreService->LoadTabsFromLastSession();
|
|
|