Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(301)

Side by Side Diff: LayoutTests/http/tests/notifications/resources/test-helpers.js

Issue 868053003: Expose ServiceWorkerRegistration.showNotification() in Service Workers. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Supports test-runner control messages being send over |messagePort|, which en able 1 // Supports test-runner control messages being send over |messagePort|, which en able
2 // workers to have limited access to TestRunner methods. 2 // workers to have limited access to TestRunner methods.
3 function supportTestRunnerMessagesOnPort(messagePort) 3 function supportTestRunnerMessagesOnPort(messagePort)
4 { 4 {
5 if (!window.testRunner) 5 if (!window.testRunner)
6 return; 6 return;
7 7
8 messagePort.addEventListener('message', function(message) { 8 messagePort.addEventListener('message', function(message) {
9 if (message.data.type == 'simulateWebNotificationClick') 9 if (message.data.type == 'simulateWebNotificationClick')
10 testRunner.simulateWebNotificationClick(message.data.title); 10 testRunner.simulateWebNotificationClick(message.data.title);
(...skipping 18 matching lines...) Expand all
29 supportTestRunnerMessagesOnPort(worker.port); 29 supportTestRunnerMessagesOnPort(worker.port);
30 30
31 fetch_tests_from_worker(worker); 31 fetch_tests_from_worker(worker);
32 } 32 }
33 33
34 // Used by tests to announce that all tests have been registered when they're 34 // Used by tests to announce that all tests have been registered when they're
35 // being ran from a dedicated or shared worker. Not necessary for document tests . 35 // being ran from a dedicated or shared worker. Not necessary for document tests .
36 function isDedicatedOrSharedWorker() 36 function isDedicatedOrSharedWorker()
37 { 37 {
38 return false; 38 return false;
39 } 39 }
40
41 // Unregisters, then registers the Service Worker in |script| using |scope|, wai ts
42 // for it to activate and then inserts a message port. Returns a Promise which w ill
43 // be resolved with an object having the worker's registration and port. The
44 // Service Worker will be automatically unregistered once the test has completed .
45 function getActiveServiceWorkerWithMessagePort(test, script, scope)
46 {
47 var registration = null;
48 return service_worker_unregister_and_register(test, script, scope).then(func tion (swRegistration) {
Michael van Ouwerkerk 2015/01/26 16:52:37 Please don't leave space between 'function' and '(
Peter Beverloo 2015/01/27 11:16:56 Done.
49 registration = swRegistration;
50 add_completion_callback(function() {
51 registration.unregister();
52 });
53
54 return wait_for_state(test, registration.installing, 'activated');
55 }).then(function () {
56 assert_not_equals(registration.active, null, 'The Service Worker needs t o be activated.');
57 return new Promise(function (resolve) {
58 var messageChannel = new MessageChannel();
59 messageChannel.port1.addEventListener('message', function(event) {
60 if (event.data == 'ready')
61 resolve({ registration: registration, port: messageChannel.p ort1 });
62 });
63
64 registration.active.postMessage(messageChannel.port2, [messageChanne l.port2]);
65 messageChannel.port1.start();
66 });
67 });
68 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698