| Index: LayoutTests/http/tests/serviceworker/resources/extendable-message-event-worker-waituntil.js
|
| diff --git a/LayoutTests/http/tests/serviceworker/resources/extendable-message-event-worker-waituntil.js b/LayoutTests/http/tests/serviceworker/resources/extendable-message-event-worker-waituntil.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..dc29389eb001b3798240f209d4dd074dbf51a280
|
| --- /dev/null
|
| +++ b/LayoutTests/http/tests/serviceworker/resources/extendable-message-event-worker-waituntil.js
|
| @@ -0,0 +1,32 @@
|
| +self.onmessage = function(e) {
|
| + switch (e.data) {
|
| + case 'WAIT':
|
| + e.waitUntil(new Promise(function(r) {
|
| + self.resolve = r;
|
| + self.port.postMessage('ACK');
|
| + }).then(function() {
|
| + self.port.postMessage('PASS');
|
| + }));
|
| + return;
|
| + case 'WAIT_ASYNC':
|
| + setTimeout(function() {
|
| + try {
|
| + e.waitUntil(new Promise(function() {}));
|
| + } catch (error) {
|
| + if (error.name == 'InvalidStateError')
|
| + self.port.postMessage('PASS');
|
| + else
|
| + self.port.postMessage(
|
| + 'FAIL: unexpected exception: ' + error);
|
| + }
|
| + }, 0);
|
| + return;
|
| + case 'DONE':
|
| + self.resolve();
|
| + return;
|
| + default:
|
| + if (e.data.port)
|
| + self.port = e.data.port;
|
| + return;
|
| + }
|
| +};
|
|
|