OLD | NEW |
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 | 7 |
8 #include <list> | 8 #include <list> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 | 161 |
162 // Indicates we finished loading the last tabs (but not necessarily the | 162 // Indicates we finished loading the last tabs (but not necessarily the |
163 // last session). | 163 // last session). |
164 LOADED_LAST_TABS = 1 << 3, | 164 LOADED_LAST_TABS = 1 << 3, |
165 | 165 |
166 // Indicates we finished loading the last session (but not necessarily the | 166 // Indicates we finished loading the last session (but not necessarily the |
167 // last tabs). | 167 // last tabs). |
168 LOADED_LAST_SESSION = 1 << 4 | 168 LOADED_LAST_SESSION = 1 << 4 |
169 }; | 169 }; |
170 | 170 |
171 // Populates tabs->navigations from the NavigationController. | 171 // Populates the tab's navigations from the NavigationController, and its |
172 void PopulateTabFromController(NavigationController* controller, | 172 // browser_id and tabstrip_index from the browser. |
173 Tab* tab); | 173 void PopulateTab(Tab* tab, |
| 174 Browser* browser, |
| 175 NavigationController* controller); |
174 | 176 |
175 // Notifies observers the tabs have changed. | 177 // Notifies observers the tabs have changed. |
176 void NotifyTabsChanged(); | 178 void NotifyTabsChanged(); |
177 | 179 |
178 // Adds |entry| to the list of entries. If |prune| is true |PruneAndNotify| | 180 // Adds |entry| to the list of entries. If |prune| is true |PruneAndNotify| |
179 // is invoked. If |to_front| is true the entry is added to the front, | 181 // is invoked. If |to_front| is true the entry is added to the front, |
180 // otherwise the back. Normal closes go to the front, but tab/window closes | 182 // otherwise the back. Normal closes go to the front, but tab/window closes |
181 // from the previous session are added to the back. | 183 // from the previous session are added to the back. |
182 void AddEntry(Entry* entry, bool prune, bool to_front); | 184 void AddEntry(Entry* entry, bool prune, bool to_front); |
183 | 185 |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 // Returns true if |tab| has more than one navigation. If |tab| has more | 230 // Returns true if |tab| has more than one navigation. If |tab| has more |
229 // than one navigation |tab->current_navigation_index| is constrained based | 231 // than one navigation |tab->current_navigation_index| is constrained based |
230 // on the number of navigations. | 232 // on the number of navigations. |
231 bool ValidateTab(Tab* tab); | 233 bool ValidateTab(Tab* tab); |
232 | 234 |
233 // Validates all entries in |entries|, deleting any with no navigations. | 235 // Validates all entries in |entries|, deleting any with no navigations. |
234 // This also deletes any entries beyond the max number of entries we can | 236 // This also deletes any entries beyond the max number of entries we can |
235 // hold. | 237 // hold. |
236 void ValidateAndDeleteEmptyEntries(std::vector<Entry*>* entries); | 238 void ValidateAndDeleteEmptyEntries(std::vector<Entry*>* entries); |
237 | 239 |
| 240 // Finds tab entries with the old browser_id and sets it to the new one. |
| 241 void UpdateTabBrowserIDs(SessionID::id_type old_id, |
| 242 SessionID::id_type new_id); |
| 243 |
238 // Callback from SessionService when we've received the windows from the | 244 // Callback from SessionService when we've received the windows from the |
239 // previous session. This creates and add entries to |staging_entries_| | 245 // previous session. This creates and add entries to |staging_entries_| |
240 // and invokes LoadStateChanged. | 246 // and invokes LoadStateChanged. |
241 void OnGotPreviousSession(Handle handle, | 247 void OnGotPreviousSession(Handle handle, |
242 std::vector<SessionWindow*>* windows); | 248 std::vector<SessionWindow*>* windows); |
243 | 249 |
244 // Creates and add entries to |entries| for each of the windows in |windows|. | 250 // Creates and add entries to |entries| for each of the windows in |windows|. |
245 void CreateEntriesFromWindows( | 251 void CreateEntriesFromWindows( |
246 std::vector<SessionWindow*>* windows, | 252 std::vector<SessionWindow*>* windows, |
247 std::vector<Entry*>* entries); | 253 std::vector<Entry*>* entries); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
288 // Results from previously closed tabs/sessions is first added here. When | 294 // Results from previously closed tabs/sessions is first added here. When |
289 // the results from both us and the session restore service have finished | 295 // the results from both us and the session restore service have finished |
290 // loading LoadStateChanged is invoked, which adds these entries to | 296 // loading LoadStateChanged is invoked, which adds these entries to |
291 // entries_. | 297 // entries_. |
292 std::vector<Entry*> staging_entries_; | 298 std::vector<Entry*> staging_entries_; |
293 | 299 |
294 DISALLOW_COPY_AND_ASSIGN(TabRestoreService); | 300 DISALLOW_COPY_AND_ASSIGN(TabRestoreService); |
295 }; | 301 }; |
296 | 302 |
297 #endif // CHROME_BROWSER_SESSIONS_TAB_RESTORE_SERVICE_H_ | 303 #endif // CHROME_BROWSER_SESSIONS_TAB_RESTORE_SERVICE_H_ |
OLD | NEW |