aboutsummaryrefslogtreecommitdiffstats
path: root/tests/html
diff options
context:
space:
mode:
Diffstat (limited to 'tests/html')
-rw-r--r--tests/html/service-worker/demo_iframe.html1
-rw-r--r--tests/html/service-worker/dummy.js3
-rw-r--r--tests/html/service-worker/iframe_sw.js6
-rw-r--r--tests/html/service-worker/index.html33
-rw-r--r--tests/html/service-worker/sw.js11
-rw-r--r--tests/html/service-worker/sw_dashboard.js12
-rw-r--r--tests/html/service-worker/sw_profile.js10
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);
+})