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

Side by Side Diff: chrome/browser/ui/browser.cc

Issue 2335203003: Add metrics to keep track of the tab activate/deactivate cycle (Closed)
Patch Set: Addressed comments Created 4 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 unified diff | Download patch
OLDNEW
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/ui/browser.h" 5 #include "chrome/browser/ui/browser.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <string> 10 #include <string>
(...skipping 894 matching lines...) Expand 10 before | Expand all | Expand 10 after
905 /////////////////////////////////////////////////////////////////////////////// 905 ///////////////////////////////////////////////////////////////////////////////
906 // Browser, PageNavigator implementation: 906 // Browser, PageNavigator implementation:
907 907
908 WebContents* Browser::OpenURL(const OpenURLParams& params) { 908 WebContents* Browser::OpenURL(const OpenURLParams& params) {
909 return OpenURLFromTab(NULL, params); 909 return OpenURLFromTab(NULL, params);
910 } 910 }
911 911
912 /////////////////////////////////////////////////////////////////////////////// 912 ///////////////////////////////////////////////////////////////////////////////
913 // Browser, TabStripModelObserver implementation: 913 // Browser, TabStripModelObserver implementation:
914 914
915 void Browser::TabInsertedAt(WebContents* contents, 915 void Browser::TabInsertedAt(TabStripModel* tab_strip_model,
916 WebContents* contents,
916 int index, 917 int index,
917 bool foreground) { 918 bool foreground) {
918 SetAsDelegate(contents, true); 919 SetAsDelegate(contents, true);
919 920
920 SessionTabHelper* session_tab_helper = 921 SessionTabHelper* session_tab_helper =
921 SessionTabHelper::FromWebContents(contents); 922 SessionTabHelper::FromWebContents(contents);
922 session_tab_helper->SetWindowID(session_id()); 923 session_tab_helper->SetWindowID(session_id());
923 924
924 content::NotificationService::current()->Notify( 925 content::NotificationService::current()->Notify(
925 chrome::NOTIFICATION_TAB_PARENTED, 926 chrome::NOTIFICATION_TAB_PARENTED,
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
1078 void Browser::TabReplacedAt(TabStripModel* tab_strip_model, 1079 void Browser::TabReplacedAt(TabStripModel* tab_strip_model,
1079 WebContents* old_contents, 1080 WebContents* old_contents,
1080 WebContents* new_contents, 1081 WebContents* new_contents,
1081 int index) { 1082 int index) {
1082 TabDetachedAtImpl(old_contents, index, DETACH_TYPE_REPLACE); 1083 TabDetachedAtImpl(old_contents, index, DETACH_TYPE_REPLACE);
1083 exclusive_access_manager_->OnTabClosing(old_contents); 1084 exclusive_access_manager_->OnTabClosing(old_contents);
1084 SessionService* session_service = 1085 SessionService* session_service =
1085 SessionServiceFactory::GetForProfile(profile_); 1086 SessionServiceFactory::GetForProfile(profile_);
1086 if (session_service) 1087 if (session_service)
1087 session_service->TabClosing(old_contents); 1088 session_service->TabClosing(old_contents);
1088 TabInsertedAt(new_contents, 1089 TabInsertedAt(tab_strip_model, new_contents, index,
1089 index,
1090 (index == tab_strip_model_->active_index())); 1090 (index == tab_strip_model_->active_index()));
1091 1091
1092 if (!new_contents->GetController().IsInitialBlankNavigation()) { 1092 if (!new_contents->GetController().IsInitialBlankNavigation()) {
1093 // Send out notification so that observers are updated appropriately. 1093 // Send out notification so that observers are updated appropriately.
1094 int entry_count = new_contents->GetController().GetEntryCount(); 1094 int entry_count = new_contents->GetController().GetEntryCount();
1095 new_contents->GetController().NotifyEntryChanged( 1095 new_contents->GetController().NotifyEntryChanged(
1096 new_contents->GetController().GetEntryAtIndex(entry_count - 1)); 1096 new_contents->GetController().GetEntryAtIndex(entry_count - 1));
1097 } 1097 }
1098 1098
1099 if (session_service) { 1099 if (session_service) {
1100 // The new_contents may end up with a different navigation stack. Force 1100 // The new_contents may end up with a different navigation stack. Force
1101 // the session service to update itself. 1101 // the session service to update itself.
1102 session_service->TabRestored(new_contents, 1102 session_service->TabRestored(new_contents,
1103 tab_strip_model_->IsTabPinned(index)); 1103 tab_strip_model_->IsTabPinned(index));
1104 } 1104 }
1105 } 1105 }
1106 1106
1107 void Browser::TabPinnedStateChanged(WebContents* contents, int index) { 1107 void Browser::TabPinnedStateChanged(TabStripModel* tab_strip_model,
1108 WebContents* contents,
1109 int index) {
1108 SessionService* session_service = 1110 SessionService* session_service =
1109 SessionServiceFactory::GetForProfileIfExisting(profile()); 1111 SessionServiceFactory::GetForProfileIfExisting(profile());
1110 if (session_service) { 1112 if (session_service) {
1111 SessionTabHelper* session_tab_helper = 1113 SessionTabHelper* session_tab_helper =
1112 SessionTabHelper::FromWebContents(contents); 1114 SessionTabHelper::FromWebContents(contents);
1113 session_service->SetPinnedState(session_id(), 1115 session_service->SetPinnedState(session_id(),
1114 session_tab_helper->session_id(), 1116 session_tab_helper->session_id(),
1115 tab_strip_model_->IsTabPinned(index)); 1117 tab_strip_model_->IsTabPinned(index));
1116 } 1118 }
1117 } 1119 }
(...skipping 1446 matching lines...) Expand 10 before | Expand all | Expand 10 after
2564 if (contents && !allow_js_access) { 2566 if (contents && !allow_js_access) {
2565 contents->web_contents()->GetController().LoadURL( 2567 contents->web_contents()->GetController().LoadURL(
2566 target_url, 2568 target_url,
2567 content::Referrer(), 2569 content::Referrer(),
2568 ui::PAGE_TRANSITION_LINK, 2570 ui::PAGE_TRANSITION_LINK,
2569 std::string()); // No extra headers. 2571 std::string()); // No extra headers.
2570 } 2572 }
2571 2573
2572 return contents != NULL; 2574 return contents != NULL;
2573 } 2575 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698