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

Issue 2833473002: Record NTP.LogoShownTime for timely refreshs only (Closed)

Created:
3 years, 8 months ago by fhorschig
Modified:
3 years, 7 months ago
CC:
chromium-reviews, noyau+watch_chromium.org, ntp-dev+reviews_chromium.org, agrieve+watch_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Record NTP.LogoShownTime for timely refreshs only This CL corrects the load time metrics for Logos on the NTP. The old behavior: ----------------- If the doodle cache is empty, the LogoShownTime will be recorded when the next DoodleService#Refresh triggers the observer who requested a Refresh. If the requested refresh is skipped, the observer records the time when the next notification happens due to a refresh triggered by a different caller. This can be timely but is much more likely to be 15 min or more in the future. This delay blurs the metric. The wanted/new behavior: ------------------------ This CL introduces a way to know that the refresh was skipped. The observer that records LogoShownTime uses it to prevent recording any metrics for this case. BUG=713166 Review-Url: https://codereview.chromium.org/2833473002 Cr-Commit-Position: refs/heads/master@{#467989} Committed: https://chromium.googlesource.com/chromium/src/+/02ed0d5fe2949096abd3215af102cf221144da5d

Patch Set 1 #

Total comments: 12

Patch Set 2 : Refactor test and improve comments #

Total comments: 2

Patch Set 3 : Decide recording always in onLogoAvailable. #

Patch Set 4 : Record metric only in first onLogoAvailable, never in a second one #

Total comments: 4

Patch Set 5 : Split refresh callback into own interface #

Total comments: 16

Patch Set 6 : Remove skippedCallback and call onLogoAvailable more explicitly #

Total comments: 5

Patch Set 7 : Fix compile errors and comments #

Total comments: 8

Patch Set 8 : Add guarantee to getCurrentLogo comment #

Patch Set 9 : Make comments even more precise #

Patch Set 10 : Replace |Refresh| return value with treib@'s revalidation event #

Total comments: 8

Patch Set 11 : Trigger OnDoodleConfigRevalidated if expired configs don't change the config #

Total comments: 2

Patch Set 12 : Move test expectation close to code under test #

Patch Set 13 : Fix compile error #

Unified diffs Side-by-side diffs Delta from patch set Stats (+90 lines, -29 lines) Patch
M chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +5 lines, -3 lines 0 comments Download
M chrome/browser/android/logo_bridge.h View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +9 lines, -4 lines 0 comments Download
M chrome/browser/android/logo_bridge.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +32 lines, -14 lines 0 comments Download
M components/doodle/doodle_service.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +3 lines, -2 lines 0 comments Download
M components/doodle/doodle_service.cc View 1 2 3 4 5 6 7 8 9 10 3 chunks +7 lines, -1 line 0 comments Download
M components/doodle/doodle_service_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 5 chunks +34 lines, -5 lines 0 comments Download

Messages

