Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE html>
<title>register on a secure page after redirect from an non-secure url</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/get-host-info.sub.js"></script>
<script src="resources/test-helpers.sub.js"></script>
<body>
<script>
'use strict';
var host_info = get_host_info();
// Loads a non-secure url in a new window, which redirects to |target_url|.
// That page then registers a service worker, and messages back with the result.
// Returns a promise that resolves with the result.
function redirect_and_register(target_url) {
var redirect_url = host_info.HTTP_REMOTE_ORIGIN + base_path() +
'resources/redirect.py?Redirect=';
var child = window.open(redirect_url + encodeURIComponent(target_url));
return new Promise(resolve => {
window.addEventListener('message', e => resolve(e.data));
})
.then(function(result) {
child.close();
return result;
});
}
promise_test(function(t) {
var target_url = window.location.origin + base_path() +
'resources/http-to-https-redirect-and-register-iframe.html';
return redirect_and_register(target_url)
.then(result => {
assert_equals(result, 'OK');
});
}, 'register on a secure page after redirect from an non-secure url');
promise_test(function(t) {
var target_url = host_info.HTTP_REMOTE_ORIGIN + base_path() +
'resources/http-to-https-redirect-and-register-iframe.html';
return redirect_and_register(target_url)
.then(result => {
assert_equals(result, 'FAIL: navigator.serviceWorker is undefined');
});
}, 'register on a non-secure page after redirect from an non-secure url');
</script>
</body>