%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
<!DOCTYPE HTML> <meta charset=utf-8> <title>PerformanceObservers: PerformanceObserverInit.buffered</title> <meta name="timeout" content="long"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="performanceobservers.js"></script> <h1>PerformanceObservers: PerformanceObserverInit.buffered</h1> <p> PerformanceObserverInit.buffered should retrieve previously buffered entries </p> <div id="log"></div> <script> async_test(function (t) { function initTest() { new PerformanceObserver(function (entryList, observer) { entryList.getEntries().forEach(function(entry) { if (shouldExclude(entry)) { return; } observedEntries.push(entry); if (observedEntries.length === entryTypes.length) { observer.disconnect(); runTest(); } }); }).observe({entryTypes}); // creates a `resource` entry var img = document.createElement("img"); img.src = "./resources/square.png"; document.body.appendChild(img); performance.mark("markName"); // creates a `mark` entry performance.measure("measureName"); // creates a `measure` entry } function shouldExclude(entry) { // exclude all `resource` entries that aren't for "square.png" return entry.entryType === "resource" && entry.name.indexOf("square.png") === -1; } function runTest() { // this PerformanceObserver is a nop because we've already been notified about all of our `entryTypes` var po_nop = new PerformanceObserver(function (entryList, observer) { if (entryList.getEntries().find(function(entry) { return !shouldExclude(entry); })) { assert_unreached("this PerformanceObserver callback should never be called"); } }); po_nop.observe({ entryTypes, }); // this PerformanceObserver should be notified about the previously // buffered mark entry only const bufferedEntries = []; new PerformanceObserver(function (entryList, observer) { entryList.getEntries().forEach(function(entry) { if (shouldExclude(entry)) { return; } bufferedEntries.push(entry); if (bufferedEntries.length === 1) { observer.disconnect(); po_nop.disconnect(); for (i = 0; i < bufferedEntries.length; i++) { assert_equals(bufferedEntries[i].entryType, "mark") } t.done(); } }); }).observe({ type: "mark", buffered: true }); } const entryTypes = ["navigation", "resource", "mark", "measure"]; const observedEntries = []; initTest(); }, "PerformanceObserverInit.buffered should retrieve previously buffered entries"); </script>