| OLD | NEW |
| 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 #include "chrome/browser/sessions/tab_restore_service_helper.h" | 5 #include "chrome/browser/sessions/tab_restore_service_helper.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <iterator> | 8 #include <iterator> |
| 9 | 9 |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 NotifyTabsChanged(); | 145 NotifyTabsChanged(); |
| 146 } | 146 } |
| 147 | 147 |
| 148 const TabRestoreService::Entries& TabRestoreServiceHelper::entries() const { | 148 const TabRestoreService::Entries& TabRestoreServiceHelper::entries() const { |
| 149 return entries_; | 149 return entries_; |
| 150 } | 150 } |
| 151 | 151 |
| 152 std::vector<content::WebContents*> | 152 std::vector<content::WebContents*> |
| 153 TabRestoreServiceHelper::RestoreMostRecentEntry( | 153 TabRestoreServiceHelper::RestoreMostRecentEntry( |
| 154 TabRestoreServiceDelegate* delegate, | 154 TabRestoreServiceDelegate* delegate, |
| 155 chrome::HostDesktopType host_desktop_type) { | 155 ui::HostDesktopType host_desktop_type) { |
| 156 if (entries_.empty()) | 156 if (entries_.empty()) |
| 157 return std::vector<WebContents*>(); | 157 return std::vector<WebContents*>(); |
| 158 | 158 |
| 159 return RestoreEntryById(delegate, entries_.front()->id, host_desktop_type, | 159 return RestoreEntryById(delegate, entries_.front()->id, host_desktop_type, |
| 160 UNKNOWN); | 160 UNKNOWN); |
| 161 } | 161 } |
| 162 | 162 |
| 163 TabRestoreService::Tab* TabRestoreServiceHelper::RemoveTabEntryById( | 163 TabRestoreService::Tab* TabRestoreServiceHelper::RemoveTabEntryById( |
| 164 SessionID::id_type id) { | 164 SessionID::id_type id) { |
| 165 Entries::iterator i = GetEntryIteratorById(id); | 165 Entries::iterator i = GetEntryIteratorById(id); |
| 166 if (i == entries_.end()) | 166 if (i == entries_.end()) |
| 167 return NULL; | 167 return NULL; |
| 168 | 168 |
| 169 Entry* entry = *i; | 169 Entry* entry = *i; |
| 170 if (entry->type != TabRestoreService::TAB) | 170 if (entry->type != TabRestoreService::TAB) |
| 171 return NULL; | 171 return NULL; |
| 172 | 172 |
| 173 Tab* tab = static_cast<Tab*>(entry); | 173 Tab* tab = static_cast<Tab*>(entry); |
| 174 entries_.erase(i); | 174 entries_.erase(i); |
| 175 return tab; | 175 return tab; |
| 176 } | 176 } |
| 177 | 177 |
| 178 std::vector<content::WebContents*> TabRestoreServiceHelper::RestoreEntryById( | 178 std::vector<content::WebContents*> TabRestoreServiceHelper::RestoreEntryById( |
| 179 TabRestoreServiceDelegate* delegate, | 179 TabRestoreServiceDelegate* delegate, |
| 180 SessionID::id_type id, | 180 SessionID::id_type id, |
| 181 chrome::HostDesktopType host_desktop_type, | 181 ui::HostDesktopType host_desktop_type, |
| 182 WindowOpenDisposition disposition) { | 182 WindowOpenDisposition disposition) { |
| 183 Entries::iterator entry_iterator = GetEntryIteratorById(id); | 183 Entries::iterator entry_iterator = GetEntryIteratorById(id); |
| 184 if (entry_iterator == entries_.end()) | 184 if (entry_iterator == entries_.end()) |
| 185 // Don't hoark here, we allow an invalid id. | 185 // Don't hoark here, we allow an invalid id. |
| 186 return std::vector<WebContents*>(); | 186 return std::vector<WebContents*>(); |
| 187 | 187 |
| 188 if (observer_) | 188 if (observer_) |
| 189 observer_->OnRestoreEntryById(id, entry_iterator); | 189 observer_->OnRestoreEntryById(id, entry_iterator); |
| 190 restoring_ = true; | 190 restoring_ = true; |
| 191 Entry* entry = *entry_iterator; | 191 Entry* entry = *entry_iterator; |
| (...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 423 // Delegate may be NULL during unit tests. | 423 // Delegate may be NULL during unit tests. |
| 424 if (delegate) { | 424 if (delegate) { |
| 425 tab->browser_id = delegate->GetSessionID().id(); | 425 tab->browser_id = delegate->GetSessionID().id(); |
| 426 tab->pinned = delegate->IsTabPinned(tab->tabstrip_index); | 426 tab->pinned = delegate->IsTabPinned(tab->tabstrip_index); |
| 427 } | 427 } |
| 428 } | 428 } |
| 429 | 429 |
| 430 TabRestoreServiceDelegate* TabRestoreServiceHelper::RestoreTab( | 430 TabRestoreServiceDelegate* TabRestoreServiceHelper::RestoreTab( |
| 431 const Tab& tab, | 431 const Tab& tab, |
| 432 TabRestoreServiceDelegate* delegate, | 432 TabRestoreServiceDelegate* delegate, |
| 433 chrome::HostDesktopType host_desktop_type, | 433 ui::HostDesktopType host_desktop_type, |
| 434 WindowOpenDisposition disposition, | 434 WindowOpenDisposition disposition, |
| 435 WebContents** contents) { | 435 WebContents** contents) { |
| 436 WebContents* web_contents; | 436 WebContents* web_contents; |
| 437 if (disposition == CURRENT_TAB && delegate) { | 437 if (disposition == CURRENT_TAB && delegate) { |
| 438 web_contents = delegate->ReplaceRestoredTab( | 438 web_contents = delegate->ReplaceRestoredTab( |
| 439 tab.navigations, | 439 tab.navigations, |
| 440 tab.current_navigation_index, | 440 tab.current_navigation_index, |
| 441 tab.from_last_session, | 441 tab.from_last_session, |
| 442 tab.extension_app_id, | 442 tab.extension_app_id, |
| 443 tab.session_storage_namespace.get(), | 443 tab.session_storage_namespace.get(), |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 569 Tab* tab = static_cast<Tab*>(entry); | 569 Tab* tab = static_cast<Tab*>(entry); |
| 570 if (tab->browser_id == old_id) | 570 if (tab->browser_id == old_id) |
| 571 tab->browser_id = new_id; | 571 tab->browser_id = new_id; |
| 572 } | 572 } |
| 573 } | 573 } |
| 574 } | 574 } |
| 575 | 575 |
| 576 base::Time TabRestoreServiceHelper::TimeNow() const { | 576 base::Time TabRestoreServiceHelper::TimeNow() const { |
| 577 return time_factory_ ? time_factory_->TimeNow() : base::Time::Now(); | 577 return time_factory_ ? time_factory_->TimeNow() : base::Time::Now(); |
| 578 } | 578 } |
| OLD | NEW |