summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/resource-timing/resource-ignore-data-url.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/resource-timing/resource-ignore-data-url.html')
-rw-r--r--testing/web-platform/tests/resource-timing/resource-ignore-data-url.html39
1 files changed, 39 insertions, 0 deletions
diff --git a/testing/web-platform/tests/resource-timing/resource-ignore-data-url.html b/testing/web-platform/tests/resource-timing/resource-ignore-data-url.html
new file mode 100644
index 0000000000..a7056a8080
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/resource-ignore-data-url.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing ignores resources with data: URIs</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<link rel="help" href="https://www.w3.org/TR/resource-timing-2/#resources-included-in-the-performanceresourcetiming-interface"/>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/resource-loaders.js"></script>
+</head>
+<body>
+<img src="data:image/gif;base64,R0lGODlhAQABAIAAAOTm7AAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="></img>
+<script>
+ promise_test(async t => {
+ const promise = new Promise(resolve => {
+ new PerformanceObserver(t.step_func(list => {
+ const entries = list.getEntries();
+ const dataEntries = entries.filter(e => e.name.includes('data:'));
+ assert_equals(dataEntries.length, 0, 'There must be no entry for `data: URL`.');
+ const blueEntries = entries.filter(e => e.name.includes('blue.png'));
+ if (blueEntries.length) {
+ // We can finish the test once we see the entry with blue.png.
+ resolve();
+ }
+ })).observe({entryTypes: ['resource']});
+ });
+ // Wait until the document is loaded.
+ await new Promise(resolve => {
+ window.addEventListener('load', resolve);
+ });
+ // Add the blue.png image after document is loaded to ensure we've received
+ // all of the previous Resource Timing entries.
+ load.image('blue.png');
+ return promise;
+ }, 'Resources with data: URIs must not be surfaced in Resource Timing');
+</script>
+</body>
+</html>