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> |