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

Unified Diff: third_party/WebKit/LayoutTests/http/tests/inspector/indexeddb/indexeddb-test.js

Issue 2914293002: [IndexedDB] [DevTools] Right-click 'Refresh' on database now updates object store view, also fixed … (Closed)
Patch Set: Using await instead Created 3 years, 6 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 side-by-side diff with in-line comments
Download patch
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);
+ 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;
+}

Powered by Google App Engine
This is Rietveld 408576698