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

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/budget/resources/instrumentation-service-worker.js

Issue 2309863002: Plumb reserve method of the BudgetAPI (Closed)
Patch Set: Rename BudgetServiceErrorType::NO_ERROR to ::NONE to avoid Windows constant name clash. Created 4 years, 3 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 // Allows a document to exercise the Budget API within a service worker by sendi ng commands. 1 // Allows a document to exercise the Budget API within a service worker by sendi ng commands.
2 2
3 self.addEventListener('message', function(workerEvent) { 3 self.addEventListener('message', function(workerEvent) {
4 port = workerEvent.data; 4 port = workerEvent.data;
5 5
6 // Listen to incoming commands on the message port. 6 // Listen to incoming commands on the message port.
7 port.onmessage = function(event) { 7 port.onmessage = function(event) {
8 if (typeof event.data != 'object' || !event.data.command) 8 if (typeof event.data != 'object' || !event.data.command)
9 return; 9 return;
10 var options = event.data.options || {}; 10 var options = event.data.options || {};
(...skipping 20 matching lines...) Expand all
31 case 'getBudget': 31 case 'getBudget':
32 navigator.budget.getBudget().then(budget => { 32 navigator.budget.getBudget().then(budget => {
33 port.postMessage({ 33 port.postMessage({
34 command: event.data.command, 34 command: event.data.command,
35 success: true, 35 success: true,
36 budgetAt: budget[0].budgetAt, 36 budgetAt: budget[0].budgetAt,
37 time: budget[0].time }); 37 time: budget[0].time });
38 }).catch(makeErrorHandler(event.data.command)); 38 }).catch(makeErrorHandler(event.data.command));
39 break; 39 break;
40 40
41 case 'reserve':
42 navigator.budget.reserve('silent-push').then(success => {
43 port.postMessage({
44 command: event.data.command,
45 success: success });
46 }).catch(makeErrorHandler(event.data.command));
47 break;
48
41 default: 49 default:
42 port.postMessage({ 50 port.postMessage({
43 command: 'error', 51 command: 'error',
44 errorMessage: 'Invalid command: ' + event.data.command }); 52 errorMessage: 'Invalid command: ' + event.data.command });
45 break; 53 break;
46 } 54 }
47 }; 55 };
48 56
49 // Notify the controller that the worker is now available. 57 // Notify the controller that the worker is now available.
50 port.postMessage('ready'); 58 port.postMessage('ready');
51 }); 59 });
52 60
53 function makeErrorHandler(command) { 61 function makeErrorHandler(command) {
54 return function(error) { 62 return function(error) {
55 var errorMessage = error ? error.message : 'unknown error'; 63 var errorMessage = error ? error.message : 'unknown error';
56 port.postMessage({ 64 port.postMessage({
57 command: command, 65 command: command,
58 success: false, 66 success: false,
59 errorMessage: errorMessage }); 67 errorMessage: errorMessage });
60 }; 68 };
61 } 69 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698