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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java

Issue 2833473002: Record NTP.LogoShownTime for timely refreshs only (Closed)
Patch Set: Fix compile errors and comments 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 unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 package org.chromium.chrome.browser.ntp; 5 package org.chromium.chrome.browser.ntp;
6 6
7 import org.chromium.base.metrics.RecordHistogram; 7 import org.chromium.base.metrics.RecordHistogram;
8 import org.chromium.chrome.browser.ntp.LogoBridge.Logo; 8 import org.chromium.chrome.browser.ntp.LogoBridge.Logo;
9 import org.chromium.chrome.browser.ntp.LogoBridge.LogoObserver; 9 import org.chromium.chrome.browser.ntp.LogoBridge.LogoObserver;
10 import org.chromium.chrome.browser.tab.Tab; 10 import org.chromium.chrome.browser.tab.Tab;
(...skipping 20 matching lines...) Expand all
31 private static final int CTA_IMAGE_CLICKED = 1; 31 private static final int CTA_IMAGE_CLICKED = 1;
32 private static final int ANIMATED_LOGO_CLICKED = 2; 32 private static final int ANIMATED_LOGO_CLICKED = 2;
33 33
34 private final Tab mTab; 34 private final Tab mTab;
35 private LogoView mLogoView; 35 private LogoView mLogoView;
36 36
37 private LogoBridge mLogoBridge; 37 private LogoBridge mLogoBridge;
38 private String mOnLogoClickUrl; 38 private String mOnLogoClickUrl;
39 private String mAnimatedLogoUrl; 39 private String mAnimatedLogoUrl;
40 40
41 private boolean mHasRecordedLoadTime; 41 private boolean mShouldRecordLoadTime;
Bernhard Bauer 2017/04/28 10:13:28 Initialize this here?
fhorschig 2017/04/28 12:36:51 Done. Just out of curiosity: Shouldn't the code s
42 42
43 private boolean mIsDestroyed; 43 private boolean mIsDestroyed;
44 44
45 /** 45 /**
46 * Construct a new {@link LogoDelegateImpl}. 46 * Construct a new {@link LogoDelegateImpl}.
47 * @param tab The tab showing the logo view. 47 * @param tab The tab showing the logo view.
48 * @param logoView The view that shows the search provider logo. 48 * @param logoView The view that shows the search provider logo.
49 */ 49 */
50 public LogoDelegateImpl(Tab tab, LogoView logoView) { 50 public LogoDelegateImpl(Tab tab, LogoView logoView) {
51 mTab = tab; 51 mTab = tab;
52 mLogoView = logoView; 52 mLogoView = logoView;
53 mLogoBridge = new LogoBridge(tab.getProfile()); 53 mLogoBridge = new LogoBridge(tab.getProfile());
54 mShouldRecordLoadTime = true;
54 } 55 }
55 56
56 @Override 57 @Override
57 public void destroy() { 58 public void destroy() {
58 mIsDestroyed = true; 59 mIsDestroyed = true;
59 } 60 }
60 61
61 @Override 62 @Override
62 public void onLogoClicked(boolean isAnimatedLogoShowing) { 63 public void onLogoClicked(boolean isAnimatedLogoShowing) {
63 if (mIsDestroyed) return; 64 if (mIsDestroyed) return;
(...skipping 23 matching lines...) Expand all
87 88
88 LogoObserver wrapperCallback = new LogoObserver() { 89 LogoObserver wrapperCallback = new LogoObserver() {
89 @Override 90 @Override
90 public void onLogoAvailable(Logo logo, boolean fromCache) { 91 public void onLogoAvailable(Logo logo, boolean fromCache) {
91 if (mIsDestroyed) return; 92 if (mIsDestroyed) return;
92 mOnLogoClickUrl = logo != null ? logo.onClickUrl : null; 93 mOnLogoClickUrl = logo != null ? logo.onClickUrl : null;
93 mAnimatedLogoUrl = logo != null ? logo.animatedLogoUrl : null; 94 mAnimatedLogoUrl = logo != null ? logo.animatedLogoUrl : null;
94 if (logo != null) { 95 if (logo != null) {
95 RecordHistogram.recordSparseSlowlyHistogram(LOGO_SHOWN_UMA_N AME, 96 RecordHistogram.recordSparseSlowlyHistogram(LOGO_SHOWN_UMA_N AME,
96 logo.animatedLogoUrl == null ? STATIC_LOGO_SHOWN : C TA_IMAGE_SHOWN); 97 logo.animatedLogoUrl == null ? STATIC_LOGO_SHOWN : C TA_IMAGE_SHOWN);
97 if (!mHasRecordedLoadTime) { 98 if (mShouldRecordLoadTime) {
98 long loadTime = System.currentTimeMillis() - loadTimeSta rt; 99 long loadTime = System.currentTimeMillis() - loadTimeSta rt;
99 RecordHistogram.recordMediumTimesHistogram( 100 RecordHistogram.recordMediumTimesHistogram(
100 LOGO_SHOWN_TIME_UMA_NAME, loadTime, TimeUnit.MIL LISECONDS); 101 LOGO_SHOWN_TIME_UMA_NAME, loadTime, TimeUnit.MIL LISECONDS);
101 mHasRecordedLoadTime = true;
102 } 102 }
103 } 103 }
104 // If we haven't received a logo on demand, don't wait for rando m refreshes.
tschumann 2017/04/27 11:52:08 nit: this comment implies that the first call of t
fhorschig 2017/04/27 11:55:42 It is guaranteed. Added that.
Marc Treib 2017/04/27 11:56:09 It's not really guaranteed, but it doesn't really
fhorschig 2017/04/27 12:12:20 Done. (Sorry, I updated the wrong comment before.
105 mShouldRecordLoadTime = false;
104 logoObserver.onLogoAvailable(logo, fromCache); 106 logoObserver.onLogoAvailable(logo, fromCache);
105 } 107 }
106 }; 108 };
107 109
108 mLogoBridge.getCurrentLogo(wrapperCallback); 110 mLogoBridge.getCurrentLogo(wrapperCallback);
109 } 111 }
110 } 112 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/android/logo_bridge.h » ('j') | chrome/browser/android/logo_bridge.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698