39 lines
1.1 KiB
HTML
39 lines
1.1 KiB
HTML
<!DOCType html>
|
|
<html>
|
|
<body>
|
|
<script src=event-timing-test-utils.js></script>
|
|
<div style="width: 300px; height: 300px" id='iframe_div' onmousedown="mainThreadBusy(120)">
|
|
<script>
|
|
(async () => {
|
|
const observerPromise = new Promise(resolve => {
|
|
new PerformanceObserver(entryList => {
|
|
const mouseDowns = entryList.getEntriesByName('mousedown');
|
|
if (mouseDowns.length === 0)
|
|
return;
|
|
resolve(mouseDowns);
|
|
}).observe({ type:'event' });
|
|
});
|
|
const entries = await observerPromise;
|
|
const clickDone = performance.now();
|
|
if (entries.length !== 1) {
|
|
top.postMessage("failed", "*");
|
|
return;
|
|
}
|
|
const entry = entries[0];
|
|
top.postMessage({
|
|
// Entry values (|entry| itself is not clonable)
|
|
"name": entry.name,
|
|
"cancelable": entry.cancelable,
|
|
"entryType": entry.entryType,
|
|
"startTime": entry.startTime,
|
|
"processingStart": entry.processingStart,
|
|
"processingEnd": entry.processingEnd,
|
|
"duration": entry.duration,
|
|
// Other values
|
|
"clickDone" : clickDone,
|
|
"target": entry.target.id,
|
|
}, '*');
|
|
}) ();
|
|
</script>
|
|
</body>
|
|
</html>
|