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

Side by Side Diff: chrome/browser/sessions/tab_restore_service.h

Issue 3340007: Revert "FBTF: Move the TabRestoreService::Observer into its own file." (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: Created 10 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 (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 #ifndef CHROME_BROWSER_SESSIONS_TAB_RESTORE_SERVICE_H_ 5 #ifndef CHROME_BROWSER_SESSIONS_TAB_RESTORE_SERVICE_H_
6 #define CHROME_BROWSER_SESSIONS_TAB_RESTORE_SERVICE_H_ 6 #define CHROME_BROWSER_SESSIONS_TAB_RESTORE_SERVICE_H_
7 #pragma once 7 #pragma once
8 8
9 #include <list> 9 #include <list>
10 #include <set> 10 #include <set>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/observer_list.h" 13 #include "base/observer_list.h"
14 #include "base/time.h" 14 #include "base/time.h"
15 #include "chrome/browser/sessions/base_session_service.h" 15 #include "chrome/browser/sessions/base_session_service.h"
16 #include "chrome/browser/sessions/session_id.h" 16 #include "chrome/browser/sessions/session_id.h"
17 #include "chrome/browser/sessions/session_types.h" 17 #include "chrome/browser/sessions/session_types.h"
18 18
19 class Browser; 19 class Browser;
20 class NavigationController; 20 class NavigationController;
21 class Profile; 21 class Profile;
22 struct SessionWindow; 22 struct SessionWindow;
23 class TabRestoreServiceObserver;
24 23
25 // TabRestoreService is responsible for maintaining the most recently closed 24 // TabRestoreService is responsible for maintaining the most recently closed
26 // tabs and windows. When a tab is closed 25 // tabs and windows. When a tab is closed
27 // TabRestoreService::CreateHistoricalTab is invoked and a Tab is created to 26 // TabRestoreService::CreateHistoricalTab is invoked and a Tab is created to
28 // represent the tab. Similarly, when a browser is closed, BrowserClosing is 27 // represent the tab. Similarly, when a browser is closed, BrowserClosing is
29 // invoked and a Window is created to represent the window. 28 // invoked and a Window is created to represent the window.
30 // 29 //
31 // To restore a tab/window from the TabRestoreService invoke RestoreEntryById 30 // To restore a tab/window from the TabRestoreService invoke RestoreEntryById
32 // or RestoreMostRecentEntry. 31 // or RestoreMostRecentEntry.
33 // 32 //
34 // To listen for changes to the set of entries managed by the TabRestoreService 33 // To listen for changes to the set of entries managed by the TabRestoreService
35 // add an observer. 34 // add an observer.
36 class TabRestoreService : public BaseSessionService { 35 class TabRestoreService : public BaseSessionService {
37 public: 36 public:
37 // Observer is notified when the set of entries managed by TabRestoreService
38 // changes in some way.
39 class Observer {
40 public:
41 // Sent when the set of entries changes in some way.
42 virtual void TabRestoreServiceChanged(TabRestoreService* service) = 0;
43
44 // Sent to all remaining Observers when TabRestoreService's
45 // destructor is run.
46 virtual void TabRestoreServiceDestroyed(TabRestoreService* service) = 0;
47
48 protected:
49 virtual ~Observer() {}
50 };
51
38 // Interface used to allow the test to provide a custom time. 52 // Interface used to allow the test to provide a custom time.
39 class TimeFactory { 53 class TimeFactory {
40 public: 54 public:
41 virtual ~TimeFactory(); 55 virtual ~TimeFactory();
42 virtual base::Time TimeNow() = 0; 56 virtual base::Time TimeNow() = 0;
43 }; 57 };
44 58
45 // The type of entry. 59 // The type of entry.
46 enum Type { 60 enum Type {
47 TAB, 61 TAB,
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 typedef std::list<Entry*> Entries; 125 typedef std::list<Entry*> Entries;
112 126
113 // Creates a new TabRestoreService and provides an object that provides the 127 // Creates a new TabRestoreService and provides an object that provides the
114 // current time. The TabRestoreService does not take ownership of the 128 // current time. The TabRestoreService does not take ownership of the
115 // |time_factory_|. 129 // |time_factory_|.
116 explicit TabRestoreService(Profile* profile, 130 explicit TabRestoreService(Profile* profile,
117 TimeFactory* time_factory_ = NULL); 131 TimeFactory* time_factory_ = NULL);
118 132
119 // Adds/removes an observer. TabRestoreService does not take ownership of 133 // Adds/removes an observer. TabRestoreService does not take ownership of
120 // the observer. 134 // the observer.
121 void AddObserver(TabRestoreServiceObserver* observer); 135 void AddObserver(Observer* observer);
122 void RemoveObserver(TabRestoreServiceObserver* observer); 136 void RemoveObserver(Observer* observer);
123 137
124 // Creates a Tab to represent |tab| and notifies observers the list of 138 // Creates a Tab to represent |tab| and notifies observers the list of
125 // entries has changed. 139 // entries has changed.
126 void CreateHistoricalTab(NavigationController* tab); 140 void CreateHistoricalTab(NavigationController* tab);
127 141
128 // Invoked when a browser is closing. If |browser| is a tabbed browser with 142 // Invoked when a browser is closing. If |browser| is a tabbed browser with
129 // at least one tab, a Window is created, added to entries and observers are 143 // at least one tab, a Window is created, added to entries and observers are
130 // notified. 144 // notified.
131 void BrowserClosing(Browser* browser); 145 void BrowserClosing(Browser* browser);
132 146
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 321
308 // Have the max number of entries ever been created? 322 // Have the max number of entries ever been created?
309 bool reached_max_; 323 bool reached_max_;
310 324
311 // The number of entries to write. 325 // The number of entries to write.
312 int entries_to_write_; 326 int entries_to_write_;
313 327
314 // Number of entries we've written. 328 // Number of entries we've written.
315 int entries_written_; 329 int entries_written_;
316 330
317 ObserverList<TabRestoreServiceObserver> observer_list_; 331 ObserverList<Observer> observer_list_;
318 332
319 // Set of tabs that we've received a BrowserClosing method for but no 333 // Set of tabs that we've received a BrowserClosing method for but no
320 // corresponding BrowserClosed. We cache the set of browsers closing to 334 // corresponding BrowserClosed. We cache the set of browsers closing to
321 // avoid creating historical tabs for them. 335 // avoid creating historical tabs for them.
322 std::set<Browser*> closing_browsers_; 336 std::set<Browser*> closing_browsers_;
323 337
324 // Used when loading previous tabs/session. 338 // Used when loading previous tabs/session.
325 CancelableRequestConsumer load_consumer_; 339 CancelableRequestConsumer load_consumer_;
326 340
327 // Results from previously closed tabs/sessions is first added here. When 341 // Results from previously closed tabs/sessions is first added here. When
328 // the results from both us and the session restore service have finished 342 // the results from both us and the session restore service have finished
329 // loading LoadStateChanged is invoked, which adds these entries to 343 // loading LoadStateChanged is invoked, which adds these entries to
330 // entries_. 344 // entries_.
331 std::vector<Entry*> staging_entries_; 345 std::vector<Entry*> staging_entries_;
332 346
333 TimeFactory* time_factory_; 347 TimeFactory* time_factory_;
334 348
335 DISALLOW_COPY_AND_ASSIGN(TabRestoreService); 349 DISALLOW_COPY_AND_ASSIGN(TabRestoreService);
336 }; 350 };
337 351
338 #endif // CHROME_BROWSER_SESSIONS_TAB_RESTORE_SERVICE_H_ 352 #endif // CHROME_BROWSER_SESSIONS_TAB_RESTORE_SERVICE_H_
339 353
OLDNEW
« no previous file with comments | « chrome/browser/sessions/session_types.cc ('k') | chrome/browser/sessions/tab_restore_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698