| Index: chrome/browser/sessions/session_service.cc
|
| diff --git a/chrome/browser/sessions/session_service.cc b/chrome/browser/sessions/session_service.cc
|
| index 805e03e146f575a2e9ebcf468c8b3a658e37f0b0..3bbb27db5cd6202824a8480ee8f901f80ca82933 100644
|
| --- a/chrome/browser/sessions/session_service.cc
|
| +++ b/chrome/browser/sessions/session_service.cc
|
| @@ -34,6 +34,7 @@
|
| #include "chrome/browser/sessions/session_restore.h"
|
| #include "chrome/browser/sessions/session_service_utils.h"
|
| #include "chrome/browser/sessions/session_tab_helper.h"
|
| +#include "chrome/browser/sessions/tab_restore_service_factory.h"
|
| #include "chrome/browser/ui/browser_list.h"
|
| #include "chrome/browser/ui/browser_tabstrip.h"
|
| #include "chrome/browser/ui/browser_window.h"
|
| @@ -43,6 +44,7 @@
|
| #include "components/sessions/core/session_command.h"
|
| #include "components/sessions/core/session_constants.h"
|
| #include "components/sessions/core/session_types.h"
|
| +#include "components/sessions/core/tab_restore_service.h"
|
| #include "content/public/browser/navigation_details.h"
|
| #include "content/public/browser/navigation_entry.h"
|
| #include "content/public/browser/notification_details.h"
|
| @@ -588,7 +590,10 @@ bool SessionService::RestoreIfNecessary(const std::vector<GURL>& urls_to_open,
|
| }
|
| SessionStartupPref pref = StartupBrowserCreator::GetSessionStartupPref(
|
| *base::CommandLine::ForCurrentProcess(), profile());
|
| - if (pref.type == SessionStartupPref::LAST) {
|
| + sessions::TabRestoreService* tab_restore_service =
|
| + TabRestoreServiceFactory::GetForProfileIfExisting(profile());
|
| + if (pref.type == SessionStartupPref::LAST &&
|
| + (!tab_restore_service || !tab_restore_service->IsRestoring())) {
|
| SessionRestore::RestoreSession(
|
| profile(), browser,
|
| browser ? 0 : SessionRestore::ALWAYS_CREATE_TABBED_BROWSER,
|
|
|