summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/paint-timing/fcp-only/fcp-ensure-update-the-rendering-step.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /testing/web-platform/tests/paint-timing/fcp-only/fcp-ensure-update-the-rendering-step.html
parentInitial commit. (diff)
downloadthunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz
thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/paint-timing/fcp-only/fcp-ensure-update-the-rendering-step.html')
-rw-r--r--testing/web-platform/tests/paint-timing/fcp-only/fcp-ensure-update-the-rendering-step.html55
1 files changed, 55 insertions, 0 deletions
diff --git a/testing/web-platform/tests/paint-timing/fcp-only/fcp-ensure-update-the-rendering-step.html b/testing/web-platform/tests/paint-timing/fcp-only/fcp-ensure-update-the-rendering-step.html
new file mode 100644
index 0000000000..700707de33
--- /dev/null
+++ b/testing/web-platform/tests/paint-timing/fcp-only/fcp-ensure-update-the-rendering-step.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<head>
+ <title>
+ Ensure the timing is marked during the `update the rendering` step.
+ </title>
+</head>
+<style>
+ #main {
+ width: 100px;
+ height: 100px;
+ left: 0px;
+ position: relative;
+ top: 0;
+ background-image: url(../resources/circles.png);
+ opacity: 0;
+ }
+
+ #main.contentful {
+ opacity: 0.1;
+ }
+</style>
+<body>
+<script src="../resources/utils.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="main"></div>
+<script>
+setup({"hide_test_state": true});
+async_test(function (t) {
+ assert_implements(window.PerformancePaintTiming, "Paint Timing isn't supported.");
+ let fired = false;
+ const main = document.getElementById('main');
+ let animationFrameStamps = [];
+ requestAnimationFrame(function frame(stamp) {
+ animationFrameStamps.unshift(stamp);
+ main.className = "contentful";
+ while (performance.now() - stamp <= 5) {
+ /* Busy-wait */
+ }
+ if(!fired)
+ requestAnimationFrame(frame);
+ });
+ new PerformanceObserver(t.step_func(list=>{
+ for (let entry of list.getEntries()) {
+ if (entry.name == "first-contentful-paint") {
+ fired = true;
+ assert_any(assert_approx_equals, entry.startTime, animationFrameStamps, 1, "One of the past requestAnimationFrame should have the same timestamp as paint entry");
+ t.done();
+ }
+ }
+ })).observe({type: "paint"});
+}, 'The first-contentful-paint timestamp should be same as the last RAF');
+</script>
+</body>
+</html>