<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
</head>
<body>
<p><b>BUG ID:</b> <a href="rdar://problem/4175734">4175734</a> Crash trying to retrieve data with XMLHttpRequest with Content-Type: empty</p>

<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
None, the test is automatic.</p>

<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
No crash.
</p>

<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> 
Crash.
</p>

<script>
  if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
  }

  var xmlhttp = new XMLHttpRequest();
  xmlhttp.open('GET','resources/empty-content-type.php');
  xmlhttp.onreadystatechange = done;
  xmlhttp.send(null);

  function done() {
    if (xmlhttp.readyState == 4) {
      if (xmlhttp.responseXML.documentElement && window.testRunner)
        testRunner.notifyDone();
    }
  }
</script>
</body>
</html>
