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

Side by Side Diff: chrome/browser/ui/browser_tab_restorer.cc

Issue 1350653004: [sessions] Properly namespace recently-componentized TabRestore code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix Mac Created 5 years, 3 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "base/metrics/user_metrics_action.h" 5 #include "base/metrics/user_metrics_action.h"
6 #include "base/supports_user_data.h" 6 #include "base/supports_user_data.h"
7 #include "chrome/browser/profiles/profile.h" 7 #include "chrome/browser/profiles/profile.h"
8 #include "chrome/browser/sessions/tab_restore_service_factory.h" 8 #include "chrome/browser/sessions/tab_restore_service_factory.h"
9 #include "chrome/browser/ui/browser.h" 9 #include "chrome/browser/ui/browser.h"
10 #include "chrome/browser/ui/browser_commands.h" 10 #include "chrome/browser/ui/browser_commands.h"
11 #include "chrome/browser/ui/browser_list.h" 11 #include "chrome/browser/ui/browser_list.h"
12 #include "chrome/browser/ui/browser_list_observer.h" 12 #include "chrome/browser/ui/browser_list_observer.h"
13 #include "chrome/browser/ui/browser_tab_restore_service_delegate.h" 13 #include "chrome/browser/ui/browser_tab_restore_service_delegate.h"
14 #include "components/sessions/core/tab_restore_service.h" 14 #include "components/sessions/core/tab_restore_service.h"
15 #include "components/sessions/core/tab_restore_service_observer.h" 15 #include "components/sessions/core/tab_restore_service_observer.h"
16 #include "content/public/browser/user_metrics.h" 16 #include "content/public/browser/user_metrics.h"
17 17
18 namespace chrome { 18 namespace chrome {
19 namespace { 19 namespace {
20 20
21 const char kBrowserTabRestorerKey[] = "BrowserTabRestorer"; 21 const char kBrowserTabRestorerKey[] = "BrowserTabRestorer";
22 22
23 // BrowserTabRestorer is responsible for restoring a tab when the 23 // BrowserTabRestorer is responsible for restoring a tab when the
24 // TabRestoreService finishes loading. A TabRestoreService is associated with a 24 // sessions::TabRestoreService finishes loading. A TabRestoreService is
25 // associated with a
25 // single Browser and deletes itself if the Browser is destroyed. 26 // single Browser and deletes itself if the Browser is destroyed.
26 // BrowserTabRestorer is installed on the Profile (by way of user data), only 27 // BrowserTabRestorer is installed on the Profile (by way of user data), only
27 // one instance is created per profile at a time. 28 // one instance is created per profile at a time.
28 class BrowserTabRestorer : public TabRestoreServiceObserver, 29 class BrowserTabRestorer : public sessions::TabRestoreServiceObserver,
29 public chrome::BrowserListObserver, 30 public chrome::BrowserListObserver,
30 public base::SupportsUserData::Data { 31 public base::SupportsUserData::Data {
31 public: 32 public:
32 ~BrowserTabRestorer() override; 33 ~BrowserTabRestorer() override;
33 34
34 static void CreateIfNecessary(Browser* browser); 35 static void CreateIfNecessary(Browser* browser);
35 36
36 private: 37 private:
37 explicit BrowserTabRestorer(Browser* browser); 38 explicit BrowserTabRestorer(Browser* browser);
38 39
39 // TabRestoreServiceObserver: 40 // TabRestoreServiceObserver:
40 void TabRestoreServiceChanged(TabRestoreService* service) override; 41 void TabRestoreServiceChanged(sessions::TabRestoreService* service) override;
41 void TabRestoreServiceDestroyed(TabRestoreService* service) override; 42 void TabRestoreServiceDestroyed(
42 void TabRestoreServiceLoaded(TabRestoreService* service) override; 43 sessions::TabRestoreService* service) override;
44 void TabRestoreServiceLoaded(sessions::TabRestoreService* service) override;
43 45
44 // BrowserListObserver: 46 // BrowserListObserver:
45 void OnBrowserRemoved(Browser* browser) override; 47 void OnBrowserRemoved(Browser* browser) override;
46 48
47 Browser* browser_; 49 Browser* browser_;
48 TabRestoreService* tab_restore_service_; 50 sessions::TabRestoreService* tab_restore_service_;
49 51
50 DISALLOW_COPY_AND_ASSIGN(BrowserTabRestorer); 52 DISALLOW_COPY_AND_ASSIGN(BrowserTabRestorer);
51 }; 53 };
52 54
53 BrowserTabRestorer::~BrowserTabRestorer() { 55 BrowserTabRestorer::~BrowserTabRestorer() {
54 tab_restore_service_->RemoveObserver(this); 56 tab_restore_service_->RemoveObserver(this);
55 BrowserList::GetInstance(browser_->host_desktop_type())->RemoveObserver(this); 57 BrowserList::GetInstance(browser_->host_desktop_type())->RemoveObserver(this);
56 } 58 }
57 59
58 // static 60 // static
(...skipping 11 matching lines...) Expand all
70 tab_restore_service_( 72 tab_restore_service_(
71 TabRestoreServiceFactory::GetForProfile(browser->profile())) { 73 TabRestoreServiceFactory::GetForProfile(browser->profile())) {
72 DCHECK(tab_restore_service_); 74 DCHECK(tab_restore_service_);
73 DCHECK(!tab_restore_service_->IsLoaded()); 75 DCHECK(!tab_restore_service_->IsLoaded());
74 tab_restore_service_->AddObserver(this); 76 tab_restore_service_->AddObserver(this);
75 BrowserList::GetInstance(browser->host_desktop_type())->AddObserver(this); 77 BrowserList::GetInstance(browser->host_desktop_type())->AddObserver(this);
76 browser_->profile()->SetUserData(kBrowserTabRestorerKey, this); 78 browser_->profile()->SetUserData(kBrowserTabRestorerKey, this);
77 tab_restore_service_->LoadTabsFromLastSession(); 79 tab_restore_service_->LoadTabsFromLastSession();
78 } 80 }
79 81
80 void BrowserTabRestorer::TabRestoreServiceChanged(TabRestoreService* service) { 82 void BrowserTabRestorer::TabRestoreServiceChanged(
81 } 83 sessions::TabRestoreService* service) {}
82 84
83 void BrowserTabRestorer::TabRestoreServiceDestroyed( 85 void BrowserTabRestorer::TabRestoreServiceDestroyed(
84 TabRestoreService* service) { 86 sessions::TabRestoreService* service) {}
85 }
86 87
87 void BrowserTabRestorer::TabRestoreServiceLoaded(TabRestoreService* service) { 88 void BrowserTabRestorer::TabRestoreServiceLoaded(
89 sessions::TabRestoreService* service) {
88 RestoreTab(browser_); 90 RestoreTab(browser_);
89 // This deletes us. 91 // This deletes us.
90 browser_->profile()->SetUserData(kBrowserTabRestorerKey, NULL); 92 browser_->profile()->SetUserData(kBrowserTabRestorerKey, NULL);
91 } 93 }
92 94
93 void BrowserTabRestorer::OnBrowserRemoved(Browser* browser) { 95 void BrowserTabRestorer::OnBrowserRemoved(Browser* browser) {
94 // This deletes us. 96 // This deletes us.
95 browser_->profile()->SetUserData(kBrowserTabRestorerKey, NULL); 97 browser_->profile()->SetUserData(kBrowserTabRestorerKey, NULL);
96 } 98 }
97 99
98 } // namespace 100 } // namespace
99 101
100 void RestoreTab(Browser* browser) { 102 void RestoreTab(Browser* browser) {
101 content::RecordAction(base::UserMetricsAction("RestoreTab")); 103 content::RecordAction(base::UserMetricsAction("RestoreTab"));
102 TabRestoreService* service = 104 sessions::TabRestoreService* service =
103 TabRestoreServiceFactory::GetForProfile(browser->profile()); 105 TabRestoreServiceFactory::GetForProfile(browser->profile());
104 if (!service) 106 if (!service)
105 return; 107 return;
106 108
107 if (service->IsLoaded()) { 109 if (service->IsLoaded()) {
108 service->RestoreMostRecentEntry(browser->tab_restore_service_delegate(), 110 service->RestoreMostRecentEntry(browser->tab_restore_service_delegate(),
109 browser->host_desktop_type()); 111 browser->host_desktop_type());
110 return; 112 return;
111 } 113 }
112 114
113 BrowserTabRestorer::CreateIfNecessary(browser); 115 BrowserTabRestorer::CreateIfNecessary(browser);
114 } 116 }
115 117
116 } // namespace chrome 118 } // namespace chrome
OLDNEW
« no previous file with comments | « chrome/browser/ui/browser_tab_restore_service_delegate.cc ('k') | chrome/browser/ui/browser_tab_strip_model_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698