diff options
Diffstat (limited to 'tests/html')
-rw-r--r-- | tests/html/service-worker/demo_iframe.html | 1 | ||||
-rw-r--r-- | tests/html/service-worker/dummy.js | 3 | ||||
-rw-r--r-- | tests/html/service-worker/iframe_sw.js | 6 | ||||
-rw-r--r-- | tests/html/service-worker/index.html | 33 | ||||
-rw-r--r-- | tests/html/service-worker/sw.js | 11 | ||||
-rw-r--r-- | tests/html/service-worker/sw_dashboard.js | 12 | ||||
-rw-r--r-- | tests/html/service-worker/sw_profile.js | 10 |
7 files changed, 54 insertions, 22 deletions
diff --git a/tests/html/service-worker/demo_iframe.html b/tests/html/service-worker/demo_iframe.html index 1da0e4d7882..c4da41ffe1f 100644 --- a/tests/html/service-worker/demo_iframe.html +++ b/tests/html/service-worker/demo_iframe.html @@ -8,6 +8,5 @@ <div> <a href="http://github.com/servo/servo">Servo Project</a> </div> - </body> </html> diff --git a/tests/html/service-worker/dummy.js b/tests/html/service-worker/dummy.js new file mode 100644 index 00000000000..e9478cb299e --- /dev/null +++ b/tests/html/service-worker/dummy.js @@ -0,0 +1,3 @@ +function test_importScripts() { + console.log('Hi from dummy.js'); +}
\ No newline at end of file diff --git a/tests/html/service-worker/iframe_sw.js b/tests/html/service-worker/iframe_sw.js index 51bce022ffe..64adbeaa9ab 100644 --- a/tests/html/service-worker/iframe_sw.js +++ b/tests/html/service-worker/iframe_sw.js @@ -1,11 +1,11 @@ self.addEventListener('activate', function(e) { - console.log("iframe service worker active"); + console.log("iframe service worker active"); }); self.addEventListener('fetch', function(e) { - console.log("A fetch event detected by /iframe service worker"); + console.log("A fetch event detected by /iframe service worker"); }); self.addEventListener('message', function(e) { - console.log('Post message payload ' + e.data.msg); + console.log(e.data.payload.msg + ' from '+ e.data.payload.worker_id); }) diff --git a/tests/html/service-worker/index.html b/tests/html/service-worker/index.html index 72081e62a2d..ef971d0a461 100644 --- a/tests/html/service-worker/index.html +++ b/tests/html/service-worker/index.html @@ -16,43 +16,56 @@ <button onclick="register_zero()">Register for Root (/)</button> <button onclick="register_one()">Register for Dashboard (/dashboard)</button> <button onclick="register_two()">Register for Profile (/profile)</button> + <button onclick="post_message_root()">Msg to Root service worker</button> </div> - <script> + var reg = navigator.serviceWorker.register('iframe_sw.js', { 'scope': '/demo_iframe.html' }); console.log("From client worker registered: ", navigator.serviceWorker.controller); console.log("Registered script source: "+ navigator.serviceWorker.controller.scriptURL); document.getElementById('iframe_sw').src = 'demo_iframe.html'; - var payload = { msg: 'Hi from /iframe service worker' }; - - // The delay is due to the sender being set in the service worker object after the scope starts. - // This won't be needed when service workers are wrapped with Promises. - setTimeout(function() { - navigator.serviceWorker.controller.postMessage(payload); - }, 1000); + post_message('/demo_iframe'); function register_zero() { - var reg = navigator.serviceWorker.register('sw.js', { 'scope': './' }); + var reg = navigator.serviceWorker.register('sw.js', { 'scope': './*' }); console.log("From client worker registered: ", navigator.serviceWorker.controller); console.log("Registered script source: "+ navigator.serviceWorker.controller.scriptURL); } + function post_message_root() { + // Testing repeated calls of postMessage + for(var i=0;i<100;i++){ + navigator.serviceWorker.controller.postMessage({num:'Dummy message count: '+i}); + } + } + function register_one() { var reg = navigator.serviceWorker.register('sw_dashboard.js', { 'scope': '/dashboard' }); console.log("From client worker registered: ", navigator.serviceWorker.controller); console.log("Registered script source: "+ navigator.serviceWorker.controller.scriptURL); + post_message('/dashboard'); } function register_two() { var reg = navigator.serviceWorker.register('sw_profile.js', { 'scope': '/profile' }); console.log("From client worker registered: ", navigator.serviceWorker.controller); console.log("Registered script source: "+ navigator.serviceWorker.controller.scriptURL); + post_message('/profile'); } navigator.serviceWorker.addEventListener('controllerchange', function(e) { - console.log("active Service Worker changed"); + console.log("navigator.serviceWorker.controller changed"); }); + function post_message(worker_id) { + navigator.serviceWorker.controller.postMessage({ + payload:{ + msg:'Hi there! This is a dummy message for testing of postMessage calls from Service Workers', + worker_id:worker_id + } + }); + } + </script> </body> </html> diff --git a/tests/html/service-worker/sw.js b/tests/html/service-worker/sw.js index e69de29bb2d..04649167e5a 100644 --- a/tests/html/service-worker/sw.js +++ b/tests/html/service-worker/sw.js @@ -0,0 +1,11 @@ +self.addEventListener('activate', function(e) { + console.log('Root service worker active'); +}); + +self.addEventListener('fetch', function(e) { + console.log("A fetch event detected by / service worker"); +}); + +self.addEventListener('message', function(e) { + console.log(e.data.num); +}) diff --git a/tests/html/service-worker/sw_dashboard.js b/tests/html/service-worker/sw_dashboard.js index 472fe03cca1..5789e0fc361 100644 --- a/tests/html/service-worker/sw_dashboard.js +++ b/tests/html/service-worker/sw_dashboard.js @@ -1,9 +1,11 @@ -importScripts('dashboard_helper.js'); - self.addEventListener('activate', function(e) { - status_from_dashboard(); + console.log('Dashboard service worker active'); }); self.addEventListener('fetch', function(e) { - console.log("A fetch event detected by /dashboard service worker"); -});
\ No newline at end of file + console.log("A fetch event detected by /dashboard service worker"); +}); + +self.addEventListener('message', function(e) { + console.log(e.data.payload.msg + ' from '+ e.data.payload.worker_id); +}) diff --git a/tests/html/service-worker/sw_profile.js b/tests/html/service-worker/sw_profile.js index 8834ece7719..e1871f125c8 100644 --- a/tests/html/service-worker/sw_profile.js +++ b/tests/html/service-worker/sw_profile.js @@ -1,8 +1,12 @@ self.addEventListener('activate', function(e) { - console.log("profile service worker active"); + console.log("profile service worker active"); }); self.addEventListener('fetch', function(e) { - console.log("A fetch event detected by /profile service worker"); -});
\ No newline at end of file + console.log("A fetch event detected by /profile service worker"); +}); + +self.addEventListener('message', function(e) { + console.log(e.data.payload.msg + ' from '+ e.data.payload.worker_id); +}) |