Files
tubestation/testing/web-platform/tests/preload/link-header-preload-delay-onload.html
Kunihiko Sakamoto c6766e54b5 Bug 1526643 [wpt PR 15129] - Fix remaining preload tests flaking on wpt.fyi, a=testonly
Automatic update from web-platform-tests
Fix remaining preload tests flaking on wpt.fyi

This is a follow-up to https://github.com/web-platform-tests/wpt/pull/15075.

https://crrev.com/c/1436777 successfully fixed the wpt.fyi flakiness
for link-header-preload-srcset.tentative.html and
link-header-preload-nonce.html. This patch fixes that for the remaining
preload tests.

- Use step_timeout instead of dummy.js?pipe=trickle, because
  dummy.js?pipe=trickle may be loaded from cache with no delay.
- Replace verifyNumberOfDownloads() with
  - verifyNumberOfResourceTimingEntries() if possible
  - A new helper function verifyLoadedAndNoDoubleDownload() that
    doesn't fail if the resource was already cached before running
    the test.

Bug: 922343
Change-Id: Ia9b7c4bd49dd76463df4607349fe4f935e5410d0
Reviewed-on: https://chromium-review.googlesource.com/c/1442020
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Kunihiko Sakamoto <ksakamoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#629029}

--

wpt-commits: eb5aa0038ee7a938beabbe4c732a685af2581dbc
wpt-pr: 15129
2019-02-26 12:05:22 +00:00

41 lines
1.7 KiB
HTML

<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/preload/resources/preload_helper.js"></script>
<script>
var t = async_test('Makes sure that Link headers preload resources and block window.onload after resource discovery');
</script>
<body>
<style>
#background {
width: 200px;
height: 200px;
background-image: url(resources/square.png?background);
}
</style>
<link rel="stylesheet" href="resources/dummy.css?link-header-preload-delay-onload">
<script src="resources/dummy.js?link-header-preload-delay-onload"></script>
<div id="background"></div>
<script>
document.write('<img src="resources/square.png?link-header-preload-delay-onload">');
window.addEventListener("load", t.step_func(function() {
verifyPreloadAndRTSupport();
var entries = performance.getEntriesByType("resource");
var found_background_first = false;
for (var i = 0; i < entries.length; ++i) {
var entry = entries[i];
if (entry.name.indexOf("square") != -1) {
if (entry.name.indexOf("background") != -1)
found_background_first = true;
break;
}
}
assert_true(found_background_first);
verifyLoadedAndNoDoubleDownload("resources/square.png?link-header-preload-delay-onload");
verifyLoadedAndNoDoubleDownload("resources/square.png?background");
verifyLoadedAndNoDoubleDownload("resources/dummy.js?link-header-preload-delay-onload");
verifyLoadedAndNoDoubleDownload("resources/dummy.css?link-header-preload-delay-onload");
t.done();
}));
</script>