IndexedDB: Implement SharedBuffer version of put() / onSuccess()
authoralecflett@chromium.org <alecflett@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 22 Feb 2013 07:39:52 +0000 (07:39 +0000)
committeralecflett@chromium.org <alecflett@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 22 Feb 2013 07:39:52 +0000 (07:39 +0000)
commit09067fefd0e63f314970463ec316d4933a54457d
treeb3dae4ac144d930f6b877245e03d6e4fb17c7359
parente5eed13fee37cd02da452f3d88543dfc00214f42
IndexedDB: Implement SharedBuffer version of put() / onSuccess()
https://bugs.webkit.org/show_bug.cgi?id=110398

Reviewed by Tony Chang.

Source/WebCore:

This avoids all unnecessary data copies within the context of
IndexedDB proper, and removes all references to
SerializedScriptValue from the IndexedDB "backend".

No new tests because this is just a refactor.

* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::deserializeIDBValueBuffer): New version of deserializeIDBValue which takes SharedBuffer.

Source/WebKit/chromium:

Proxy new SharedBuffer calls to WebIDBCallbacks through
to the new SharedBuffer-based IDBCallbacks.

* public/WebIDBCursor.h:
* src/IDBCallbacksProxy.cpp:
(WebKit::IDBCallbacksProxy::onSuccess):
(WebKit::IDBCallbacksProxy::onSuccessWithPrefetch):
* src/IDBCallbacksProxy.h:
(IDBCallbacksProxy):
* src/WebIDBCallbacksImpl.cpp:
(WebKit::WebIDBCallbacksImpl::onSuccess):
* src/WebIDBCallbacksImpl.h:
(WebIDBCallbacksImpl):
* tests/IDBAbortOnCorruptTest.cpp:
(WebCore::MockIDBCallbacks::onSuccess):
(WebCore::MockIDBCallbacks::onSuccessWithPrefetch):
* tests/IDBDatabaseBackendTest.cpp:
* tests/IDBRequestTest.cpp:
(WebKit::TEST_F):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@143694 268f45cc-cd09-0410-ab3c-d52691b4dbfc
24 files changed:
Source/WebCore/ChangeLog
Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp
Source/WebCore/Modules/indexeddb/IDBBackingStore.h
Source/WebCore/Modules/indexeddb/IDBCallbacks.h
Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.cpp
Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.h
Source/WebCore/Modules/indexeddb/IDBCursorBackendInterface.h
Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp
Source/WebCore/Modules/indexeddb/IDBRequest.cpp
Source/WebCore/Modules/indexeddb/IDBRequest.h
Source/WebCore/bindings/js/IDBBindingUtilities.cpp
Source/WebCore/bindings/js/IDBBindingUtilities.h
Source/WebCore/bindings/v8/IDBBindingUtilities.cpp
Source/WebCore/bindings/v8/IDBBindingUtilities.h
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/public/WebIDBCursor.h
Source/WebKit/chromium/src/IDBCallbacksProxy.cpp
Source/WebKit/chromium/src/IDBCallbacksProxy.h
Source/WebKit/chromium/src/IDBCursorBackendProxy.cpp
Source/WebKit/chromium/src/WebIDBCallbacksImpl.cpp
Source/WebKit/chromium/src/WebIDBCallbacksImpl.h
Source/WebKit/chromium/tests/IDBAbortOnCorruptTest.cpp
Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp
Source/WebKit/chromium/tests/IDBRequestTest.cpp