Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE html>
<title>Service Worker: Synchronous XHR is intercepted</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/test-helpers.sub.js"></script>
<script>
'use strict';
promise_test(function(t) {
var url = 'resources/fetch-request-xhr-sync-worker.js';
var scope = 'resources/fetch-request-xhr-sync-iframe.html';
var non_existent_file = 'non-existent-file.txt';
return service_worker_unregister_and_register(t, url, scope)
.then(function(registration) {
t.add_cleanup(function() {
return registration.unregister();
});
return wait_for_state(t, registration.installing, 'activated');
})
.then(function() { return with_iframe(scope); })
.then(function(frame) {
t.add_cleanup(function() {
frame.remove();
});
return new Promise(function(resolve, reject) {
t.step_timeout(function() {
var xhr;
try {
xhr = frame.contentWindow.performSyncXHR(non_existent_file);
resolve(xhr);
} catch (err) {
reject(err);
}
}, 0);
})
})
.then(function(xhr) {
assert_equals(
xhr.status,
200,
'HTTP response status code for intercepted request'
);
assert_equals(
xhr.responseText,
'Response from service worker',
'HTTP response text for intercepted request'
);
});
}, 'Verify SyncXHR is intercepted');
</script>