Implement prototype Time to Interactive as an UMA. This is part of crbug.com/631010 . Design doc/discussions here: https://docs.google.com/document/d/11sWqwdfd3u1TwyZhsc-fB2NcqMZ_59Kz4XKiivp1cIg/edit?pref=2&pli=1#heading=h.ir858lrmrkf5
Deep is going to focus on the input side of this - we'll loop in loading folks more closely once we've got a prototype.
Might as well add the trace event at the same time.
Adding UKM as a requirement here.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3b4bb95c40fccb9dfe732085d736fb71201fbdba commit 3b4bb95c40fccb9dfe732085d736fb71201fbdba Author: Deepanjan Roy <dproy@chromium.org> Date: Fri Oct 27 18:30:17 2017 Implement Time to Interactive Detector This patch introduces the InteractiveDetector class, which currently detects Time to Interactive. Time to Interactive is intended to approximate the first point in time a page is consistently jank free for a significant time window after load. We currently output a trace event at the Interactive timestamp. Future patches will report the metric as UMA/UKM, and add First Idle detection. Design doc: https://goo.gl/SYt55W Bug: 631203 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: Ic9f3cf8089f43d313c255c8df1aa1f311163b2e5 Reviewed-on: https://chromium-review.googlesource.com/720213 Commit-Queue: Deepanjan Roy <dproy@chromium.org> Reviewed-by: Nate Chapin <japhet@chromium.org> Reviewed-by: Timothy Dresser <tdresser@chromium.org> Cr-Commit-Position: refs/heads/master@{#512247} [modify] https://crrev.com/3b4bb95c40fccb9dfe732085d736fb71201fbdba/third_party/WebKit/Source/core/BUILD.gn [modify] https://crrev.com/3b4bb95c40fccb9dfe732085d736fb71201fbdba/third_party/WebKit/Source/core/dom/DocumentTiming.cpp [modify] https://crrev.com/3b4bb95c40fccb9dfe732085d736fb71201fbdba/third_party/WebKit/Source/core/loader/BUILD.gn [modify] https://crrev.com/3b4bb95c40fccb9dfe732085d736fb71201fbdba/third_party/WebKit/Source/core/loader/DocumentLoader.cpp [modify] https://crrev.com/3b4bb95c40fccb9dfe732085d736fb71201fbdba/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp [add] https://crrev.com/3b4bb95c40fccb9dfe732085d736fb71201fbdba/third_party/WebKit/Source/core/loader/InteractiveDetector.cpp [add] https://crrev.com/3b4bb95c40fccb9dfe732085d736fb71201fbdba/third_party/WebKit/Source/core/loader/InteractiveDetector.h [add] https://crrev.com/3b4bb95c40fccb9dfe732085d736fb71201fbdba/third_party/WebKit/Source/core/loader/InteractiveDetectorTest.cpp [modify] https://crrev.com/3b4bb95c40fccb9dfe732085d736fb71201fbdba/third_party/WebKit/Source/core/paint/PaintTiming.cpp
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/318723cc573ab5b141c2a40cf1874a8324f0d01e commit 318723cc573ab5b141c2a40cf1874a8324f0d01e Author: Hiroshige Hayashizaki <hiroshige@chromium.org> Date: Fri Oct 27 19:27:04 2017 Revert "Implement Time to Interactive Detector" This reverts commit 3b4bb95c40fccb9dfe732085d736fb71201fbdba. Reason for revert: Build failure on Windows dbg builder: https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Win%20Builder%20%28dbg%29/builds/126465 Original change's description: > Implement Time to Interactive Detector > > This patch introduces the InteractiveDetector class, which currently detects > Time to Interactive. Time to Interactive is intended to approximate the first > point in time a page is consistently jank free for a significant time window > after load. > > We currently output a trace event at the Interactive timestamp. Future patches > will report the metric as UMA/UKM, and add First Idle detection. > > Design doc: https://goo.gl/SYt55W > > Bug: 631203 > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 > Change-Id: Ic9f3cf8089f43d313c255c8df1aa1f311163b2e5 > Reviewed-on: https://chromium-review.googlesource.com/720213 > Commit-Queue: Deepanjan Roy <dproy@chromium.org> > Reviewed-by: Nate Chapin <japhet@chromium.org> > Reviewed-by: Timothy Dresser <tdresser@chromium.org> > Cr-Commit-Position: refs/heads/master@{#512247} TBR=japhet@chromium.org,tdresser@chromium.org,dproy@chromium.org Change-Id: I55b855c7a099c92437e740d310b07acf4d673071 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 631203 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Reviewed-on: https://chromium-review.googlesource.com/742241 Reviewed-by: Hiroshige Hayashizaki <hiroshige@chromium.org> Commit-Queue: Hiroshige Hayashizaki <hiroshige@chromium.org> Cr-Commit-Position: refs/heads/master@{#512265} [modify] https://crrev.com/318723cc573ab5b141c2a40cf1874a8324f0d01e/third_party/WebKit/Source/core/BUILD.gn [modify] https://crrev.com/318723cc573ab5b141c2a40cf1874a8324f0d01e/third_party/WebKit/Source/core/dom/DocumentTiming.cpp [modify] https://crrev.com/318723cc573ab5b141c2a40cf1874a8324f0d01e/third_party/WebKit/Source/core/loader/BUILD.gn [modify] https://crrev.com/318723cc573ab5b141c2a40cf1874a8324f0d01e/third_party/WebKit/Source/core/loader/DocumentLoader.cpp [modify] https://crrev.com/318723cc573ab5b141c2a40cf1874a8324f0d01e/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp [delete] https://crrev.com/7e813690449fb7265efb50b410dc271e5f63cf05/third_party/WebKit/Source/core/loader/InteractiveDetector.cpp [delete] https://crrev.com/7e813690449fb7265efb50b410dc271e5f63cf05/third_party/WebKit/Source/core/loader/InteractiveDetector.h [delete] https://crrev.com/7e813690449fb7265efb50b410dc271e5f63cf05/third_party/WebKit/Source/core/loader/InteractiveDetectorTest.cpp [modify] https://crrev.com/318723cc573ab5b141c2a40cf1874a8324f0d01e/third_party/WebKit/Source/core/paint/PaintTiming.cpp
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2494ceb8558c07fbc505f757868e9eea0f030246 commit 2494ceb8558c07fbc505f757868e9eea0f030246 Author: Deepanjan Roy <dproy@chromium.org> Date: Fri Nov 03 00:27:40 2017 Implement Time to Interactive Detector This patch introduces the InteractiveDetector class, which currently detects Time to Interactive. Time to Interactive is intended to approximate the first point in time a page is consistently jank free for a significant time window after load. We currently output a trace event at the Interactive timestamp. Future patches will report the metric as UMA/UKM, and add First Idle detection. Design doc: https://goo.gl/SYt55W Bug: 631203 Change-Id: I4ea37e50bdf7e5f332299d828f1488b544ceead8 Reviewed-on: https://chromium-review.googlesource.com/742164 Reviewed-by: Nate Chapin <japhet@chromium.org> Commit-Queue: Deepanjan Roy <dproy@chromium.org> Cr-Commit-Position: refs/heads/master@{#513634} [modify] https://crrev.com/2494ceb8558c07fbc505f757868e9eea0f030246/third_party/WebKit/Source/core/BUILD.gn [modify] https://crrev.com/2494ceb8558c07fbc505f757868e9eea0f030246/third_party/WebKit/Source/core/dom/DocumentTiming.cpp [modify] https://crrev.com/2494ceb8558c07fbc505f757868e9eea0f030246/third_party/WebKit/Source/core/loader/BUILD.gn [modify] https://crrev.com/2494ceb8558c07fbc505f757868e9eea0f030246/third_party/WebKit/Source/core/loader/DocumentLoader.cpp [modify] https://crrev.com/2494ceb8558c07fbc505f757868e9eea0f030246/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp [add] https://crrev.com/2494ceb8558c07fbc505f757868e9eea0f030246/third_party/WebKit/Source/core/loader/InteractiveDetector.cpp [add] https://crrev.com/2494ceb8558c07fbc505f757868e9eea0f030246/third_party/WebKit/Source/core/loader/InteractiveDetector.h [add] https://crrev.com/2494ceb8558c07fbc505f757868e9eea0f030246/third_party/WebKit/Source/core/loader/InteractiveDetectorTest.cpp [modify] https://crrev.com/2494ceb8558c07fbc505f757868e9eea0f030246/third_party/WebKit/Source/core/paint/PaintTiming.cpp
Changing bug title to reflect renames.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860 commit 9ccc50e7640a6d9cc675d5d94bad415cbe9dc860 Author: Deepanjan Roy <dproy@chromium.org> Date: Fri Nov 24 18:59:45 2017 Add UMA for Time To Interactive Adds UMA for Time To Interactive by plumbing it through the Page Load Metrics system. The UMA is only logged if the page is never backgrouded, or if there is a no non-mouse-move user input hitting the renderer main thread before interactive time. A separate UMA histogram keeps track of why TTI was not recorded. Bug: 631203 Change-Id: Ie48d87645e1253ad7de505721d1dbec948e71dc0 Reviewed-on: https://chromium-review.googlesource.com/742065 Reviewed-by: Mike West <mkwst@google.com> Reviewed-by: Mike West <mkwst@chromium.org> Reviewed-by: Nate Chapin <japhet@chromium.org> Reviewed-by: Jesse Doherty <jwd@chromium.org> Reviewed-by: Bryan McQuade <bmcquade@chromium.org> Reviewed-by: Timothy Dresser <tdresser@chromium.org> Commit-Queue: Mike West <mkwst@chromium.org> Cr-Commit-Position: refs/heads/master@{#519150} [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.h [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer_unittest.cc [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/chrome/browser/page_load_metrics/page_load_metrics_observer.h [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.cc [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.h [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/chrome/browser/page_load_metrics/page_load_tracker.cc [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/chrome/common/page_load_metrics/page_load_metrics.mojom [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/chrome/common/page_load_metrics/page_load_timing.cc [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/chrome/common/page_load_metrics/test/page_load_metrics_test_util.cc [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/chrome/renderer/page_load_metrics/metrics_render_frame_observer.cc [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/third_party/WebKit/Source/core/exported/WebPerformance.cpp [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/third_party/WebKit/Source/core/exported/WebViewImpl.cpp [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/third_party/WebKit/Source/core/loader/InteractiveDetector.cpp [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/third_party/WebKit/Source/core/loader/InteractiveDetector.h [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/third_party/WebKit/Source/core/loader/InteractiveDetectorTest.cpp [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/third_party/WebKit/Source/core/timing/PerformanceTiming.cpp [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/third_party/WebKit/Source/core/timing/PerformanceTiming.h [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/third_party/WebKit/public/web/WebPerformance.h [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/tools/metrics/histograms/enums.xml [modify] https://crrev.com/9ccc50e7640a6d9cc675d5d94bad415cbe9dc860/tools/metrics/histograms/histograms.xml
Privacy LGTM for UKM collection.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/df898168fe3fe32293fe4551b456e1f79935869c commit df898168fe3fe32293fe4551b456e1f79935869c Author: Deepanjan Roy <dproy@chromium.org> Date: Thu Jan 25 18:21:59 2018 Adds UKM for Time to Interactive We have UMA for Time to Interactive metric already. This CL adds an UKM. See https://goo.gl/TFw6xz for explanation of Time to Interactive. Bug: 631203 Change-Id: I4563602c7dddc30800dfed308682931ef8c30573 Reviewed-on: https://chromium-review.googlesource.com/881533 Reviewed-by: Bryan McQuade <bmcquade@chromium.org> Reviewed-by: Robert Kaplow <rkaplow@chromium.org> Commit-Queue: Deepanjan Roy <dproy@chromium.org> Cr-Commit-Position: refs/heads/master@{#531952} [modify] https://crrev.com/df898168fe3fe32293fe4551b456e1f79935869c/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.cc [modify] https://crrev.com/df898168fe3fe32293fe4551b456e1f79935869c/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.h [modify] https://crrev.com/df898168fe3fe32293fe4551b456e1f79935869c/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer_unittest.cc [modify] https://crrev.com/df898168fe3fe32293fe4551b456e1f79935869c/tools/metrics/histograms/histograms.xml [modify] https://crrev.com/df898168fe3fe32293fe4551b456e1f79935869c/tools/metrics/ukm/ukm.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/709f8bb609e45e1a61d612e6dcd15a3768443616 commit 709f8bb609e45e1a61d612e6dcd15a3768443616 Author: Deepanjan Roy <dproy@chromium.org> Date: Mon Jan 29 15:10:03 2018 Adds UKM for Time to Interactive We have UMA for Time to Interactive metric already. This CL adds an UKM. See https://goo.gl/TFw6xz for explanation of Time to Interactive. Bug: 631203 Change-Id: I4563602c7dddc30800dfed308682931ef8c30573 Reviewed-on: https://chromium-review.googlesource.com/881533 Reviewed-by: Bryan McQuade <bmcquade@chromium.org> Reviewed-by: Robert Kaplow <rkaplow@chromium.org> Commit-Queue: Deepanjan Roy <dproy@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#531952}(cherry picked from commit df898168fe3fe32293fe4551b456e1f79935869c) Reviewed-on: https://chromium-review.googlesource.com/891279 Reviewed-by: Timothy Dresser <tdresser@chromium.org> Cr-Commit-Position: refs/branch-heads/3325@{#135} Cr-Branched-From: bc084a8b5afa3744a74927344e304c02ae54189f-refs/heads/master@{#530369} [modify] https://crrev.com/709f8bb609e45e1a61d612e6dcd15a3768443616/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.cc [modify] https://crrev.com/709f8bb609e45e1a61d612e6dcd15a3768443616/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.h [modify] https://crrev.com/709f8bb609e45e1a61d612e6dcd15a3768443616/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer_unittest.cc [modify] https://crrev.com/709f8bb609e45e1a61d612e6dcd15a3768443616/tools/metrics/histograms/histograms.xml [modify] https://crrev.com/709f8bb609e45e1a61d612e6dcd15a3768443616/tools/metrics/ukm/ukm.xml
Is this fixed? Or what's missing?
Issue 631010 has been merged into this issue.
What's missing here is First CPU Idle. Tim is that still worth doing?
Nope! Marking Fixed.
Comment 1 by tdres...@chromium.org
, Jul 26 2016