<!DOCTYPE html>
<html>
<head>
<title>This tests that we can clear selection properly on dynamic content with first letter.</title>
<style>
.floatClass::first-letter {
  float: right;
}

#innerBody {
 column-count: 2;
}

</style>
</head>
<body>
<li id=li style="float: right;">Pass if<span style="float: right;"></span></li><body id=innerBody style="height: 100px"><span id=span style="display: none;"></span>no crash.</body>
<script>
  if (window.testRunner)
    testRunner.dumpAsText();
  innerBody.style.webkitWritingMode = "vertical-rl";
  innerBody.className = "floatClass";

  document.getSelection().setBaseAndExtent(span, 0, innerBody, innerBody.childNodes.length);
  window.getSelection().modify("extend", "left", "documentboundary");
  innerBody.scrollIntoViewIfNeeded(true);
  li.style.cssText = "float: right; height: 40px; width: 40px;";
  document.body.offsetHeight;
  li.style.cssText = "";
</script>
</body>
</html>
