| Index: third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/indexeddb-worker.js
|
| diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/indexeddb-worker.js b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/indexeddb-worker.js
|
| index ef89550b3e0b26d84df9b0e8f3c00ef8265179cb..9add47683884c04fc22c34337714fd2a356dcac7 100644
|
| --- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/indexeddb-worker.js
|
| +++ b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/indexeddb-worker.js
|
| @@ -1,26 +1,57 @@
|
| -var port;
|
| self.addEventListener('message', function(e) {
|
| var message = e.data;
|
| - if ('port' in message)
|
| - doIndexedDBTest(message.port);
|
| + if (message.action === 'create') {
|
| + e.waitUntil(deleteDB()
|
| + .then(doIndexedDBTest)
|
| + .then(function() {
|
| + message.port.postMessage({ type: 'created' });
|
| + })
|
| + .catch(function(reason) {
|
| + message.port.postMessage({ type: 'error', value: reason });
|
| + }));
|
| + } else if (message.action === 'cleanup') {
|
| + e.waitUntil(deleteDB()
|
| + .then(function() {
|
| + message.port.postMessage({ type: 'done' });
|
| + })
|
| + .catch(function(reason) {
|
| + message.port.postMessage({ type: 'error', value: reason });
|
| + }));
|
| + }
|
| });
|
|
|
| +function deleteDB() {
|
| + return new Promise(function(resolve, reject) {
|
| + var delete_request = indexedDB.deleteDatabase('db');
|
| +
|
| + delete_request.onsuccess = resolve;
|
| + delete_request.onerror = reject;
|
| + });
|
| +}
|
| +
|
| function doIndexedDBTest(port) {
|
| - var delete_request = indexedDB.deleteDatabase('db');
|
| - delete_request.onsuccess = function() {
|
| - var open_request = indexedDB.open('db');
|
| - open_request.onupgradeneeded = function() {
|
| - var db = open_request.result;
|
| - db.createObjectStore('store');
|
| - };
|
| - open_request.onsuccess = function() {
|
| - var db = open_request.result;
|
| - var tx = db.transaction('store', 'readwrite');
|
| - var store = tx.objectStore('store');
|
| - store.put('value', 'key');
|
| - tx.oncomplete = function() {
|
| - port.postMessage('done');
|
| + return new Promise(function(resolve, reject) {
|
| + var open_request = indexedDB.open('db');
|
| +
|
| + open_request.onerror = reject;
|
| + open_request.onupgradeneeded = function() {
|
| + var db = open_request.result;
|
| + db.createObjectStore('store');
|
| + };
|
| + open_request.onsuccess = function() {
|
| + var db = open_request.result;
|
| + var tx = db.transaction('store', 'readwrite');
|
| + var store = tx.objectStore('store');
|
| + store.put('value', 'key');
|
| +
|
| + tx.onerror = function() {
|
| + db.close();
|
| + reject(tx.error);
|
| + };
|
| + tx.oncomplete = function() {
|
| + db.close();
|
| + resolve();
|
| + };
|
| };
|
| - };
|
| - };
|
| + });
|
| }
|
|
|