Index: third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/unregister-then-register.https.html |
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/unregister-then-register.https.html b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/unregister-then-register.https.html |
index d75904d158f6e14a4da04d033170d4a609cee534..6c0a0aecf3f562a56edf7ff65acb9fcd675cdfa6 100644 |
--- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/unregister-then-register.https.html |
+++ b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/unregister-then-register.https.html |
@@ -56,6 +56,45 @@ async_test(function(t) { |
'registration is in use.'); |
async_test(function(t) { |
+ var scope = 'resources/scope/complete-unregistration-followed-by-' + |
+ 'reloading-controllee-iframe'; |
+ var registration; |
+ var frame; |
+ var service_worker; |
+ service_worker_unregister_and_register(t, worker_url, scope) |
+ .then(function(r) { |
+ registration = r; |
+ return wait_for_state(t, r.installing, 'activated'); |
+ }) |
+ .then(function() { |
+ return with_iframe(scope); |
+ }) |
+ .then(function(f) { |
+ frame = f; |
+ return registration.unregister(); |
+ }) |
+ .then(function() { |
+ return new Promise(function(resolve) { |
+ frame.onload = resolve; |
+ frame.contentWindow.location.reload(); |
+ }); |
+ }) |
+ .then(function() { |
+ var c = frame.contentWindow.navigator.serviceWorker.controller; |
+ assert_equals(c, null, 'a page after unregistration should not be ' + |
+ 'controlled by service worker'); |
+ return navigator.serviceWorker.getRegistration(scope); |
+ }) |
+ .then(function(r) { |
+ assert_equals(r, undefined, 'getRegistration should return ' + |
+ 'undefined after unregistration'); |
+ service_worker_unregister_and_done(t, scope); |
+ }) |
+ .catch(unreached_rejection(t)); |
+}, 'Reloading the last controlled iframe after unregistration should ensure ' + |
+ 'the deletion of the registration'); |
+ |
+async_test(function(t) { |
var scope = 'resources/scope/re-register-does-not-affect-existing-controllee'; |
var iframe; |
var registration; |
@@ -116,8 +155,6 @@ async_test(function(t) { |
return with_iframe(scope); |
}) |
.then(function(frame) { |
- // FIXME: When crbug.com/400602 is fixed, assert that controller |
- // equals the original worker. |
assert_not_equals( |
frame.contentWindow.navigator.serviceWorker.controller, null, |
'document should have a controller'); |