1 let appendScript = (src, resolve) => {
2 const script = document.createElement('script');
3 script.type = 'text/javascript';
5 script.onload = resolve;
6 document.body.appendChild(script);
9 let xhrScript = src => {
10 var xhr = new XMLHttpRequest();
11 xhr.open("GET", src, false);
15 let waitForNextTask = () => {
16 return new Promise(resolve => {
17 step_timeout(resolve, 0);
21 let waitForEventToFire = () => {
22 return new Promise(resolve => {
23 let waitForIt = function() {
28 step_timeout(waitForIt, 0);
31 step_timeout(waitForIt, 0);
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);
47 let loadResource = src => {
48 return new Promise(resolve => {
49 appendScript(src, resolve);
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');