| Index: LayoutTests/http/tests/serviceworker/appcache-ordering-main.html
|
| diff --git a/LayoutTests/http/tests/serviceworker/appcache-ordering-main.html b/LayoutTests/http/tests/serviceworker/appcache-ordering-main.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..968af5067507280acf6a9df2f7e3973922baff9d
|
| --- /dev/null
|
| +++ b/LayoutTests/http/tests/serviceworker/appcache-ordering-main.html
|
| @@ -0,0 +1,80 @@
|
| +<!DOCTYPE html>
|
| +<script src="../resources/testharness.js"></script>
|
| +<script src="../resources/testharnessreport.js"></script>
|
| +<script src="resources/test-helpers.js"></script>
|
| +<body>
|
| +<script>
|
| +
|
| +var INSTALL_APPCACHE_URL = "resources/appcache-ordering.install.html";
|
| +var IS_APPCACHED_URL = "resources/appcache-ordering.is-appcached.html";
|
| +var SERVICE_WORKER_SCOPE = "resources/appcache-ordering";
|
| +var SERVICE_WORKER_SCRIPT = "resources/empty-worker.js";
|
| +
|
| +var resolve_install_appcache = undefined;
|
| +var reject_install_appcache = undefined;
|
| +
|
| +// Called by the INSTALL_APPCACHE_URL child frame.
|
| +function notify_appcache_installed(success) {
|
| + if (success)
|
| + resolve_install_appcache();
|
| + else
|
| + reject_install_appcache();
|
| +}
|
| +
|
| +function install_appcache() {
|
| + return new Promise(function(resolve, reject) {
|
| + var frame = document.createElement('iframe');
|
| + frame.src = INSTALL_APPCACHE_URL;
|
| + document.body.appendChild(frame);
|
| + resolve_install_appcache = function() {
|
| + unload_iframe(frame);
|
| + resolve();
|
| + };
|
| + reject_install_appcache = function() {
|
| + unload_iframe(frame);
|
| + reject();
|
| + };
|
| + });
|
| +}
|
| +
|
| +var resolve_is_appcached = undefined;
|
| +
|
| +// Called by the IS_APPCACHED_URL child frame.
|
| +function notify_is_appcached(is) {
|
| + resolve_is_appcached(is);
|
| +}
|
| +
|
| +function is_appcached() {
|
| + return new Promise(function(resolve) {
|
| + var frame = document.createElement('iframe');
|
| + frame.src = IS_APPCACHED_URL;
|
| + document.body.appendChild(frame);
|
| + resolve_is_appcached = function(is) {
|
| + unload_iframe(frame);
|
| + resolve(is);
|
| + };
|
| + });
|
| +}
|
| +
|
| +async_test(function(t) {
|
| + install_appcache()
|
| + .then(function() {
|
| + return is_appcached();
|
| + })
|
| + .then(function(result) {
|
| + assert_true(result, 'appcache should initially be utilized');
|
| + return service_worker_unregister_and_register(
|
| + t, SERVICE_WORKER_SCRIPT, SERVICE_WORKER_SCOPE);
|
| + })
|
| + .then(function() {
|
| + return is_appcached();
|
| + })
|
| + .then(function(result) {
|
| + assert_false(result, 'but serviceworkers should take priority');
|
| + service_worker_unregister_and_done(t, SERVICE_WORKER_SCOPE);
|
| + })
|
| + .catch(unreached_rejection(t));
|
| + }, 'serviceworkers take priority over appcaches');
|
| +
|
| +</script>
|
| +</body>
|
|
|