<!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>
