Changeset 64828 in webkit
- Timestamp:
- Aug 6, 2010 3:37:41 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 3 added
- 38 edited
- 13 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r64821 r64828 1 2010-08-05 Marcus Bulach <bulach@chromium.org> 2 3 Reviewed by Jeremy Orlow. 4 5 Initial bindings and plumbing for IDBCursor. 6 https://bugs.webkit.org/show_bug.cgi?id=41888 7 8 Test: storage/indexeddb/idb-opencursor.html 9 10 * storage/indexeddb/open-cursor-expected.txt: Added. 11 * storage/indexeddb/open-cursor.html: Added. 12 * storage/indexeddb/script-tests/open-cursor.js: Added. 13 (cursorSuccess): 14 (openCursor): 15 (populateObjectStore): 16 (createObjectStoreSuccess): 17 (openSuccess): 18 (test): 19 1 20 2010-08-06 Pavel Feldman <pfeldman@chromium.org> 2 21 -
trunk/WebCore/Android.derived.jscbindings.mk
r64824 r64828 1 1 2 ## 2 3 ## Copyright 2009, The Android Open Source Project … … 362 363 GEN := \ 363 364 $(intermediates)/storage/JSIDBAny.h \ 365 $(intermediates)/storage/JSIDBCursor.h \ 364 366 $(intermediates)/storage/JSIDBDatabaseError.h \ 365 367 $(intermediates)/storage/JSIDBDatabaseException.h \ -
trunk/WebCore/Android.derived.v8bindings.mk
r64824 r64828 343 343 GEN := \ 344 344 $(intermediates)/bindings/V8IDBAny.h \ 345 $(intermediates)/bindings/V8IDBCursor.h \ 345 346 $(intermediates)/bindings/V8IDBDatabaseError.h \ 346 347 $(intermediates)/bindings/V8IDBDatabaseException.h \ -
trunk/WebCore/Android.mk
r64824 r64828 744 744 storage/DatabaseTracker.cpp \ 745 745 storage/IDBAny.cpp \ 746 storage/IDBCursor.cpp \ 747 storage/IDBCursorBackendImpl.cpp \ 746 748 storage/IDBDatabase.cpp \ 747 749 storage/IDBDatabaseBackendImpl.cpp \ -
trunk/WebCore/CMakeLists.txt
r64824 r64828 335 335 storage/DatabaseSync.idl 336 336 storage/IDBAny.idl 337 storage/IDBCursor.idl 337 338 storage/IDBDatabaseError.idl 338 339 storage/IDBDatabaseException.idl … … 1440 1441 storage/IDBDatabase.cpp 1441 1442 storage/IDBDatabaseBackendImpl.cpp 1443 storage/IDBCursor.cpp 1444 storage/IDBCursorBackendImpl.cpp 1442 1445 storage/IDBErrorEvent.cpp 1443 1446 storage/IDBEvent.cpp -
trunk/WebCore/ChangeLog
r64826 r64828 1 2010-08-05 Marcus Bulach <bulach@chromium.org> 2 3 Reviewed by Jeremy Orlow. 4 5 Initial bindings and plumbing for IDBCursor. 6 https://bugs.webkit.org/show_bug.cgi?id=41888 7 8 Test: storage/indexeddb/idb-opencursor.html 9 10 * Android.derived.jscbindings.mk: 11 * Android.derived.v8bindings.mk: 12 * Android.mk: 13 * CMakeLists.txt: 14 * DerivedSources.cpp: 15 * DerivedSources.make: 16 * GNUmakefile.am: 17 * WebCore.gypi: 18 * WebCore.pri: 19 * WebCore.pro: 20 * WebCore.vcproj/WebCore.vcproj: 21 * WebCore.xcodeproj/project.pbxproj: 22 * bindings/v8/custom/V8IDBAnyCustom.cpp: 23 (WebCore::toV8): 24 * storage/IDBAny.cpp: 25 (WebCore::IDBAny::idbCursor): 26 (WebCore::IDBAny::set): 27 * storage/IDBAny.h: 28 (WebCore::IDBAny::): 29 * storage/IDBCallbacks.h: 30 * storage/IDBCursor.cpp: Added. 31 (WebCore::IDBCursor::IDBCursor): 32 (WebCore::IDBCursor::~IDBCursor): 33 (WebCore::IDBCursor::direction): 34 (WebCore::IDBCursor::key): 35 (WebCore::IDBCursor::value): 36 (WebCore::IDBCursor::update): 37 (WebCore::IDBCursor::continueFunction): 38 (WebCore::IDBCursor::remove): 39 * storage/IDBCursor.h: Added. 40 (WebCore::IDBCursor::): 41 (WebCore::IDBCursor::create): 42 * storage/IDBCursor.idl: Added. 43 * storage/IDBCursorBackendImpl.cpp: Added. 44 (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl): 45 (WebCore::IDBCursorBackendImpl::~IDBCursorBackendImpl): 46 (WebCore::IDBCursorBackendImpl::direction): 47 (WebCore::IDBCursorBackendImpl::key): 48 (WebCore::IDBCursorBackendImpl::value): 49 (WebCore::IDBCursorBackendImpl::update): 50 (WebCore::IDBCursorBackendImpl::continueFunction): 51 (WebCore::IDBCursorBackendImpl::remove): 52 * storage/IDBCursorBackendImpl.h: Added. 53 (WebCore::IDBCursorBackendImpl::create): 54 * storage/IDBCursorBackendInterface.h: Added. 55 (WebCore::IDBCursorBackendInterface::~IDBCursorBackendInterface): 56 * storage/IDBObjectStore.cpp: 57 (WebCore::IDBObjectStore::openCursor): 58 * storage/IDBObjectStore.h: 59 * storage/IDBObjectStore.idl: 60 * storage/IDBObjectStoreBackendImpl.cpp: 61 (WebCore::IDBObjectStoreBackendImpl::openCursor): 62 * storage/IDBObjectStoreBackendImpl.h: 63 * storage/IDBObjectStoreBackendInterface.h: 64 * storage/IDBRequest.cpp: 65 (WebCore::IDBRequest::onSuccess): 66 (WebCore::IDBRequest::timerFired): 67 * storage/IDBRequest.h: 68 1 69 2010-08-06 Andrei Popescu <andreip@google.com> 2 70 -
trunk/WebCore/DerivedSources.cpp
r64824 r64828 177 177 #include "JSHTMLVideoElement.cpp" 178 178 #include "JSIDBAny.cpp" 179 #include "JSIDBCursor.cpp" 179 180 #include "JSIDBDatabase.cpp" 180 181 #include "JSIDBDatabaseError.cpp" -
trunk/WebCore/DerivedSources.make
r64824 r64828 227 227 History \ 228 228 IDBAny \ 229 IDBCursor \ 229 230 IDBDatabaseError \ 230 231 IDBDatabaseException \ -
trunk/WebCore/GNUmakefile.am
r64824 r64828 2864 2864 WebCore/storage/IDBCallbacks.h \ 2865 2865 WebCore/storage/IDBDatabase.cpp \ 2866 WebCore/storage/IDBCursor.h \ 2867 WebCore/storage/IDBCursor.cpp \ 2868 WebCore/storage/IDBCursorBackendImpl.cpp \ 2869 WebCore/storage/IDBCursorBackendImpl.h \ 2870 WebCore/storage/IDBCursorBackendInterface.h \ 2866 2871 WebCore/storage/IDBDatabase.h \ 2867 2872 WebCore/storage/IDBDatabaseBackendImpl.cpp \ -
trunk/WebCore/WebCore.gypi
r64824 r64828 238 238 'storage/Flags.idl', 239 239 'storage/IDBAny.idl', 240 'storage/IDBCursor.idl', 240 241 'storage/IDBDatabaseError.idl', 241 242 'storage/IDBDatabaseException.idl', … … 3495 3496 'storage/IDBAny.h', 3496 3497 'storage/IDBCallbacks.h', 3498 'storage/IDBCursor.cpp', 3499 'storage/IDBCursor.h', 3500 'storage/IDBCursorBackendImpl.cpp', 3501 'storage/IDBCursorBackendImpl.h', 3502 'storage/IDBCursorBackendInterface.h', 3497 3503 'storage/IDBDatabase.h', 3498 3504 'storage/IDBDatabase.cpp', -
trunk/WebCore/WebCore.pri
r64824 r64828 484 484 storage/DatabaseSync.idl \ 485 485 storage/IDBAny.idl \ 486 storage/IDBCursor.idl \ 486 487 storage/IDBDatabaseError.idl \ 487 488 storage/IDBDatabaseException.idl \ -
trunk/WebCore/WebCore.pro
r64824 r64828 2425 2425 storage/IDBAny.h \ 2426 2426 storage/IDBCallbacks.h \ 2427 storage/IDBCursor.h \ 2428 storage/IDBCursorBackendImpl.h \ 2429 storage/IDBCursorBackendInterface.h \ 2427 2430 storage/IDBDatabase.h \ 2428 2431 storage/IDBDatabaseBackendImpl.h \ … … 2453 2456 bindings/js/JSIDBKeyCustom.cpp \ 2454 2457 storage/IDBAny.cpp \ 2458 storage/IDBCursor.cpp \ 2459 storage/IDBCursorBackendImpl.cpp \ 2455 2460 storage/IDBDatabase.cpp \ 2456 2461 storage/IDBDatabaseBackendImpl.cpp \ -
trunk/WebCore/WebCore.vcproj/WebCore.vcproj
r64824 r64828 44313 44313 </File> 44314 44314 <File 44315 RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBCursor.cpp" 44316 > 44317 <FileConfiguration 44318 Name="Debug|Win32" 44319 ExcludedFromBuild="true" 44320 > 44321 <Tool 44322 Name="VCCLCompilerTool" 44323 /> 44324 </FileConfiguration> 44325 <FileConfiguration 44326 Name="Release|Win32" 44327 ExcludedFromBuild="true" 44328 > 44329 <Tool 44330 Name="VCCLCompilerTool" 44331 /> 44332 </FileConfiguration> 44333 <FileConfiguration 44334 Name="Debug_Internal|Win32" 44335 ExcludedFromBuild="true" 44336 > 44337 <Tool 44338 Name="VCCLCompilerTool" 44339 /> 44340 </FileConfiguration> 44341 <FileConfiguration 44342 Name="Debug_Cairo|Win32" 44343 ExcludedFromBuild="true" 44344 > 44345 <Tool 44346 Name="VCCLCompilerTool" 44347 /> 44348 </FileConfiguration> 44349 <FileConfiguration 44350 Name="Release_Cairo|Win32" 44351 ExcludedFromBuild="true" 44352 > 44353 <Tool 44354 Name="VCCLCompilerTool" 44355 /> 44356 </FileConfiguration> 44357 <FileConfiguration 44358 Name="Debug_All|Win32" 44359 ExcludedFromBuild="true" 44360 > 44361 <Tool 44362 Name="VCCLCompilerTool" 44363 /> 44364 </FileConfiguration> 44365 </File> 44366 <File 44367 RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBCursor.h" 44368 > 44369 <FileConfiguration 44370 Name="Debug|Win32" 44371 ExcludedFromBuild="true" 44372 > 44373 <Tool 44374 Name="VCCLCompilerTool" 44375 /> 44376 </FileConfiguration> 44377 <FileConfiguration 44378 Name="Release|Win32" 44379 ExcludedFromBuild="true" 44380 > 44381 <Tool 44382 Name="VCCLCompilerTool" 44383 /> 44384 </FileConfiguration> 44385 <FileConfiguration 44386 Name="Debug_Internal|Win32" 44387 ExcludedFromBuild="true" 44388 > 44389 <Tool 44390 Name="VCCLCompilerTool" 44391 /> 44392 </FileConfiguration> 44393 <FileConfiguration 44394 Name="Debug_Cairo|Win32" 44395 ExcludedFromBuild="true" 44396 > 44397 <Tool 44398 Name="VCCLCompilerTool" 44399 /> 44400 </FileConfiguration> 44401 <FileConfiguration 44402 Name="Release_Cairo|Win32" 44403 ExcludedFromBuild="true" 44404 > 44405 <Tool 44406 Name="VCCLCompilerTool" 44407 /> 44408 </FileConfiguration> 44409 <FileConfiguration 44410 Name="Debug_All|Win32" 44411 ExcludedFromBuild="true" 44412 > 44413 <Tool 44414 Name="VCCLCompilerTool" 44415 /> 44416 </FileConfiguration> 44417 </File> 44418 <File 44315 44419 RelativePath="..\bindings\js\JSHTMLOptionsCollectionCustom.cpp" 44316 44420 > … … 50159 50263 <File 50160 50264 RelativePath="..\storage\IDBCallbacks.h" 50265 > 50266 </File> 50267 <File 50268 RelativePath="..\storage\IDBCursor.cpp" 50269 > 50270 </File> 50271 <File 50272 RelativePath="..\storage\IDBCursor.h" 50273 > 50274 </File> 50275 <File 50276 RelativePath="..\storage\IDBCursorBackendImpl.cpp" 50277 > 50278 </File> 50279 <File 50280 RelativePath="..\storage\IDBCursorBackendImpl.h" 50281 > 50282 </File> 50283 <File 50284 RelativePath="..\storage\IDBCursorBackendInterface.h" 50161 50285 > 50162 50286 </File> -
trunk/WebCore/WebCore.xcodeproj/project.pbxproj
r64826 r64828 1414 1414 7AFD4A8B1131C2760035B883 /* ScriptBreakpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AFD4A8A1131C2760035B883 /* ScriptBreakpoint.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1415 1415 7AFD4FF4113277B60035B883 /* ScriptDebugListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AFD4FF3113277B60035B883 /* ScriptDebugListener.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1416 81BE209811F4AB8D00915DFA /* IDBCursor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 81BE209311F4AB8D00915DFA /* IDBCursor.cpp */; }; 1417 81BE209711F4AB8D00915DFA /* IDBCursor.h in Headers */ = {isa = PBXBuildFile; fileRef = 81BE209211F4AB8D00915DFA /* IDBCursor.h */; }; 1418 81BE209811F4AB8D00915DFA /* IDBCursorBackendImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 81BE209311F4AB8D00915DFA /* IDBCursorBackendImpl.cpp */; }; 1419 81BE209911F4AB8D00915DFA /* IDBCursorBackendImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 81BE209411F4AB8D00915DFA /* IDBCursorBackendImpl.h */; }; 1420 81BE209B11F4AB8D00915DFA /* IDBCursorBackendInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 81BE209611F4AB8D00915DFA /* IDBCursorBackendInterface.h */; }; 1421 81BE20D211F4BC3200915DFA /* JSIDBCursor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 81BE20A711F4B66F00915DFA /* JSIDBCursor.cpp */; }; 1422 81BE20D311F4BC3200915DFA /* JSIDBCursor.h in Headers */ = {isa = PBXBuildFile; fileRef = 81BE20A811F4B66F00915DFA /* JSIDBCursor.h */; }; 1416 1423 82B658981189E39200E052A1 /* InspectorCSSStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 82B658971189E39200E052A1 /* InspectorCSSStore.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1417 1424 82B6589A1189E47600E052A1 /* InspectorCSSStore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 82B658991189E47600E052A1 /* InspectorCSSStore.cpp */; }; … … 7214 7221 7AFD4A8A1131C2760035B883 /* ScriptBreakpoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptBreakpoint.h; sourceTree = "<group>"; }; 7215 7222 7AFD4FF3113277B60035B883 /* ScriptDebugListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptDebugListener.h; sourceTree = "<group>"; }; 7223 81BE209211F4AB8D00915DFA /* IDBCursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBCursor.h; sourceTree = "<group>"; }; 7224 81BE209311F4AB8D00915DFA /* IDBCursorBackendImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBCursorBackendImpl.cpp; sourceTree = "<group>"; }; 7225 81BE209411F4AB8D00915DFA /* IDBCursorBackendImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBCursorBackendImpl.h; sourceTree = "<group>"; }; 7226 81BE209411F4AB8D00915DFA /* IDBCursorBackendInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBCursorBackendInterface.h; sourceTree = "<group>"; }; 7227 81BE209C11F4ABBD00915DFA /* IDBCursor.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDBCursor.idl; sourceTree = "<group>"; }; 7228 81BE20A711F4B66F00915DFA /* JSIDBCursor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBCursor.cpp; sourceTree = "<group>"; }; 7229 81BE20A811F4B66F00915DFA /* JSIDBCursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBCursor.h; sourceTree = "<group>"; }; 7216 7230 82B658971189E39200E052A1 /* InspectorCSSStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorCSSStore.h; sourceTree = "<group>"; }; 7217 7231 82B658991189E47600E052A1 /* InspectorCSSStore.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorCSSStore.cpp; sourceTree = "<group>"; }; … … 11402 11416 C585A69A11D4FB3D004C3E4B /* IDBAny.idl */, 11403 11417 C585A69B11D4FB3D004C3E4B /* IDBCallbacks.h */, 11418 81BE209211F4AB8D00915DFA /* IDBCursor.cpp */, 11419 81BE209211F4AB8D00915DFA /* IDBCursor.h */, 11420 81BE209C11F4ABBD00915DFA /* IDBCursor.idl */, 11421 81BE209311F4AB8D00915DFA /* IDBCursorBackendImpl.cpp */, 11422 81BE209411F4AB8D00915DFA /* IDBCursorBackendImpl.h */, 11423 81BE209511F4AB8D00915DFA /* IDBCursorBackendInterface.h */, 11404 11424 C585A6A311D4FB3D004C3E4B /* IDBDatabase.cpp */, 11405 11425 C585A6A411D4FB3D004C3E4B /* IDBDatabase.h */, … … 11408 11428 B61762611203490800EF9114 /* IDBDatabaseBackendImpl.h */, 11409 11429 B61762531203374F00EF9114 /* IDBDatabaseBackendInterface.h */, 11430 11410 11431 C585A69D11D4FB3D004C3E4B /* IDBDatabaseError.h */, 11411 11432 C585A69E11D4FB3D004C3E4B /* IDBDatabaseError.idl */, … … 14867 14888 C585A66411D4FB07004C3E4B /* JSIDBAny.cpp */, 14868 14889 C585A66511D4FB07004C3E4B /* JSIDBAny.h */, 14890 81BE20A711F4B66F00915DFA /* JSIDBCursor.cpp */, 14891 81BE20A811F4B66F00915DFA /* JSIDBCursor.h */, 14869 14892 C585A66A11D4FB07004C3E4B /* JSIDBDatabase.cpp */, 14870 14893 C585A66B11D4FB07004C3E4B /* JSIDBDatabase.h */, … … 20005 20028 B656626B120B115A006EA85C /* IDBTransaction.h in Headers */, 20006 20029 B6566270120B1227006EA85C /* JSIDBTransaction.h in Headers */, 20030 81BE209711F4AB8D00915DFA /* IDBCursor.h in Headers */, 20031 81BE209911F4AB8D00915DFA /* IDBCursorBackendImpl.h in Headers */, 20032 81BE209B11F4AB8D00915DFA /* IDBCursorBackendInterface.h in Headers */, 20033 81BE20D311F4BC3200915DFA /* JSIDBCursor.h in Headers */, 20007 20034 ); 20008 20035 runOnlyForDeploymentPostprocessing = 0; … … 22411 22438 B656626A120B115A006EA85C /* IDBTransaction.cpp in Sources */, 22412 22439 B6566271120B1227006EA85C /* JSIDBTransaction.cpp in Sources */, 22440 81BE209811F4AB8D00915DFA /* IDBCursor.cpp in Sources */, 22441 81BE209811F4AB8D00915DFA /* IDBCursorBackendImpl.cpp in Sources */, 22442 81BE20D211F4BC3200915DFA /* JSIDBCursor.cpp in Sources */, 22413 22443 ); 22414 22444 runOnlyForDeploymentPostprocessing = 0; -
trunk/WebCore/bindings/v8/custom/V8IDBAnyCustom.cpp
r64577 r64828 33 33 34 34 #include "SerializedScriptValue.h" 35 #include "V8IDBCursor.h" 35 36 #include "V8IDBDatabase.h" 36 37 #include "V8IDBFactory.h" … … 51 52 case IDBAny::NullType: 52 53 return v8::Null(); 54 case IDBAny::IDBCursorType: 55 return toV8(impl->idbCursor()); 53 56 case IDBAny::IDBDatabaseType: 54 57 return toV8(impl->idbDatabase()); -
trunk/WebCore/storage/IDBAny.cpp
r64577 r64828 29 29 #if ENABLE(INDEXED_DATABASE) 30 30 31 #include "IDBCursor.h" 31 32 #include "IDBDatabase.h" 32 33 #include "IDBFactory.h" … … 49 50 IDBAny::~IDBAny() 50 51 { 52 } 53 54 PassRefPtr<IDBCursor> IDBAny::idbCursor() 55 { 56 ASSERT(m_type == IDBCursorType); 57 return m_idbCursor; 51 58 } 52 59 … … 91 98 ASSERT(m_type == UndefinedType); 92 99 m_type = NullType; 100 } 101 102 void IDBAny::set(PassRefPtr<IDBCursor> value) 103 { 104 ASSERT(m_type == UndefinedType); 105 m_type = IDBCursorType; 106 m_idbCursor = value; 93 107 } 94 108 -
trunk/WebCore/storage/IDBAny.h
r64577 r64828 35 35 namespace WebCore { 36 36 37 class IDBCursor; 37 38 class IDBDatabase; 38 39 class IDBIndex; … … 57 58 UndefinedType = 0, 58 59 NullType, 60 IDBCursorType, 59 61 IDBDatabaseType, 60 62 IDBFactoryType, … … 67 69 Type type() const { return m_type; } 68 70 // Use type() to figure out which one of these you're allowed to call. 71 PassRefPtr<IDBCursor> idbCursor(); 69 72 PassRefPtr<IDBDatabase> idbDatabase(); 70 73 PassRefPtr<IDBFactory> idbFactory(); … … 76 79 // Set can only be called once. 77 80 void set(); // For "null". 81 void set(PassRefPtr<IDBCursor>); 78 82 void set(PassRefPtr<IDBDatabase>); 79 83 void set(PassRefPtr<IDBFactory>); … … 89 93 90 94 // Only one of the following should ever be in use at any given time. 95 RefPtr<IDBCursor> m_idbCursor; 91 96 RefPtr<IDBDatabase> m_idbDatabase; 92 97 RefPtr<IDBFactory> m_idbFactory; -
trunk/WebCore/storage/IDBCallbacks.h
r64577 r64828 30 30 #define IDBCallbacks_h 31 31 32 #include "IDBCursorBackendInterface.h" 32 33 #include "IDBDatabaseBackendInterface.h" 33 34 #include "IDBDatabaseError.h" … … 48 49 virtual void onError(PassRefPtr<IDBDatabaseError>) = 0; 49 50 virtual void onSuccess() = 0; // For "null". 51 virtual void onSuccess(PassRefPtr<IDBCursorBackendInterface>) = 0; 50 52 virtual void onSuccess(PassRefPtr<IDBDatabaseBackendInterface>) = 0; 51 53 virtual void onSuccess(PassRefPtr<IDBIndexBackendInterface>) = 0; -
trunk/WebCore/storage/IDBCursor.cpp
r64826 r64828 11 11 * notice, this list of conditions and the following disclaimer in the 12 12 * documentation and/or other materials provided with the distribution. 13 * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of14 * its contributors may be used to endorse or promote products derived15 * from this software without specific prior written permission.16 13 * 17 14 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY … … 27 24 */ 28 25 29 #ifndef IDBCallbacks_h 30 #define IDBCallbacks_h 31 32 #include "IDBDatabaseBackendInterface.h" 33 #include "IDBDatabaseError.h" 34 #include "IDBIndexBackendInterface.h" 35 #include "IDBKey.h" 36 #include "IDBObjectStoreBackendInterface.h" 37 #include "SerializedScriptValue.h" 38 #include <wtf/RefCounted.h> 26 #include "config.h" 27 #include "IDBCursor.h" 39 28 40 29 #if ENABLE(INDEXED_DATABASE) 41 30 31 #include "IDBAny.h" 32 #include "IDBCallbacks.h" 33 #include "IDBCursorBackendInterface.h" 34 #include "IDBKey.h" 35 #include "IDBRequest.h" 36 #include "ScriptExecutionContext.h" 37 #include "SerializedScriptValue.h" 38 42 39 namespace WebCore { 43 40 44 class IDBCallbacks : public RefCounted<IDBCallbacks> { 45 public: 46 virtual ~IDBCallbacks() { } 41 IDBCursor::IDBCursor(PassRefPtr<IDBCursorBackendInterface> backend) 42 : m_backend(backend) 43 { 44 } 47 45 48 virtual void onError(PassRefPtr<IDBDatabaseError>) = 0; 49 virtual void onSuccess() = 0; // For "null". 50 virtual void onSuccess(PassRefPtr<IDBDatabaseBackendInterface>) = 0; 51 virtual void onSuccess(PassRefPtr<IDBIndexBackendInterface>) = 0; 52 virtual void onSuccess(PassRefPtr<IDBKey>) = 0; 53 virtual void onSuccess(PassRefPtr<IDBObjectStoreBackendInterface>) = 0; 54 virtual void onSuccess(PassRefPtr<SerializedScriptValue>) = 0; 55 }; 46 IDBCursor::~IDBCursor() 47 { 48 } 49 50 unsigned short IDBCursor::direction() const 51 { 52 return m_backend->direction(); 53 } 54 55 PassRefPtr<IDBKey> IDBCursor::key() const 56 { 57 return m_backend->key(); 58 } 59 60 PassRefPtr<IDBAny> IDBCursor::value() const 61 { 62 return m_backend->value(); 63 } 64 65 PassRefPtr<IDBRequest> IDBCursor::update(ScriptExecutionContext* context, PassRefPtr<SerializedScriptValue> value) 66 { 67 RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::create(this)); 68 m_backend->update(value, request); 69 return request.release(); 70 } 71 72 PassRefPtr<IDBRequest> IDBCursor::continueFunction(ScriptExecutionContext* context, PassRefPtr<IDBKey> key) 73 { 74 RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::create(this)); 75 m_backend->continueFunction(key, request); 76 return request.release(); 77 } 78 79 PassRefPtr<IDBRequest> IDBCursor::remove(ScriptExecutionContext* context) 80 { 81 RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::create(this)); 82 m_backend->remove(request); 83 return request.release(); 84 } 56 85 57 86 } // namespace WebCore 58 87 59 #endif 60 61 #endif // IDBCallbacks_h 88 #endif // ENABLE(INDEXED_DATABASE) -
trunk/WebCore/storage/IDBCursor.h
r64826 r64828 24 24 */ 25 25 26 #ifndef IDBObjectStoreBackendInterface_h 27 #define IDBObjectStoreBackendInterface_h 28 29 #include "PlatformString.h" 30 #include <wtf/Threading.h> 26 #ifndef IDBCursor_h 27 #define IDBCursor_h 31 28 32 29 #if ENABLE(INDEXED_DATABASE) 33 30 31 #include <wtf/PassRefPtr.h> 32 #include <wtf/RefCounted.h> 33 #include <wtf/RefPtr.h> 34 #include <wtf/Threading.h> 35 34 36 namespace WebCore { 35 37 36 class DOMStringList;38 class IDBAny; 37 39 class IDBCallbacks; 38 class IDB IndexBackendInterface;40 class IDBCursorBackendInterface; 39 41 class IDBKey; 42 class IDBRequest; 43 class ScriptExecutionContext; 40 44 class SerializedScriptValue; 41 45 42 class IDB ObjectStoreBackendInterface : public ThreadSafeShared<IDBObjectStoreBackendInterface> {46 class IDBCursor : public ThreadSafeShared<IDBCursor> { 43 47 public: 44 virtual ~IDBObjectStoreBackendInterface() { } 48 enum Direction { 49 NEXT = 0, 50 NEXT_NO_DUPLICATE = 1, 51 PREV = 2, 52 PREV_NO_DUPLICATE = 3, 53 }; 54 static PassRefPtr<IDBCursor> create(PassRefPtr<IDBCursorBackendInterface> backend) 55 { 56 return adoptRef(new IDBCursor(backend)); 57 } 58 virtual ~IDBCursor(); 45 59 46 virtual String name() const = 0; 47 virtual String keyPath() const = 0; 48 virtual PassRefPtr<DOMStringList> indexNames() const = 0; 60 // Implement the IDL 61 virtual unsigned short direction() const; 62 virtual PassRefPtr<IDBKey> key() const; 63 virtual PassRefPtr<IDBAny> value() const; 64 virtual PassRefPtr<IDBRequest> update(ScriptExecutionContext*, PassRefPtr<SerializedScriptValue>); 65 virtual PassRefPtr<IDBRequest> continueFunction(ScriptExecutionContext*, PassRefPtr<IDBKey> = 0); 66 virtual PassRefPtr<IDBRequest> remove(ScriptExecutionContext*); 49 67 50 virtual void get(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks>) = 0; 51 virtual void put(PassRefPtr<SerializedScriptValue> value, PassRefPtr<IDBKey> key, bool addOnly, PassRefPtr<IDBCallbacks>) = 0; 52 virtual void remove(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks>) = 0; 68 private: 69 explicit IDBCursor(PassRefPtr<IDBCursorBackendInterface>); 53 70 54 virtual void createIndex(const String& name, const String& keyPath, bool unique, PassRefPtr<IDBCallbacks>) = 0; 55 virtual PassRefPtr<IDBIndexBackendInterface> index(const String& name) = 0; 56 virtual void removeIndex(const String& name, PassRefPtr<IDBCallbacks>) = 0; 71 RefPtr<IDBCursorBackendInterface> m_backend; 57 72 }; 58 73 … … 61 76 #endif 62 77 63 #endif // IDBObjectStoreBackendInterface_h 64 78 #endif // IDBCursor_h -
trunk/WebCore/storage/IDBCursor.idl
r64826 r64828 24 24 */ 25 25 26 #ifndef WebIDBCallbacksImpl_h 27 #define WebIDBCallbacksImpl_h 26 module storage { 28 27 29 #include "WebIDBCallbacks.h" 30 #include <wtf/PassRefPtr.h> 31 #include <wtf/RefPtr.h> 28 interface [ 29 Conditional=INDEXED_DATABASE 30 ] IDBCursor { 31 const unsigned short NEXT = 0; 32 const unsigned short NEXT_NO_DUPLICATE = 1; 33 const unsigned short PREV = 2; 34 const unsigned short PREV_NO_DUPLICATE = 3; 32 35 33 #if ENABLE(INDEXED_DATABASE) 36 readonly attribute unsigned short direction; 37 readonly attribute IDBKey key; 38 readonly attribute IDBAny value; 34 39 35 namespace WebCore { 36 37 class IDBCallbacks; 38 39 class WebIDBCallbacksImpl : public WebKit::WebIDBCallbacks { 40 public: 41 WebIDBCallbacksImpl(PassRefPtr<IDBCallbacks>); 42 virtual ~WebIDBCallbacksImpl(); 43 44 virtual void onError(const WebKit::WebIDBDatabaseError&); 45 virtual void onSuccess(); // For "null". 46 virtual void onSuccess(WebKit::WebIDBDatabase*); 47 virtual void onSuccess(const WebKit::WebIDBKey&); 48 virtual void onSuccess(WebKit::WebIDBIndex*); 49 virtual void onSuccess(WebKit::WebIDBObjectStore*); 50 virtual void onSuccess(const WebKit::WebSerializedScriptValue&); 51 52 private: 53 RefPtr<IDBCallbacks> m_callbacks; 54 }; 55 56 } // namespace WebCore 57 58 #endif 59 60 #endif // WebIDBCallbacksImpl_h 40 [CallWith=ScriptExecutionContext] IDBRequest update(in SerializedScriptValue value); 41 [CallWith=ScriptExecutionContext, ImplementationFunction=continueFunction] IDBRequest continue(in [Optional] IDBKey key); 42 [CallWith=ScriptExecutionContext] IDBRequest remove(); 43 }; 44 } -
trunk/WebCore/storage/IDBCursorBackendImpl.cpp
r64826 r64828 11 11 * notice, this list of conditions and the following disclaimer in the 12 12 * documentation and/or other materials provided with the distribution. 13 * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of14 * its contributors may be used to endorse or promote products derived15 * from this software without specific prior written permission.16 13 * 17 14 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY … … 27 24 */ 28 25 29 #ifndef IDBCallbacks_h 30 #define IDBCallbacks_h 31 32 #include "IDBDatabaseBackendInterface.h" 33 #include "IDBDatabaseError.h" 34 #include "IDBIndexBackendInterface.h" 35 #include "IDBKey.h" 36 #include "IDBObjectStoreBackendInterface.h" 37 #include "SerializedScriptValue.h" 38 #include <wtf/RefCounted.h> 26 #include "config.h" 27 #include "IDBCursorBackendImpl.h" 39 28 40 29 #if ENABLE(INDEXED_DATABASE) 41 30 31 #include "IDBAny.h" 32 #include "IDBCallbacks.h" 33 #include "IDBKeyRange.h" 34 #include "IDBObjectStoreBackendImpl.h" 35 #include "IDBRequest.h" 36 #include "SerializedScriptValue.h" 37 42 38 namespace WebCore { 43 39 44 class IDBCallbacks : public RefCounted<IDBCallbacks> { 45 public: 46 virtual ~IDBCallbacks() { } 40 IDBCursorBackendImpl::IDBCursorBackendImpl(PassRefPtr<IDBObjectStoreBackendImpl> idbObjectStore, PassRefPtr<IDBKeyRange> keyRange, IDBCursor::Direction direction, PassRefPtr<IDBKey> key, PassRefPtr<SerializedScriptValue> value) 41 : m_idbObjectStore(idbObjectStore) 42 , m_keyRange(keyRange) 43 , m_direction(direction) 44 , m_key(key) 45 , m_value(IDBAny::create(value.get())) 46 { 47 } 47 48 48 virtual void onError(PassRefPtr<IDBDatabaseError>) = 0; 49 virtual void onSuccess() = 0; // For "null". 50 virtual void onSuccess(PassRefPtr<IDBDatabaseBackendInterface>) = 0; 51 virtual void onSuccess(PassRefPtr<IDBIndexBackendInterface>) = 0; 52 virtual void onSuccess(PassRefPtr<IDBKey>) = 0; 53 virtual void onSuccess(PassRefPtr<IDBObjectStoreBackendInterface>) = 0; 54 virtual void onSuccess(PassRefPtr<SerializedScriptValue>) = 0; 55 }; 49 IDBCursorBackendImpl::~IDBCursorBackendImpl() 50 { 51 } 52 53 unsigned short IDBCursorBackendImpl::direction() const 54 { 55 return m_direction; 56 } 57 58 PassRefPtr<IDBKey> IDBCursorBackendImpl::key() const 59 { 60 return m_key; 61 } 62 63 PassRefPtr<IDBAny> IDBCursorBackendImpl::value() const 64 { 65 return m_value; 66 } 67 68 void IDBCursorBackendImpl::update(PassRefPtr<SerializedScriptValue>, PassRefPtr<IDBCallbacks>) 69 { 70 // FIXME: Implement this method. 71 ASSERT_NOT_REACHED(); 72 } 73 74 void IDBCursorBackendImpl::continueFunction(PassRefPtr<IDBKey>, PassRefPtr<IDBCallbacks>) 75 { 76 // FIXME: Implement this method. 77 ASSERT_NOT_REACHED(); 78 } 79 80 void IDBCursorBackendImpl::remove(PassRefPtr<IDBCallbacks>) 81 { 82 // FIXME: Implement this method. 83 ASSERT_NOT_REACHED(); 84 } 56 85 57 86 } // namespace WebCore 58 87 59 #endif 60 61 #endif // IDBCallbacks_h 88 #endif // ENABLE(INDEXED_DATABASE) -
trunk/WebCore/storage/IDBCursorBackendImpl.h
r64826 r64828 11 11 * notice, this list of conditions and the following disclaimer in the 12 12 * documentation and/or other materials provided with the distribution. 13 * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of14 * its contributors may be used to endorse or promote products derived15 * from this software without specific prior written permission.16 13 * 17 14 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY … … 27 24 */ 28 25 29 #ifndef IDBCallbacksProxy_h30 #define IDBCallbacksProxy_h31 26 32 #include "IDBCallbacks.h" 33 #include <wtf/PassOwnPtr.h> 34 #include <wtf/PassRefPtr.h> 35 #include <wtf/RefPtr.h> 27 #ifndef IDBCursorBackendImpl_h 28 #define IDBCursorBackendImpl_h 36 29 37 30 #if ENABLE(INDEXED_DATABASE) 38 31 39 namespace WebKit { 40 class WebIDBCallbacks; 41 } 32 #include "IDBCursor.h" 33 #include "IDBCursorBackendInterface.h" 34 #include <wtf/RefPtr.h> 42 35 43 36 namespace WebCore { 44 37 45 class IDBCallbacksProxy : public IDBCallbacks { 38 class IDBKeyRange; 39 class IDBObjectStoreBackendImpl; 40 class SerializedScriptValue; 41 42 class IDBCursorBackendImpl : public IDBCursorBackendInterface { 46 43 public: 47 static PassRefPtr<IDBCallbacksProxy> create(PassOwnPtr<WebKit::WebIDBCallbacks>); 48 virtual ~IDBCallbacksProxy(); 44 static PassRefPtr<IDBCursorBackendImpl> create(PassRefPtr<IDBObjectStoreBackendImpl> objectStore, PassRefPtr<IDBKeyRange> keyRange, IDBCursor::Direction direction, PassRefPtr<IDBKey> key, PassRefPtr<SerializedScriptValue> value) 45 { 46 return adoptRef(new IDBCursorBackendImpl(objectStore, keyRange, direction, key, value)); 47 } 48 virtual ~IDBCursorBackendImpl(); 49 49 50 virtual void onError(PassRefPtr<IDBDatabaseError>); 51 virtual void onSuccess(); // For "null". 52 virtual void onSuccess(PassRefPtr<IDBDatabaseBackendInterface>); 53 virtual void onSuccess(PassRefPtr<IDBIndexBackendInterface>); 54 virtual void onSuccess(PassRefPtr<IDBKey>); 55 virtual void onSuccess(PassRefPtr<IDBObjectStoreBackendInterface>); 56 virtual void onSuccess(PassRefPtr<SerializedScriptValue>); 50 virtual unsigned short direction() const; 51 virtual PassRefPtr<IDBKey> key() const; 52 virtual PassRefPtr<IDBAny> value() const; 53 virtual void update(PassRefPtr<SerializedScriptValue>, PassRefPtr<IDBCallbacks>); 54 virtual void continueFunction(PassRefPtr<IDBKey>, PassRefPtr<IDBCallbacks>); 55 virtual void remove(PassRefPtr<IDBCallbacks>); 57 56 58 57 private: 59 IDBC allbacksProxy(PassOwnPtr<WebKit::WebIDBCallbacks>);58 IDBCursorBackendImpl(PassRefPtr<IDBObjectStoreBackendImpl>, PassRefPtr<IDBKeyRange>, IDBCursor::Direction, PassRefPtr<IDBKey>, PassRefPtr<SerializedScriptValue>); 60 59 61 OwnPtr<WebKit::WebIDBCallbacks> m_callbacks; 60 RefPtr<IDBObjectStoreBackendImpl> m_idbObjectStore; 61 RefPtr<IDBKeyRange> m_keyRange; 62 IDBCursor::Direction m_direction; 63 RefPtr<IDBKey> m_key; 64 RefPtr<IDBAny> m_value; 62 65 }; 63 64 66 65 67 } // namespace WebCore 66 68 67 #endif 69 #endif // ENABLE(INDEXED_DATABASE) 68 70 69 #endif // IDBC allbacksProxy_h71 #endif // IDBCursorBackendImpl_h -
trunk/WebCore/storage/IDBCursorBackendInterface.h
r64826 r64828 24 24 */ 25 25 26 #ifndef WebIDBCallbacksImpl_h 27 #define WebIDBCallbacksImpl_h 28 29 #include "WebIDBCallbacks.h" 30 #include <wtf/PassRefPtr.h> 31 #include <wtf/RefPtr.h> 26 #ifndef IDBCursorBackendInterface_h 27 #define IDBCursorBackendInterface_h 32 28 33 29 #if ENABLE(INDEXED_DATABASE) 34 30 31 #include <wtf/PassRefPtr.h> 32 #include <wtf/RefCounted.h> 33 #include <wtf/Threading.h> 34 35 35 namespace WebCore { 36 36 37 class IDBAny; 37 38 class IDBCallbacks; 39 class IDBKey; 40 class IDBRequest; 41 class SerializedScriptValue; 38 42 39 class WebIDBCallbacksImpl : public WebKit::WebIDBCallbacks{43 class IDBCursorBackendInterface : public ThreadSafeShared<IDBCursorBackendInterface> { 40 44 public: 41 WebIDBCallbacksImpl(PassRefPtr<IDBCallbacks>); 42 virtual ~WebIDBCallbacksImpl(); 45 virtual ~IDBCursorBackendInterface() {} 43 46 44 virtual void onError(const WebKit::WebIDBDatabaseError&); 45 virtual void onSuccess(); // For "null". 46 virtual void onSuccess(WebKit::WebIDBDatabase*); 47 virtual void onSuccess(const WebKit::WebIDBKey&); 48 virtual void onSuccess(WebKit::WebIDBIndex*); 49 virtual void onSuccess(WebKit::WebIDBObjectStore*); 50 virtual void onSuccess(const WebKit::WebSerializedScriptValue&); 47 virtual unsigned short direction() const = 0; 48 virtual PassRefPtr<IDBKey> key() const = 0; 49 virtual PassRefPtr<IDBAny> value() const = 0; 51 50 52 private: 53 RefPtr<IDBCallbacks> m_callbacks; 51 virtual void update(PassRefPtr<SerializedScriptValue>, PassRefPtr<IDBCallbacks>) = 0; 52 virtual void continueFunction(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks>) = 0; 53 virtual void remove(PassRefPtr<IDBCallbacks>) = 0; 54 54 }; 55 55 … … 58 58 #endif 59 59 60 #endif // WebIDBCallbacksImpl_h60 #endif // IDBCursorBackendInterface_h -
trunk/WebCore/storage/IDBObjectStore.cpp
r64577 r64828 31 31 #include "IDBIndex.h" 32 32 #include "IDBKey.h" 33 #include "IDBKeyRange.h" 33 34 #include "SerializedScriptValue.h" 34 35 #include <wtf/UnusedParam.h> … … 109 110 } 110 111 112 PassRefPtr<IDBRequest> IDBObjectStore::openCursor(ScriptExecutionContext* context, PassRefPtr<IDBKeyRange> range, unsigned short direction) 113 { 114 RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::create(this)); 115 m_objectStore->openCursor(range, direction, request); 116 return request.release(); 117 } 118 111 119 } // namespace WebCore 112 120 -
trunk/WebCore/storage/IDBObjectStore.h
r64577 r64828 27 27 #define IDBObjectStore_h 28 28 29 #include "IDBCursor.h" 29 30 #include "IDBObjectStoreBackendInterface.h" 30 31 #include "IDBRequest.h" … … 41 42 class IDBAny; 42 43 class IDBIndexRequest; 44 class IDBKeyRange; 43 45 class IDBKey; 44 46 class SerializedScriptValue; … … 65 67 PassRefPtr<IDBRequest> removeIndex(ScriptExecutionContext*, const String& name); 66 68 69 PassRefPtr<IDBRequest> openCursor(ScriptExecutionContext*, PassRefPtr<IDBKeyRange> = 0, unsigned short direction = IDBCursor::NEXT); 70 67 71 private: 68 72 IDBObjectStore(PassRefPtr<IDBObjectStoreBackendInterface>); -
trunk/WebCore/storage/IDBObjectStore.idl
r64577 r64828 42 42 [CallWith=ScriptExecutionContext] IDBRequest removeIndex(in DOMString name); 43 43 44 [CallWith=ScriptExecutionContext] IDBRequest openCursor(in [Optional] IDBKeyRange range, in [Optional] unsigned short direction); 45 44 46 readonly attribute DOMString name; 45 47 readonly attribute [ConvertNullStringTo=Null] DOMString keyPath; -
trunk/WebCore/storage/IDBObjectStoreBackendImpl.cpp
r64577 r64828 30 30 #include "IDBBindingUtilities.h" 31 31 #include "IDBCallbacks.h" 32 #include "IDBCursorBackendImpl.h" 32 33 #include "IDBDatabaseException.h" 33 34 #include "IDBIndexBackendImpl.h" 35 #include "IDBKeyRange.h" 34 36 #include "IDBKeyTree.h" 35 37 … … 131 133 } 132 134 135 void IDBObjectStoreBackendImpl::openCursor(PassRefPtr<IDBKeyRange> range, unsigned short direction, PassRefPtr<IDBCallbacks> callbacks) 136 { 137 RefPtr<IDBKey> key = range->left(); 138 RefPtr<SerializedScriptValue> value = m_tree->get(key.get()); 139 if (value) { 140 RefPtr<IDBCursorBackendInterface> cursor = IDBCursorBackendImpl::create(this, range, static_cast<IDBCursor::Direction>(direction), key, value); 141 callbacks->onSuccess(cursor.release()); 142 } else 143 callbacks->onSuccess(); 144 } 133 145 134 146 } // namespace WebCore -
trunk/WebCore/storage/IDBObjectStoreBackendImpl.h
r64577 r64828 57 57 void removeIndex(const String& name, PassRefPtr<IDBCallbacks>); 58 58 59 void openCursor(PassRefPtr<IDBKeyRange> range, unsigned short direction, PassRefPtr<IDBCallbacks>); 60 59 61 private: 60 62 IDBObjectStoreBackendImpl(const String& name, const String& keyPath, bool autoIncrement); -
trunk/WebCore/storage/IDBObjectStoreBackendInterface.h
r64577 r64828 38 38 class IDBIndexBackendInterface; 39 39 class IDBKey; 40 class IDBKeyRange; 40 41 class SerializedScriptValue; 41 42 … … 55 56 virtual PassRefPtr<IDBIndexBackendInterface> index(const String& name) = 0; 56 57 virtual void removeIndex(const String& name, PassRefPtr<IDBCallbacks>) = 0; 58 59 virtual void openCursor(PassRefPtr<IDBKeyRange>, unsigned short direction, PassRefPtr<IDBCallbacks>) = 0; 57 60 }; 58 61 -
trunk/WebCore/storage/IDBRequest.cpp
r64824 r64828 36 36 #include "EventListener.h" 37 37 #include "EventNames.h" 38 #include "IDBCursor.h" 38 39 #include "IDBDatabase.h" 39 40 #include "IDBIndex.h" … … 71 72 onEventCommon(); 72 73 m_result->set(); 74 } 75 76 void IDBRequest::onSuccess(PassRefPtr<IDBCursorBackendInterface> backend) 77 { 78 onEventCommon(); 79 m_result->set(IDBCursor::create(backend)); 73 80 } 74 81 … … 148 155 } else { 149 156 ASSERT(m_result->type() != IDBAny::UndefinedType); 150 dispatchEvent(IDBSuccessEvent::create(m_source, m_result)); 157 dispatchEvent(IDBSuccessEvent::create(m_source, m_result)); 151 158 } 152 159 } -
trunk/WebCore/storage/IDBRequest.h
r64824 r64828 64 64 virtual void onSuccess(); // For "null". 65 65 virtual void onSuccess(PassRefPtr<IDBDatabaseBackendInterface>); 66 virtual void onSuccess(PassRefPtr<IDBCursorBackendInterface>); 66 67 virtual void onSuccess(PassRefPtr<IDBIndexBackendInterface>); 67 68 virtual void onSuccess(PassRefPtr<IDBKey>); -
trunk/WebKit/chromium/ChangeLog
r64824 r64828 1 2010-08-05 Marcus Bulach <bulach@chromium.org> 2 3 Reviewed by Jeremy Orlow. 4 5 Initial bindings and plumbing for IDBCursor. 6 https://bugs.webkit.org/show_bug.cgi?id=41888 7 8 Test: storage/indexeddb/idb-opencursor.html 9 10 * WebKit.gyp: 11 * public/WebIDBCallbacks.h: 12 (WebKit::WebIDBCallbacks::onSuccess): 13 * public/WebIDBCursor.h: Added. 14 (WebKit::WebIDBCursor::~WebIDBCursor): 15 (WebKit::WebIDBCursor::direction): 16 (WebKit::WebIDBCursor::key): 17 (WebKit::WebIDBCursor::value): 18 (WebKit::WebIDBCursor::update): 19 (WebKit::WebIDBCursor::continueFunction): 20 (WebKit::WebIDBCursor::remove): 21 * public/WebIDBKeyRange.h: Added. 22 (WebKit::WebIDBKeyRange::~WebIDBKeyRange): 23 (WebKit::WebIDBKeyRange::WebIDBKeyRange): 24 * public/WebIDBObjectStore.h: 25 (WebKit::WebIDBObjectStore::openCursor): 26 * src/IDBCallbacksProxy.cpp: 27 (WebCore::IDBCallbacksProxy::onSuccess): 28 * src/IDBCallbacksProxy.h: 29 * src/IDBCursorBackendProxy.cpp: Added. 30 (WebCore::IDBCursorBackendProxy::create): 31 (WebCore::IDBCursorBackendProxy::IDBCursorBackendProxy): 32 (WebCore::IDBCursorBackendProxy::~IDBCursorBackendProxy): 33 (WebCore::IDBCursorBackendProxy::direction): 34 (WebCore::IDBCursorBackendProxy::key): 35 (WebCore::IDBCursorBackendProxy::value): 36 (WebCore::IDBCursorBackendProxy::update): 37 (WebCore::IDBCursorBackendProxy::continueFunction): 38 (WebCore::IDBCursorBackendProxy::remove): 39 * src/IDBCursorBackendProxy.h: Added. 40 * src/IDBObjectStoreProxy.cpp: 41 (WebCore::IDBObjectStoreProxy::openCursor): 42 * src/IDBObjectStoreProxy.h: 43 * src/WebIDBCallbacksImpl.cpp: 44 (WebCore::WebIDBCallbacksImpl::onSuccess): 45 * src/WebIDBCallbacksImpl.h: 46 * src/WebIDBCursorImpl.cpp: Added. 47 (WebKit::WebIDBCursorImpl::WebIDBCursorImpl): 48 (WebKit::WebIDBCursorImpl::~WebIDBCursorImpl): 49 (WebKit::WebIDBCursorImpl::direction): 50 (WebKit::WebIDBCursorImpl::key): 51 (WebKit::WebIDBCursorImpl::value): 52 (WebKit::WebIDBCursorImpl::update): 53 (WebKit::WebIDBCursorImpl::continueFunction): 54 (WebKit::WebIDBCursorImpl::remove): 55 * src/WebIDBCursorImpl.h: Added. 56 * src/WebIDBKeyRange.cpp: Added. 57 (WebKit::WebIDBKeyRange::WebIDBKeyRange): 58 (WebKit::WebIDBKeyRange::assign): 59 (WebKit::WebIDBKeyRange::reset): 60 (WebKit::WebIDBKeyRange::left): 61 (WebKit::WebIDBKeyRange::right): 62 (WebKit::WebIDBKeyRange::flags): 63 * src/WebIDBObjectStoreImpl.cpp: 64 (WebKit::WebIDBObjectStoreImpl::openCursor): 65 * src/WebIDBObjectStoreImpl.h: 66 1 67 2010-08-05 Andrei Popescu <andreip@dhcp-172-16-14-12.lon.corp.google.com> 2 68 -
trunk/WebKit/chromium/WebKit.gyp
r64794 r64828 175 175 'public/WebImageDecoder.h', 176 176 'public/WebIDBCallbacks.h', 177 'public/WebIDBCursor.h', 177 178 'public/WebIDBDatabase.h', 178 179 'public/WebIDBDatabaseError.h', 179 180 'public/WebIDBFactory.h', 181 'public/WebIDBKeyRange.h', 180 182 'public/WebIDBIndex.h', 181 183 'public/WebIDBKey.h', … … 315 317 'src/IDBCallbacksProxy.cpp', 316 318 'src/IDBCallbacksProxy.h', 319 'src/IDBCursorBackendProxy.cpp', 320 'src/IDBCursorBackendProxy.h', 317 321 'src/IDBDatabaseProxy.cpp', 318 322 'src/IDBDatabaseProxy.h', … … 406 410 'src/WebIDBCallbacksImpl.cpp', 407 411 'src/WebIDBCallbacksImpl.h', 412 'src/WebIDBCursorImpl.cpp', 413 'src/WebIDBCursorImpl.h', 408 414 'src/WebIDBDatabaseError.cpp', 409 415 'src/WebIDBDatabaseImpl.cpp', … … 414 420 'src/WebIDBIndexImpl.h', 415 421 'src/WebIDBKey.cpp', 422 'src/WebIDBKeyRange.cpp', 416 423 'src/WebIDBObjectStoreImpl.cpp', 417 424 'src/WebIDBObjectStoreImpl.h', -
trunk/WebKit/chromium/public/WebIDBCallbacks.h
r63064 r64828 31 31 namespace WebKit { 32 32 33 class WebIDBCursor; 33 34 class WebIDBDatabase; 34 35 class WebIDBDatabaseError; … … 46 47 virtual void onError(const WebIDBDatabaseError&) { WEBKIT_ASSERT_NOT_REACHED(); } 47 48 virtual void onSuccess() { WEBKIT_ASSERT_NOT_REACHED(); } // For "null". 49 virtual void onSuccess(WebIDBCursor*) { WEBKIT_ASSERT_NOT_REACHED(); } 48 50 virtual void onSuccess(WebIDBDatabase*) { WEBKIT_ASSERT_NOT_REACHED(); } 49 51 virtual void onSuccess(const WebIDBKey&) { WEBKIT_ASSERT_NOT_REACHED(); } -
trunk/WebKit/chromium/public/WebIDBCursor.h
- Property svn:executable deleted
r64826 r64828 24 24 */ 25 25 26 #ifndef WebIDB ObjectStore_h27 #define WebIDB ObjectStore_h26 #ifndef WebIDBCursor_h 27 #define WebIDBCursor_h 28 28 29 29 #include "WebCommon.h" 30 #include "WebDOMStringList.h"31 30 #include "WebIDBCallbacks.h" 31 #include "WebIDBKey.h" 32 #include "WebSerializedScriptValue.h" 32 33 #include "WebString.h" 33 34 … … 35 36 36 37 // See comment in WebIndexedDatabase for a high level overview these classes. 37 class WebIDB ObjectStore{38 class WebIDBCursor { 38 39 public: 39 virtual ~WebIDB ObjectStore() { }40 virtual ~WebIDBCursor() { } 40 41 41 virtual WebString name() const 42 { 43 WEBKIT_ASSERT_NOT_REACHED(); 44 return WebString(); 45 } 46 virtual WebString keyPath() const 47 { 48 WEBKIT_ASSERT_NOT_REACHED(); 49 return WebString(); 50 } 51 virtual WebDOMStringList indexNames() const 52 { 53 WEBKIT_ASSERT_NOT_REACHED(); 54 return WebDOMStringList(); 55 } 56 virtual void get(const WebIDBKey& key, WebIDBCallbacks*) 57 { 58 WEBKIT_ASSERT_NOT_REACHED(); 59 } 60 virtual void put(const WebSerializedScriptValue& value, const WebIDBKey& key, bool addOnly, WebIDBCallbacks*) 61 { 62 WEBKIT_ASSERT_NOT_REACHED(); 63 } 64 virtual void remove(const WebIDBKey& key, WebIDBCallbacks*) 65 { 66 WEBKIT_ASSERT_NOT_REACHED(); 67 } 68 virtual void createIndex(const WebString& name, const WebString& keyPath, bool unique, WebIDBCallbacks*) 69 { 70 WEBKIT_ASSERT_NOT_REACHED(); 71 } 72 // Transfers ownership of the WebIDBIndex to the caller. 73 virtual WebIDBIndex* index(const WebString& name) 42 virtual unsigned short direction() const 74 43 { 75 44 WEBKIT_ASSERT_NOT_REACHED(); 76 45 return 0; 77 46 } 78 virtual void removeIndex(const WebString& name, WebIDBCallbacks*) 47 48 virtual WebIDBKey key() const 49 { 50 WEBKIT_ASSERT_NOT_REACHED(); 51 return WebIDBKey(""); 52 } 53 54 virtual WebSerializedScriptValue value() const 55 { 56 WEBKIT_ASSERT_NOT_REACHED(); 57 return WebSerializedScriptValue(); 58 } 59 60 virtual void update(const WebSerializedScriptValue&, WebIDBCallbacks*) 79 61 { 80 62 WEBKIT_ASSERT_NOT_REACHED(); 81 63 } 82 // FIXME: finish. 64 65 virtual void continueFunction(const WebIDBKey&, WebIDBCallbacks*) 66 { 67 WEBKIT_ASSERT_NOT_REACHED(); 68 } 69 70 virtual void remove(WebIDBCallbacks*) 71 { 72 WEBKIT_ASSERT_NOT_REACHED(); 73 } 83 74 }; 84 75 85 76 } // namespace WebKit 86 77 87 #endif // WebIDB ObjectStore_h78 #endif // WebIDBCursor_h -
trunk/WebKit/chromium/public/WebIDBKeyRange.h
r64826 r64828 24 24 */ 25 25 26 #ifndef WebIDB Callbacks_h27 #define WebIDB Callbacks_h26 #ifndef WebIDBKeyRange_h 27 #define WebIDBKeyRange_h 28 28 29 29 #include "WebCommon.h" 30 #include "WebPrivatePtr.h" 31 32 namespace WebCore { class IDBKeyRange; } 30 33 31 34 namespace WebKit { 32 35 33 class WebIDBDatabase;34 class WebIDBDatabaseError;35 36 class WebIDBKey; 36 class WebIDBIndex; 37 class WebIDBObjectStore; 38 class WebSerializedScriptValue; 37 class WebString; 39 38 40 class WebIDB Callbacks{39 class WebIDBKeyRange { 41 40 public: 42 virtual ~WebIDBCallbacks() {}41 ~WebIDBKeyRange() { reset(); } 43 42 44 // For classes that follow the PImpl pattern, pass a const reference. 45 // For the rest, pass ownership to the callee via a pointer. 46 virtual void onError(const WebIDBDatabaseError&) { WEBKIT_ASSERT_NOT_REACHED(); } 47 virtual void onSuccess() { WEBKIT_ASSERT_NOT_REACHED(); } // For "null". 48 virtual void onSuccess(WebIDBDatabase*) { WEBKIT_ASSERT_NOT_REACHED(); } 49 virtual void onSuccess(const WebIDBKey&) { WEBKIT_ASSERT_NOT_REACHED(); } 50 virtual void onSuccess(WebIDBIndex*) { WEBKIT_ASSERT_NOT_REACHED(); } 51 virtual void onSuccess(WebIDBObjectStore*) { WEBKIT_ASSERT_NOT_REACHED(); } 52 virtual void onSuccess(const WebSerializedScriptValue&) { WEBKIT_ASSERT_NOT_REACHED(); } 43 WebIDBKeyRange(const WebIDBKeyRange& keyRange) { assign(keyRange); } 44 WebIDBKeyRange(const WebIDBKey& left, const WebIDBKey& right, unsigned short flags) { assign(left, right, flags); } 45 46 WEBKIT_API WebIDBKey left() const; 47 WEBKIT_API WebIDBKey right() const; 48 WEBKIT_API unsigned short flags() const; 49 50 WEBKIT_API void assign(const WebIDBKeyRange&); 51 WEBKIT_API void assign(const WebIDBKey& left, const WebIDBKey& right, unsigned short flags); 52 WEBKIT_API void reset(); 53 54 #if WEBKIT_IMPLEMENTATION 55 WebIDBKeyRange(const WTF::PassRefPtr<WebCore::IDBKeyRange>&); 56 WebIDBKeyRange& operator=(const WTF::PassRefPtr<WebCore::IDBKeyRange>&); 57 operator WTF::PassRefPtr<WebCore::IDBKeyRange>() const; 58 #endif 59 60 private: 61 WebPrivatePtr<WebCore::IDBKeyRange> m_private; 53 62 }; 54 63 55 64 } // namespace WebKit 56 65 57 #endif // WebIDB Callbacks_h66 #endif // WebIDBKeyRange_h -
trunk/WebKit/chromium/public/WebIDBObjectStore.h
r63064 r64828 33 33 34 34 namespace WebKit { 35 36 class WebIDBKeyRange; 35 37 36 38 // See comment in WebIndexedDatabase for a high level overview these classes. … … 80 82 WEBKIT_ASSERT_NOT_REACHED(); 81 83 } 84 virtual void openCursor(const WebIDBKeyRange&, unsigned short direction, WebIDBCallbacks*) 85 { 86 WEBKIT_ASSERT_NOT_REACHED(); 87 } 82 88 // FIXME: finish. 83 89 }; -
trunk/WebKit/chromium/src/IDBCallbacksProxy.cpp
r64577 r64828 33 33 #include "IDBDatabaseProxy.h" 34 34 #include "WebIDBCallbacks.h" 35 #include "WebIDBCursorImpl.h" 35 36 #include "WebIDBDatabaseImpl.h" 36 37 #include "WebIDBDatabaseError.h" … … 70 71 } 71 72 73 void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBCursorBackendInterface> idbCursorBackend) 74 { 75 m_callbacks->onSuccess(new WebKit::WebIDBCursorImpl(idbCursorBackend)); 76 m_callbacks.clear(); 77 } 78 72 79 void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBDatabaseBackendInterface> backend) 73 80 { -
trunk/WebKit/chromium/src/IDBCallbacksProxy.h
r64577 r64828 50 50 virtual void onError(PassRefPtr<IDBDatabaseError>); 51 51 virtual void onSuccess(); // For "null". 52 virtual void onSuccess(PassRefPtr<IDBCursorBackendInterface>); 52 53 virtual void onSuccess(PassRefPtr<IDBDatabaseBackendInterface>); 53 54 virtual void onSuccess(PassRefPtr<IDBIndexBackendInterface>); -
trunk/WebKit/chromium/src/IDBCursorBackendProxy.cpp
r64826 r64828 25 25 26 26 #include "config.h" 27 #include "WebIDBCallbacksImpl.h" 28 29 #include "IDBCallbacks.h" 30 #include "IDBDatabaseError.h" 31 #include "IDBDatabaseProxy.h" 32 #include "IDBIndexBackendProxy.h" 33 #include "IDBKey.h" 34 #include "IDBObjectStoreProxy.h" 35 #include "WebIDBCallbacks.h" 36 #include "WebIDBDatabase.h" 37 #include "WebIDBDatabaseError.h" 38 #include "WebIDBIndex.h" 39 #include "WebIDBKey.h" 40 #include "WebIDBObjectStore.h" 41 #include "WebSerializedScriptValue.h" 27 #include "IDBCursorBackendProxy.h" 42 28 43 29 #if ENABLE(INDEXED_DATABASE) 44 30 31 #include "IDBAny.h" 32 #include "IDBCallbacks.h" 33 #include "SerializedScriptValue.h" 34 #include "WebIDBCallbacksImpl.h" 35 #include "WebIDBKey.h" 36 45 37 namespace WebCore { 46 38 47 WebIDBCallbacksImpl::WebIDBCallbacksImpl(PassRefPtr<IDBCallbacks> callbacks) 48 : m_callbacks(callbacks) 39 PassRefPtr<IDBCursorBackendInterface> IDBCursorBackendProxy::create(PassOwnPtr<WebKit::WebIDBCursor> idbCursor) 40 { 41 return adoptRef(new IDBCursorBackendProxy(idbCursor)); 42 } 43 44 IDBCursorBackendProxy::IDBCursorBackendProxy(PassOwnPtr<WebKit::WebIDBCursor> idbCursor) 45 : m_idbCursor(idbCursor) 49 46 { 50 47 } 51 48 52 WebIDBCallbacksImpl::~WebIDBCallbacksImpl()49 IDBCursorBackendProxy::~IDBCursorBackendProxy() 53 50 { 54 51 } 55 52 56 void WebIDBCallbacksImpl::onError(const WebKit::WebIDBDatabaseError& error) 53 unsigned short IDBCursorBackendProxy::direction() const 57 54 { 58 m_callbacks->onError(error); 59 m_callbacks.clear(); 55 return m_idbCursor->direction(); 60 56 } 61 57 62 void WebIDBCallbacksImpl::onSuccess() 58 PassRefPtr<IDBKey> IDBCursorBackendProxy::key() const 63 59 { 64 m_callbacks->onSuccess(); 65 m_callbacks.clear(); 60 return m_idbCursor->key(); 66 61 } 67 62 68 void WebIDBCallbacksImpl::onSuccess(WebKit::WebIDBDatabase* webKitInstance) 63 PassRefPtr<IDBAny> IDBCursorBackendProxy::value() const 69 64 { 70 m_callbacks->onSuccess(IDBDatabaseProxy::create(webKitInstance));71 m_callbacks.clear();65 RefPtr<SerializedScriptValue> value = PassRefPtr<SerializedScriptValue>(m_idbCursor->value()); 66 return IDBAny::create(value.get()); 72 67 } 73 68 74 void WebIDBCallbacksImpl::onSuccess(const WebKit::WebIDBKey& key)69 void IDBCursorBackendProxy::update(PassRefPtr<SerializedScriptValue> value, PassRefPtr<IDBCallbacks> callbacks) 75 70 { 76 m_callbacks->onSuccess(key); 77 m_callbacks.clear(); 71 m_idbCursor->update(value, new WebIDBCallbacksImpl(callbacks)); 78 72 } 79 73 80 void WebIDBCallbacksImpl::onSuccess(WebKit::WebIDBIndex* webKitInstance)74 void IDBCursorBackendProxy::continueFunction(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> callbacks) 81 75 { 82 m_callbacks->onSuccess(IDBIndexBackendProxy::create(webKitInstance)); 83 m_callbacks.clear(); 76 m_idbCursor->continueFunction(key, new WebIDBCallbacksImpl(callbacks)); 84 77 } 85 78 86 void WebIDBCallbacksImpl::onSuccess(WebKit::WebIDBObjectStore* webKitInstance)79 void IDBCursorBackendProxy::remove(PassRefPtr<IDBCallbacks> callbacks) 87 80 { 88 m_callbacks->onSuccess(IDBObjectStoreProxy::create(webKitInstance)); 89 m_callbacks.clear(); 90 } 91 92 void WebIDBCallbacksImpl::onSuccess(const WebKit::WebSerializedScriptValue& serializedScriptValue) 93 { 94 m_callbacks->onSuccess(serializedScriptValue); 95 m_callbacks.clear(); 81 m_idbCursor->remove(new WebIDBCallbacksImpl(callbacks)); 96 82 } 97 83 -
trunk/WebKit/chromium/src/IDBCursorBackendProxy.h
r64826 r64828 24 24 */ 25 25 26 #ifndef WebIDBCallbacksImpl_h27 #define WebIDBCallbacksImpl_h26 #ifndef IDBCursorBackendProxy_h 27 #define IDBCursorBackendProxy_h 28 28 29 #include "WebIDBCallbacks.h" 29 #if ENABLE(INDEXED_DATABASE) 30 31 #include "IDBCursorBackendInterface.h" 32 #include "WebIDBCursor.h" 33 #include <wtf/OwnPtr.h> 34 #include <wtf/PassOwnPtr.h> 30 35 #include <wtf/PassRefPtr.h> 31 36 #include <wtf/RefPtr.h> 32 37 33 #if ENABLE(INDEXED_DATABASE)34 35 38 namespace WebCore { 36 39 37 class IDBCallbacks; 40 class IDBCursorBackendProxy : public IDBCursorBackendInterface { 41 public: 42 static PassRefPtr<IDBCursorBackendInterface> create(PassOwnPtr<WebKit::WebIDBCursor>); 43 virtual ~IDBCursorBackendProxy(); 38 44 39 class WebIDBCallbacksImpl : public WebKit::WebIDBCallbacks { 40 public: 41 WebIDBCallbacksImpl(PassRefPtr<IDBCallbacks>); 42 virtual ~WebIDBCallbacksImpl(); 43 44 virtual void onError(const WebKit::WebIDBDatabaseError&); 45 virtual void onSuccess(); // For "null". 46 virtual void onSuccess(WebKit::WebIDBDatabase*); 47 virtual void onSuccess(const WebKit::WebIDBKey&); 48 virtual void onSuccess(WebKit::WebIDBIndex*); 49 virtual void onSuccess(WebKit::WebIDBObjectStore*); 50 virtual void onSuccess(const WebKit::WebSerializedScriptValue&); 45 virtual unsigned short direction() const; 46 virtual PassRefPtr<IDBKey> key() const; 47 virtual PassRefPtr<IDBAny> value() const; 48 virtual void update(PassRefPtr<SerializedScriptValue>, PassRefPtr<IDBCallbacks>); 49 virtual void continueFunction(PassRefPtr<IDBKey>, PassRefPtr<IDBCallbacks>); 50 virtual void remove(PassRefPtr<IDBCallbacks>); 51 51 52 52 private: 53 RefPtr<IDBCallbacks> m_callbacks; 53 IDBCursorBackendProxy(PassOwnPtr<WebKit::WebIDBCursor>); 54 55 OwnPtr<WebKit::WebIDBCursor> m_idbCursor; 54 56 }; 55 57 … … 58 60 #endif 59 61 60 #endif // WebIDBCallbacksImpl_h62 #endif // IDBCursorBackendProxy_h -
trunk/WebKit/chromium/src/IDBObjectStoreProxy.cpp
r64577 r64828 30 30 #include "IDBCallbacks.h" 31 31 #include "IDBIndexBackendProxy.h" 32 #include "IDBKeyRange.h" 32 33 #include "WebIDBCallbacksImpl.h" 34 #include "WebIDBKeyRange.h" 33 35 #include "WebIDBIndex.h" 34 36 #include "WebIDBKey.h" … … 102 104 } 103 105 106 void IDBObjectStoreProxy::openCursor(PassRefPtr<IDBKeyRange> range, unsigned short direction, PassRefPtr<IDBCallbacks> callbacks) 107 { 108 m_webIDBObjectStore->openCursor(range, direction, new WebIDBCallbacksImpl(callbacks)); 109 } 110 104 111 } // namespace WebCore 105 112 -
trunk/WebKit/chromium/src/IDBObjectStoreProxy.h
r64577 r64828 55 55 void removeIndex(const String& name, PassRefPtr<IDBCallbacks>); 56 56 57 virtual void openCursor(PassRefPtr<IDBKeyRange> range, unsigned short direction, PassRefPtr<IDBCallbacks>); 58 57 59 private: 58 60 IDBObjectStoreProxy(PassOwnPtr<WebKit::WebIDBObjectStore>); -
trunk/WebKit/chromium/src/WebIDBCallbacksImpl.cpp
r64358 r64828 28 28 29 29 #include "IDBCallbacks.h" 30 #include "IDBCursorBackendProxy.h" 30 31 #include "IDBDatabaseError.h" 31 32 #include "IDBDatabaseProxy.h" … … 66 67 } 67 68 69 void WebIDBCallbacksImpl::onSuccess(WebKit::WebIDBCursor* cursor) 70 { 71 m_callbacks->onSuccess(IDBCursorBackendProxy::create(cursor)); 72 m_callbacks.clear(); 73 } 74 68 75 void WebIDBCallbacksImpl::onSuccess(WebKit::WebIDBDatabase* webKitInstance) 69 76 { -
trunk/WebKit/chromium/src/WebIDBCallbacksImpl.h
r63064 r64828 44 44 virtual void onError(const WebKit::WebIDBDatabaseError&); 45 45 virtual void onSuccess(); // For "null". 46 virtual void onSuccess(WebKit::WebIDBCursor*); 46 47 virtual void onSuccess(WebKit::WebIDBDatabase*); 47 48 virtual void onSuccess(const WebKit::WebIDBKey&); -
trunk/WebKit/chromium/src/WebIDBCursorImpl.cpp
r64826 r64828 11 11 * notice, this list of conditions and the following disclaimer in the 12 12 * documentation and/or other materials provided with the distribution. 13 * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of14 * its contributors may be used to endorse or promote products derived15 * from this software without specific prior written permission.16 13 * 17 14 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY … … 27 24 */ 28 25 29 #i fndef IDBCallbacks_h30 # define IDBCallbacks_h26 #include "config.h" 27 #include "WebIDBCursorImpl.h" 31 28 32 #include "IDB DatabaseBackendInterface.h"33 #include "IDB DatabaseError.h"34 #include "IDB IndexBackendInterface.h"29 #include "IDBAny.h" 30 #include "IDBCallbacksProxy.h" 31 #include "IDBCursorBackendInterface.h" 35 32 #include "IDBKey.h" 36 #include "IDBObjectStoreBackendInterface.h" 37 #include "SerializedScriptValue.h" 38 #include <wtf/RefCounted.h> 33 #include "WebIDBKey.h" 39 34 40 #if ENABLE(INDEXED_DATABASE) 35 using namespace WebCore; 41 36 42 namespace Web Core{37 namespace WebKit { 43 38 44 class IDBCallbacks : public RefCounted<IDBCallbacks> { 45 public: 46 virtual ~IDBCallbacks() { } 39 WebIDBCursorImpl::WebIDBCursorImpl(PassRefPtr<IDBCursorBackendInterface> idbCursorBackend) 40 : m_idbCursorBackend(idbCursorBackend) 41 { 42 } 47 43 48 virtual void onError(PassRefPtr<IDBDatabaseError>) = 0; 49 virtual void onSuccess() = 0; // For "null". 50 virtual void onSuccess(PassRefPtr<IDBDatabaseBackendInterface>) = 0; 51 virtual void onSuccess(PassRefPtr<IDBIndexBackendInterface>) = 0; 52 virtual void onSuccess(PassRefPtr<IDBKey>) = 0; 53 virtual void onSuccess(PassRefPtr<IDBObjectStoreBackendInterface>) = 0; 54 virtual void onSuccess(PassRefPtr<SerializedScriptValue>) = 0; 55 }; 44 WebIDBCursorImpl::~WebIDBCursorImpl() 45 { 46 } 47 48 unsigned short WebIDBCursorImpl::direction() const 49 { 50 return m_idbCursorBackend->direction(); 51 } 52 53 WebIDBKey WebIDBCursorImpl::key() const 54 { 55 return WebIDBKey(m_idbCursorBackend->key()); 56 } 57 58 WebSerializedScriptValue WebIDBCursorImpl::value() const 59 { 60 return m_idbCursorBackend->value()->serializedScriptValue(); 61 } 62 63 void WebIDBCursorImpl::update(const WebSerializedScriptValue& value, WebIDBCallbacks* callbacks) 64 { 65 m_idbCursorBackend->update(value, IDBCallbacksProxy::create(callbacks)); 66 } 67 68 void WebIDBCursorImpl::continueFunction(const WebIDBKey& key, WebIDBCallbacks* callbacks) 69 { 70 m_idbCursorBackend->continueFunction(key, IDBCallbacksProxy::create(callbacks)); 71 } 72 73 void WebIDBCursorImpl::remove(WebIDBCallbacks* callbacks) 74 { 75 m_idbCursorBackend->remove(IDBCallbacksProxy::create(callbacks)); 76 } 56 77 57 78 } // namespace WebCore 58 59 #endif60 61 #endif // IDBCallbacks_h -
trunk/WebKit/chromium/src/WebIDBCursorImpl.h
r64826 r64828 24 24 */ 25 25 26 #ifndef WebIDBC allbacksImpl_h27 #define WebIDBC allbacksImpl_h26 #ifndef WebIDBCursorImpl_h 27 #define WebIDBCursorImpl_h 28 28 29 #include "WebIDBCallbacks.h" 29 #include "WebCommon.h" 30 #include "WebIDBCursor.h" 30 31 #include <wtf/PassRefPtr.h> 31 32 #include <wtf/RefPtr.h> 32 33 33 #if ENABLE(INDEXED_DATABASE) 34 namespace WebCore { class IDBCursorBackendInterface; } 34 35 35 namespace Web Core{36 namespace WebKit { 36 37 37 class IDBCallbacks; 38 // See comment in WebIndexedObjectStore for a high level overview these classes. 39 class WebIDBCursorImpl : public WebIDBCursor { 40 public: 41 WebIDBCursorImpl(WTF::PassRefPtr<WebCore::IDBCursorBackendInterface>); 42 virtual ~WebIDBCursorImpl(); 38 43 39 class WebIDBCallbacksImpl : public WebKit::WebIDBCallbacks { 40 public: 41 WebIDBCallbacksImpl(PassRefPtr<IDBCallbacks>); 42 virtual ~WebIDBCallbacksImpl(); 44 virtual unsigned short direction() const; 45 virtual WebIDBKey key() const; 46 virtual WebSerializedScriptValue value() const; 47 virtual void update(const WebSerializedScriptValue&, WebIDBCallbacks*); 48 virtual void continueFunction(const WebIDBKey&, WebIDBCallbacks*); 49 virtual void remove(WebIDBCallbacks*); 43 50 44 virtual void onError(const WebKit::WebIDBDatabaseError&); 45 virtual void onSuccess(); // For "null". 46 virtual void onSuccess(WebKit::WebIDBDatabase*); 47 virtual void onSuccess(const WebKit::WebIDBKey&); 48 virtual void onSuccess(WebKit::WebIDBIndex*); 49 virtual void onSuccess(WebKit::WebIDBObjectStore*); 50 virtual void onSuccess(const WebKit::WebSerializedScriptValue&); 51 52 private: 53 RefPtr<IDBCallbacks> m_callbacks; 51 private: 52 WTF::RefPtr<WebCore::IDBCursorBackendInterface> m_idbCursorBackend; 54 53 }; 55 54 56 } // namespace Web Core55 } // namespace WebKit 57 56 58 #endif 59 60 #endif // WebIDBCallbacksImpl_h 57 #endif // WebIDBCursorImpl_h -
trunk/WebKit/chromium/src/WebIDBKeyRange.cpp
r64826 r64828 24 24 */ 25 25 26 #i fndef WebIDBCallbacks_h27 # define WebIDBCallbacks_h26 #include "config.h" 27 #include "WebIDBKeyRange.h" 28 28 29 #include "WebCommon.h" 29 #include "IDBKey.h" 30 #include "IDBKeyRange.h" 31 #include "WebIDBKey.h" 32 33 using WebCore::IDBKeyRange; 30 34 31 35 namespace WebKit { 32 36 33 class WebIDBDatabase; 34 class WebIDBDatabaseError; 35 class WebIDBKey; 36 class WebIDBIndex; 37 class WebIDBObjectStore; 38 class WebSerializedScriptValue; 37 void WebIDBKeyRange::assign(const WebIDBKeyRange& other) 38 { 39 m_private = other.m_private; 40 } 39 41 40 class WebIDBCallbacks { 41 public: 42 virtual ~WebIDBCallbacks() { } 42 void WebIDBKeyRange::assign(const WebIDBKey& left, const WebIDBKey& right, unsigned short flags) 43 { 44 m_private = IDBKeyRange::create(left, right, flags); 45 } 43 46 44 // For classes that follow the PImpl pattern, pass a const reference. 45 // For the rest, pass ownership to the callee via a pointer. 46 virtual void onError(const WebIDBDatabaseError&) { WEBKIT_ASSERT_NOT_REACHED(); } 47 virtual void onSuccess() { WEBKIT_ASSERT_NOT_REACHED(); } // For "null". 48 virtual void onSuccess(WebIDBDatabase*) { WEBKIT_ASSERT_NOT_REACHED(); } 49 virtual void onSuccess(const WebIDBKey&) { WEBKIT_ASSERT_NOT_REACHED(); } 50 virtual void onSuccess(WebIDBIndex*) { WEBKIT_ASSERT_NOT_REACHED(); } 51 virtual void onSuccess(WebIDBObjectStore*) { WEBKIT_ASSERT_NOT_REACHED(); } 52 virtual void onSuccess(const WebSerializedScriptValue&) { WEBKIT_ASSERT_NOT_REACHED(); } 53 }; 47 void WebIDBKeyRange::reset() 48 { 49 m_private.reset(); 50 } 51 52 WebIDBKey WebIDBKeyRange::left() const 53 { 54 return m_private->left(); 55 } 56 57 WebIDBKey WebIDBKeyRange::right() const 58 { 59 return m_private->right(); 60 } 61 62 unsigned short WebIDBKeyRange::flags() const 63 { 64 return m_private->flags(); 65 } 66 67 WebIDBKeyRange::WebIDBKeyRange(const PassRefPtr<IDBKeyRange>& value) 68 : m_private(value) 69 { 70 } 71 72 WebIDBKeyRange& WebIDBKeyRange::operator=(const PassRefPtr<IDBKeyRange>& value) 73 { 74 m_private = value; 75 return *this; 76 } 77 78 WebIDBKeyRange::operator PassRefPtr<IDBKeyRange>() const 79 { 80 return m_private.get(); 81 } 54 82 55 83 } // namespace WebKit 56 57 #endif // WebIDBCallbacks_h -
trunk/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp
r64577 r64828 29 29 #include "DOMStringList.h" 30 30 #include "IDBCallbacksProxy.h" 31 #include "IDBKeyRange.h" 31 32 #include "IDBObjectStoreBackendInterface.h" 32 33 #include "WebIDBIndexImpl.h" 33 34 #include "WebIDBKey.h" 35 #include "WebIDBKeyRange.h" 34 36 #include "WebSerializedScriptValue.h" 35 37 … … 97 99 } 98 100 101 void WebIDBObjectStoreImpl::openCursor(const WebIDBKeyRange& keyRange, unsigned short direction, WebIDBCallbacks* callbacks) 102 { 103 m_objectStore->openCursor(IDBKeyRange::create(keyRange.left(), keyRange.right(), keyRange.flags()), direction, IDBCallbacksProxy::create(callbacks)); 104 } 105 99 106 } // namespace WebCore 100 107 -
trunk/WebKit/chromium/src/WebIDBObjectStoreImpl.h
r64577 r64828 56 56 void removeIndex(const WebString& name, WebIDBCallbacks* callbacks); 57 57 58 void openCursor(const WebIDBKeyRange&, unsigned short direction, WebIDBCallbacks*); 59 58 60 private: 59 61 WTF::RefPtr<WebCore::IDBObjectStoreBackendInterface> m_objectStore;
Note: See TracChangeset
for help on using the changeset viewer.