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

Unified Diff: chrome/browser/sessions/session_service.cc

Issue 10917231: Revamp TabNavigation class (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Mac Created 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/sessions/session_service.h ('k') | chrome/browser/sessions/session_service_test_helper.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sessions/session_service.cc
diff --git a/chrome/browser/sessions/session_service.cc b/chrome/browser/sessions/session_service.cc
index 3e4961de0563f80ef2096aad199288abc8b8ebcf..eb406fcf225fc6110bc78af3b84e270b8ac66967 100644
--- a/chrome/browser/sessions/session_service.cc
+++ b/chrome/browser/sessions/session_service.cc
@@ -430,9 +430,8 @@ void SessionService::TabNavigationPathPrunedFromFront(
void SessionService::UpdateTabNavigation(
const SessionID& window_id,
const SessionID& tab_id,
- int index,
- const NavigationEntry& entry) {
- if (!ShouldTrackEntry(entry.GetVirtualURL()) ||
+ const TabNavigation& navigation) {
+ if (!ShouldTrackEntry(navigation.virtual_url()) ||
!ShouldTrackChangesToWindow(window_id)) {
return;
}
@@ -440,11 +439,11 @@ void SessionService::UpdateTabNavigation(
if (tab_to_available_range_.find(tab_id.id()) !=
tab_to_available_range_.end()) {
std::pair<int, int>& range = tab_to_available_range_[tab_id.id()];
- range.first = std::min(index, range.first);
- range.second = std::max(index, range.second);
+ range.first = std::min(navigation.index(), range.first);
+ range.second = std::max(navigation.index(), range.second);
}
ScheduleCommand(CreateUpdateTabNavigationCommand(kCommandUpdateTabNavigation,
- tab_id.id(), index, entry));
+ tab_id.id(), navigation));
}
void SessionService::TabRestored(TabContents* tab, bool pinned) {
@@ -689,9 +688,13 @@ void SessionService::Observe(int type,
if (!session_tab_helper || web_contents->GetBrowserContext() != profile())
return;
content::Details<content::EntryChangedDetails> changed(details);
+ const TabNavigation navigation =
+ TabNavigation::FromNavigationEntry(
+ changed->index, *changed->changed_entry,
+ base::Time::Now());
UpdateTabNavigation(session_tab_helper->window_id(),
session_tab_helper->session_id(),
- changed->index, *changed->changed_entry);
+ navigation);
break;
}
@@ -709,11 +712,16 @@ void SessionService::Observe(int type,
session_tab_helper->window_id(),
session_tab_helper->session_id(),
current_entry_index);
+ const TabNavigation navigation =
+ TabNavigation::FromNavigationEntry(
+ current_entry_index,
+ *web_contents->GetController().GetEntryAtIndex(
+ current_entry_index),
+ base::Time::Now());
UpdateTabNavigation(
session_tab_helper->window_id(),
session_tab_helper->session_id(),
- current_entry_index,
- *web_contents->GetController().GetEntryAtIndex(current_entry_index));
+ navigation);
content::Details<content::LoadCommittedDetails> changed(details);
if (changed->type == content::NAVIGATION_TYPE_NEW_PAGE ||
changed->type == content::NAVIGATION_TYPE_EXISTING_PAGE) {
@@ -1352,9 +1360,11 @@ void SessionService::BuildCommandsForTab(
tab->web_contents()->GetController().GetEntryAtIndex(i);
DCHECK(entry);
if (ShouldTrackEntry(entry->GetVirtualURL())) {
+ const TabNavigation navigation =
+ TabNavigation::FromNavigationEntry(i, *entry, base::Time::Now());
commands->push_back(
CreateUpdateTabNavigationCommand(
- kCommandUpdateTabNavigation, session_id.id(), i, *entry));
+ kCommandUpdateTabNavigation, session_id.id(), navigation));
}
}
commands->push_back(
« no previous file with comments | « chrome/browser/sessions/session_service.h ('k') | chrome/browser/sessions/session_service_test_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698