chromium/third_party/blink/web_tests/http/tests/misc/hover-state-recomputed-on-main-frame.html

<!DOCTYPE html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>

<style>
  .oop-iframe {
    width: 300px;
    height: 300px;
  }
</style>
<iframe id="target-iframe" class="oop-iframe"
  src="http://localhost:8080/misc/resources/cross-origin-iframe-for-hover-state-refresh.html">
</iframe>
<script>
// Check that cursor hover state is updated after changes to layout or scroll
// in OOPIFs.

var hover_test = async_test("Verify that cursor/hover updates after"
      + "  scroll/layout changes in OOPIF");
var iframe = document.getElementById("target-iframe");
iframe.onload = startTest;
let state = 0;
function startTest() {
  if (!internals.isSiteIsolated(iframe)) {
      hover_test.name = "No site isolation - test skipped"
      hover_test.done();
      return;
  }
  else {
    window.addEventListener("message", handleMessage);
    iframe.contentWindow.postMessage("clickiframe", "*");
  }
}
function handleMessage(event) {
  if (state == 0) {
    assert_equals("mouseover", event.data);
    state++;
  } else if (state == 1) {
    assert_equals("mouseout", event.data);
    hover_test.done();
  }
}
</script>