| Index: third_party/WebKit/LayoutTests/http/tests/budget/resources/instrumentation-service-worker.js
|
| diff --git a/third_party/WebKit/LayoutTests/http/tests/budget/resources/instrumentation-service-worker.js b/third_party/WebKit/LayoutTests/http/tests/budget/resources/instrumentation-service-worker.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b0a2ed786eae8f69d2bc776d8164ee4914fa798b
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/http/tests/budget/resources/instrumentation-service-worker.js
|
| @@ -0,0 +1,61 @@
|
| +// Allows a document to exercise the Budget API within a service worker by sending commands.
|
| +
|
| +self.addEventListener('message', function(workerEvent) {
|
| + port = workerEvent.data;
|
| +
|
| + // Listen to incoming commands on the message port.
|
| + port.onmessage = function(event) {
|
| + if (typeof event.data != 'object' || !event.data.command)
|
| + return;
|
| + var options = event.data.options || {};
|
| + switch (event.data.command) {
|
| +
|
| + case 'getCost':
|
| + navigator.budget.getCost('silent-push').then(function(cost) {
|
| + port.postMessage({
|
| + command: event.data.command,
|
| + success: true,
|
| + cost: cost });
|
| + }).catch(makeErrorHandler(event.data.command));
|
| + break;
|
| +
|
| + case 'getCostInvalidType':
|
| + navigator.budget.getCost('frobinator').then(function(cost) {
|
| + port.postMessage({
|
| + command: event.data.command,
|
| + success: true,
|
| + cost: cost });
|
| + }).catch(makeErrorHandler(event.data.command));
|
| + break;
|
| +
|
| + case 'getBudget':
|
| + navigator.budget.getBudget().then(budget => {
|
| + port.postMessage({
|
| + command: event.data.command,
|
| + success: true,
|
| + budgetAt: budget[0].budgetAt,
|
| + time: budget[0].time });
|
| + }).catch(makeErrorHandler(event.data.command));
|
| + break;
|
| +
|
| + default:
|
| + port.postMessage({
|
| + command: 'error',
|
| + errorMessage: 'Invalid command: ' + event.data.command });
|
| + break;
|
| + }
|
| + };
|
| +
|
| + // Notify the controller that the worker is now available.
|
| + port.postMessage('ready');
|
| +});
|
| +
|
| +function makeErrorHandler(command) {
|
| + return function(error) {
|
| + var errorMessage = error ? error.message : 'unknown error';
|
| + port.postMessage({
|
| + command: command,
|
| + success: false,
|
| + errorMessage: errorMessage });
|
| + };
|
| +}
|
|
|