Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/http/tests/inspector/indexeddb/indexeddb-test.js |
| diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector/indexeddb/indexeddb-test.js b/third_party/WebKit/LayoutTests/http/tests/inspector/indexeddb/indexeddb-test.js |
| index cf36c59a6c7d7614fa43384f4940305254a44642..0efa65a22801303d18b293b4b23a0f74eba538ef 100644 |
| --- a/third_party/WebKit/LayoutTests/http/tests/inspector/indexeddb/indexeddb-test.js |
| +++ b/third_party/WebKit/LayoutTests/http/tests/inspector/indexeddb/indexeddb-test.js |
| @@ -105,6 +105,18 @@ InspectorTest.createIndexedDBModel = function() |
| indexedDBModel.enable(); |
| return indexedDBModel; |
| }; |
| + |
| +InspectorTest.createDatabaseAsync = function(databaseName) { |
| + return InspectorTest.evaluateInPageAsync("createDatabaseAsync('" + databaseName + "')"); |
| +}; |
| + |
| +InspectorTest.createObjectStoreAsync = function(databaseName, objectStoreName, indexName, keyPath) { |
| + return InspectorTest.evaluateInPageAsync("createObjectStoreAsync('" + databaseName + "', '" + objectStoreName + "', '" + indexName + "', '" + keyPath + "')"); |
| +}; |
| + |
| +InspectorTest.addIDBValueAsync = function(databaseName, objectStoreName, key, value) { |
| + return InspectorTest.evaluateInPageAsync("addIDBValueAsync('" + databaseName + "', '" + objectStoreName + "', '" + key + "', '" + value + "')"); |
| +}; |
| }; |
| function dispatchCallback(callbackId) |
| @@ -260,3 +272,63 @@ function addIDBValue(callback, databaseName, objectStoreName, value, key) |
| request.onsuccess = commitCallback; |
| } |
| } |
| + |
| +function createDatabaseAsync(databaseName) { |
| + var callback; |
| + var promise = new Promise((fulfill) => callback = fulfill); |
| + var request = indexedDB.open(databaseName); |
| + request.onerror = onIndexedDBError; |
| + request.onsuccess = function(event) { |
| + request.result.close(); |
| + callback(); |
| + } |
| + return promise; |
| +} |
| + |
| +function createObjectStoreAsync(databaseName, objectStoreName, indexName, keyPath) { |
| + var callback; |
| + var promise = new Promise((fulfill) => callback = fulfill); |
| + var request = indexedDB.open(databaseName); |
| + request.onerror = onIndexedDBError; |
| + request.onsuccess = function(event) { |
| + var db = request.result; |
| + var version = db.version; |
| + db.close(); |
| + |
| + var upgradeRequest = indexedDB.open(databaseName, version + 1); |
| + |
| + upgradeRequest.onerror = onIndexedDBError; |
| + upgradeRequest.onupgradeneeded = function(e) { |
| + var upgradeDb = e.target.result; |
| + var store = upgradeDb.createObjectStore(objectStoreName, { keyPath: "test", autoIncrement: false }); |
| + store.createIndex(indexName, "test", { unique: false, multiEntry: false }); |
| + callback(); |
| + } |
| + upgradeRequest.onsuccess = function(e) { |
| + var upgradeDb = e.target.result; |
| + upgradeDb.close(); |
| + callback(); |
| + } |
| + } |
| + return promise; |
| +} |
| + |
| +function addIDBValueAsync(databaseName, objectStoreName, key, value) { |
| + var callback; |
| + var promise = new Promise((fulfill) => callback = fulfill); |
|
dmurph
2017/06/02 19:22:05
Can you make this in the form:
return new Promise
dgozman
2017/06/02 21:48:41
This style (as in the patch) is what we usually do
|
| + var request = indexedDB.open(databaseName); |
| + request.onerror = onIndexedDBError; |
| + request.onsuccess = function(event) { |
| + var db = request.result; |
| + var transaction = db.transaction(objectStoreName, "readwrite"); |
| + var store = transaction.objectStore(objectStoreName); |
| + store.put({ test: key, testValue: value }); |
| + |
| + transaction.onerror = onIndexedDBError; |
| + transaction.oncomplete = function() { |
| + db.close(); |
| + callback(); |
| + }; |
| + } |
| + return promise; |
| +} |