|  | <!doctype html> | 
|  | <title>Revoking blob URL used with XMLHttpRequest</title> | 
|  | <script src="/resources/testharness.js"></script> | 
|  | <script src="/resources/testharnessreport.js"></script> | 
|  |  | 
|  | <script> | 
|  | async_test(function(t) { | 
|  | var blob = new Blob(["test"]); | 
|  | var url = URL.createObjectURL(blob); | 
|  | var xhr = new XMLHttpRequest(); | 
|  | xhr.open("GET", url); | 
|  |  | 
|  | // Revoke the object URL.  XHR should take a reference to the blob as soon as | 
|  | // it receives it in open(), so the request succeeds even though we revoke the | 
|  | // URL before calling send(). | 
|  | URL.revokeObjectURL(url); | 
|  |  | 
|  | xhr.send(); | 
|  |  | 
|  | xhr.onload = t.step_func(function() { | 
|  | assert_equals(xhr.response, "test"); | 
|  | t.done(); | 
|  | }) | 
|  | xhr.onerror = t.step_func(function() { | 
|  | assert_unreached("Got unexpected error event"); | 
|  | }) | 
|  | }); | 
|  | </script> |