%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> <html> <head> <meta charset="utf-8" /> <title>functionality test of window.performance.clearMeasures</title> <link rel="author" title="Intel" href="http://www.intel.com/" /> <link rel="help" href="http://www.w3.org/TR/user-timing/#extensions-performance-interface"/> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/common/performance-timeline-utils.js"></script> <script src="resources/webperftestharness.js"></script> <script src="resources/webperftestharnessextension.js"></script> <script> setup({ explicit_done: true }); function onload_test() { const context = new PerformanceContext(window.performance); const entrylist_checker = new performance_entrylist_checker('measure'); const measure_names = measures.map(function(x) {return x[0];}); mark_names.forEach(function(name) { context.mark(name); }); measures.forEach(context.initialMeasures, context); for (let i = 0; i < measures.length; ++i) { context.clearMeasures(measures[i][0]); const retained_entries = context.getEntriesByType('measure'); const non_retained_entries = context.getEntriesByName(measures[i][0], 'measure'); entrylist_checker.entrylist_check(retained_entries, measures.length - i - 1, measure_names, 'First loop: checking entries after removing "' + measures[i][0] + '". '); test_equals(non_retained_entries.length, 0, 'First loop: measure "' + measures[i][0] + '" should not exist anymore after we cleared it.'); } measures.forEach(context.initialMeasures, context); context.clearMeasures(); test_equals(context.getEntriesByType('measure').length, 0, 'No measures should exist after we clear all (after first loop).'); // Following cases test clear existed measure name that is tied twice. measures.forEach(context.initialMeasures, context); mark_names.forEach(function(name) { context.mark(name); }); measures.forEach(context.initialMeasures, context); for (let i = 0; i < measures.length; ++i) { context.clearMeasures(measures[i][0]); const retained_entries = context.getEntriesByType('measure'); const non_retained_entries = context.getEntriesByName(measures[i][0], 'measure'); entrylist_checker.entrylist_check(retained_entries, (measures.length - i - 1) * 2, measure_names, 'Second loop: checking entries after removing "' + measures[i][0] + '". '); test_equals(non_retained_entries.length, 0, 'Second loop: measure "' + measures[i][0] +'" should not exist anymore after we cleared it.'); } // Following cases test clear functionality when measure names are tied twice. measures.forEach(context.initialMeasures, context); measures.forEach(context.initialMeasures, context); const entry_number_before_useless_clear = context.getEntriesByType('measure').length; context.clearMeasures('NonExist'); const entry_number_after_useless_clear = context.getEntriesByType('measure').length; test_equals(entry_number_before_useless_clear, entry_number_after_useless_clear, 'Nothing should happen if we clear a non-exist measure'); context.clearMeasures(); test_equals(context.getEntriesByType('measure').length, 0, 'No measures should exist when we clear all (after second loop).'); done(); } </script> </head> <body onload=onload_test()> <h1>Description</h1> <p>This test validates functionality of the interface window.performance.clearMeasures.</p> <div id="log"></div> </body> </html>