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

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

Issue 1597383002: Service Worker: (Re-commit) Add FetchEvent.clientId (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 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
OLDNEW
1 function handleString(event) { 1 function handleString(event) {
2 event.respondWith(new Response('Test string')); 2 event.respondWith(new Response('Test string'));
3 } 3 }
4 4
5 function handleBlob(event) { 5 function handleBlob(event) {
6 event.respondWith(new Response(new Blob(['Test blob']))); 6 event.respondWith(new Response(new Blob(['Test blob'])));
7 } 7 }
8 8
9 function handleReferrer(event) { 9 function handleReferrer(event) {
10 event.respondWith(new Response(new Blob( 10 event.respondWith(new Response(new Blob(
11 ['Referrer: ' + event.request.referrer]))); 11 ['Referrer: ' + event.request.referrer])));
12 } 12 }
13 13
14 function handleClientId(event) {
15 var body;
16 if (event.clientId !== null) {
17 body = 'Client ID Found: ' + event.clientId;
18 } else {
19 body = 'Client ID Not Found';
20 }
21 event.respondWith(new Response(body));
22 }
23
14 function handleNullBody(event) { 24 function handleNullBody(event) {
15 event.respondWith(new Response()); 25 event.respondWith(new Response());
16 } 26 }
17 27
18 function handleFetch(event) { 28 function handleFetch(event) {
19 event.respondWith(fetch('other.html')); 29 event.respondWith(fetch('other.html'));
20 } 30 }
21 31
22 function handleFormPost(event) { 32 function handleFormPost(event) {
23 event.respondWith(new Promise(function(resolve) { 33 event.respondWith(new Promise(function(resolve) {
24 event.request.text() 34 event.request.text()
25 .then(function(result) { 35 .then(function(result) {
26 resolve(new Response(event.request.method + ':' + result)); 36 resolve(new Response(event.request.method + ':' +
37 event.request.headers.get('Content-Type') + ':' +
38 result));
27 }); 39 });
28 })); 40 }));
29 } 41 }
30 42
31 var logForMultipleRespondWith = '';
32
33 function handleMultipleRespondWith(event) { 43 function handleMultipleRespondWith(event) {
44 var logForMultipleRespondWith = '';
34 for (var i = 0; i < 3; ++i) { 45 for (var i = 0; i < 3; ++i) {
35 logForMultipleRespondWith += '(' + i + ')'; 46 logForMultipleRespondWith += '(' + i + ')';
36 try { 47 try {
37 event.respondWith(new Response(logForMultipleRespondWith)); 48 event.respondWith(new Promise(function(resolve) {
49 setTimeout(function() {
50 resolve(new Response(logForMultipleRespondWith));
51 }, 0);
52 }));
38 } catch (e) { 53 } catch (e) {
39 logForMultipleRespondWith += '[' + e.name + ']'; 54 logForMultipleRespondWith += '[' + e.name + ']';
40 } 55 }
41 } 56 }
42 } 57 }
43 58
44 var lastResponseForUsedCheck = undefined; 59 var lastResponseForUsedCheck = undefined;
45 60
46 function handleUsedCheck(event) { 61 function handleUsedCheck(event) {
47 if (!lastResponseForUsedCheck) { 62 if (!lastResponseForUsedCheck) {
48 event.respondWith(fetch('other.html').then(function(response) { 63 event.respondWith(fetch('other.html').then(function(response) {
49 lastResponseForUsedCheck = response; 64 lastResponseForUsedCheck = response;
50 return response; 65 return response;
51 })); 66 }));
52 } else { 67 } else {
53 event.respondWith(new Response( 68 event.respondWith(new Response(
54 'bodyUsed: ' + lastResponseForUsedCheck.bodyUsed)); 69 'bodyUsed: ' + lastResponseForUsedCheck.bodyUsed));
55 } 70 }
56 } 71 }
57 72
58 self.addEventListener('fetch', function(event) { 73 self.addEventListener('fetch', function(event) {
59 var url = event.request.url; 74 var url = event.request.url;
60 var handlers = [ 75 var handlers = [
61 { pattern: '?string', fn: handleString }, 76 { pattern: '?string', fn: handleString },
62 { pattern: '?blob', fn: handleBlob }, 77 { pattern: '?blob', fn: handleBlob },
63 { pattern: '?referrer', fn: handleReferrer }, 78 { pattern: '?referrer', fn: handleReferrer },
79 { pattern: '?clientId', fn: handleClientId },
64 { pattern: '?ignore', fn: function() {} }, 80 { pattern: '?ignore', fn: function() {} },
65 { pattern: '?null', fn: handleNullBody }, 81 { pattern: '?null', fn: handleNullBody },
66 { pattern: '?fetch', fn: handleFetch }, 82 { pattern: '?fetch', fn: handleFetch },
67 { pattern: '?form-post', fn: handleFormPost }, 83 { pattern: '?form-post', fn: handleFormPost },
68 { pattern: '?multiple-respond-with', fn: handleMultipleRespondWith }, 84 { pattern: '?multiple-respond-with', fn: handleMultipleRespondWith },
69 { pattern: '?used-check', fn: handleUsedCheck } 85 { pattern: '?used-check', fn: handleUsedCheck }
70 ]; 86 ];
71 87
72 var handler = null; 88 var handler = null;
73 for (var i = 0; i < handlers.length; ++i) { 89 for (var i = 0; i < handlers.length; ++i) {
74 if (url.indexOf(handlers[i].pattern) != -1) { 90 if (url.indexOf(handlers[i].pattern) != -1) {
75 handler = handlers[i]; 91 handler = handlers[i];
76 break; 92 break;
77 } 93 }
78 } 94 }
79 95
80 if (handler) { 96 if (handler) {
81 handler.fn(event); 97 handler.fn(event);
82 } else { 98 } else {
83 event.respondWith(new Response(new Blob( 99 event.respondWith(new Response(new Blob(
84 ['Service Worker got an unexpected request: ' + url]))); 100 ['Service Worker got an unexpected request: ' + url])));
85 } 101 }
86 }); 102 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698