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

Side by Side Diff: ios/chrome/browser/metrics/tab_usage_recorder.mm

Issue 2820763002: Remove usage of Tab's |url| property from TabUsageRecorder. (Closed)
Patch Set: rebase Created 3 years, 6 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "ios/chrome/browser/metrics/tab_usage_recorder.h" 5 #include "ios/chrome/browser/metrics/tab_usage_recorder.h"
6 6
7 #include "base/metrics/histogram_macros.h" 7 #include "base/metrics/histogram_macros.h"
8 #include "ios/chrome/browser/chrome_url_constants.h" 8 #include "ios/chrome/browser/chrome_url_constants.h"
9 #import "ios/chrome/browser/metrics/previous_session_info.h" 9 #import "ios/chrome/browser/metrics/previous_session_info.h"
10 #import "ios/chrome/browser/tabs/tab.h" 10 #import "ios/chrome/browser/tabs/tab.h"
11 #import "ios/web/public/navigation_item.h"
12 #import "ios/web/public/navigation_manager.h"
13 #import "ios/web/public/web_state/web_state.h"
11 #import "ios/web/web_state/ui/crw_web_controller.h" 14 #import "ios/web/web_state/ui/crw_web_controller.h"
12 15
13 #if !defined(__has_feature) || !__has_feature(objc_arc) 16 #if !defined(__has_feature) || !__has_feature(objc_arc)
14 #error "This file requires ARC support." 17 #error "This file requires ARC support."
15 #endif 18 #endif
16 19
17 const char kTabUsageHistogramPrefix[] = "Tab"; 20 const char kTabUsageHistogramPrefix[] = "Tab";
18 21
19 // The histogram recording the state of the tab the user switches to. 22 // The histogram recording the state of the tab the user switches to.
20 const char kSelectedTabHistogramName[] = 23 const char kSelectedTabHistogramName[] =
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 294
292 void TabUsageRecorder::ResetEvictedTab() { 295 void TabUsageRecorder::ResetEvictedTab() {
293 evicted_tab_ = NULL; 296 evicted_tab_ = NULL;
294 evicted_tab_state_ = IN_MEMORY; 297 evicted_tab_state_ = IN_MEMORY;
295 evicted_tab_reload_start_time_ = base::TimeTicks(); 298 evicted_tab_reload_start_time_ = base::TimeTicks();
296 } 299 }
297 300
298 bool TabUsageRecorder::ShouldIgnoreTab(Tab* tab) { 301 bool TabUsageRecorder::ShouldIgnoreTab(Tab* tab) {
299 // Do not count chrome:// urls to avoid data noise. For example, if they were 302 // Do not count chrome:// urls to avoid data noise. For example, if they were
300 // counted, every new tab created would add noise to the page load count. 303 // counted, every new tab created would add noise to the page load count.
301 return [tab url].SchemeIs(kChromeUIScheme); 304 web::NavigationItem* pending_item =
305 tab.webState->GetNavigationManager()->GetPendingItem();
306 if (pending_item)
307 return pending_item->GetURL().SchemeIs(kChromeUIScheme);
308 return tab.lastCommittedURL.SchemeIs(kChromeUIScheme);
302 } 309 }
303 310
304 bool TabUsageRecorder::TabAlreadyEvicted(Tab* tab) { 311 bool TabUsageRecorder::TabAlreadyEvicted(Tab* tab) {
305 base::WeakNSObject<Tab> weak_tab(tab); 312 base::WeakNSObject<Tab> weak_tab(tab);
306 auto tab_item = evicted_tabs_.find(weak_tab); 313 auto tab_item = evicted_tabs_.find(weak_tab);
307 return tab_item != evicted_tabs_.end(); 314 return tab_item != evicted_tabs_.end();
308 } 315 }
309 316
310 TabUsageRecorder::TabStateWhenSelected TabUsageRecorder::ExtractTabState( 317 TabUsageRecorder::TabStateWhenSelected TabUsageRecorder::ExtractTabState(
311 Tab* tab) { 318 Tab* tab) {
(...skipping 19 matching lines...) Expand all
331 } 338 }
332 339
333 void TabUsageRecorder::ClearDeletedTabs() { 340 void TabUsageRecorder::ClearDeletedTabs() {
334 base::WeakNSObject<Tab> empty_tab(nil); 341 base::WeakNSObject<Tab> empty_tab(nil);
335 auto tab_item = evicted_tabs_.find(empty_tab); 342 auto tab_item = evicted_tabs_.find(empty_tab);
336 while (tab_item != evicted_tabs_.end()) { 343 while (tab_item != evicted_tabs_.end()) {
337 evicted_tabs_.erase(empty_tab); 344 evicted_tabs_.erase(empty_tab);
338 tab_item = evicted_tabs_.find(empty_tab); 345 tab_item = evicted_tabs_.find(empty_tab);
339 } 346 }
340 } 347 }
OLDNEW
« no previous file with comments | « ios/chrome/browser/metrics/BUILD.gn ('k') | ios/chrome/browser/metrics/tab_usage_recorder_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698