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

Unified Diff: third_party/WebKit/LayoutTests/http/tests/performance-timing/paint-timing/first-contentful-paint.html

Issue 2932593002: Attempt 2: Update PaintTiming Web Perf APIs for FP & FCP to report swap time (Closed)
Patch Set: rebase to head 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/http/tests/performance-timing/paint-timing/first-contentful-paint.html
diff --git a/third_party/WebKit/LayoutTests/http/tests/performance-timing/paint-timing/first-contentful-paint.html b/third_party/WebKit/LayoutTests/http/tests/performance-timing/paint-timing/first-contentful-paint.html
index 032bb97ec8b085151aa6c28dbfe3a2102402df7e..b8e18e1ea4139bc62794fc027fd4a27dfee9cdc5 100644
--- a/third_party/WebKit/LayoutTests/http/tests/performance-timing/paint-timing/first-contentful-paint.html
+++ b/third_party/WebKit/LayoutTests/http/tests/performance-timing/paint-timing/first-contentful-paint.html
@@ -1,46 +1,48 @@
<!DOCTYPE html>
<head>
-<title>Performance Paint Timing Test</title>
+<title>Performance Paint Timing Test: FP followed by FCP</title>
</head>
<body>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
+ <div id="main"></div>
<div id="image"></div>
<script>
async_test(function (t) {
- var observer = new PerformanceObserver(
- t.step_func(function (entryList) {
- var entries = entryList.getEntries();
- // Nothing contentful to be painted yet.
- assert_equals(entries.length, 1,
- "There should be only one paint timing instance delivered at a time.");
- assert_equals(entries[0].entryType, "paint",
- "Expected entryType to be: paint.");
- if (entries[0].name == "first-paint") {
- t.first_paint_time = entries[0].startTime;
- } else if (entries[0].name == "first-contentful-paint") {
- assert_not_equals(t.first_paint_time, "");
- t.first_contentful_paint_time = entries[0].startTime;
- assert_greater_than(t.first_contentful_paint_time - t.first_paint_time, 100);
- observer.disconnect();
- t.done();
- }
- })
- );
- observer.observe({entryTypes: ["paint"]});
+ testRunner.capturePixelsAsyncThen(t.step_func(function() {
+ const bufferedEntries = performance.getEntriesByType('paint');
+ assert_equals(bufferedEntries.length, 0, "No paint entries yet");
- // Wait 100ms, then load image
- setTimeout(function() {
- var img = document.createElement("IMG");
- img.src = "resources/circles.png";
- document.getElementById('image').appendChild(img);
- }, 100);
- }, "First Paint triggered by non-contentful paint. Image load triggers First Contentful Paint.");
-
- </script>
- <div style="background-color:black;color:white;padding:20px;"></div>
+ const div = document.createElement("div");
+ div.style.width = "100px";
+ div.style.height = "100px";
+ div.style.backgroundColor = "red";
+ div.style.color = "blue";
+ document.getElementById("main").appendChild(div);
+ testRunner.capturePixelsAsyncThen(t.step_func(function() {
+ const bufferedEntries = performance.getEntriesByType('paint');
+ assert_equals(bufferedEntries.length, 1, "FP only.");
+ assert_equals(bufferedEntries[0].entryType, "paint");
+ assert_equals(bufferedEntries[0].name, "first-paint");
+ const img = document.createElement("IMG");
+ img.src = "resources/circles.png";
+ img.onload = function() {
+ testRunner.capturePixelsAsyncThen(t.step_func_done(function() {
+ const bufferedEntries = performance.getEntriesByType('paint');
+ assert_equals(bufferedEntries.length, 2, "FP and FCP.");
+ assert_equals(bufferedEntries[0].entryType, "paint");
+ assert_equals(bufferedEntries[0].name, "first-paint");
+ assert_equals(bufferedEntries[1].entryType, "paint");
+ assert_equals(bufferedEntries[1].name, "first-contentful-paint");
+ }));
+ };
+ document.getElementById('image').appendChild(img);
+ }));
+ }));
+ }, "First Paint triggered by non-contentful paint. Image load triggers First Contentful Paint.");
+ </script>
</body>
</html>

Powered by Google App Engine
This is Rietveld 408576698