<!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.py');
  xmlhttp.onreadystatechange = done;
  xmlhttp.send(null);

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