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

Side by Side Diff: components/sessions/core/tab_restore_service_helper.h

Issue 2451583002: Add MDP for TabRestorer.
Patch Set: Created 4 years, 1 month 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 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 #ifndef COMPONENTS_SESSIONS_CORE_TAB_RESTORE_SERVICE_HELPER_H_ 5 #ifndef COMPONENTS_SESSIONS_CORE_TAB_RESTORE_SERVICE_HELPER_H_
6 #define COMPONENTS_SESSIONS_CORE_TAB_RESTORE_SERVICE_HELPER_H_ 6 #define COMPONENTS_SESSIONS_CORE_TAB_RESTORE_SERVICE_HELPER_H_
7 7
8 #include <set> 8 #include <set>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "base/observer_list.h" 12 #include "base/observer_list.h"
13 #include "base/time/time.h" 13 #include "base/time/time.h"
14 #include "base/trace_event/memory_dump_provider.h"
14 #include "components/sessions/core/session_id.h" 15 #include "components/sessions/core/session_id.h"
15 #include "components/sessions/core/session_types.h" 16 #include "components/sessions/core/session_types.h"
16 #include "components/sessions/core/sessions_export.h" 17 #include "components/sessions/core/sessions_export.h"
17 #include "components/sessions/core/tab_restore_service.h" 18 #include "components/sessions/core/tab_restore_service.h"
18 19
19 namespace sessions { 20 namespace sessions {
20 21
21 class TabRestoreService; 22 class TabRestoreService;
22 class TabRestoreServiceClient; 23 class TabRestoreServiceClient;
23 class LiveTabContext; 24 class LiveTabContext;
24 class TabRestoreServiceObserver; 25 class TabRestoreServiceObserver;
25 class TimeFactory; 26 class TimeFactory;
26 27
27 // Helper class used to implement InMemoryTabRestoreService and 28 // Helper class used to implement InMemoryTabRestoreService and
28 // PersistentTabRestoreService. See tab_restore_service.h for method-level 29 // PersistentTabRestoreService. See tab_restore_service.h for method-level
29 // comments. 30 // comments.
30 class SESSIONS_EXPORT TabRestoreServiceHelper { 31 class SESSIONS_EXPORT TabRestoreServiceHelper
32 : public base::trace_event::MemoryDumpProvider {
31 public: 33 public:
32 typedef TabRestoreService::Entries Entries; 34 typedef TabRestoreService::Entries Entries;
33 typedef TabRestoreService::Entry Entry; 35 typedef TabRestoreService::Entry Entry;
34 typedef TabRestoreService::Tab Tab; 36 typedef TabRestoreService::Tab Tab;
35 typedef TabRestoreService::TimeFactory TimeFactory; 37 typedef TabRestoreService::TimeFactory TimeFactory;
36 typedef TabRestoreService::Window Window; 38 typedef TabRestoreService::Window Window;
37 39
38 // Provides a way for the client to add behavior to the tab restore service 40 // Provides a way for the client to add behavior to the tab restore service
39 // helper (e.g. implementing tabs persistence). 41 // helper (e.g. implementing tabs persistence).
40 class Observer { 42 class Observer {
(...skipping 19 matching lines...) Expand all
60 }; 62 };
61 63
62 // Creates a new TabRestoreServiceHelper and provides an object that provides 64 // Creates a new TabRestoreServiceHelper and provides an object that provides
63 // the current time. The TabRestoreServiceHelper does not take ownership of 65 // the current time. The TabRestoreServiceHelper does not take ownership of
64 // |time_factory| and |observer|. Note that |observer| can also be NULL. 66 // |time_factory| and |observer|. Note that |observer| can also be NULL.
65 TabRestoreServiceHelper(TabRestoreService* tab_restore_service, 67 TabRestoreServiceHelper(TabRestoreService* tab_restore_service,
66 Observer* observer, 68 Observer* observer,
67 TabRestoreServiceClient* client, 69 TabRestoreServiceClient* client,
68 TimeFactory* time_factory); 70 TimeFactory* time_factory);
69 71
70 ~TabRestoreServiceHelper(); 72 ~TabRestoreServiceHelper() override;
71 73
72 // Helper methods used to implement TabRestoreService. 74 // Helper methods used to implement TabRestoreService.
73 void AddObserver(TabRestoreServiceObserver* observer); 75 void AddObserver(TabRestoreServiceObserver* observer);
74 void RemoveObserver(TabRestoreServiceObserver* observer); 76 void RemoveObserver(TabRestoreServiceObserver* observer);
75 void CreateHistoricalTab(LiveTab* live_tab, int index); 77 void CreateHistoricalTab(LiveTab* live_tab, int index);
76 void BrowserClosing(LiveTabContext* context); 78 void BrowserClosing(LiveTabContext* context);
77 void BrowserClosed(LiveTabContext* context); 79 void BrowserClosed(LiveTabContext* context);
78 void ClearEntries(); 80 void ClearEntries();
79 const Entries& entries() const; 81 const Entries& entries() const;
80 std::vector<LiveTab*> RestoreMostRecentEntry(LiveTabContext* context); 82 std::vector<LiveTab*> RestoreMostRecentEntry(LiveTabContext* context);
(...skipping 18 matching lines...) Expand all
99 // Prunes |entries_| to contain only kMaxEntries, and removes uninteresting 101 // Prunes |entries_| to contain only kMaxEntries, and removes uninteresting
100 // entries. 102 // entries.
101 void PruneEntries(); 103 void PruneEntries();
102 104
103 // Returns an iterator into |entries_| whose id matches |id|. If |id| 105 // Returns an iterator into |entries_| whose id matches |id|. If |id|
104 // identifies a Window, then its iterator position will be returned. If it 106 // identifies a Window, then its iterator position will be returned. If it
105 // identifies a tab, then the iterator position of the Window in which the Tab 107 // identifies a tab, then the iterator position of the Window in which the Tab
106 // resides is returned. 108 // resides is returned.
107 Entries::iterator GetEntryIteratorById(SessionID::id_type id); 109 Entries::iterator GetEntryIteratorById(SessionID::id_type id);
108 110
111 // From base::trace_event::MemoryDumpProvider
112 bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args,
113 base::trace_event::ProcessMemoryDump* pmd) override;
114
109 // Calls either ValidateTab or ValidateWindow as appropriate. 115 // Calls either ValidateTab or ValidateWindow as appropriate.
110 static bool ValidateEntry(const Entry& entry); 116 static bool ValidateEntry(const Entry& entry);
111 117
112 private: 118 private:
113 friend class PersistentTabRestoreService; 119 friend class PersistentTabRestoreService;
114 120
115 // Populates the tab's navigations from the LiveTab, and its browser_id and 121 // Populates the tab's navigations from the LiveTab, and its browser_id and
116 // pinned state from the context. 122 // pinned state from the context.
117 void PopulateTab(Tab* tab, 123 void PopulateTab(Tab* tab,
118 int index, 124 int index,
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 std::set<LiveTabContext*> closing_contexts_; 182 std::set<LiveTabContext*> closing_contexts_;
177 183
178 TimeFactory* const time_factory_; 184 TimeFactory* const time_factory_;
179 185
180 DISALLOW_COPY_AND_ASSIGN(TabRestoreServiceHelper); 186 DISALLOW_COPY_AND_ASSIGN(TabRestoreServiceHelper);
181 }; 187 };
182 188
183 } // namespace sessions 189 } // namespace sessions
184 190
185 #endif // COMPONENTS_SESSIONS_CORE_TAB_RESTORE_SERVICE_HELPER_H_ 191 #endif // COMPONENTS_SESSIONS_CORE_TAB_RESTORE_SERVICE_HELPER_H_
OLDNEW
« no previous file with comments | « components/sessions/core/tab_restore_service.cc ('k') | components/sessions/core/tab_restore_service_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698