Index: third_party/WebKit/LayoutTests/http/tests/misc/resource-timing-sizes-content-encoding.html |
diff --git a/third_party/WebKit/LayoutTests/http/tests/misc/resource-timing-sizes-content-encoding.html b/third_party/WebKit/LayoutTests/http/tests/misc/resource-timing-sizes-content-encoding.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f555b4f81ed4d2a101560d3e5b9c24dda88f0dd4 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/http/tests/misc/resource-timing-sizes-content-encoding.html |
@@ -0,0 +1,32 @@ |
+<!DOCTYPE html> |
+<script src="/resources/testharness.js"></script> |
+<script src="/resources/testharnessreport.js"></script> |
+<script src="/misc/resources/run-async-tasks-promise.js"></script> |
+<script> |
+const url = '/misc/resources/gzip-content-encoding.php'; |
+const uncompressedSize = 1250; |
+ |
+function checkResourceSizes() { |
+ var absoluteUrl = new URL(url, location.href).href; |
+ var entries = performance.getEntriesByName(absoluteUrl); |
+ assert_equals(entries.length, 2, 'Wrong number of entries'); |
+ for (var entry of entries) { |
+ if (entry.name === absoluteUrl) { |
+ assert_between_exclusive(entry.encodedBodySize, 0, uncompressedSize, |
+ 'encodedBodySize'); |
+ assert_equals(entry.decodedBodySize, uncompressedSize); |
+ } |
+ } |
+} |
+ |
+promise_test(() => { |
+ // Fetch twice to ensure at least one fetch comes from the cache. |
+ var eatBody = response => response.arrayBuffer(); |
+ return fetch(url) |
+ .then(eatBody) |
+ .then(() => fetch(url)) |
+ .then(eatBody) |
+ .then(runAsyncTasks) |
+ .then(checkResourceSizes); |
+}, 'PerformanceResourceTiming sizes compressed content test'); |
+</script> |