| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/sessions/session_restore.h" | 5 #include "chrome/browser/sessions/session_restore.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <list> | 8 #include <list> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 447 | 447 |
| 448 Browser* Restore() { | 448 Browser* Restore() { |
| 449 SessionService* session_service = | 449 SessionService* session_service = |
| 450 SessionServiceFactory::GetForProfile(profile_); | 450 SessionServiceFactory::GetForProfile(profile_); |
| 451 DCHECK(session_service); | 451 DCHECK(session_service); |
| 452 session_service->GetLastSession( | 452 session_service->GetLastSession( |
| 453 &request_consumer_, | 453 &request_consumer_, |
| 454 base::Bind(&SessionRestoreImpl::OnGotSession, base::Unretained(this))); | 454 base::Bind(&SessionRestoreImpl::OnGotSession, base::Unretained(this))); |
| 455 | 455 |
| 456 if (synchronous_) { | 456 if (synchronous_) { |
| 457 bool old_state = MessageLoop::current()->NestableTasksAllowed(); | 457 { |
| 458 MessageLoop::current()->SetNestableTasksAllowed(true); | 458 MessageLoop::ScopedNestableTaskAllower allow(MessageLoop::current()); |
| 459 MessageLoop::current()->Run(); | 459 MessageLoop::current()->Run(); |
| 460 MessageLoop::current()->SetNestableTasksAllowed(old_state); | 460 } |
| 461 Browser* browser = ProcessSessionWindows(&windows_); | 461 Browser* browser = ProcessSessionWindows(&windows_); |
| 462 delete this; | 462 delete this; |
| 463 return browser; | 463 return browser; |
| 464 } | 464 } |
| 465 | 465 |
| 466 if (browser_) { | 466 if (browser_) { |
| 467 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_CLOSED, | 467 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_CLOSED, |
| 468 content::Source<Browser>(browser_)); | 468 content::Source<Browser>(browser_)); |
| 469 } | 469 } |
| 470 | 470 |
| (...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 934 if (active_session_restorers == NULL) | 934 if (active_session_restorers == NULL) |
| 935 return false; | 935 return false; |
| 936 for (std::set<SessionRestoreImpl*>::const_iterator it = | 936 for (std::set<SessionRestoreImpl*>::const_iterator it = |
| 937 active_session_restorers->begin(); | 937 active_session_restorers->begin(); |
| 938 it != active_session_restorers->end(); ++it) { | 938 it != active_session_restorers->end(); ++it) { |
| 939 if ((*it)->profile() == profile) | 939 if ((*it)->profile() == profile) |
| 940 return true; | 940 return true; |
| 941 } | 941 } |
| 942 return false; | 942 return false; |
| 943 } | 943 } |
| OLD | NEW |