<html>
<script>
if (window.testRunner) {
  testRunner.dumpAsText();
  testRunner.waitUntilDone();
}
  
function onFrameLoad(frame) {
  var client = frame.contentWindow.client();
  frame.parentNode.removeChild(frame);
  try {
      client.open("GET", "DoesNotExist.txt");
  } catch(e) { }
  if (window.testRunner)
    testRunner.notifyDone();
}
</script>
<body>
This tests that removing a child frame in XMLHttpRequest does not crash the renderer.
<br>
<iframe src="resources/xmlhttprequest-open-after-iframe-onload-remove-self-child.html" onload="onFrameLoad(this)"></iframe>
</body>
</html>
