Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1038)

Unified Diff: third_party/WebKit/LayoutTests/http/tests/misc/resource-timing-sizes-xhr-fetch.html

Issue 2105713002: Render process changes for ResourceTiming sizes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@resource_timing_sizes_browser_process
Patch Set: Initialise encoded_body_length for sync XHR to data: URLs Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/http/tests/misc/resource-timing-sizes-xhr-fetch.html
diff --git a/third_party/WebKit/LayoutTests/http/tests/misc/resource-timing-sizes-xhr-fetch.html b/third_party/WebKit/LayoutTests/http/tests/misc/resource-timing-sizes-xhr-fetch.html
new file mode 100644
index 0000000000000000000000000000000000000000..a917ebf9939f88c919cc98cd6dfd60e9fa434066
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/misc/resource-timing-sizes-xhr-fetch.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+const XHR_SYNC_URL = '/resources/dummy.xml?t=syncxhr';
+const XHR_ASYNC_URL = '/resources/dummy.xml?t=asyncxhr';
+const FETCH_URL = '/resources/dummy.xml?t=fetch';
+var sizes = {};
+sizes[XHR_SYNC_URL] = sizes[XHR_ASYNC_URL] = sizes[FETCH_URL] = 60;
+
+const totalAsyncResources = 2;
+var seenAsyncResources = 0;
+var seenResources = 0;
+var t = async_test('PerformanceResourceTiming sizes XHR and Fetch test');
+
+function asyncResourceLoaded(eventOrText) {
+ ++seenAsyncResources;
+ if (seenAsyncResources == totalAsyncResources)
+ setTimeout(t.step_func(checkResourceSizes), 0);
+}
+
+function checkSizeFields(entry, expectedSize) {
+ assert_equals(entry.decodedBodySize, expectedSize, 'decodedBodySize');
+ assert_equals(entry.encodedBodySize, expectedSize, 'encodedBodySize');
+ // Because of caching, the value of transferSize is sensitive to the
+ // execution order of layout tests, and so the result of the test should not
+ // depend on it.
+ assert_true(entry.transferSize !== undefined,
+ 'transferSize should be defined');
+}
+
+function checkResourceSizes() {
+ var expectedResources = Object.keys(sizes).length;
+ var entries = performance.getEntriesByType('resource');
+ for (var entry of entries) {
+ var urlObject = new URL(entry.name);
+ var urlKey = urlObject.pathname + urlObject.search;
+ var size = sizes[urlKey];
+ if (size) {
+ checkSizeFields(entry, size);
+ ++seenResources;
+ }
+ }
+ assert_equals(seenResources, expectedResources,
+ 'seenResources');
+ t.done();
+}
+
+function runTest() {
+ var sync = new XMLHttpRequest();
+ sync.open('GET', XHR_SYNC_URL, false);
+ sync.send();
+ var async = new XMLHttpRequest();
+ async.open('GET', XHR_ASYNC_URL);
+ async.onload = t.step_func(asyncResourceLoaded);
+ async.onerror = t.step_func(() => assert_unreached('Async XHR error'));
+ async.send();
+ fetch(FETCH_URL)
+ .then(response => response.text())
+ .then(t.step_func(asyncResourceLoaded))
+ .catch(t.step_func(() => assert_unreached('Fetch error')));
+}
+
+window.onload = t.step_func(runTest);
+</script>

Powered by Google App Engine
This is Rietveld 408576698