<html>
<script>
if (window.testRunner) {
  testRunner.dumpAsText();
  testRunner.waitUntilDone();
}
  
function onFrameLoad(frame) {
  var client = frame.contentWindow.client();
  frame.parentNode.removeChild(frame);
  client.open("GET", "DoesNotExist.txt");
  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>
