Raw File
resource_timing_buffer_full_when_populate_entries.html
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<link rel="author" title="Intel" href="http://www.intel.com/" />
<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/>
<title>This test validates the functionality of onresourcetimingbufferfull in resource timing.</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/webperftestharness.js"></script>
<script src="resources/webperftestharnessextension.js"></script>
</head>
<body onload=onload_test()>
<script>
    const context = new PerformanceContext(performance);
    const bufferSize = 5;
    context.setResourceTimingBufferSize(bufferSize);
    let bufferFullCount = 0;
    function buffer_full_callback() {
        bufferFullCount++;
    }
    context.registerResourceTimingBufferFullCallback(buffer_full_callback);
    // Scripts appended in JS to ensure setResourceTimingBufferSize is called before.
    function appendScript(src) {
        const script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = src;
        document.body.appendChild(script);
    }
    appendScript('resources/empty.js');
    appendScript('resources/empty_script.js');
    appendScript('resources/resource_timing_test0.js');
    setup({ explicit_done: true });
    function onload_test() {
        test_equals(context.getEntriesByType('resource').length, bufferSize, 'There should only be |bufferSize| resource entries.');
        test_equals(bufferFullCount, 1, 'onresourcetimingbufferfull should have been invoked once buffer is full.');
        done();
    }
</script>
</body>
</html>
back to top