44 lines
1.7 KiB
HTML
44 lines
1.7 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<meta charset=utf-8>
|
|
<title>Event Timing: make sure 'event' entries are not retrievable by performance.getEntries* APIs.</title>
|
|
<meta name="timeout" content="long">
|
|
<button id='button'>Generate a 'click' event</button>
|
|
<script src=/resources/testharness.js></script>
|
|
<script src=/resources/testharnessreport.js></script>
|
|
<script src=/resources/testdriver.js></script>
|
|
<script src=/resources/testdriver-vendor.js></script>
|
|
|
|
<script src=resources/event-timing-test-utils.js></script>
|
|
|
|
<script>
|
|
function validateEntries() {
|
|
const entriesByName = performance.getEntriesByName('mousedown', 'event');
|
|
const entriesByType = performance.getEntriesByType('event');
|
|
const allEntries = performance.getEntries();
|
|
assert_equals(entriesByName.length, 0, 'Event Timing entry should not be retrievable by getEntriesByName');
|
|
assert_equals(entriesByType.length, 0, 'Event Timing entry should not be retrievable by getEntriesByType');
|
|
assert_equals(allEntries.filter(e => e.entryType === 'event').length, 0, 'Event Timing entry should not be retrievable by getEntries');
|
|
}
|
|
|
|
/* Timeline:
|
|
Begin Busy Loop
|
|
Click 1 arrives
|
|
End Busy Loop
|
|
(Dispatch and Process Click 1 - buffered)
|
|
Onload Event Fires
|
|
Validate entries
|
|
*/
|
|
async_test(function(t) {
|
|
assert_implements(window.PerformanceEventTiming, 'Event Timing is not supported.');
|
|
new PerformanceObserver(t.step_func(entryList => {
|
|
if (entryList.getEntriesByName('mousedown').length > 0) {
|
|
validateEntries();
|
|
t.done();
|
|
}
|
|
})).observe({entryTypes: ['event']});
|
|
clickAndBlockMain('button');
|
|
}, "Event Timing: make sure event-timing entries are not retrievable by performance.getEntries*.");
|
|
|
|
</script>
|
|
</html>
|