| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 | 73 |
| 74 // SessionRestoreImpl --------------------------------------------------------- | 74 // SessionRestoreImpl --------------------------------------------------------- |
| 75 | 75 |
| 76 // SessionRestoreImpl is responsible for fetching the set of tabs to create | 76 // SessionRestoreImpl is responsible for fetching the set of tabs to create |
| 77 // from SessionService. SessionRestoreImpl deletes itself when done. | 77 // from SessionService. SessionRestoreImpl deletes itself when done. |
| 78 | 78 |
| 79 class SessionRestoreImpl : public content::NotificationObserver { | 79 class SessionRestoreImpl : public content::NotificationObserver { |
| 80 public: | 80 public: |
| 81 SessionRestoreImpl(Profile* profile, | 81 SessionRestoreImpl(Profile* profile, |
| 82 Browser* browser, | 82 Browser* browser, |
| 83 chrome::HostDesktopType host_desktop_type, | 83 ui::HostDesktopType host_desktop_type, |
| 84 bool synchronous, | 84 bool synchronous, |
| 85 bool clobber_existing_tab, | 85 bool clobber_existing_tab, |
| 86 bool always_create_tabbed_browser, | 86 bool always_create_tabbed_browser, |
| 87 const std::vector<GURL>& urls_to_open, | 87 const std::vector<GURL>& urls_to_open, |
| 88 SessionRestore::CallbackList* callbacks) | 88 SessionRestore::CallbackList* callbacks) |
| 89 : profile_(profile), | 89 : profile_(profile), |
| 90 browser_(browser), | 90 browser_(browser), |
| 91 host_desktop_type_(host_desktop_type), | 91 host_desktop_type_(host_desktop_type), |
| 92 synchronous_(synchronous), | 92 synchronous_(synchronous), |
| 93 clobber_existing_tab_(clobber_existing_tab), | 93 clobber_existing_tab_(clobber_existing_tab), |
| (...skipping 594 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 688 } | 688 } |
| 689 | 689 |
| 690 // The profile to create the sessions for. | 690 // The profile to create the sessions for. |
| 691 Profile* profile_; | 691 Profile* profile_; |
| 692 | 692 |
| 693 // The first browser to restore to, may be null. | 693 // The first browser to restore to, may be null. |
| 694 Browser* browser_; | 694 Browser* browser_; |
| 695 | 695 |
| 696 // The desktop on which all new browsers should be created (browser_, if it is | 696 // The desktop on which all new browsers should be created (browser_, if it is |
| 697 // not NULL, must be of this desktop type as well). | 697 // not NULL, must be of this desktop type as well). |
| 698 chrome::HostDesktopType host_desktop_type_; | 698 ui::HostDesktopType host_desktop_type_; |
| 699 | 699 |
| 700 // Whether or not restore is synchronous. | 700 // Whether or not restore is synchronous. |
| 701 const bool synchronous_; | 701 const bool synchronous_; |
| 702 | 702 |
| 703 // The quit-closure to terminate the nested message-loop started for | 703 // The quit-closure to terminate the nested message-loop started for |
| 704 // synchronous session-restore. | 704 // synchronous session-restore. |
| 705 base::Closure quit_closure_for_sync_restore_; | 705 base::Closure quit_closure_for_sync_restore_; |
| 706 | 706 |
| 707 // See description of CLOBBER_CURRENT_TAB. | 707 // See description of CLOBBER_CURRENT_TAB. |
| 708 const bool clobber_existing_tab_; | 708 const bool clobber_existing_tab_; |
| (...skipping 28 matching lines...) Expand all Loading... |
| 737 SessionRestore::CallbackList* on_session_restored_callbacks_; | 737 SessionRestore::CallbackList* on_session_restored_callbacks_; |
| 738 | 738 |
| 739 DISALLOW_COPY_AND_ASSIGN(SessionRestoreImpl); | 739 DISALLOW_COPY_AND_ASSIGN(SessionRestoreImpl); |
| 740 }; | 740 }; |
| 741 | 741 |
| 742 } // namespace | 742 } // namespace |
| 743 | 743 |
| 744 // SessionRestore ------------------------------------------------------------- | 744 // SessionRestore ------------------------------------------------------------- |
| 745 | 745 |
| 746 // static | 746 // static |
| 747 Browser* SessionRestore::RestoreSession( | 747 Browser* SessionRestore::RestoreSession(Profile* profile, |
| 748 Profile* profile, | 748 Browser* browser, |
| 749 Browser* browser, | 749 ui::HostDesktopType host_desktop_type, |
| 750 chrome::HostDesktopType host_desktop_type, | 750 uint32 behavior, |
| 751 uint32 behavior, | 751 const std::vector<GURL>& urls_to_open) { |
| 752 const std::vector<GURL>& urls_to_open) { | |
| 753 #if defined(OS_CHROMEOS) | 752 #if defined(OS_CHROMEOS) |
| 754 chromeos::BootTimesRecorder::Get()->AddLoginTimeMarker( | 753 chromeos::BootTimesRecorder::Get()->AddLoginTimeMarker( |
| 755 "SessionRestore-Start", false); | 754 "SessionRestore-Start", false); |
| 756 #endif | 755 #endif |
| 757 DCHECK(profile); | 756 DCHECK(profile); |
| 758 // Always restore from the original profile (incognito profiles have no | 757 // Always restore from the original profile (incognito profiles have no |
| 759 // session service). | 758 // session service). |
| 760 profile = profile->GetOriginalProfile(); | 759 profile = profile->GetOriginalProfile(); |
| 761 if (!SessionServiceFactory::GetForProfile(profile)) { | 760 if (!SessionServiceFactory::GetForProfile(profile)) { |
| 762 NOTREACHED(); | 761 NOTREACHED(); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 787 } | 786 } |
| 788 } | 787 } |
| 789 SessionRestore::RestoreSession(browser->profile(), browser, | 788 SessionRestore::RestoreSession(browser->profile(), browser, |
| 790 browser->host_desktop_type(), behavior, | 789 browser->host_desktop_type(), behavior, |
| 791 std::vector<GURL>()); | 790 std::vector<GURL>()); |
| 792 } | 791 } |
| 793 | 792 |
| 794 // static | 793 // static |
| 795 std::vector<Browser*> SessionRestore::RestoreForeignSessionWindows( | 794 std::vector<Browser*> SessionRestore::RestoreForeignSessionWindows( |
| 796 Profile* profile, | 795 Profile* profile, |
| 797 chrome::HostDesktopType host_desktop_type, | 796 ui::HostDesktopType host_desktop_type, |
| 798 std::vector<const sessions::SessionWindow*>::const_iterator begin, | 797 std::vector<const sessions::SessionWindow*>::const_iterator begin, |
| 799 std::vector<const sessions::SessionWindow*>::const_iterator end) { | 798 std::vector<const sessions::SessionWindow*>::const_iterator end) { |
| 800 std::vector<GURL> gurls; | 799 std::vector<GURL> gurls; |
| 801 SessionRestoreImpl restorer(profile, static_cast<Browser*>(nullptr), | 800 SessionRestoreImpl restorer(profile, static_cast<Browser*>(nullptr), |
| 802 host_desktop_type, true, false, true, gurls, | 801 host_desktop_type, true, false, true, gurls, |
| 803 on_session_restored_callbacks()); | 802 on_session_restored_callbacks()); |
| 804 return restorer.RestoreForeignSession(begin, end); | 803 return restorer.RestoreForeignSession(begin, end); |
| 805 } | 804 } |
| 806 | 805 |
| 807 // static | 806 // static |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 858 if (prioritize_tabs == "mru") | 857 if (prioritize_tabs == "mru") |
| 859 return SMART_RESTORE_MODE_MRU; | 858 return SMART_RESTORE_MODE_MRU; |
| 860 if (prioritize_tabs == "simple") | 859 if (prioritize_tabs == "simple") |
| 861 return SMART_RESTORE_MODE_SIMPLE; | 860 return SMART_RESTORE_MODE_SIMPLE; |
| 862 return SMART_RESTORE_MODE_OFF; | 861 return SMART_RESTORE_MODE_OFF; |
| 863 } | 862 } |
| 864 | 863 |
| 865 // static | 864 // static |
| 866 base::CallbackList<void(int)>* | 865 base::CallbackList<void(int)>* |
| 867 SessionRestore::on_session_restored_callbacks_ = nullptr; | 866 SessionRestore::on_session_restored_callbacks_ = nullptr; |
| OLD | NEW |