Chromium Code Reviews| Index: chrome/browser/resource_coordinator/tab_manager.cc |
| diff --git a/chrome/browser/resource_coordinator/tab_manager.cc b/chrome/browser/resource_coordinator/tab_manager.cc |
| index 9ce446cfd721ac2a23a6c8128224e1b70016d080..e7097dc88ca4edf0c5852f9b4ca51079f7baa607 100644 |
| --- a/chrome/browser/resource_coordinator/tab_manager.cc |
| +++ b/chrome/browser/resource_coordinator/tab_manager.cc |
| @@ -35,6 +35,7 @@ |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/resource_coordinator/tab_manager_observer.h" |
| #include "chrome/browser/resource_coordinator/tab_manager_web_contents_data.h" |
| +#include "chrome/browser/sessions/tab_loader.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/browser_list.h" |
| #include "chrome/browser/ui/browser_window.h" |
| @@ -136,6 +137,8 @@ TabManager::TabManager() |
| #endif |
| browser_tab_strip_tracker_(this, nullptr, nullptr), |
| test_tick_clock_(nullptr), |
| + in_session_restore_tab_loading_(false), |
|
lpy
2017/06/23 22:35:57
is_in_session_restore_tab_loading_
ducbui
2017/06/23 23:30:14
Done.
|
| + session_restore_observer_instance_(this), |
| weak_ptr_factory_(this) { |
| #if defined(OS_CHROMEOS) |
| delegate_.reset(new TabManagerDelegate(weak_ptr_factory_.GetWeakPtr())); |
| @@ -475,6 +478,16 @@ int64_t TabManager::IdFromWebContents(WebContents* web_contents) { |
| return reinterpret_cast<int64_t>(web_contents); |
| } |
| +void TabManager::OnSessionRestoreTabLoadingStarted() { |
| + DCHECK(!in_session_restore_tab_loading_); |
| + in_session_restore_tab_loading_ = true; |
| +} |
| + |
| +void TabManager::OnSessionRestoreTabLoadingEnded() { |
| + DCHECK(in_session_restore_tab_loading_); |
| + in_session_restore_tab_loading_ = false; |
| +} |
| + |
| /////////////////////////////////////////////////////////////////////////////// |
| // TabManager, private: |
| @@ -903,4 +916,23 @@ std::vector<TabManager::BrowserInfo> TabManager::GetBrowserInfoList() const { |
| return browser_info_list; |
| } |
| +TabManager::SessionRestoreObserverInstance::SessionRestoreObserverInstance( |
| + TabManager* tab_manager) |
| + : tab_manager_(tab_manager) { |
| + SessionRestoreObserver::AddObserver(this); |
| +} |
| + |
| +TabManager::SessionRestoreObserverInstance::~SessionRestoreObserverInstance() { |
| + SessionRestoreObserver::RemoveObserver(this); |
| +} |
| + |
| +// SessionRestoreObserver implementation: |
| +void TabManager::SessionRestoreObserverInstance::OnTabLoadingStarted() { |
| + tab_manager_->OnSessionRestoreTabLoadingStarted(); |
| +} |
| + |
| +void TabManager::SessionRestoreObserverInstance::OnTabLoadingEnded() { |
| + tab_manager_->OnSessionRestoreTabLoadingEnded(); |
| +} |
| + |
| } // namespace resource_coordinator |