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

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/serviceworker/postmessage-blob-url.html

Issue 2695093003: Add LayoutTests to test Blob URL transfer to {Shared,Service}Workers (Closed)
Patch Set: . Created 3 years, 10 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
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <title>Service Worker: postMessage Blob URL</title>
3 <script src="../resources/testharness.js"></script>
4 <script src="../resources/testharnessreport.js"></script>
5 <script src="resources/test-helpers.js"></script>
6 <script>
7
8 promise_test(t => {
9 let script = 'resources/postmessage-blob-url.js';
10 let scope = 'resources/blank.html';
11 let registration;
12 let worker;
13 let port;
14 let blobText = 'Blob text';
15 let blob;
16 let blobUrl;
17
18 return service_worker_unregister_and_register(t, script, scope)
19 .then(r => {
20 add_completion_callback(() => r.unregister());
21 registration = r;
22 worker = registration.installing;
23
24 var messageChannel = new MessageChannel();
25 port = messageChannel.port1;
26 return new Promise(resolve => {
27 port.onmessage = resolve;
28 worker.postMessage({port: messageChannel.port2},
29 [messageChannel.port2]);
30 });
falken 2017/02/15 04:46:06 would it be simpler to just do worker.postMessage(
kinuko 2017/02/15 07:10:16 Done.
31 })
32 .then(e => {
33 assert_equals(e.data, 'Connected');
falken 2017/02/15 04:46:06 Do we need the "Connected" step? Can't we send blo
kinuko 2017/02/15 07:10:16 Well, I ended up removing this step.
34 blob = new Blob([blobText]);
35 blobUrl = URL.createObjectURL(blob);
36 port.postMessage(blobUrl);
37 return new Promise(resolve => { port.onmessage = resolve; });
38 })
39 .then(e => {
40 assert_equals(e.data, 'Worker reply:' + blobText);
41 URL.revokeObjectURL(blobUrl);
42 return registration.unregister(scope);
43 });
44 }, 'postMessage Blob URL to a ServiceWorker');
45
46 </script>
47
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698