Source/WebCore: IndexedDB: Introduce putWithIndexKeys and calculate them in the renderer
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 17 Jul 2012 00:03:48 +0000 (00:03 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 17 Jul 2012 00:03:48 +0000 (00:03 +0000)
commitaac4607be88bb9bc1a1bea00a147e0e5a9b510f7
tree37dbbb36baee88140671759aefbc8ea1c617dbff
parent83e13f335222dc42c3bdb32769c17ba9ebc3cc03
Source/WebCore: IndexedDB: Introduce putWithIndexKeys and calculate them in the renderer
https://bugs.webkit.org/show_bug.cgi?id=90923

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

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: IndexedDB: Introduce putWithIndexKeys and calculate them in the renderer
https://bugs.webkit.org/show_bug.cgi?id=90923

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

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):

Tools: [Chromium-android] Don't use test_shell mode of DRT
https://bugs.webkit.org/show_bug.cgi?id=88542

Patch by Xianzhu Wang <wangxianzhu@chromium.org> on 2012-07-16
Reviewed by Dirk Pranke.

Test shell mode is about to be removed.
Switch to use DRT mode for chromium-android.

Summary of changes:
1. ChromiumAndroidDriver now inherits from WebKitDriver instead of ChromiumDriver (to be deprecated).
2. Conforms to the DRT mode protocol for input/output of DumpRenderTree.
3. Added support for Android 'adb shell' input/output (base64, newline mode, etc.)

* DumpRenderTree/chromium/TestEventPrinter.cpp:
(DRTPrinter::handleImage): Outputs base64 on Android.
* DumpRenderTree/chromium/TestShellAndroid.cpp:
(platformInit): Changed err_file to err_fifo, required by python ServerProcess.
* Scripts/webkitpy/layout_tests/port/chromium_android.py:
(ChromiumAndroidPort.__init__):
(ChromiumAndroidPort.create_driver): Override to create driver without DriverProxy to ensure 1 Driver per run.
(ChromiumAndroidDriver):
(ChromiumAndroidDriver.__init__):
(ChromiumAndroidDriver.cmd_line):
(ChromiumAndroidDriver._deadlock_detector):
(ChromiumAndroidDriver._drt_cmd_line):
(ChromiumAndroidDriver.start):
(ChromiumAndroidDriver._start):
(ChromiumAndroidDriver._start_once):
(ChromiumAndroidDriver.run_test):
(ChromiumAndroidDriver.stop):
(ChromiumAndroidDriver._command_from_driver_input):
(ChromiumAndroidDriver._read_prompt):
* Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py:
(ChromiumAndroidPortTest.test_driver_cmd_line):
(ChromiumAndroidDriverTest.test_cmd_line):
(ChromiumAndroidDriverTest):
(ChromiumAndroidDriverTest.test_drt_cmd_line):
(ChromiumAndroidDriverTest.test_read_prompt):
(ChromiumAndroidDriverTest.test_command_from_driver_input):
(ChromiumAndroidDriverTest.test_write_command_and_read_line):
* Scripts/webkitpy/layout_tests/port/server_process.py:
(ServerProcess.__init__): Added universal_newlines to handle Android 'adb shell' line ends.
(ServerProcess._start):
(ServerProcess._wait_for_data_and_update_buffers_using_select): Handles unexpected EOF which indicates crash on Android.
(ServerProcess.stop): Added kill_directly parameter to kill the process without waiting it (which always timeouts for Android).
(ServerProcess.replace_outputs): Added to combine different input/output pipes into one ServerProcess.
* Scripts/webkitpy/layout_tests/port/webkit.py:
(WebKitDriver._command_from_driver_input):
(WebKitDriver.run_test): Changed timeout origin so that slow start() on Android won't cause timeout of layout test case.
* Scripts/webkitpy/layout_tests/port/webkit_unittest.py:
(MockServerProcess.read_stdout):
(MockServerProcess.start):
(MockServerProcess):
(MockServerProcess.stop):
(MockServerProcess.kill):
(WebKitDriverTest.test_read_block):
(WebKitDriverTest.test_read_binary_block):
(WebKitDriverTest.test_read_base64_block):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@122780 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebKit/chromium/ChangeLog
Tools/ChangeLog
Tools/DumpRenderTree/chromium/TestEventPrinter.cpp
Tools/DumpRenderTree/chromium/TestShellAndroid.cpp
Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py
Tools/Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py
Tools/Scripts/webkitpy/layout_tests/port/server_process.py
Tools/Scripts/webkitpy/layout_tests/port/webkit.py
Tools/Scripts/webkitpy/layout_tests/port/webkit_unittest.py