77 lines
2.3 KiB
HTML
77 lines
2.3 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<meta charset=utf-8 />
|
|
<title></title>
|
|
<style>
|
|
#targetDiv {
|
|
width: 200px;
|
|
height: 200px;
|
|
overflow: scroll;
|
|
}
|
|
|
|
#innerDiv {
|
|
width: 4000px;
|
|
height: 4000px;
|
|
}
|
|
</style>
|
|
<body style="margin:0">
|
|
<div id="targetDiv">
|
|
<div id="innerDiv">
|
|
</div>
|
|
</div>
|
|
<script src=/resources/testharness.js></script>
|
|
<script src=/resources/testharnessreport.js></script>
|
|
<script src=/resources/testdriver.js></script>
|
|
<script src=/resources/testdriver-actions.js></script>
|
|
<script src=/resources/testdriver-vendor.js></script>
|
|
<script src=resources/event-timing-test-utils.js></script>
|
|
<script>
|
|
let event_count = 0;
|
|
|
|
function validateEntries(entries) {
|
|
assert_equals(entries.length, 2, "two pointerdown entries should be received");
|
|
let entry = entries[0];
|
|
assert_equals(entry.name, 'pointerdown');
|
|
assert_equals(entry.interactionId, 0);
|
|
entry = entries[1];
|
|
assert_equals(entry.name, 'pointerdown');
|
|
assert_equals(entry.interactionId, 0);
|
|
}
|
|
|
|
promise_test(async t => {
|
|
assert_implements(window.PerformanceEventTiming, 'Event Timing is not supported.');
|
|
// Skip the test on a Mac as they do not support touch screens.
|
|
const isMac = navigator.platform.toUpperCase().indexOf('MAC')>=0;
|
|
if (isMac)
|
|
return;
|
|
|
|
// Wait for load event so we can interact on the page.
|
|
await new Promise(resolve => {
|
|
window.addEventListener('load', resolve);
|
|
});
|
|
|
|
let observedEntries = [];
|
|
const observerPromise = new Promise(resolve => {
|
|
let pointerdown_count = 0;
|
|
new PerformanceObserver(entryList => {
|
|
entryList.getEntries().forEach(e => {
|
|
if(e.name.includes('pointerdown')) {
|
|
pointerdown_count += 1;
|
|
observedEntries.push(e);
|
|
}
|
|
if(pointerdown_count == 2){
|
|
resolve(observedEntries);
|
|
}
|
|
});
|
|
}).observe({type: 'event',
|
|
durationThreshold: 0,
|
|
buffered: true});
|
|
})
|
|
|
|
const target = document.getElementById('targetDiv');
|
|
await interactAndObserve('fling-tap', target, observerPromise);
|
|
validateEntries(observedEntries);
|
|
}, "Event Timing: test that the second pointerdown event that happens during fling does not have interaction id.");
|
|
</script>
|
|
</body>
|
|
</html>
|