Bug 1509859 [wpt PR 14234] - Align resource timing buffer full processing to spec...
[gecko.git] / testing / web-platform / tests / resource-timing / resources / buffer-full-utilities.js
blobb143da7b325f0ad24a2f9ad67db7ba31d0aa912c
1 let appendScript = (src, resolve) => {
2     const script = document.createElement('script');
3     script.type = 'text/javascript';
4     script.src = src;
5     script.onload = resolve;
6     document.body.appendChild(script);
9 let xhrScript = src => {
10     var xhr = new XMLHttpRequest();
11     xhr.open("GET", src, false);
12     xhr.send(null);
15 let waitForNextTask = () => {
16     return new Promise(resolve => {
17         step_timeout(resolve, 0);
18     });
21 let waitForEventToFire = () => {
22     return new Promise(resolve => {
23         let waitForIt = function() {
24             if (eventFired) {
25                 eventFired = false;
26                 resolve();
27             } else {
28                 step_timeout(waitForIt, 0);
29             }
30         }
31         step_timeout(waitForIt, 0);
32     });
35 let clearBufferAndSetSize = size => {
36     performance.clearResourceTimings();
37     performance.setResourceTimingBufferSize(size);
40 let fillUpTheBufferWithSingleResource = src => {
41     return new Promise(resolve => {
42         // This resource gets buffered in the resource timing entry buffer.
43         appendScript(src, resolve);
44     });
47 let loadResource = src => {
48     return new Promise(resolve => {
49         appendScript(src, resolve);
50     });
53 let fillUpTheBufferWithTwoResources = async src => {
54     // These resources get buffered in the resource timing entry buffer.
55     await loadResource(src);
56     await loadResource(src + '?second');