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

Side by Side Diff: third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/foreign-fetch-helpers.js

Issue 2676733002: Upstream foreign fetch tests. (Closed)
Patch Set: minor cleanups 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 // Common helper functions for foreign fetch tests.
2
3 // Installs a service worker on a different origin. Both |worker| and |scope|
4 // are resolved relative to the /serviceworker/resources/ directory on a
falken 2017/02/07 02:10:47 nit: /service-workers/service-worker/resources/ di
Marijn Kruisselbrink 2017/02/13 22:00:26 Done
5 // remote origin.
6 function install_cross_origin_worker(
7 t, worker, scope, origin = get_host_info().HTTPS_REMOTE_ORIGIN) {
8 return with_iframe(origin + new URL('resources/install-worker-helper.html', lo cation).pathname)
9 .then(frame => new Promise((resolve, reject) => {
10 var channel = new MessageChannel();
falken 2017/02/07 02:10:47 nit: let or const for consistency with fetch_from_
11 frame.contentWindow.postMessage({worker: worker,
12 options: {scope: scope},
13 port: channel.port1},
falken 2017/02/07 02:10:47 nit: Is it possible to remove the port property? I
Marijn Kruisselbrink 2017/02/13 22:00:26 Yeah, here using event.source directly would indee
14 '*', [channel.port1]);
15 channel.port2.onmessage = reply => {
16 if (reply.data == 'success') resolve();
17 else reject(reply.data);
18 };
19 }));
20 }
21
22 // Performs a fetch from a different origin. By default this performs a fetch
23 // from a window on that origin, but if |worker_type| is 'dedicated' or 'shared'
24 // the fetch is made from a worker on that origin instead.
25 // This uses a window rather than an iframe because an iframe might get blocked
26 // by mixed content checks.
27 function fetch_from_different_origin(origin, url, worker_type) {
28 var win = open(origin + new URL('resources/foreign-fetch-helper-iframe.html', location).pathname);
29 return new Promise(resolve => {
30 self.addEventListener('message', e => {
31 if (e.source != win) return;
32 resolve();
33 });
34 })
35 .then(() => new Promise((resolve) => {
36 let channel = new MessageChannel();
falken 2017/02/07 02:10:47 const?
Marijn Kruisselbrink 2017/02/13 22:00:25 Done
37 win.postMessage({url: url,
38 port: channel.port1,
39 worker: worker_type},
40 '*', [channel.port1]);
41 channel.port2.onmessage = reply => {
42 win.close();
43 resolve(reply.data);
44 };
45 }));
46 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698