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

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

Issue 7966020: [Sync] Fix Session's handling of windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments Created 9 years, 2 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <vector> 10 #include <vector>
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 if (browser_) { 439 if (browser_) {
440 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_CLOSED, 440 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_CLOSED,
441 Source<Browser>(browser_)); 441 Source<Browser>(browser_));
442 } 442 }
443 443
444 return browser_; 444 return browser_;
445 } 445 }
446 446
447 // Restore window(s) from a foreign session. 447 // Restore window(s) from a foreign session.
448 void RestoreForeignSession( 448 void RestoreForeignSession(
449 std::vector<SessionWindow*>::const_iterator begin, 449 std::vector<const SessionWindow*>::const_iterator begin,
450 std::vector<SessionWindow*>::const_iterator end) { 450 std::vector<const SessionWindow*>::const_iterator end) {
451 StartTabCreation(); 451 StartTabCreation();
452 // Create a browser instance to put the restored tabs in. 452 // Create a browser instance to put the restored tabs in.
453 for (std::vector<SessionWindow*>::const_iterator i = begin; 453 for (std::vector<const SessionWindow*>::const_iterator i = begin;
454 i != end; ++i) { 454 i != end; ++i) {
455 Browser* browser = CreateRestoredBrowser( 455 Browser* browser = CreateRestoredBrowser(
456 static_cast<Browser::Type>((*i)->type), 456 static_cast<Browser::Type>((*i)->type),
457 (*i)->bounds, 457 (*i)->bounds,
458 (*i)->show_state); 458 (*i)->show_state);
459 459
460 // Restore and show the browser. 460 // Restore and show the browser.
461 const int initial_tab_count = browser->tab_count(); 461 const int initial_tab_count = browser->tab_count();
462 int selected_tab_index = (*i)->selected_tab_index; 462 int selected_tab_index = (*i)->selected_tab_index;
463 RestoreTabsToBrowser(*(*i), browser, selected_tab_index); 463 RestoreTabsToBrowser(*(*i), browser, selected_tab_index);
464 ShowBrowser(browser, initial_tab_count, selected_tab_index); 464 ShowBrowser(browser, initial_tab_count, selected_tab_index);
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
835 profile, browser, (behavior & SYNCHRONOUS) != 0, 835 profile, browser, (behavior & SYNCHRONOUS) != 0,
836 (behavior & CLOBBER_CURRENT_TAB) != 0, 836 (behavior & CLOBBER_CURRENT_TAB) != 0,
837 (behavior & ALWAYS_CREATE_TABBED_BROWSER) != 0, 837 (behavior & ALWAYS_CREATE_TABBED_BROWSER) != 0,
838 urls_to_open); 838 urls_to_open);
839 return restorer->Restore(); 839 return restorer->Restore();
840 } 840 }
841 841
842 // static 842 // static
843 void SessionRestore::RestoreForeignSessionWindows( 843 void SessionRestore::RestoreForeignSessionWindows(
844 Profile* profile, 844 Profile* profile,
845 std::vector<SessionWindow*>::const_iterator begin, 845 std::vector<const SessionWindow*>::const_iterator begin,
846 std::vector<SessionWindow*>::const_iterator end) { 846 std::vector<const SessionWindow*>::const_iterator end) {
847 // Create a SessionRestore object to eventually restore the tabs. 847 // Create a SessionRestore object to eventually restore the tabs.
848 std::vector<GURL> gurls; 848 std::vector<GURL> gurls;
849 SessionRestoreImpl restorer(profile, 849 SessionRestoreImpl restorer(profile,
850 static_cast<Browser*>(NULL), true, false, true, gurls); 850 static_cast<Browser*>(NULL), true, false, true, gurls);
851 restorer.RestoreForeignSession(begin, end); 851 restorer.RestoreForeignSession(begin, end);
852 } 852 }
853 853
854 // static 854 // static
855 void SessionRestore::RestoreForeignSessionTab(Profile* profile, 855 void SessionRestore::RestoreForeignSessionTab(Profile* profile,
856 const SessionTab& tab) { 856 const SessionTab& tab) {
857 // Create a SessionRestore object to eventually restore the tabs. 857 // Create a SessionRestore object to eventually restore the tabs.
858 std::vector<GURL> gurls; 858 std::vector<GURL> gurls;
859 SessionRestoreImpl restorer(profile, 859 SessionRestoreImpl restorer(profile,
860 static_cast<Browser*>(NULL), true, false, true, gurls); 860 static_cast<Browser*>(NULL), true, false, true, gurls);
861 restorer.RestoreForeignTab(tab); 861 restorer.RestoreForeignTab(tab);
862 } 862 }
863 863
864 // static 864 // static
865 bool SessionRestore::IsRestoring() { 865 bool SessionRestore::IsRestoring() {
866 return restoring; 866 return restoring;
867 } 867 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698