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

Unified Diff: components/sync_sessions/task_tracker.cc

Issue 2901533003: Revert of Track task ids for navigations cross multiple tabs. (Closed)
Patch Set: Created 3 years, 7 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 | « components/sync_sessions/task_tracker.h ('k') | components/sync_sessions/task_tracker_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/sync_sessions/task_tracker.cc
diff --git a/components/sync_sessions/task_tracker.cc b/components/sync_sessions/task_tracker.cc
index 533c52747e4ab9586251ac7f7f3e720153795ff7..0f8902e2905383a98113746e138927b4909e1d7c 100644
--- a/components/sync_sessions/task_tracker.cc
+++ b/components/sync_sessions/task_tracker.cc
@@ -17,18 +17,6 @@
TabTasks::TabTasks() {}
-TabTasks::TabTasks(const TabTasks* source_tab) {
- if (source_tab->current_navigation_index_ >= 0) {
- std::vector<int64_t> source_tab_task_ids =
- source_tab->GetTaskIdsForNavigation(
- source_tab->current_navigation_index_);
- for (auto source_tab_task_id : source_tab_task_ids)
- task_ids_.push_back({0, source_tab_task_id});
-
- source_tab_task_num_ = source_tab_task_ids.size();
- }
-}
-
TabTasks::~TabTasks() {}
std::vector<int64_t> TabTasks::GetTaskIdsForNavigation(
@@ -38,8 +26,7 @@
std::vector<int64_t> root_to_self_task_ids;
// Position of the navigation in task_ids_ vector.
- int navigation_position =
- GetTaskIdPositionFromNavigationIndex(navigation_index);
+ int navigation_position = navigation_index - excluded_navigation_num_;
// If navigation_index is an excluded ancestor task, returns empty.
if (navigation_position < 0)
@@ -66,7 +53,7 @@
}
int TabTasks::GetNavigationsCount() const {
- return GetNavigationIndexFromTaskIdPosition(task_ids_.size());
+ return excluded_navigation_num_ + task_ids_.size();
}
void TabTasks::UpdateWithNavigation(int navigation_index,
@@ -91,26 +78,25 @@
}
// A new task for the new navigation.
- int root_navigation_index = source_tab_task_num_ + navigation_index;
- if (ui::PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_LINK) ||
- ui::PageTransitionCoreTypeIs(transition,
- ui::PAGE_TRANSITION_AUTO_SUBFRAME) ||
- ui::PageTransitionCoreTypeIs(transition,
- ui::PAGE_TRANSITION_MANUAL_SUBFRAME) ||
- ui::PageTransitionCoreTypeIs(transition,
- ui::PAGE_TRANSITION_FORM_SUBMIT) ||
- transition & ui::PAGE_TRANSITION_IS_REDIRECT_MASK) {
- // Creating a sub-task with navigation at current_navigation_index_ as
- // parent. If current_navigation_index_ == -1, the parent is the last task
- // from source tab.
+ int root_navigation_index = navigation_index;
+ if (current_navigation_index_ != -1 &&
+ (ui::PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_LINK) ||
+ ui::PageTransitionCoreTypeIs(transition,
+ ui::PAGE_TRANSITION_AUTO_SUBFRAME) ||
+ ui::PageTransitionCoreTypeIs(transition,
+ ui::PAGE_TRANSITION_MANUAL_SUBFRAME) ||
+ ui::PageTransitionCoreTypeIs(transition,
+ ui::PAGE_TRANSITION_FORM_SUBMIT) ||
+ transition & ui::PAGE_TRANSITION_IS_REDIRECT_MASK)) {
+ // Creating a sub-task with navigation at current_navigation_index as
+ // parent.
DVLOG(1) << "Creating a sub-task with navigation_index: "
<< navigation_index << " of transition: " << transition
<< " under navigation_index: " << current_navigation_index_;
- // Position of current_navigation_index_ in task_id_
+ // Position in task_id_.
int current_navigation_position =
- GetTaskIdPositionFromNavigationIndex(current_navigation_index_);
- // If current task, which is parent task of navigation_index, is excluded,
- // consider the new task as a root task.
+ current_navigation_index_ - excluded_navigation_num_;
+ // If current/parent task is excluded, consider the new task as a root task.
if (current_navigation_position >= 0) {
CHECK_LT(current_navigation_position,
base::checked_cast<int>(task_ids_.size()));
@@ -129,23 +115,22 @@
}
// In most cases navigation_index == excluded_navigation_num_ +
- // task_ids_.size() - source_tab_task_num_ if the previous navigation is end
- // of chain, or navigation_index < excluded_navigation_num_ + task_ids_.size()
- // otherwise. In few case navigation_index > excluded_navigation_num_ +
- // task_ids_.size(), we fill task_ids_ with invalid contents. A known case is
- // the first navigation after newtab.
- for (int i = GetNavigationIndexFromTaskIdPosition(task_ids_.size());
+ // task_ids_.size() if the previous navigation is end of chain, or
+ // navigation_index < excluded_navigation_num_ + task_ids_.size() otherwise.
+ // In few case navigation_index > excluded_navigation_num_ + task_ids_.size(),
+ // we fill task_ids_ with invalid contents. A known case is the first
+ // navigation after newtab.
+ for (int i = task_ids_.size() + excluded_navigation_num_;
i < navigation_index; i++) {
task_ids_.push_back({-1, -1});
}
- int new_task_id_position =
- GetTaskIdPositionFromNavigationIndex(navigation_index);
// Erase all task ids associated with an outdated forward navigation stack.
- if (new_task_id_position > 0) {
+ if (navigation_index > excluded_navigation_num_) {
+ int new_task_id_position = navigation_index - excluded_navigation_num_;
task_ids_.erase(task_ids_.begin() + new_task_id_position, task_ids_.end());
} else {
- excluded_navigation_num_ = navigation_index + source_tab_task_num_;
+ excluded_navigation_num_ = navigation_index;
// new task id position is 0
task_ids_.clear();
}
@@ -167,14 +152,6 @@
return;
}
-int TabTasks::GetTaskIdPositionFromNavigationIndex(int navigation_index) const {
- return source_tab_task_num_ + navigation_index - excluded_navigation_num_;
-}
-
-int TabTasks::GetNavigationIndexFromTaskIdPosition(int task_id_position) const {
- return excluded_navigation_num_ + task_id_position - source_tab_task_num_;
-}
-
TaskTracker::TaskTracker() {}
TaskTracker::~TaskTracker() {}
@@ -182,20 +159,6 @@
TabTasks* TaskTracker::GetTabTasks(SessionID::id_type tab_id) {
if (local_tab_tasks_map_.find(tab_id) == local_tab_tasks_map_.end()) {
local_tab_tasks_map_[tab_id] = base::MakeUnique<TabTasks>();
- }
- return local_tab_tasks_map_[tab_id].get();
-}
-
-TabTasks* TaskTracker::GetTabTasks(SessionID::id_type tab_id,
- SessionID::id_type source_tab_id) {
- if (local_tab_tasks_map_.find(tab_id) == local_tab_tasks_map_.end()) {
- auto source_tab_iter = local_tab_tasks_map_.find(source_tab_id);
- if (source_tab_iter != local_tab_tasks_map_.end()) {
- local_tab_tasks_map_[tab_id] =
- base::MakeUnique<TabTasks>(source_tab_iter->second.get());
- } else {
- local_tab_tasks_map_[tab_id] = base::MakeUnique<TabTasks>();
- }
}
return local_tab_tasks_map_[tab_id].get();
}
« no previous file with comments | « components/sync_sessions/task_tracker.h ('k') | components/sync_sessions/task_tracker_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698