IndexedDB: Introduce putWithIndexKeys and calculate them in the renderer
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 16 Jul 2012 23:58:48 +0000 (23:58 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 16 Jul 2012 23:58:48 +0000 (23:58 +0000)
https://bugs.webkit.org/show_bug.cgi?id=90923

Patch by Alec Flett <alecflett@chromium.org> on 2012-07-16
Reviewed by Darin Fisher.

Source/WebCore:

Refactor IndexWriter to depend only on IDBIndexMetadata and on
(databaseId, objectStoreId, indexId) so that it can talk directly
to the backing store, and also eventually be moved into the renderer.

This also introduces IDBObjectStoreBackendInterface::putWithIndexKeys
as a replacement for IDBObjectStoreBackendInterface::put, already
stubbed out in the chromium port. It will fully replace put()
after both chromium and webkit sides have reached alignment.

No new tests as this is just a refactor and existing tests cover
correctness.

* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::setValueReady):
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
* Modules/indexeddb/IDBIndexBackendImpl.h:
* Modules/indexeddb/IDBObjectStore.h:
(IDBObjectStore):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::put):
(WebCore):
(WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore::IDBObjectStoreBackendImpl::populateIndex):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(IDBObjectStoreBackendImpl):
* Modules/indexeddb/IDBObjectStoreBackendInterface.h:
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess):

Source/WebKit/chromium:

Stub out implementations of putWithIndexKeys(), already implemented
on the chromium side.

* public/WebIDBObjectStore.h:
(WebKit::WebIDBObjectStore::putWithIndexKeys):
* src/IDBObjectStoreBackendProxy.cpp:
(WebKit::IDBObjectStoreBackendProxy::putWithIndexKeys):
(WebKit):
* src/IDBObjectStoreBackendProxy.h:
(IDBObjectStoreBackendProxy):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@122779 268f45cc-cd09-0410-ab3c-d52691b4dbfc


No differences found