Move parseFontFaceDescriptor to CSSPropertyParser.cpp
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / http / tests / serviceworker / unregister-controller.html
blobfc05f7763f5914fe733b6a04dead432d58a374ff
1 <!DOCTYPE html>
2 <script src="../resources/testharness.js"></script>
3 <script src="../resources/testharnessreport.js"></script>
4 <script src="resources/test-helpers.js"></script>
5 <script>
6 var worker_url = 'resources/simple-intercept-worker.js';
8 async_test(function(t) {
9 var scope =
10 'resources/unregister-controller-page.html?load-before-unregister';
11 var frame_window;
12 var controller;
13 var registration;
15 service_worker_unregister_and_register(t, worker_url, scope)
16 .then(function(r) {
17 registration = r;
18 return wait_for_state(t, r.installing, 'activated');
20 .then(function() {
21 return with_iframe(scope);
23 .then(function(frame) {
24 frame_window = frame.contentWindow;
25 controller = frame_window.navigator.serviceWorker.controller;
26 assert_true(controller instanceof frame_window.ServiceWorker,
27 'document should load with a controller');
28 return registration.unregister();
30 .then(function() {
31 assert_equals(frame_window.navigator.serviceWorker.controller,
32 controller,
33 'unregistration should not modify controller');
34 return frame_window.fetch_url('simple.txt');
36 .then(function(response) {
37 assert_equals(response, 'intercepted by service worker',
38 'controller should intercept requests');
39 t.done();
41 .catch(unreached_rejection(t));
42 }, 'Unregister does not affect existing controller');
44 async_test(function(t) {
45 var scope =
46 'resources/unregister-controller-page.html?load-after-unregister';
47 var registration;
49 service_worker_unregister_and_register(t, worker_url, scope)
50 .then(function(r) {
51 registration = r;
52 return wait_for_state(t, r.installing, 'activated');
54 .then(function() {
55 return registration.unregister();
57 .then(function() {
58 return with_iframe(scope);
60 .then(function(frame) {
61 var frame_window = frame.contentWindow;
62 assert_equals(frame_window.navigator.serviceWorker.controller, null,
63 'document should not have a controller');
64 return frame_window.fetch_url('simple.txt');
66 .then(function(response) {
67 assert_equals(response, 'a simple text file\n',
68 'requests should not be intercepted');
69 t.done();
71 .catch(unreached_rejection(t));
72 }, 'Unregister prevents control of subsequent navigations');
74 async_test(function(t) {
75 var scope =
76 'resources/scope/no-new-controllee-even-if-registration-is-still-used';
77 var registration;
79 service_worker_unregister_and_register(t, worker_url, scope)
80 .then(function(r) {
81 registration = r;
82 return wait_for_state(t, r.installing, 'activated');
84 .then(function() {
85 return with_iframe(scope);
87 .then(function(frame) {
88 return registration.unregister();
90 .then(function() {
91 return with_iframe(scope);
93 .then(function(frame) {
94 assert_equals(frame.contentWindow.navigator.serviceWorker.controller,
95 null,
96 'document should not have a controller');
97 t.done();
99 .catch(unreached_rejection(t));
100 }, 'Unregister prevents new controllee even if registration is still in use');
101 </script>