| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <body></body> |
| <script> |
| const URL = 'opaque-response?from=opaque-response-being-preloaded-xhr.html'; |
| function runTest() { |
| var l = document.createElement('link'); |
| // Use link rel=preload to try to get the browser to cache the opaque |
| // response. |
| l.setAttribute('rel', 'preload'); |
| l.setAttribute('href', URL); |
| l.setAttribute('as', 'fetch'); |
| l.onerror = function() { |
| parent.done('FAIL: preload failed unexpectedly'); |
| }; |
| document.body.appendChild(l); |
| xhr = new XMLHttpRequest; |
| xhr.withCredentials = true; |
| xhr.open('GET', URL); |
| // opaque-response returns an opaque response from serviceworker and thus |
| // the XHR must fail because it is not no-cors request. |
| // Particularly, the XHR must not reuse the opaque response from the |
| // preload request. |
| xhr.onerror = function() { |
| parent.done('PASS'); |
| }; |
| xhr.onload = function() { |
| parent.done('FAIL: ' + xhr.responseText); |
| }; |
| xhr.send(); |
| } |
| </script> |
| <body onload="setTimeout(runTest, 100)"></body> |