| Index: LayoutTests/http/tests/serviceworker/http-to-https-redirect-and-register.html
|
| diff --git a/LayoutTests/http/tests/serviceworker/http-to-https-redirect-and-register.html b/LayoutTests/http/tests/serviceworker/http-to-https-redirect-and-register.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..50dff5507d2edc763b4dcaebd08d40612f872dba
|
| --- /dev/null
|
| +++ b/LayoutTests/http/tests/serviceworker/http-to-https-redirect-and-register.html
|
| @@ -0,0 +1,48 @@
|
| +<!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/testharness-helpers.js"></script>
|
| +<script src="../resources/testharnessreport.js"></script>
|
| +<script src="../resources/get-host-info.js?pipe=sub"></script>
|
| +<script src="resources/test-helpers.js"></script>
|
| +<body>
|
| +<script>
|
| +
|
| +// Loads a non-secure url in an iframe, 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 = get_host_info()['UNAUTHENTICATED_ORIGIN'] +
|
| + '/serviceworker/resources/redirect.php?Redirect=';
|
| + var frame;
|
| +
|
| + return with_iframe(redirect_url + encodeURIComponent(target_url))
|
| + .then(f => {
|
| + frame = f;
|
| + return new Promise(resolve => {
|
| + window.addEventListener('message', e => {resolve(e.data);});
|
| + });
|
| + })
|
| + .then(result => {
|
| + frame.remove();
|
| + return result;
|
| + });
|
| +}
|
| +
|
| +promise_test(function(t) {
|
| + var target_url = window.location.origin +
|
| + '/serviceworker/resources/register.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 = get_host_info()['UNAUTHENTICATED_ORIGIN'] +
|
| + '/serviceworker/resources/register.html';
|
| +
|
| + return redirect_and_register(target_url)
|
| + .then(result => {assert_equals(result, 'FAIL: NotSupportedError');});
|
| + }, 'register on a non-secure page after redirect from an non-secure url');
|
| +</script>
|
| +</body>
|
|
|