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

Side by Side Diff: chrome/browser/sessions/session_service.cc

Issue 8892011: Clean up TCW, make it solely a hub for 1:1 observer/helper objects. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/session_service.h" 5 #include "chrome/browser/sessions/session_service.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
(...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 content::Details<content::PrunedDetails> pruned_details(details); 582 content::Details<content::PrunedDetails> pruned_details(details);
583 if (pruned_details->from_front) { 583 if (pruned_details->from_front) {
584 TabNavigationPathPrunedFromFront( 584 TabNavigationPathPrunedFromFront(
585 tab->restore_tab_helper()->window_id(), 585 tab->restore_tab_helper()->window_id(),
586 tab->restore_tab_helper()->session_id(), 586 tab->restore_tab_helper()->session_id(),
587 pruned_details->count); 587 pruned_details->count);
588 } else { 588 } else {
589 TabNavigationPathPrunedFromBack( 589 TabNavigationPathPrunedFromBack(
590 tab->restore_tab_helper()->window_id(), 590 tab->restore_tab_helper()->window_id(),
591 tab->restore_tab_helper()->session_id(), 591 tab->restore_tab_helper()->session_id(),
592 tab->controller().entry_count()); 592 tab->tab_contents()->controller().entry_count());
593 } 593 }
594 RecordSessionUpdateHistogramData(content::NOTIFICATION_NAV_LIST_PRUNED, 594 RecordSessionUpdateHistogramData(content::NOTIFICATION_NAV_LIST_PRUNED,
595 &last_updated_nav_list_pruned_time_); 595 &last_updated_nav_list_pruned_time_);
596 break; 596 break;
597 } 597 }
598 598
599 case content::NOTIFICATION_NAV_ENTRY_CHANGED: { 599 case content::NOTIFICATION_NAV_ENTRY_CHANGED: {
600 TabContentsWrapper* tab = 600 TabContentsWrapper* tab =
601 TabContentsWrapper::GetCurrentWrapperForContents( 601 TabContentsWrapper::GetCurrentWrapperForContents(
602 content::Source<NavigationController>( 602 content::Source<NavigationController>(
603 source).ptr()->tab_contents()); 603 source).ptr()->tab_contents());
604 if (!tab || tab->profile() != profile()) 604 if (!tab || tab->profile() != profile())
605 return; 605 return;
606 content::Details<content::EntryChangedDetails> changed(details); 606 content::Details<content::EntryChangedDetails> changed(details);
607 UpdateTabNavigation( 607 UpdateTabNavigation(
608 tab->restore_tab_helper()->window_id(), 608 tab->restore_tab_helper()->window_id(),
609 tab->restore_tab_helper()->session_id(), 609 tab->restore_tab_helper()->session_id(),
610 changed->index, *changed->changed_entry); 610 changed->index, *changed->changed_entry);
611 break; 611 break;
612 } 612 }
613 613
614 case content::NOTIFICATION_NAV_ENTRY_COMMITTED: { 614 case content::NOTIFICATION_NAV_ENTRY_COMMITTED: {
615 TabContentsWrapper* tab = 615 TabContentsWrapper* tab =
616 TabContentsWrapper::GetCurrentWrapperForContents( 616 TabContentsWrapper::GetCurrentWrapperForContents(
617 content::Source<NavigationController>( 617 content::Source<NavigationController>(
618 source).ptr()->tab_contents()); 618 source).ptr()->tab_contents());
619 if (!tab || tab->profile() != profile()) 619 if (!tab || tab->profile() != profile())
620 return; 620 return;
621 int current_entry_index = tab->controller().GetCurrentEntryIndex(); 621 int current_entry_index =
622 tab->tab_contents()->controller().GetCurrentEntryIndex();
622 SetSelectedNavigationIndex(tab->restore_tab_helper()->window_id(), 623 SetSelectedNavigationIndex(tab->restore_tab_helper()->window_id(),
623 tab->restore_tab_helper()->session_id(), 624 tab->restore_tab_helper()->session_id(),
624 current_entry_index); 625 current_entry_index);
625 UpdateTabNavigation( 626 UpdateTabNavigation(
626 tab->restore_tab_helper()->window_id(), 627 tab->restore_tab_helper()->window_id(),
627 tab->restore_tab_helper()->session_id(), 628 tab->restore_tab_helper()->session_id(),
628 current_entry_index, 629 current_entry_index,
629 *tab->controller().GetEntryAtIndex(current_entry_index)); 630 *tab->tab_contents()->controller().GetEntryAtIndex(
631 current_entry_index));
630 content::Details<content::LoadCommittedDetails> changed(details); 632 content::Details<content::LoadCommittedDetails> changed(details);
631 if (changed->type == content::NAVIGATION_TYPE_NEW_PAGE || 633 if (changed->type == content::NAVIGATION_TYPE_NEW_PAGE ||
632 changed->type == content::NAVIGATION_TYPE_EXISTING_PAGE) { 634 changed->type == content::NAVIGATION_TYPE_EXISTING_PAGE) {
633 RecordSessionUpdateHistogramData( 635 RecordSessionUpdateHistogramData(
634 content::NOTIFICATION_NAV_ENTRY_COMMITTED, 636 content::NOTIFICATION_NAV_ENTRY_COMMITTED,
635 &last_updated_nav_entry_commit_time_); 637 &last_updated_nav_entry_commit_time_);
636 } 638 }
637 break; 639 break;
638 } 640 }
639 641
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after
1133 void SessionService::BuildCommandsForTab( 1135 void SessionService::BuildCommandsForTab(
1134 const SessionID& window_id, 1136 const SessionID& window_id,
1135 TabContentsWrapper* tab, 1137 TabContentsWrapper* tab,
1136 int index_in_window, 1138 int index_in_window,
1137 bool is_pinned, 1139 bool is_pinned,
1138 std::vector<SessionCommand*>* commands, 1140 std::vector<SessionCommand*>* commands,
1139 IdToRange* tab_to_available_range) { 1141 IdToRange* tab_to_available_range) {
1140 DCHECK(tab && commands && window_id.id()); 1142 DCHECK(tab && commands && window_id.id());
1141 const SessionID& session_id(tab->restore_tab_helper()->session_id()); 1143 const SessionID& session_id(tab->restore_tab_helper()->session_id());
1142 commands->push_back(CreateSetTabWindowCommand(window_id, session_id)); 1144 commands->push_back(CreateSetTabWindowCommand(window_id, session_id));
1143 const int current_index = tab->controller().GetCurrentEntryIndex(); 1145 const int current_index =
1146 tab->tab_contents()->controller().GetCurrentEntryIndex();
1144 const int min_index = std::max(0, 1147 const int min_index = std::max(0,
1145 current_index - max_persist_navigation_count); 1148 current_index - max_persist_navigation_count);
1146 const int max_index = std::min(current_index + max_persist_navigation_count, 1149 const int max_index =
1147 tab->controller().entry_count()); 1150 std::min(current_index + max_persist_navigation_count,
1148 const int pending_index = tab->controller().pending_entry_index(); 1151 tab->tab_contents()->controller().entry_count());
1152 const int pending_index =
1153 tab->tab_contents()->controller().pending_entry_index();
1149 if (tab_to_available_range) { 1154 if (tab_to_available_range) {
1150 (*tab_to_available_range)[session_id.id()] = 1155 (*tab_to_available_range)[session_id.id()] =
1151 std::pair<int, int>(min_index, max_index); 1156 std::pair<int, int>(min_index, max_index);
1152 } 1157 }
1153 if (is_pinned) { 1158 if (is_pinned) {
1154 commands->push_back(CreatePinnedStateCommand(session_id, true)); 1159 commands->push_back(CreatePinnedStateCommand(session_id, true));
1155 } 1160 }
1156 TabContentsWrapper* wrapper = 1161 TabContentsWrapper* wrapper =
1157 TabContentsWrapper::GetCurrentWrapperForContents(tab->tab_contents()); 1162 TabContentsWrapper::GetCurrentWrapperForContents(tab->tab_contents());
1158 if (wrapper->extension_tab_helper()->extension_app()) { 1163 if (wrapper->extension_tab_helper()->extension_app()) {
1159 commands->push_back( 1164 commands->push_back(
1160 CreateSetTabExtensionAppIDCommand( 1165 CreateSetTabExtensionAppIDCommand(
1161 kCommandSetExtensionAppID, session_id.id(), 1166 kCommandSetExtensionAppID, session_id.id(),
1162 wrapper->extension_tab_helper()->extension_app()->id())); 1167 wrapper->extension_tab_helper()->extension_app()->id()));
1163 } 1168 }
1164 for (int i = min_index; i < max_index; ++i) { 1169 for (int i = min_index; i < max_index; ++i) {
1165 const NavigationEntry* entry = (i == pending_index) ? 1170 const NavigationEntry* entry = (i == pending_index) ?
1166 tab->controller().pending_entry() : 1171 tab->tab_contents()->controller().pending_entry() :
1167 tab->controller().GetEntryAtIndex(i); 1172 tab->tab_contents()->controller().GetEntryAtIndex(i);
1168 DCHECK(entry); 1173 DCHECK(entry);
1169 if (ShouldTrackEntry(entry->virtual_url())) { 1174 if (ShouldTrackEntry(entry->virtual_url())) {
1170 commands->push_back( 1175 commands->push_back(
1171 CreateUpdateTabNavigationCommand( 1176 CreateUpdateTabNavigationCommand(
1172 kCommandUpdateTabNavigation, session_id.id(), i, *entry)); 1177 kCommandUpdateTabNavigation, session_id.id(), i, *entry));
1173 } 1178 }
1174 } 1179 }
1175 commands->push_back( 1180 commands->push_back(
1176 CreateSetSelectedNavigationIndexCommand(session_id, current_index)); 1181 CreateSetSelectedNavigationIndexCommand(session_id, current_index));
1177 1182
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after
1534 50); 1539 50);
1535 if (use_long_period) { 1540 if (use_long_period) {
1536 std::string long_name_("SessionRestore.SaveLongPeriod"); 1541 std::string long_name_("SessionRestore.SaveLongPeriod");
1537 UMA_HISTOGRAM_CUSTOM_TIMES(long_name_, 1542 UMA_HISTOGRAM_CUSTOM_TIMES(long_name_,
1538 delta, 1543 delta,
1539 save_delay_in_mins_, 1544 save_delay_in_mins_,
1540 save_delay_in_hrs_, 1545 save_delay_in_hrs_,
1541 50); 1546 50);
1542 } 1547 }
1543 } 1548 }
OLDNEW
« no previous file with comments | « chrome/browser/sessions/restore_tab_helper.cc ('k') | chrome/browser/tab_contents/tab_contents_ssl_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698