Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(61)

Side by Side Diff: chrome/browser/sessions/session_restore.cc

Issue 9384024: Prefer ScopedNestableTaskAllower over manual save/restore (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rename back to "allow". Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <malloc.h> 8 #include <malloc.h>
9 #else 9 #else
10 #include <alloca.h> 10 #include <alloca.h>
(...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 468
469 Browser* Restore() { 469 Browser* Restore() {
470 SessionService* session_service = 470 SessionService* session_service =
471 SessionServiceFactory::GetForProfile(profile_); 471 SessionServiceFactory::GetForProfile(profile_);
472 DCHECK(session_service); 472 DCHECK(session_service);
473 session_service->GetLastSession( 473 session_service->GetLastSession(
474 &request_consumer_, 474 &request_consumer_,
475 base::Bind(&SessionRestoreImpl::OnGotSession, base::Unretained(this))); 475 base::Bind(&SessionRestoreImpl::OnGotSession, base::Unretained(this)));
476 476
477 if (synchronous_) { 477 if (synchronous_) {
478 bool old_state = MessageLoop::current()->NestableTasksAllowed(); 478 {
479 MessageLoop::current()->SetNestableTasksAllowed(true); 479 MessageLoop::ScopedNestableTaskAllower allow(MessageLoop::current());
480 MessageLoop::current()->Run(); 480 MessageLoop::current()->Run();
481 MessageLoop::current()->SetNestableTasksAllowed(old_state); 481 }
482 Browser* browser = ProcessSessionWindows(&windows_); 482 Browser* browser = ProcessSessionWindows(&windows_);
483 delete this; 483 delete this;
484 return browser; 484 return browser;
485 } 485 }
486 486
487 if (browser_) { 487 if (browser_) {
488 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_CLOSED, 488 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_CLOSED,
489 content::Source<Browser>(browser_)); 489 content::Source<Browser>(browser_));
490 } 490 }
491 491
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
976 if (active_session_restorers == NULL) 976 if (active_session_restorers == NULL)
977 return false; 977 return false;
978 for (std::set<SessionRestoreImpl*>::const_iterator it = 978 for (std::set<SessionRestoreImpl*>::const_iterator it =
979 active_session_restorers->begin(); 979 active_session_restorers->begin();
980 it != active_session_restorers->end(); ++it) { 980 it != active_session_restorers->end(); ++it) {
981 if ((*it)->profile() == profile) 981 if ((*it)->profile() == profile)
982 return true; 982 return true;
983 } 983 }
984 return false; 984 return false;
985 } 985 }
OLDNEW
« no previous file with comments | « chrome/browser/printing/print_view_manager.cc ('k') | chrome/browser/sync/profile_sync_service_harness.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698