Commit 82d1c5d8 authored by Nicolás Peña Moreno's avatar Nicolás Peña Moreno Committed by Commit Bot

[LargestContentfulPaint] Add experimental LCP for AMP

UKM privacy review:
https://docs.google.com/document/d/1M1nsLapTIoNgaD8SXtrqEirVQajYKmfmQKHbtI7J6-w/edit#heading=h.k5jx6iluw4yt

Bug: 1045640
Change-Id: I09e2e779f28d42e3760ed1acaf08c7614e3f9194
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2450909Reviewed-by: default avatarAnnie Sullivan <sullivan@chromium.org>
Reviewed-by: default avatarBryan McQuade <bmcquade@chromium.org>
Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#814700}
parent 2ae57260
......@@ -401,6 +401,15 @@ void AMPPageLoadMetricsObserver::MaybeRecordAmpDocumentMetrics() {
largest_content_paint_time.value());
}
}
if (page_load_metrics::LargestContentfulPaintHandler::
AssignTimeAndSizeForLargestContentfulPaint(
*paint_timing->experimental_largest_contentful_paint,
&largest_content_paint_time, &largest_content_paint_size,
&largest_content_type)) {
builder
.SetSubFrame_PaintTiming_NavigationToExperimentalLargestContentfulPaint(
largest_content_paint_time.value().InMilliseconds());
}
if (subframe_info.timing->interactive_timing->first_input_delay
.has_value()) {
......
......@@ -332,6 +332,10 @@ TEST_F(AMPPageLoadMetricsObserverTest, SubFrameMetrics) {
->largest_image_paint_size = 1;
subframe_timing.paint_timing->largest_contentful_paint->largest_image_paint =
base::TimeDelta::FromMilliseconds(10);
subframe_timing.paint_timing->experimental_largest_contentful_paint
->largest_text_paint_size = 3;
subframe_timing.paint_timing->experimental_largest_contentful_paint
->largest_text_paint = base::TimeDelta::FromMilliseconds(8);
subframe_timing.interactive_timing->first_input_timestamp =
base::TimeDelta::FromMilliseconds(20);
subframe_timing.interactive_timing->first_input_delay =
......@@ -366,6 +370,9 @@ TEST_F(AMPPageLoadMetricsObserverTest, SubFrameMetrics) {
tester()->test_ukm_recorder().ExpectEntryMetric(
entry.get(), "SubFrame.PaintTiming.NavigationToLargestContentfulPaint",
10);
tester()->test_ukm_recorder().ExpectEntryMetric(
entry.get(),
"SubFrame.PaintTiming.NavigationToExperimentalLargestContentfulPaint", 8);
}
TEST_F(AMPPageLoadMetricsObserverTest, SubFrameMetrics_LayoutInstability) {
......@@ -440,6 +447,10 @@ TEST_F(AMPPageLoadMetricsObserverTest, SubFrameMetricsFullNavigation) {
->largest_image_paint_size = 1;
subframe_timing.paint_timing->largest_contentful_paint->largest_image_paint =
base::TimeDelta::FromMilliseconds(10);
subframe_timing.paint_timing->experimental_largest_contentful_paint
->largest_image_paint_size = 1;
subframe_timing.paint_timing->experimental_largest_contentful_paint
->largest_image_paint = base::TimeDelta::FromMilliseconds(5);
subframe_timing.interactive_timing->first_input_timestamp =
base::TimeDelta::FromMilliseconds(20);
subframe_timing.interactive_timing->first_input_delay =
......@@ -475,6 +486,9 @@ TEST_F(AMPPageLoadMetricsObserverTest, SubFrameMetricsFullNavigation) {
tester()->test_ukm_recorder().ExpectEntryMetric(
entry.get(), "SubFrame.PaintTiming.NavigationToLargestContentfulPaint",
10);
tester()->test_ukm_recorder().ExpectEntryMetric(
entry.get(),
"SubFrame.PaintTiming.NavigationToExperimentalLargestContentfulPaint", 5);
}
TEST_F(AMPPageLoadMetricsObserverTest, SubFrameRecordOnFullNavigation) {
......
......@@ -440,6 +440,17 @@ be describing additional metrics about the same event.
was not prerendered.
</summary>
</metric>
<metric
name="SubFrame.PaintTiming.NavigationToExperimentalLargestContentfulPaint">
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the experimental largest
content (text or image) within viewport, in the AMP subframe. See
http://bit.ly/largest_contentful_paint_explainer for more details. Differs
from the non-experimental version in that removed content is still
considered a valid candidate.
</summary>
</metric>
<metric name="SubFrame.PaintTiming.NavigationToFirstContentfulPaint">
<summary>
Measures the time in milliseconds from navigation timing's navigation
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment