<p>Matching other execCommand identifiers, execCommand("InsertLineBreak") should not scroll the page to make selection visible.</p>
<p>This test only works in WebKit, as other engines do not implement this command.</p>
<div contenteditable>a</div>
<div style="height:10000"></div>
<script>
  var text = document.getElementsByTagName('div')[0].firstChild;
  window.getSelection().setBaseAndExtent(text, 0, text, 0);
  window.scrollTo(0, 1000);
  document.execCommand("InsertLineBreak");

  var result = (window.pageYOffset == 1000) ? "SUCCESS" : "FAILURE";
  if (window.testRunner) {
    testRunner.dumpAsText();
    document.write(result);
  } else
    alert(result);
</script>
