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

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/foreign-fetch-worker.js

Issue 2676733002: Upstream foreign fetch tests. (Closed)
Patch Set: rebase 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 self.addEventListener('install', function(event) {
2 var params = JSON.parse(decodeURIComponent(location.search.substring(1)));
3 if (!('scopes' in params)) {
4 if ('relscopes' in params) {
5 params.scopes = params.relscopes.map(s => registration.scope + s);
6 } else {
7 params.scopes = [registration.scope];
8 }
9 }
10 if (!('origins' in params))
11 params.origins = ['*'];
12 event.registerForeignFetch(params);
13 });
14
15 function handle_basic(event) {
16 event.respondWith({response: new Response('Foreign Fetch'), origin: event.orig in});
17 }
18
19 function handle_null(event) {
20 event.respondWith({response: null });
21 }
22
23 function handle_onmessage(event) {
24 event.respondWith({origin: event.origin, response:
25 new Response('<script>window.onmessage = e => e.ports[0].postMessage("failed ");</script>',
26 {headers: {'Content-Type': 'text/html'}})});
27 }
28
29 function handle_fallback(event) {
30 // Do nothing.
31 }
32
33 function handle_fetch(event) {
34 event.respondWith(
35 fetch(event.request).then(response => ({response, origin: event.origin})));
36 }
37
38 function handle_meta(event) {
39 var data = {
40 origin: event.origin,
41 referrer: event.request.referrer
42 };
43 event.respondWith({response: new Response(JSON.stringify(data)),
44 origin: event.origin});
45 }
46
47 function handle_script(event) {
48 event.respondWith({origin: event.origin, response:
49 new Response('self.DidLoad("Foreign Fetch");')});
50 }
51
52 self.addEventListener('foreignfetch', function(event) {
53 var url = event.request.url;
54 var handlers = [
55 { pattern: '?basic', fn: handle_basic },
56 { pattern: '?null', fn: handle_null },
57 { pattern: '?fallback', fn: handle_fallback },
58 { pattern: '?fetch', fn: handle_fetch },
59 { pattern: '?onmessage', fn: handle_onmessage },
60 { pattern: '?meta', fn: handle_meta },
61 { pattern: '?script', fn: handle_script }
62 ];
63
64 var handler = null;
65 for (var i = 0; i < handlers.length; ++i) {
66 if (url.indexOf(handlers[i].pattern) != -1) {
67 handler = handlers[i];
68 break;
69 }
70 }
71
72 if (handler) {
73 handler.fn(event);
74 } else {
75 event.respondWith({origin: event.origin,
76 response: new Response('unexpected request')});
77 }
78 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698