| <!DOCTYPE html> |
| |
| <div id=target>Hello, world!</div> |
| |
| <script> |
| let eventCounts = {}; |
| let eventTypes = [ |
| "mousedown", |
| "mouseup", |
| "click"]; |
| eventTypes.forEach(eventType => { |
| eventCounts[eventType] = 0; |
| document.addEventListener(eventType, evt => { |
| eventCounts[eventType]++; |
| }); |
| }); |
| |
| addEventListener("message", evt => { |
| if (evt.data == "observe") { |
| new IntersectionObserver(entries => { |
| evt.source.postMessage("didObserve", "*"); |
| }, {trackVisibility: true, delay: 100}).observe(document.getElementById("target")); |
| } |
| if (evt.data.hasOwnProperty("tap")) { |
| chrome.gpuBenchmarking.tap(evt.data["tap"][0], evt.data["tap"][1], () => { |
| evt.source.postMessage({count: eventCounts, description: evt.data["description"]}, "*"); |
| Object.keys(eventCounts).forEach(key => { eventCounts[key] = 0 }); |
| }); |
| } |
| }); |
| </script> |