Total messages: 49 (21 generated)
fhorschig
Hi Tim, as Marc is OOO, would you please have a look at this fix ...
3 years, 8 months ago (2017-04-19 15:48:17 UTC) #2
tschumann
nit about the CL description: Can you add a sentence in the beginning indicating the ...
3 years, 8 months ago (2017-04-20 18:53:11 UTC) #3
fhorschig
Some high-level responses first. I am still addressing the other comments. https://codereview.chromium.org/2833473002/diff/1/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java (right): ...
3 years, 7 months ago (2017-04-24 13:35:56 UTC) #4
fhorschig
Structured the description and addressed all other comments. https://codereview.chromium.org/2833473002/diff/1/components/doodle/doodle_service.h File components/doodle/doodle_service.h (right): https://codereview.chromium.org/2833473002/diff/1/components/doodle/doodle_service.h#newcode63 components/doodle/doodle_service.h:63: // ...
3 years, 7 months ago (2017-04-24 13:52:35 UTC) #7
Marc Treib
I'm not sure if the new behavior is what we want: The metric should record ...
3 years, 7 months ago (2017-04-25 06:43:42 UTC) #8
fhorschig
It's absolutely right that cached doodles would have been ignored. I changed that. Additionally, metric ...
3 years, 7 months ago (2017-04-25 16:34:18 UTC) #9
Marc Treib
https://codereview.chromium.org/2833473002/diff/80001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java (right): https://codereview.chromium.org/2833473002/diff/80001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java#newcode112 chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java:112: public void onLogoRefreshSkipped() { Of the three implementations of ...
3 years, 7 months ago (2017-04-25 16:51:27 UTC) #10
fhorschig
https://codereview.chromium.org/2833473002/diff/80001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java (right): https://codereview.chromium.org/2833473002/diff/80001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java#newcode112 chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java:112: public void onLogoRefreshSkipped() { On 2017/04/25 16:51:26, Marc Treib ...
3 years, 7 months ago (2017-04-26 10:02:42 UTC) #11
Marc Treib
https://codereview.chromium.org/2833473002/diff/100001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoBridge.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoBridge.java (right): https://codereview.chromium.org/2833473002/diff/100001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoBridge.java#newcode69 chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoBridge.java:69: public interface RefreshCallbackWrapper { Just RefreshCallback, or RefreshStatusCallback or ...
3 years, 7 months ago (2017-04-26 10:17:17 UTC) #12
fhorschig
On 2017/04/26 10:17:17, Marc Treib wrote: > https://codereview.chromium.org/2833473002/diff/100001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoBridge.java > File chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoBridge.java > (right): > > ...
3 years, 7 months ago (2017-04-26 16:44:41 UTC) #13
fhorschig
The UI should now always get a fastest possible notification after having called getCurrentLogo(). No ...
3 years, 7 months ago (2017-04-27 10:31:44 UTC) #14
tschumann
fine with me if we properly document the craziness happening. https://codereview.chromium.org/2833473002/diff/120001/chrome/browser/android/logo_bridge.h File chrome/browser/android/logo_bridge.h (right): https://codereview.chromium.org/2833473002/diff/120001/chrome/browser/android/logo_bridge.h#newcode42 ...
3 years, 7 months ago (2017-04-27 10:59:32 UTC) #15
Marc Treib
Thanks! Looking good now; some last comments. https://codereview.chromium.org/2833473002/diff/100001/components/doodle/doodle_service.h File components/doodle/doodle_service.h (right): https://codereview.chromium.org/2833473002/diff/100001/components/doodle/doodle_service.h#newcode62 components/doodle/doodle_service.h:62: // Returns ...
3 years, 7 months ago (2017-04-27 11:15:50 UTC) #16
fhorschig
https://codereview.chromium.org/2833473002/diff/100001/components/doodle/doodle_service.h File components/doodle/doodle_service.h (right): https://codereview.chromium.org/2833473002/diff/100001/components/doodle/doodle_service.h#newcode62 components/doodle/doodle_service.h:62: // Returns false if no fetch was issued because ...
3 years, 7 months ago (2017-04-27 11:49:21 UTC) #17
tschumann
last nit https://codereview.chromium.org/2833473002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java (right): https://codereview.chromium.org/2833473002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java#newcode104 chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java:104: // If we haven't received a logo ...
3 years, 7 months ago (2017-04-27 11:52:08 UTC) #18
fhorschig
Hi Berhard, would you please take a look at this fix for the incorrectly recorded ...
3 years, 7 months ago (2017-04-27 11:52:12 UTC) #20
fhorschig
https://codereview.chromium.org/2833473002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java (right): https://codereview.chromium.org/2833473002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java#newcode104 chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java:104: // If we haven't received a logo on demand, ...
3 years, 7 months ago (2017-04-27 11:55:42 UTC) #21
Marc Treib
lgtm Thanks! https://codereview.chromium.org/2833473002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java (right): https://codereview.chromium.org/2833473002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java#newcode104 chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java:104: // If we haven't received a logo ...
3 years, 7 months ago (2017-04-27 11:56:09 UTC) #22
fhorschig
Thanks! https://codereview.chromium.org/2833473002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java (right): https://codereview.chromium.org/2833473002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java#newcode104 chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java:104: // If we haven't received a logo on ...
3 years, 7 months ago (2017-04-27 12:12:21 UTC) #23
fhorschig
Hey Marc, As you suggested, I integrated your draft CL [1] into mine to fix ...
3 years, 7 months ago (2017-04-27 14:53:45 UTC) #29
Marc Treib
https://codereview.chromium.org/2833473002/diff/220001/chrome/browser/android/logo_bridge.cc File chrome/browser/android/logo_bridge.cc (right): https://codereview.chromium.org/2833473002/diff/220001/chrome/browser/android/logo_bridge.cc#newcode229 chrome/browser/android/logo_bridge.cc:229: // Immediately hand out any current cached config. nit: ...
3 years, 7 months ago (2017-04-27 15:22:55 UTC) #30
fhorschig
https://codereview.chromium.org/2833473002/diff/220001/chrome/browser/android/logo_bridge.cc File chrome/browser/android/logo_bridge.cc (right): https://codereview.chromium.org/2833473002/diff/220001/chrome/browser/android/logo_bridge.cc#newcode229 chrome/browser/android/logo_bridge.cc:229: // Immediately hand out any current cached config. On ...
3 years, 7 months ago (2017-04-28 08:20:07 UTC) #31
Marc Treib
LGTM with one more nit. Thanks for sticking with this! https://codereview.chromium.org/2833473002/diff/240001/components/doodle/doodle_service_unittest.cc File components/doodle/doodle_service_unittest.cc (right): https://codereview.chromium.org/2833473002/diff/240001/components/doodle/doodle_service_unittest.cc#newcode396 ...
3 years, 7 months ago (2017-04-28 08:22:59 UTC) #32
fhorschig
Thanks! https://codereview.chromium.org/2833473002/diff/240001/components/doodle/doodle_service_unittest.cc File components/doodle/doodle_service_unittest.cc (right): https://codereview.chromium.org/2833473002/diff/240001/components/doodle/doodle_service_unittest.cc#newcode396 components/doodle/doodle_service_unittest.cc:396: EXPECT_CALL(observer, OnDoodleConfigRevalidated(Eq(/*from_cache=*/false))); On 2017/04/28 08:22:59, Marc Treib wrote: ...
3 years, 7 months ago (2017-04-28 08:29:01 UTC) #33
Bernhard Bauer
lgtm https://codereview.chromium.org/2833473002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java (right): https://codereview.chromium.org/2833473002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java#newcode41 chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java:41: private boolean mShouldRecordLoadTime; Initialize this here?
3 years, 7 months ago (2017-04-28 10:13:28 UTC) #38
fhorschig
https://codereview.chromium.org/2833473002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java (right): https://codereview.chromium.org/2833473002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java#newcode41 chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java:41: private boolean mShouldRecordLoadTime; On 2017/04/28 10:13:28, Bernhard Bauer wrote: ...
3 years, 7 months ago (2017-04-28 12:36:51 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2833473002/280001
3 years, 7 months ago (2017-04-28 13:53:15 UTC) #46
commit-bot: I haz the power
3 years, 7 months ago (2017-04-28 14:14:32 UTC) #49
Message was sent while issue was closed.
Committed patchset #13 (id:280001) as
https://chromium.googlesource.com/chromium/src/+/02ed0d5fe2949096abd3215af102...

Powered by Google App Engine
This is Rietveld 408576698