[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

jorlow at chromium.org jorlow at chromium.org
Wed Dec 22 11:36:15 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit eb5eb5b55408842f79b5d7561d61ea1e7e3ecb73
Author: jorlow at chromium.org <jorlow at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Jul 30 15:29:58 2010 +0000

    2010-07-29  Jeremy Orlow  <jorlow at chromium.org>
    
            Reviewed by Steve Block.
    
            Rename all the IDBIndex classses to match the latest conventions
            https://bugs.webkit.org/show_bug.cgi?id=43190
    
            No functionality has changed.
    
            IDBIndexRequest -> IDBIndex in the spec.  So that's the first change.
            IDBIndex was the name of our interface class though, so we need to rename
            it to get it out of the way.  While we're at it, we might as well clean
            up the naming in general to make things more clear.  In the future, we're
            going to need another layer (yes, yuck) which will be shared by the async
            and sync classes which will do caching and other optimizations.  That will
            then connect to the backend.  We also added "Interface" to make it more
            clear that's what the file/class is.
    
            Existing layout tests are enough since nothing should change as far as JavaScript can see.
    
            * Android.derived.jscbindings.mk:
            * Android.derived.v8bindings.mk:
            * Android.mk:
            * CMakeLists.txt:
            * DerivedSources.cpp:
            * DerivedSources.make:
            * GNUmakefile.am:
            * WebCore.gypi:
            * WebCore.pri:
            * WebCore.pro:
            * WebCore.xcodeproj/project.pbxproj:
            * bindings/js/JSIDBAnyCustom.cpp:
            (WebCore::toJS):
            * bindings/v8/custom/V8IDBAnyCustom.cpp:
            (WebCore::toV8):
            * storage/IDBAny.cpp:
            (WebCore::IDBAny::idbIndex):
            (WebCore::IDBAny::set):
            * storage/IDBAny.h:
            (WebCore::IDBAny::):
            * storage/IDBCallbacks.h:
            * storage/IDBIndex.cpp: Added.
            (WebCore::IDBIndex::IDBIndex):
            (WebCore::IDBIndex::~IDBIndex):
            * storage/IDBIndex.h:
            (WebCore::IDBIndex::create):
            (WebCore::IDBIndex::name):
            (WebCore::IDBIndex::keyPath):
            (WebCore::IDBIndex::unique):
            * storage/IDBIndex.idl: Added.
            * storage/IDBIndexBackendImpl.cpp: Added.
            (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
            (WebCore::IDBIndexBackendImpl::~IDBIndexBackendImpl):
            * storage/IDBIndexBackendImpl.h: Added.
            (WebCore::IDBIndexBackendImpl::create):
            (WebCore::IDBIndexBackendImpl::name):
            (WebCore::IDBIndexBackendImpl::keyPath):
            (WebCore::IDBIndexBackendImpl::unique):
            * storage/IDBIndexBackendInterface.h: Added.
            (WebCore::IDBIndexBackendInterface::~IDBIndexBackendInterface):
            * storage/IDBIndexImpl.cpp: Removed.
            * storage/IDBIndexImpl.h: Removed.
            * storage/IDBIndexRequest.cpp: Removed.
            * storage/IDBIndexRequest.h: Removed.
            * storage/IDBIndexRequest.idl: Removed.
            * storage/IDBObjectStore.h:
            * storage/IDBObjectStoreImpl.cpp:
            (WebCore::IDBObjectStoreImpl::createIndex):
            (WebCore::IDBObjectStoreImpl::index):
            * storage/IDBObjectStoreImpl.h:
            * storage/IDBObjectStoreRequest.cpp:
            (WebCore::IDBObjectStoreRequest::index):
            * storage/IDBObjectStoreRequest.h:
            * storage/IDBObjectStoreRequest.idl:
            * storage/IDBRequest.cpp:
            (WebCore::IDBRequest::onSuccess):
            * storage/IDBRequest.h:
    2010-07-29  Jeremy Orlow  <jorlow at chromium.org>
    
            Reviewed by Steve Block.
    
            Rename all the IDBIndex classses to match the latest conventions
            https://bugs.webkit.org/show_bug.cgi?id=43190
    
            Fix up stuff in WebKit layer to handle the renamings in WebCore.
    
            * WebKit.gyp:
            * src/IDBCallbacksProxy.cpp:
            (WebCore::IDBCallbacksProxy::onSuccess):
            * src/IDBCallbacksProxy.h:
            * src/IDBIndexBackendProxy.cpp: Added.
            (WebCore::IDBIndexBackendProxy::create):
            (WebCore::IDBIndexBackendProxy::IDBIndexBackendProxy):
            (WebCore::IDBIndexBackendProxy::~IDBIndexBackendProxy):
            (WebCore::IDBIndexBackendProxy::name):
            (WebCore::IDBIndexBackendProxy::keyPath):
            (WebCore::IDBIndexBackendProxy::unique):
            * src/IDBIndexBackendProxy.h: Added.
            * src/IDBIndexProxy.cpp: Removed.
            * src/IDBIndexProxy.h: Removed.
            * src/IDBObjectStoreProxy.cpp:
            (WebCore::IDBObjectStoreProxy::index):
            * src/IDBObjectStoreProxy.h:
            * src/WebIDBCallbacksImpl.cpp:
            (WebCore::WebIDBCallbacksImpl::onSuccess):
            * src/WebIDBIndexImpl.cpp:
            (WebKit::WebIDBIndexImpl::WebIDBIndexImpl):
            (WebKit::WebIDBIndexImpl::name):
            (WebKit::WebIDBIndexImpl::keyPath):
            (WebKit::WebIDBIndexImpl::unique):
            * src/WebIDBIndexImpl.h:
            * src/WebIDBObjectStoreImpl.cpp:
            (WebKit::WebIDBObjectStoreImpl::index):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64358 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/Android.derived.jscbindings.mk b/WebCore/Android.derived.jscbindings.mk
index cbd7b23..0da33d0 100644
--- a/WebCore/Android.derived.jscbindings.mk
+++ b/WebCore/Android.derived.jscbindings.mk
@@ -367,7 +367,7 @@ GEN := \
     $(intermediates)/storage/JSIDBErrorEvent.h \
     $(intermediates)/storage/JSIDBEvent.h \
     $(intermediates)/storage/JSIDBFactory.h \
-    $(intermediates)/storage/JSIDBIndexRequest.h \
+    $(intermediates)/storage/JSIDBIndex.h \
     $(intermediates)/storage/JSIDBKey.h \
     $(intermediates)/storage/JSIDBKeyRange.h \
     $(intermediates)/storage/JSIDBRequest.h \
diff --git a/WebCore/Android.derived.v8bindings.mk b/WebCore/Android.derived.v8bindings.mk
index 4d382cf..216cde9 100644
--- a/WebCore/Android.derived.v8bindings.mk
+++ b/WebCore/Android.derived.v8bindings.mk
@@ -348,7 +348,7 @@ GEN := \
     $(intermediates)/bindings/V8IDBErrorEvent.h \
     $(intermediates)/bindings/V8IDBEvent.h \
     $(intermediates)/bindings/V8IDBFactory.h \
-    $(intermediates)/bindings/V8IDBIndexRequest.h \
+    $(intermediates)/bindings/V8IDBIndex.h \
     $(intermediates)/bindings/V8IDBKey.h \
     $(intermediates)/bindings/V8IDBKeyRange.h \
     $(intermediates)/bindings/V8IDBRequest.h \
diff --git a/WebCore/Android.mk b/WebCore/Android.mk
index f098d63..d75fd59 100644
--- a/WebCore/Android.mk
+++ b/WebCore/Android.mk
@@ -747,8 +747,8 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
 	storage/IDBDatabaseRequest.cpp \
 	storage/IDBErrorEvent.cpp \
 	storage/IDBEvent.cpp \
-	storage/IDBIndexImpl.cpp \
-	storage/IDBIndexRequest.cpp \
+	storage/IDBIndex.cpp \
+	storage/IDBIndexBackendImpl.cpp \
 	storage/IDBKey.cpp \
 	storage/IDBKeyRange.cpp \
 	storage/IDBObjectStoreImpl.cpp \
diff --git a/WebCore/CMakeLists.txt b/WebCore/CMakeLists.txt
index f6070fd..e0a64af 100644
--- a/WebCore/CMakeLists.txt
+++ b/WebCore/CMakeLists.txt
@@ -339,7 +339,7 @@ SET(WebCore_IDL_FILES
     storage/IDBErrorEvent.idl
     storage/IDBEvent.idl
     storage/IDBFactory.idl
-    storage/IDBIndexRequest.idl
+    storage/IDBIndex.idl
     storage/IDBKey.idl
     storage/IDBKeyRange.idl
     storage/IDBObjectStoreRequest.idl
@@ -1438,6 +1438,8 @@ SET(WebCore_SOURCES
     storage/IDBDatabaseRequest.cpp
     storage/IDBErrorEvent.cpp
     storage/IDBEvent.cpp
+    storage/IDBIndex.cpp
+    storage/IDBIndexBackendImpl.cpp
     storage/IDBKey.cpp
     storage/IDBKeyRange.cpp
     storage/IDBRequest.cpp
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 57f7c42..81d538e 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,81 @@
+2010-07-29  Jeremy Orlow  <jorlow at chromium.org>
+
+        Reviewed by Steve Block.
+
+        Rename all the IDBIndex classses to match the latest conventions
+        https://bugs.webkit.org/show_bug.cgi?id=43190
+
+        No functionality has changed.
+
+        IDBIndexRequest -> IDBIndex in the spec.  So that's the first change.
+        IDBIndex was the name of our interface class though, so we need to rename
+        it to get it out of the way.  While we're at it, we might as well clean
+        up the naming in general to make things more clear.  In the future, we're
+        going to need another layer (yes, yuck) which will be shared by the async
+        and sync classes which will do caching and other optimizations.  That will
+        then connect to the backend.  We also added "Interface" to make it more
+        clear that's what the file/class is.
+
+        Existing layout tests are enough since nothing should change as far as JavaScript can see.
+
+        * Android.derived.jscbindings.mk:
+        * Android.derived.v8bindings.mk:
+        * Android.mk:
+        * CMakeLists.txt:
+        * DerivedSources.cpp:
+        * DerivedSources.make:
+        * GNUmakefile.am:
+        * WebCore.gypi:
+        * WebCore.pri:
+        * WebCore.pro:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/JSIDBAnyCustom.cpp:
+        (WebCore::toJS):
+        * bindings/v8/custom/V8IDBAnyCustom.cpp:
+        (WebCore::toV8):
+        * storage/IDBAny.cpp:
+        (WebCore::IDBAny::idbIndex):
+        (WebCore::IDBAny::set):
+        * storage/IDBAny.h:
+        (WebCore::IDBAny::):
+        * storage/IDBCallbacks.h:
+        * storage/IDBIndex.cpp: Added.
+        (WebCore::IDBIndex::IDBIndex):
+        (WebCore::IDBIndex::~IDBIndex):
+        * storage/IDBIndex.h:
+        (WebCore::IDBIndex::create):
+        (WebCore::IDBIndex::name):
+        (WebCore::IDBIndex::keyPath):
+        (WebCore::IDBIndex::unique):
+        * storage/IDBIndex.idl: Added.
+        * storage/IDBIndexBackendImpl.cpp: Added.
+        (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
+        (WebCore::IDBIndexBackendImpl::~IDBIndexBackendImpl):
+        * storage/IDBIndexBackendImpl.h: Added.
+        (WebCore::IDBIndexBackendImpl::create):
+        (WebCore::IDBIndexBackendImpl::name):
+        (WebCore::IDBIndexBackendImpl::keyPath):
+        (WebCore::IDBIndexBackendImpl::unique):
+        * storage/IDBIndexBackendInterface.h: Added.
+        (WebCore::IDBIndexBackendInterface::~IDBIndexBackendInterface):
+        * storage/IDBIndexImpl.cpp: Removed.
+        * storage/IDBIndexImpl.h: Removed.
+        * storage/IDBIndexRequest.cpp: Removed.
+        * storage/IDBIndexRequest.h: Removed.
+        * storage/IDBIndexRequest.idl: Removed.
+        * storage/IDBObjectStore.h:
+        * storage/IDBObjectStoreImpl.cpp:
+        (WebCore::IDBObjectStoreImpl::createIndex):
+        (WebCore::IDBObjectStoreImpl::index):
+        * storage/IDBObjectStoreImpl.h:
+        * storage/IDBObjectStoreRequest.cpp:
+        (WebCore::IDBObjectStoreRequest::index):
+        * storage/IDBObjectStoreRequest.h:
+        * storage/IDBObjectStoreRequest.idl:
+        * storage/IDBRequest.cpp:
+        (WebCore::IDBRequest::onSuccess):
+        * storage/IDBRequest.h:
+
 2010-07-30  Rafael Antognolli  <antognolli at profusion.mobi>
 
         Reviewed by Antonio Gomes.
diff --git a/WebCore/DerivedSources.cpp b/WebCore/DerivedSources.cpp
index 4f29447..3e5fb60 100644
--- a/WebCore/DerivedSources.cpp
+++ b/WebCore/DerivedSources.cpp
@@ -182,7 +182,7 @@
 #include "JSIDBErrorEvent.cpp"
 #include "JSIDBEvent.cpp"
 #include "JSIDBFactory.cpp"
-#include "JSIDBIndexRequest.cpp"
+#include "JSIDBIndex.cpp"
 #include "JSIDBKey.cpp"
 #include "JSIDBKeyRange.cpp"
 #include "JSIDBObjectStoreRequest.cpp"
diff --git a/WebCore/DerivedSources.make b/WebCore/DerivedSources.make
index d7c2a87..cd18bea 100644
--- a/WebCore/DerivedSources.make
+++ b/WebCore/DerivedSources.make
@@ -225,7 +225,7 @@ DOM_CLASSES = \
     IDBErrorEvent \
     IDBEvent \
     IDBFactory \
-    IDBIndexRequest \
+    IDBIndex \
     IDBKey \
     IDBKeyRange \
     IDBObjectStoreRequest \
diff --git a/WebCore/GNUmakefile.am b/WebCore/GNUmakefile.am
index c3e9b4a..d35b74a 100644
--- a/WebCore/GNUmakefile.am
+++ b/WebCore/GNUmakefile.am
@@ -2838,8 +2838,8 @@ webcore_built_sources += \
 	DerivedSources/WebCore/JSIDBEvent.h \
 	DerivedSources/WebCore/JSIDBFactory.cpp \
 	DerivedSources/WebCore/JSIDBFactory.h \
-	DerivedSources/WebCore/JSIDBIndexRequest.cpp \
-	DerivedSources/WebCore/JSIDBIndexRequest.h \
+	DerivedSources/WebCore/JSIDBIndex.cpp \
+	DerivedSources/WebCore/JSIDBIndex.h \
 	DerivedSources/WebCore/JSIDBKeyRange.cpp \
 	DerivedSources/WebCore/JSIDBKeyRange.h \
 	DerivedSources/WebCore/JSIDBObjectStoreRequest.cpp \
@@ -2864,11 +2864,11 @@ webcore_sources += \
 	WebCore/storage/IDBErrorEvent.h \
 	WebCore/storage/IDBEvent.cpp \
 	WebCore/storage/IDBEvent.h \
+	WebCore/storage/IDBIndex.cpp \
 	WebCore/storage/IDBIndex.h \
-	WebCore/storage/IDBIndexImpl.cpp \
-	WebCore/storage/IDBIndexImpl.h \
-	WebCore/storage/IDBIndexRequest.cpp \
-	WebCore/storage/IDBIndexRequest.h \
+	WebCore/storage/IDBIndexBackendInterface.h \
+	WebCore/storage/IDBIndexBackendImpl.cpp \
+	WebCore/storage/IDBIndexBackendImpl.h \
 	WebCore/storage/IDBKeyRange.cpp \
 	WebCore/storage/IDBKeyRange.h \
 	WebCore/storage/IDBObjectStore.h \
diff --git a/WebCore/WebCore.gypi b/WebCore/WebCore.gypi
index 660db9b..6983bc8 100644
--- a/WebCore/WebCore.gypi
+++ b/WebCore/WebCore.gypi
@@ -237,7 +237,7 @@
             'storage/IDBErrorEvent.idl',
             'storage/IDBEvent.idl',
             'storage/IDBFactory.idl',
-            'storage/IDBIndexRequest.idl',
+            'storage/IDBIndex.idl',
             'storage/IDBKey.idl',
             'storage/IDBKeyRange.idl',
             'storage/IDBObjectStoreRequest.idl',
@@ -3492,11 +3492,11 @@
             'storage/IDBFactoryBackendInterface.h',
             'storage/IDBFactoryBackendImpl.cpp',
             'storage/IDBFactoryBackendImpl.h',
+            'storage/IDBIndex.cpp',
             'storage/IDBIndex.h',
-            'storage/IDBIndexImpl.cpp',
-            'storage/IDBIndexImpl.h',
-            'storage/IDBIndexRequest.cpp',
-            'storage/IDBIndexRequest.h',
+            'storage/IDBIndexBackendInterface.h',
+            'storage/IDBIndexBackendImpl.cpp',
+            'storage/IDBIndexBackendImpl.h',
             'storage/IDBKey.cpp',
             'storage/IDBKey.h',
             'storage/IDBKeyRange.cpp',
diff --git a/WebCore/WebCore.pri b/WebCore/WebCore.pri
index ce437ba..34db911 100644
--- a/WebCore/WebCore.pri
+++ b/WebCore/WebCore.pri
@@ -488,7 +488,7 @@ IDL_BINDINGS += \
     storage/IDBDatabaseRequest.idl \
     storage/IDBErrorEvent.idl \
     storage/IDBEvent.idl \
-    storage/IDBIndexRequest.idl \
+    storage/IDBIndex.idl \
     storage/IDBKey.idl \
     storage/IDBKeyRange.idl \
     storage/IDBObjectStoreRequest.idl \
diff --git a/WebCore/WebCore.pro b/WebCore/WebCore.pro
index 452b44a..128ac4e 100644
--- a/WebCore/WebCore.pro
+++ b/WebCore/WebCore.pro
@@ -2433,8 +2433,8 @@ contains(DEFINES, ENABLE_INDEXED_DATABASE=1) {
         storage/IDBFactoryBackendInterface.h \
         storage/IDBFactoryBackendImpl.h \
         storage/IDBIndex.h \
-        storage/IDBIndexImpl.h \
-        storage/IDBIndexRequest.h \
+        storage/IDBIndexBackendInterface.h \
+        storage/IDBIndexBackendImpl.h \
         storage/IDBKey.h \
         storage/IDBKeyRange.h \
         storage/IDBObjectStore.h \
@@ -2455,8 +2455,8 @@ contains(DEFINES, ENABLE_INDEXED_DATABASE=1) {
         storage/IDBFactory.cpp \
         storage/IDBFactoryBackendInterface.cpp \
         storage/IDBFactoryBackendImpl.cpp \
-        storage/IDBIndexImpl.cpp \
-        storage/IDBIndexRequest.cpp \
+        storage/IDBIndex.cpp \
+        storage/IDBIndexBackendImpl.cpp \
         storage/IDBKey.cpp \
         storage/IDBKeyRange.cpp \
         storage/IDBObjectStoreImpl.cpp \
diff --git a/WebCore/WebCore.vcproj/WebCore.vcproj b/WebCore/WebCore.vcproj/WebCore.vcproj
index 84cb2f9..c7e4c80 100644
--- a/WebCore/WebCore.vcproj/WebCore.vcproj
+++ b/WebCore/WebCore.vcproj/WebCore.vcproj
@@ -44764,7 +44764,7 @@
 					>
 				</File>
 				<File
-					RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBIndexRequest.cpp"
+					RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBIndex.cpp"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -44816,7 +44816,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBIndexRequest.h"
+					RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBIndex.h"
 					>
 				</File>
 				<File
@@ -50153,23 +50153,23 @@
 				>
 			</File>
 			<File
-				RelativePath="..\storage\IDBIndex.h"
+				RelativePath="..\storage\IDBIndex.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\storage\IDBIndexImpl.cpp"
+				RelativePath="..\storage\IDBIndex.h"
 				>
 			</File>
 			<File
-				RelativePath="..\storage\IDBIndexImpl.h"
+				RelativePath="..\storage\IDBIndexBackendInterface.h"
 				>
 			</File>
 			<File
-				RelativePath="..\storage\IDBIndexRequest.cpp"
+				RelativePath="..\storage\IDBIndexBackendImpl.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\storage\IDBIndexRequest.h"
+				RelativePath="..\storage\IDBIndexBackendImpl.h"
 				>
 			</File>
 			<File
diff --git a/WebCore/WebCore.xcodeproj/project.pbxproj b/WebCore/WebCore.xcodeproj/project.pbxproj
index c4cde72..e05223e 100644
--- a/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -4917,6 +4917,13 @@
 		C55610F111A704EB00B82D27 /* DOMStringList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C55610F011A704EB00B82D27 /* DOMStringList.cpp */; };
 		C55E38BF10040D5D00A56BDB /* StorageNamespaceImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = C55E38BB10040D5D00A56BDB /* StorageNamespaceImpl.h */; };
 		C55E38C010040D5D00A56BDB /* StorageNamespaceImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C55E38BC10040D5D00A56BDB /* StorageNamespaceImpl.cpp */; };
+		C572EE0A1201C736007D8F82 /* IDBIndex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C572EE041201C736007D8F82 /* IDBIndex.cpp */; };
+		C572EE0B1201C736007D8F82 /* IDBIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = C572EE051201C736007D8F82 /* IDBIndex.h */; };
+		C572EE0D1201C736007D8F82 /* IDBIndexBackendImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C572EE071201C736007D8F82 /* IDBIndexBackendImpl.cpp */; };
+		C572EE0E1201C736007D8F82 /* IDBIndexBackendImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = C572EE081201C736007D8F82 /* IDBIndexBackendImpl.h */; };
+		C572EE0F1201C736007D8F82 /* IDBIndexBackendInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = C572EE091201C736007D8F82 /* IDBIndexBackendInterface.h */; };
+		C572EE1E1201C9BC007D8F82 /* JSIDBIndex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C572EE1C1201C9BC007D8F82 /* JSIDBIndex.cpp */; };
+		C572EE1F1201C9BC007D8F82 /* JSIDBIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = C572EE1D1201C9BC007D8F82 /* JSIDBIndex.h */; };
 		C585A65E11D4FAB2004C3E4B /* JSIDBAnyCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A65C11D4FAB2004C3E4B /* JSIDBAnyCustom.cpp */; };
 		C585A65F11D4FAB2004C3E4B /* JSIDBKeyCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A65D11D4FAB2004C3E4B /* JSIDBKeyCustom.cpp */; };
 		C585A66211D4FAC5004C3E4B /* IDBBindingUtilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A66011D4FAC5004C3E4B /* IDBBindingUtilities.cpp */; };
@@ -4933,8 +4940,6 @@
 		C585A68511D4FB08004C3E4B /* JSIDBErrorEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A66D11D4FB07004C3E4B /* JSIDBErrorEvent.h */; };
 		C585A68611D4FB08004C3E4B /* JSIDBEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A66E11D4FB07004C3E4B /* JSIDBEvent.cpp */; };
 		C585A68711D4FB08004C3E4B /* JSIDBEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A66F11D4FB07004C3E4B /* JSIDBEvent.h */; };
-		C585A68811D4FB08004C3E4B /* JSIDBIndexRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A67011D4FB07004C3E4B /* JSIDBIndexRequest.cpp */; };
-		C585A68911D4FB08004C3E4B /* JSIDBIndexRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A67111D4FB07004C3E4B /* JSIDBIndexRequest.h */; };
 		C585A68A11D4FB08004C3E4B /* JSIDBKey.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A67211D4FB07004C3E4B /* JSIDBKey.cpp */; };
 		C585A68B11D4FB08004C3E4B /* JSIDBKey.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A67311D4FB07004C3E4B /* JSIDBKey.h */; };
 		C585A68C11D4FB08004C3E4B /* JSIDBKeyRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A67411D4FB07004C3E4B /* JSIDBKeyRange.cpp */; };
@@ -4961,11 +4966,6 @@
 		C585A6DB11D4FB3D004C3E4B /* IDBErrorEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A6A711D4FB3D004C3E4B /* IDBErrorEvent.h */; };
 		C585A6DD11D4FB3D004C3E4B /* IDBEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A6A911D4FB3D004C3E4B /* IDBEvent.cpp */; };
 		C585A6DE11D4FB3D004C3E4B /* IDBEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A6AA11D4FB3D004C3E4B /* IDBEvent.h */; };
-		C585A6E011D4FB3D004C3E4B /* IDBIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A6AC11D4FB3D004C3E4B /* IDBIndex.h */; };
-		C585A6E111D4FB3D004C3E4B /* IDBIndexImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A6AD11D4FB3D004C3E4B /* IDBIndexImpl.cpp */; };
-		C585A6E211D4FB3D004C3E4B /* IDBIndexImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A6AE11D4FB3D004C3E4B /* IDBIndexImpl.h */; };
-		C585A6E311D4FB3D004C3E4B /* IDBIndexRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A6AF11D4FB3D004C3E4B /* IDBIndexRequest.cpp */; };
-		C585A6E411D4FB3D004C3E4B /* IDBIndexRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A6B011D4FB3D004C3E4B /* IDBIndexRequest.h */; };
 		C585A6E611D4FB3D004C3E4B /* IDBKey.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A6B211D4FB3D004C3E4B /* IDBKey.cpp */; };
 		C585A6E711D4FB3D004C3E4B /* IDBKey.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A6B311D4FB3D004C3E4B /* IDBKey.h */; };
 		C585A6E911D4FB3D004C3E4B /* IDBKeyRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A6B511D4FB3D004C3E4B /* IDBKeyRange.cpp */; };
@@ -10582,6 +10582,14 @@
 		C55610F011A704EB00B82D27 /* DOMStringList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DOMStringList.cpp; sourceTree = "<group>"; };
 		C55E38BB10040D5D00A56BDB /* StorageNamespaceImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StorageNamespaceImpl.h; sourceTree = "<group>"; };
 		C55E38BC10040D5D00A56BDB /* StorageNamespaceImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StorageNamespaceImpl.cpp; sourceTree = "<group>"; };
+		C572EE041201C736007D8F82 /* IDBIndex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBIndex.cpp; sourceTree = "<group>"; };
+		C572EE051201C736007D8F82 /* IDBIndex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBIndex.h; sourceTree = "<group>"; };
+		C572EE061201C736007D8F82 /* IDBIndex.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDBIndex.idl; sourceTree = "<group>"; };
+		C572EE071201C736007D8F82 /* IDBIndexBackendImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBIndexBackendImpl.cpp; sourceTree = "<group>"; };
+		C572EE081201C736007D8F82 /* IDBIndexBackendImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBIndexBackendImpl.h; sourceTree = "<group>"; };
+		C572EE091201C736007D8F82 /* IDBIndexBackendInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBIndexBackendInterface.h; sourceTree = "<group>"; };
+		C572EE1C1201C9BC007D8F82 /* JSIDBIndex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBIndex.cpp; sourceTree = "<group>"; };
+		C572EE1D1201C9BC007D8F82 /* JSIDBIndex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBIndex.h; sourceTree = "<group>"; };
 		C585A65C11D4FAB2004C3E4B /* JSIDBAnyCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBAnyCustom.cpp; sourceTree = "<group>"; };
 		C585A65D11D4FAB2004C3E4B /* JSIDBKeyCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBKeyCustom.cpp; sourceTree = "<group>"; };
 		C585A66011D4FAC5004C3E4B /* IDBBindingUtilities.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBBindingUtilities.cpp; sourceTree = "<group>"; };
@@ -10598,8 +10606,6 @@
 		C585A66D11D4FB07004C3E4B /* JSIDBErrorEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBErrorEvent.h; sourceTree = "<group>"; };
 		C585A66E11D4FB07004C3E4B /* JSIDBEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBEvent.cpp; sourceTree = "<group>"; };
 		C585A66F11D4FB07004C3E4B /* JSIDBEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBEvent.h; sourceTree = "<group>"; };
-		C585A67011D4FB07004C3E4B /* JSIDBIndexRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBIndexRequest.cpp; sourceTree = "<group>"; };
-		C585A67111D4FB07004C3E4B /* JSIDBIndexRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBIndexRequest.h; sourceTree = "<group>"; };
 		C585A67211D4FB07004C3E4B /* JSIDBKey.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBKey.cpp; sourceTree = "<group>"; };
 		C585A67311D4FB07004C3E4B /* JSIDBKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBKey.h; sourceTree = "<group>"; };
 		C585A67411D4FB07004C3E4B /* JSIDBKeyRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBKeyRange.cpp; sourceTree = "<group>"; };
@@ -10632,12 +10638,6 @@
 		C585A6A911D4FB3D004C3E4B /* IDBEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBEvent.cpp; sourceTree = "<group>"; };
 		C585A6AA11D4FB3D004C3E4B /* IDBEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBEvent.h; sourceTree = "<group>"; };
 		C585A6AB11D4FB3D004C3E4B /* IDBEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDBEvent.idl; sourceTree = "<group>"; };
-		C585A6AC11D4FB3D004C3E4B /* IDBIndex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBIndex.h; sourceTree = "<group>"; };
-		C585A6AD11D4FB3D004C3E4B /* IDBIndexImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBIndexImpl.cpp; sourceTree = "<group>"; };
-		C585A6AE11D4FB3D004C3E4B /* IDBIndexImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBIndexImpl.h; sourceTree = "<group>"; };
-		C585A6AF11D4FB3D004C3E4B /* IDBIndexRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBIndexRequest.cpp; sourceTree = "<group>"; };
-		C585A6B011D4FB3D004C3E4B /* IDBIndexRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBIndexRequest.h; sourceTree = "<group>"; };
-		C585A6B111D4FB3D004C3E4B /* IDBIndexRequest.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDBIndexRequest.idl; sourceTree = "<group>"; };
 		C585A6B211D4FB3D004C3E4B /* IDBKey.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBKey.cpp; sourceTree = "<group>"; };
 		C585A6B311D4FB3D004C3E4B /* IDBKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBKey.h; sourceTree = "<group>"; };
 		C585A6B411D4FB3D004C3E4B /* IDBKey.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDBKey.idl; sourceTree = "<group>"; };
@@ -11343,12 +11343,12 @@
 				C585A6A911D4FB3D004C3E4B /* IDBEvent.cpp */,
 				C585A6AA11D4FB3D004C3E4B /* IDBEvent.h */,
 				C585A6AB11D4FB3D004C3E4B /* IDBEvent.idl */,
-				C585A6AC11D4FB3D004C3E4B /* IDBIndex.h */,
-				C585A6AD11D4FB3D004C3E4B /* IDBIndexImpl.cpp */,
-				C585A6AE11D4FB3D004C3E4B /* IDBIndexImpl.h */,
-				C585A6AF11D4FB3D004C3E4B /* IDBIndexRequest.cpp */,
-				C585A6B011D4FB3D004C3E4B /* IDBIndexRequest.h */,
-				C585A6B111D4FB3D004C3E4B /* IDBIndexRequest.idl */,
+				C572EE041201C736007D8F82 /* IDBIndex.cpp */,
+				C572EE051201C736007D8F82 /* IDBIndex.h */,
+				C572EE061201C736007D8F82 /* IDBIndex.idl */,
+				C572EE071201C736007D8F82 /* IDBIndexBackendImpl.cpp */,
+				C572EE081201C736007D8F82 /* IDBIndexBackendImpl.h */,
+				C572EE091201C736007D8F82 /* IDBIndexBackendInterface.h */,
 				C585A6B211D4FB3D004C3E4B /* IDBKey.cpp */,
 				C585A6B311D4FB3D004C3E4B /* IDBKey.h */,
 				C585A6B411D4FB3D004C3E4B /* IDBKey.idl */,
@@ -14781,8 +14781,8 @@
 				C585A66D11D4FB07004C3E4B /* JSIDBErrorEvent.h */,
 				C585A66E11D4FB07004C3E4B /* JSIDBEvent.cpp */,
 				C585A66F11D4FB07004C3E4B /* JSIDBEvent.h */,
-				C585A67011D4FB07004C3E4B /* JSIDBIndexRequest.cpp */,
-				C585A67111D4FB07004C3E4B /* JSIDBIndexRequest.h */,
+				C572EE1C1201C9BC007D8F82 /* JSIDBIndex.cpp */,
+				C572EE1D1201C9BC007D8F82 /* JSIDBIndex.h */,
 				C585A67211D4FB07004C3E4B /* JSIDBKey.cpp */,
 				C585A67311D4FB07004C3E4B /* JSIDBKey.h */,
 				C585A67411D4FB07004C3E4B /* JSIDBKeyRange.cpp */,
@@ -18500,9 +18500,6 @@
 				C585A6D811D4FB3D004C3E4B /* IDBDatabaseRequest.h in Headers */,
 				C585A6DB11D4FB3D004C3E4B /* IDBErrorEvent.h in Headers */,
 				C585A6DE11D4FB3D004C3E4B /* IDBEvent.h in Headers */,
-				C585A6E011D4FB3D004C3E4B /* IDBIndex.h in Headers */,
-				C585A6E211D4FB3D004C3E4B /* IDBIndexImpl.h in Headers */,
-				C585A6E411D4FB3D004C3E4B /* IDBIndexRequest.h in Headers */,
 				C585A6E711D4FB3D004C3E4B /* IDBKey.h in Headers */,
 				C585A6EA11D4FB3D004C3E4B /* IDBKeyRange.h in Headers */,
 				C585A6EC11D4FB3D004C3E4B /* IDBKeyTree.h in Headers */,
@@ -18753,7 +18750,6 @@
 				C585A68311D4FB08004C3E4B /* JSIDBDatabaseRequest.h in Headers */,
 				C585A68511D4FB08004C3E4B /* JSIDBErrorEvent.h in Headers */,
 				C585A68711D4FB08004C3E4B /* JSIDBEvent.h in Headers */,
-				C585A68911D4FB08004C3E4B /* JSIDBIndexRequest.h in Headers */,
 				C585A68B11D4FB08004C3E4B /* JSIDBKey.h in Headers */,
 				C585A68D11D4FB08004C3E4B /* JSIDBKeyRange.h in Headers */,
 				C585A68F11D4FB08004C3E4B /* JSIDBObjectStoreRequest.h in Headers */,
@@ -19885,6 +19881,10 @@
 				084D0E3F11F5816100081E1A /* SVGResourcesCache.h in Headers */,
 				085B05C311FAE16C004D65F6 /* SVGResourcesCycleSolver.h in Headers */,
 				7535BC9512020CFF0037EC45 /* SpeechInputClientMock.h in Headers */,
+				C572EE0B1201C736007D8F82 /* IDBIndex.h in Headers */,
+				C572EE0E1201C736007D8F82 /* IDBIndexBackendImpl.h in Headers */,
+				C572EE0F1201C736007D8F82 /* IDBIndexBackendInterface.h in Headers */,
+				C572EE1F1201C9BC007D8F82 /* JSIDBIndex.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -20925,8 +20925,6 @@
 				C585A6D711D4FB3D004C3E4B /* IDBDatabaseRequest.cpp in Sources */,
 				C585A6DA11D4FB3D004C3E4B /* IDBErrorEvent.cpp in Sources */,
 				C585A6DD11D4FB3D004C3E4B /* IDBEvent.cpp in Sources */,
-				C585A6E111D4FB3D004C3E4B /* IDBIndexImpl.cpp in Sources */,
-				C585A6E311D4FB3D004C3E4B /* IDBIndexRequest.cpp in Sources */,
 				C585A6E611D4FB3D004C3E4B /* IDBKey.cpp in Sources */,
 				C585A6E911D4FB3D004C3E4B /* IDBKeyRange.cpp in Sources */,
 				C585A6EE11D4FB3D004C3E4B /* IDBObjectStoreImpl.cpp in Sources */,
@@ -21218,7 +21216,6 @@
 				C585A68211D4FB08004C3E4B /* JSIDBDatabaseRequest.cpp in Sources */,
 				C585A68411D4FB08004C3E4B /* JSIDBErrorEvent.cpp in Sources */,
 				C585A68611D4FB08004C3E4B /* JSIDBEvent.cpp in Sources */,
-				C585A68811D4FB08004C3E4B /* JSIDBIndexRequest.cpp in Sources */,
 				C585A68A11D4FB08004C3E4B /* JSIDBKey.cpp in Sources */,
 				C585A65F11D4FAB2004C3E4B /* JSIDBKeyCustom.cpp in Sources */,
 				C585A68C11D4FB08004C3E4B /* JSIDBKeyRange.cpp in Sources */,
@@ -22286,6 +22283,9 @@
 				086A400611F6D6B7002CEC53 /* RenderSVGResourceContainer.cpp in Sources */,
 				085B05C211FAE16C004D65F6 /* SVGResourcesCycleSolver.cpp in Sources */,
 				7535BC9412020CFF0037EC45 /* SpeechInputClientMock.cpp in Sources */,
+				C572EE0A1201C736007D8F82 /* IDBIndex.cpp in Sources */,
+				C572EE0D1201C736007D8F82 /* IDBIndexBackendImpl.cpp in Sources */,
+				C572EE1E1201C9BC007D8F82 /* JSIDBIndex.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
diff --git a/WebCore/bindings/js/JSIDBAnyCustom.cpp b/WebCore/bindings/js/JSIDBAnyCustom.cpp
index b2058cc..92f725a 100644
--- a/WebCore/bindings/js/JSIDBAnyCustom.cpp
+++ b/WebCore/bindings/js/JSIDBAnyCustom.cpp
@@ -34,12 +34,12 @@
 #include "IDBAny.h"
 #include "IDBDatabaseRequest.h"
 #include "IDBFactory.h"
-#include "IDBIndexRequest.h"
+#include "IDBIndex.h"
 #include "IDBKey.h"
 #include "IDBObjectStoreRequest.h"
 #include "JSIDBDatabaseRequest.h"
 #include "JSIDBFactory.h"
-#include "JSIDBIndexRequest.h"
+#include "JSIDBIndex.h"
 #include "JSIDBKey.h"
 #include "JSIDBObjectStoreRequest.h"
 #include "SerializedScriptValue.h"
@@ -60,8 +60,8 @@ JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, IDBAny* idbAny)
         return jsNull();
     case IDBAny::IDBDatabaseRequestType:
         return toJS(exec, globalObject, idbAny->idbDatabaseRequest());
-    case IDBAny::IDBIndexRequestType:
-        return toJS(exec, globalObject, idbAny->idbIndexRequest());
+    case IDBAny::IDBIndexType:
+        return toJS(exec, globalObject, idbAny->idbIndex());
     case IDBAny::IDBKeyType:
         return toJS(exec, globalObject, idbAny->idbKey());
     case IDBAny::IDBObjectStoreRequestType:
diff --git a/WebCore/bindings/v8/custom/V8IDBAnyCustom.cpp b/WebCore/bindings/v8/custom/V8IDBAnyCustom.cpp
index b96f8ef..2ec3dcd 100644
--- a/WebCore/bindings/v8/custom/V8IDBAnyCustom.cpp
+++ b/WebCore/bindings/v8/custom/V8IDBAnyCustom.cpp
@@ -34,7 +34,7 @@
 #include "SerializedScriptValue.h"
 #include "V8IDBDatabaseRequest.h"
 #include "V8IDBFactory.h"
-#include "V8IDBIndexRequest.h"
+#include "V8IDBIndex.h"
 #include "V8IDBKey.h"
 #include "V8IDBObjectStoreRequest.h"
 
@@ -52,8 +52,8 @@ v8::Handle<v8::Value> toV8(IDBAny* impl)
         return v8::Null();
     case IDBAny::IDBDatabaseRequestType:
         return toV8(impl->idbDatabaseRequest());
-    case IDBAny::IDBIndexRequestType:
-        return toV8(impl->idbIndexRequest());
+    case IDBAny::IDBIndexType:
+        return toV8(impl->idbIndex());
     case IDBAny::IDBKeyType:
         return toV8(impl->idbKey());
     case IDBAny::IDBObjectStoreRequestType:
diff --git a/WebCore/storage/IDBAny.cpp b/WebCore/storage/IDBAny.cpp
index bf22b50..da0cb22 100644
--- a/WebCore/storage/IDBAny.cpp
+++ b/WebCore/storage/IDBAny.cpp
@@ -30,7 +30,7 @@
 
 #include "IDBDatabaseRequest.h"
 #include "IDBFactory.h"
-#include "IDBIndexRequest.h"
+#include "IDBIndex.h"
 #include "IDBObjectStoreRequest.h"
 #include "SerializedScriptValue.h"
 
@@ -56,10 +56,10 @@ PassRefPtr<IDBDatabaseRequest> IDBAny::idbDatabaseRequest()
     return m_idbDatabaseRequest;
 }
 
-PassRefPtr<IDBIndexRequest> IDBAny::idbIndexRequest()
+PassRefPtr<IDBIndex> IDBAny::idbIndex()
 {
-    ASSERT(m_type == IDBIndexRequestType);
-    return m_idbIndexRequest;
+    ASSERT(m_type == IDBIndexType);
+    return m_idbIndex;
 }
 
 PassRefPtr<IDBKey> IDBAny::idbKey()
@@ -99,11 +99,11 @@ void IDBAny::set(PassRefPtr<IDBDatabaseRequest> value)
     m_idbDatabaseRequest = value;
 }
 
-void IDBAny::set(PassRefPtr<IDBIndexRequest> value)
+void IDBAny::set(PassRefPtr<IDBIndex> value)
 {
     ASSERT(m_type == UndefinedType);
     m_type = IDBDatabaseRequestType;
-    m_idbIndexRequest = value;
+    m_idbIndex = value;
 }
 
 void IDBAny::set(PassRefPtr<IDBKey> value)
diff --git a/WebCore/storage/IDBAny.h b/WebCore/storage/IDBAny.h
index c41e523..a7859a1 100644
--- a/WebCore/storage/IDBAny.h
+++ b/WebCore/storage/IDBAny.h
@@ -35,7 +35,7 @@
 namespace WebCore {
 
 class IDBDatabaseRequest;
-class IDBIndexRequest;
+class IDBIndex;
 class IDBKey;
 class IDBObjectStoreRequest;
 class IDBFactory;
@@ -57,8 +57,8 @@ public:
         UndefinedType = 0,
         NullType,
         IDBDatabaseRequestType,
-        IDBIndexRequestType,
         IDBFactoryType,
+        IDBIndexType,
         IDBKeyType,
         IDBObjectStoreRequestType,
         SerializedScriptValueType
@@ -67,8 +67,8 @@ public:
     Type type() const { return m_type; }
     // Use type() to figure out which one of these you're allowed to call.
     PassRefPtr<IDBDatabaseRequest> idbDatabaseRequest();
-    PassRefPtr<IDBIndexRequest> idbIndexRequest();
     PassRefPtr<IDBFactory> idbFactory();
+    PassRefPtr<IDBIndex> idbIndex();
     PassRefPtr<IDBKey> idbKey();
     PassRefPtr<IDBObjectStoreRequest> idbObjectStoreRequest();
     PassRefPtr<SerializedScriptValue> serializedScriptValue();
@@ -76,8 +76,8 @@ public:
     // Set can only be called once.
     void set(); // For "null".
     void set(PassRefPtr<IDBDatabaseRequest>);
-    void set(PassRefPtr<IDBIndexRequest>);
     void set(PassRefPtr<IDBFactory>);
+    void set(PassRefPtr<IDBIndex>);
     void set(PassRefPtr<IDBKey>);
     void set(PassRefPtr<IDBObjectStoreRequest>);
     void set(PassRefPtr<SerializedScriptValue>);
@@ -89,8 +89,8 @@ private:
 
     // Only one of the following should ever be in use at any given time.
     RefPtr<IDBDatabaseRequest> m_idbDatabaseRequest;
-    RefPtr<IDBIndexRequest> m_idbIndexRequest;
     RefPtr<IDBFactory> m_idbFactory;
+    RefPtr<IDBIndex> m_idbIndex;
     RefPtr<IDBKey> m_idbKey;
     RefPtr<IDBObjectStoreRequest> m_idbObjectStoreRequest;
     RefPtr<SerializedScriptValue> m_serializedScriptValue;
diff --git a/WebCore/storage/IDBCallbacks.h b/WebCore/storage/IDBCallbacks.h
index 37fdc46..d79cdec 100644
--- a/WebCore/storage/IDBCallbacks.h
+++ b/WebCore/storage/IDBCallbacks.h
@@ -31,7 +31,7 @@
 
 #include "IDBDatabase.h"
 #include "IDBDatabaseError.h"
-#include "IDBIndex.h"
+#include "IDBIndexBackendInterface.h"
 #include "IDBKey.h"
 #include "IDBObjectStore.h"
 #include "SerializedScriptValue.h"
@@ -48,7 +48,7 @@ public:
     virtual void onError(PassRefPtr<IDBDatabaseError>) = 0;
     virtual void onSuccess() = 0; // For "null".
     virtual void onSuccess(PassRefPtr<IDBDatabase>) = 0;
-    virtual void onSuccess(PassRefPtr<IDBIndex>) = 0;
+    virtual void onSuccess(PassRefPtr<IDBIndexBackendInterface>) = 0;
     virtual void onSuccess(PassRefPtr<IDBKey>) = 0;
     virtual void onSuccess(PassRefPtr<IDBObjectStore>) = 0;
     virtual void onSuccess(PassRefPtr<SerializedScriptValue>) = 0;
diff --git a/WebCore/storage/IDBIndex.cpp b/WebCore/storage/IDBIndex.cpp
new file mode 100644
index 0000000..62c1da8
--- /dev/null
+++ b/WebCore/storage/IDBIndex.cpp
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "IDBIndex.h"
+
+#if ENABLE(INDEXED_DATABASE)
+
+namespace WebCore {
+
+IDBIndex::IDBIndex(PassRefPtr<IDBIndexBackendInterface> backend)
+    : m_backend(backend)
+{
+}
+
+IDBIndex::~IDBIndex()
+{
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
diff --git a/WebCore/storage/IDBIndex.h b/WebCore/storage/IDBIndex.h
index d0e8cab..5e716b7 100644
--- a/WebCore/storage/IDBIndex.h
+++ b/WebCore/storage/IDBIndex.h
@@ -26,21 +26,31 @@
 #ifndef IDBIndex_h
 #define IDBIndex_h
 
+#include "IDBIndexBackendInterface.h"
 #include "PlatformString.h"
-#include <wtf/PassRefPtr.h>
-#include <wtf/Threading.h>
+#include <wtf/Forward.h>
 
 #if ENABLE(INDEXED_DATABASE)
 
 namespace WebCore {
 
-class IDBIndex : public ThreadSafeShared<IDBIndex> {
+class IDBIndex : public RefCounted<IDBIndex> {
 public:
-    virtual ~IDBIndex() { }
+    static PassRefPtr<IDBIndex> create(PassRefPtr<IDBIndexBackendInterface> backend)
+    {
+        return adoptRef(new IDBIndex(backend));
+    }
+    ~IDBIndex();
 
-    virtual String name() = 0;
-    virtual String keyPath() = 0;
-    virtual bool unique() = 0;
+    // Implement the IDL
+    String name() const { return m_backend->name(); }
+    String keyPath() const { return m_backend->keyPath(); }
+    bool unique() const { return m_backend->unique(); }
+
+private:
+    IDBIndex(PassRefPtr<IDBIndexBackendInterface>);
+
+    RefPtr<IDBIndexBackendInterface> m_backend;
 };
 
 } // namespace WebCore
diff --git a/WebCore/storage/IDBIndex.idl b/WebCore/storage/IDBIndex.idl
new file mode 100644
index 0000000..e796b03
--- /dev/null
+++ b/WebCore/storage/IDBIndex.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+module storage {
+
+    interface [
+        Conditional=INDEXED_DATABASE
+    ] IDBIndex {
+        // FIXME: Complete this file.
+
+        readonly attribute DOMString name;
+        readonly attribute DOMString keyPath;
+        readonly attribute boolean unique;
+    };
+
+}
diff --git a/WebCore/storage/IDBIndexBackendImpl.cpp b/WebCore/storage/IDBIndexBackendImpl.cpp
new file mode 100644
index 0000000..406e37f
--- /dev/null
+++ b/WebCore/storage/IDBIndexBackendImpl.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "IDBIndexBackendImpl.h"
+
+#if ENABLE(INDEXED_DATABASE)
+
+namespace WebCore {
+
+IDBIndexBackendImpl::IDBIndexBackendImpl(const String& name, const String& keyPath, bool unique)
+    : m_name(name)
+    , m_keyPath(keyPath)
+    , m_unique(unique)
+{
+}
+
+IDBIndexBackendImpl::~IDBIndexBackendImpl()
+{
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
diff --git a/WebCore/storage/IDBIndexBackendImpl.h b/WebCore/storage/IDBIndexBackendImpl.h
new file mode 100644
index 0000000..ca3f01e
--- /dev/null
+++ b/WebCore/storage/IDBIndexBackendImpl.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef IDBIndexBackendImpl_h
+#define IDBIndexBackendImpl_h
+
+#include "IDBIndexBackendInterface.h"
+
+#if ENABLE(INDEXED_DATABASE)
+
+namespace WebCore {
+
+class IDBIndexBackendImpl : public IDBIndexBackendInterface {
+public:
+    static PassRefPtr<IDBIndexBackendImpl> create(const String& name, const String& keyPath, bool unique)
+    {
+        return adoptRef(new IDBIndexBackendImpl(name, keyPath, unique));
+    }
+    virtual ~IDBIndexBackendImpl();
+
+    // Implements IDBIndexBackendInterface.
+    virtual String name() { return m_name; }
+    virtual String keyPath() { return m_keyPath; }
+    virtual bool unique() { return m_unique; }
+
+private:
+    IDBIndexBackendImpl(const String& name, const String& keyPath, bool unique);
+
+    String m_name;
+    String m_keyPath;
+    bool m_unique;
+};
+
+} // namespace WebCore
+
+#endif
+
+#endif // IDBIndexBackendImpl_h
diff --git a/WebCore/storage/IDBIndexBackendInterface.h b/WebCore/storage/IDBIndexBackendInterface.h
new file mode 100644
index 0000000..0d1ea34
--- /dev/null
+++ b/WebCore/storage/IDBIndexBackendInterface.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef IDBIndexBackendInterface_h
+#define IDBIndexBackendInterface_h
+
+#include "PlatformString.h"
+#include <wtf/Forward.h>
+
+#if ENABLE(INDEXED_DATABASE)
+
+namespace WebCore {
+
+class IDBIndexBackendInterface : public ThreadSafeShared<IDBIndexBackendInterface> {
+public:
+    virtual ~IDBIndexBackendInterface() { }
+
+    virtual String name() = 0;
+    virtual String keyPath() = 0;
+    virtual bool unique() = 0;
+};
+
+} // namespace WebCore
+
+#endif
+
+#endif // IDBIndexBackendInterface_h
diff --git a/WebCore/storage/IDBIndexImpl.cpp b/WebCore/storage/IDBIndexImpl.cpp
deleted file mode 100644
index f78939a..0000000
--- a/WebCore/storage/IDBIndexImpl.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "IDBIndexImpl.h"
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-IDBIndexImpl::IDBIndexImpl(const String& name, const String& keyPath, bool unique)
-    : m_name(name)
-    , m_keyPath(keyPath)
-    , m_unique(unique)
-{
-}
-
-IDBIndexImpl::~IDBIndexImpl()
-{
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
diff --git a/WebCore/storage/IDBIndexImpl.h b/WebCore/storage/IDBIndexImpl.h
deleted file mode 100644
index b0034d5..0000000
--- a/WebCore/storage/IDBIndexImpl.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef IDBIndexImpl_h
-#define IDBIndexImpl_h
-
-#include "IDBIndex.h"
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-class IDBIndexImpl : public IDBIndex {
-public:
-    static PassRefPtr<IDBIndex> create(const String& name, const String& keyPath, bool unique)
-    {
-        return adoptRef(new IDBIndexImpl(name, keyPath, unique));
-    }
-    virtual ~IDBIndexImpl();
-
-    // Implements IDBIndex
-    virtual String name() { return m_name; }
-    virtual String keyPath() { return m_keyPath; }
-    virtual bool unique() { return m_unique; }
-
-private:
-    IDBIndexImpl(const String& name, const String& keyPath, bool unique);
-
-    String m_name;
-    String m_keyPath;
-    bool m_unique;
-};
-
-} // namespace WebCore
-
-#endif
-
-#endif // IDBIndexImpl_h
diff --git a/WebCore/storage/IDBIndexRequest.cpp b/WebCore/storage/IDBIndexRequest.cpp
deleted file mode 100644
index 30aee4b..0000000
--- a/WebCore/storage/IDBIndexRequest.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "IDBIndexRequest.h"
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-IDBIndexRequest::IDBIndexRequest(PassRefPtr<IDBIndex> idbIndex)
-    : m_idbIndex(idbIndex)
-{
-}
-
-IDBIndexRequest::~IDBIndexRequest()
-{
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
diff --git a/WebCore/storage/IDBIndexRequest.h b/WebCore/storage/IDBIndexRequest.h
deleted file mode 100644
index ce6fc57..0000000
--- a/WebCore/storage/IDBIndexRequest.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef IDBIndexRequest_h
-#define IDBIndexRequest_h
-
-#include "IDBIndex.h"
-#include "PlatformString.h"
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
-#include <wtf/RefPtr.h>
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-class IDBIndexRequest : public RefCounted<IDBIndexRequest> {
-public:
-    static PassRefPtr<IDBIndexRequest> create(PassRefPtr<IDBIndex> idbIndex)
-    {
-        return adoptRef(new IDBIndexRequest(idbIndex));
-    }
-    ~IDBIndexRequest();
-
-    // Implement the IDL
-    String name() const { return m_idbIndex->name(); }
-    String keyPath() const { return m_idbIndex->keyPath(); }
-    bool unique() const { return m_idbIndex->unique(); }
-
-private:
-    IDBIndexRequest(PassRefPtr<IDBIndex>);
-
-    RefPtr<IDBIndex> m_idbIndex;
-};
-
-} // namespace WebCore
-
-#endif
-
-#endif // IDBIndexRequest_h
diff --git a/WebCore/storage/IDBIndexRequest.idl b/WebCore/storage/IDBIndexRequest.idl
deleted file mode 100644
index ad35f52..0000000
--- a/WebCore/storage/IDBIndexRequest.idl
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-module storage {
-
-    interface [
-        Conditional=INDEXED_DATABASE
-    ] IDBIndexRequest {
-        // FIXME: Complete this file.
-
-        readonly attribute DOMString name;
-        readonly attribute DOMString keyPath;
-        readonly attribute boolean unique;
-    };
-
-}
diff --git a/WebCore/storage/IDBObjectStore.h b/WebCore/storage/IDBObjectStore.h
index e78e62a..4a53eb4 100644
--- a/WebCore/storage/IDBObjectStore.h
+++ b/WebCore/storage/IDBObjectStore.h
@@ -35,7 +35,7 @@ namespace WebCore {
 
 class DOMStringList;
 class IDBCallbacks;
-class IDBIndex;
+class IDBIndexBackendInterface;
 class IDBKey;
 class SerializedScriptValue;
 
@@ -52,7 +52,7 @@ public:
     virtual void remove(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks>) = 0;
 
     virtual void createIndex(const String& name, const String& keyPath, bool unique, PassRefPtr<IDBCallbacks>) = 0;
-    virtual PassRefPtr<IDBIndex> index(const String& name) = 0;
+    virtual PassRefPtr<IDBIndexBackendInterface> index(const String& name) = 0;
     virtual void removeIndex(const String& name, PassRefPtr<IDBCallbacks>) = 0;
 };
 
diff --git a/WebCore/storage/IDBObjectStoreImpl.cpp b/WebCore/storage/IDBObjectStoreImpl.cpp
index d678400..8c6444a 100755
--- a/WebCore/storage/IDBObjectStoreImpl.cpp
+++ b/WebCore/storage/IDBObjectStoreImpl.cpp
@@ -30,7 +30,7 @@
 #include "IDBBindingUtilities.h"
 #include "IDBCallbacks.h"
 #include "IDBDatabaseException.h"
-#include "IDBIndexImpl.h"
+#include "IDBIndexBackendImpl.h"
 #include "IDBKeyTree.h"
 
 #if ENABLE(INDEXED_DATABASE)
@@ -108,13 +108,13 @@ void IDBObjectStoreImpl::createIndex(const String& name, const String& keyPath,
         return;
     }
 
-    RefPtr<IDBIndex> index = IDBIndexImpl::create(name, keyPath, unique);
+    RefPtr<IDBIndexBackendInterface> index = IDBIndexBackendImpl::create(name, keyPath, unique);
     ASSERT(index->name() == name);
     m_indexes.set(name, index);
     callbacks->onSuccess(index.release());
 }
 
-PassRefPtr<IDBIndex> IDBObjectStoreImpl::index(const String& name)
+PassRefPtr<IDBIndexBackendInterface> IDBObjectStoreImpl::index(const String& name)
 {
     return m_indexes.get(name);
 }
diff --git a/WebCore/storage/IDBObjectStoreImpl.h b/WebCore/storage/IDBObjectStoreImpl.h
index c4d2eb8..f2c2e03 100644
--- a/WebCore/storage/IDBObjectStoreImpl.h
+++ b/WebCore/storage/IDBObjectStoreImpl.h
@@ -53,7 +53,7 @@ public:
     void remove(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks>);
 
     void createIndex(const String& name, const String& keyPath, bool unique, PassRefPtr<IDBCallbacks>);
-    PassRefPtr<IDBIndex> index(const String& name);
+    PassRefPtr<IDBIndexBackendInterface> index(const String& name);
     void removeIndex(const String& name, PassRefPtr<IDBCallbacks>);
 
 private:
@@ -63,7 +63,7 @@ private:
     String m_keyPath;
     bool m_autoIncrement;
 
-    typedef HashMap<String, RefPtr<IDBIndex> > IndexMap;
+    typedef HashMap<String, RefPtr<IDBIndexBackendInterface> > IndexMap;
     IndexMap m_indexes;
 
     typedef IDBKeyTree<SerializedScriptValue> Tree;
diff --git a/WebCore/storage/IDBObjectStoreRequest.cpp b/WebCore/storage/IDBObjectStoreRequest.cpp
index 3e095c1..0778214 100644
--- a/WebCore/storage/IDBObjectStoreRequest.cpp
+++ b/WebCore/storage/IDBObjectStoreRequest.cpp
@@ -28,7 +28,7 @@
 
 #include "DOMStringList.h"
 #include "IDBAny.h"
-#include "IDBIndexRequest.h"
+#include "IDBIndex.h"
 #include "IDBKey.h"
 #include "SerializedScriptValue.h"
 #include <wtf/UnusedParam.h>
@@ -94,11 +94,11 @@ PassRefPtr<IDBRequest> IDBObjectStoreRequest::createIndex(ScriptExecutionContext
     return request;
 }
 
-PassRefPtr<IDBIndexRequest> IDBObjectStoreRequest::index(const String& name)
+PassRefPtr<IDBIndex> IDBObjectStoreRequest::index(const String& name)
 {
-    RefPtr<IDBIndex> index = m_objectStore->index(name);
+    RefPtr<IDBIndexBackendInterface> index = m_objectStore->index(name);
     ASSERT(index); // FIXME: If this is null, we should raise a NOT_FOUND_ERR.
-    return IDBIndexRequest::create(index.release());
+    return IDBIndex::create(index.release());
 }
 
 PassRefPtr<IDBRequest> IDBObjectStoreRequest::removeIndex(ScriptExecutionContext* context, const String& name)
diff --git a/WebCore/storage/IDBObjectStoreRequest.h b/WebCore/storage/IDBObjectStoreRequest.h
index 86f64d6..bfd01f0 100644
--- a/WebCore/storage/IDBObjectStoreRequest.h
+++ b/WebCore/storage/IDBObjectStoreRequest.h
@@ -61,7 +61,7 @@ public:
     PassRefPtr<IDBRequest> remove(ScriptExecutionContext*, PassRefPtr<IDBKey> key);
 
     PassRefPtr<IDBRequest> createIndex(ScriptExecutionContext*, const String& name, const String& keyPath, bool unique = false);
-    PassRefPtr<IDBIndexRequest> index(const String& name);
+    PassRefPtr<IDBIndex> index(const String& name);
     PassRefPtr<IDBRequest> removeIndex(ScriptExecutionContext*, const String& name);
 
 private:
diff --git a/WebCore/storage/IDBObjectStoreRequest.idl b/WebCore/storage/IDBObjectStoreRequest.idl
index a816b73..6db6ad8 100644
--- a/WebCore/storage/IDBObjectStoreRequest.idl
+++ b/WebCore/storage/IDBObjectStoreRequest.idl
@@ -38,7 +38,7 @@ module storage {
         // FIXME: write openCursor
         [CallWith=ScriptExecutionContext] IDBRequest createIndex(in DOMString name, in [ConvertNullToNullString] DOMString keyPath, in [Optional] boolean unique);
         // FIXME: This needs to raise an IDBDatabaseException on errors.
-        IDBIndexRequest index(in DOMString name);
+        IDBIndex index(in DOMString name);
         [CallWith=ScriptExecutionContext] IDBRequest removeIndex(in DOMString name);
 
         readonly attribute DOMString name;
diff --git a/WebCore/storage/IDBRequest.cpp b/WebCore/storage/IDBRequest.cpp
index 78dd15a..b836cc3 100644
--- a/WebCore/storage/IDBRequest.cpp
+++ b/WebCore/storage/IDBRequest.cpp
@@ -36,7 +36,7 @@
 #include "EventListener.h"
 #include "EventNames.h"
 #include "IDBDatabaseRequest.h"
-#include "IDBIndexRequest.h"
+#include "IDBIndex.h"
 #include "IDBErrorEvent.h"
 #include "IDBObjectStoreRequest.h"
 #include "IDBSuccessEvent.h"
@@ -79,10 +79,10 @@ void IDBRequest::onSuccess(PassRefPtr<IDBDatabase> idbDatabase)
     m_result->set(IDBDatabaseRequest::create(idbDatabase));
 }
 
-void IDBRequest::onSuccess(PassRefPtr<IDBIndex> idbIndex)
+void IDBRequest::onSuccess(PassRefPtr<IDBIndexBackendInterface> backend)
 {
     onEventCommon();
-    m_result->set(IDBIndexRequest::create(idbIndex));
+    m_result->set(IDBIndex::create(backend));
 }
 
 void IDBRequest::onSuccess(PassRefPtr<IDBKey> idbKey)
diff --git a/WebCore/storage/IDBRequest.h b/WebCore/storage/IDBRequest.h
index c763d96..39f6a51 100644
--- a/WebCore/storage/IDBRequest.h
+++ b/WebCore/storage/IDBRequest.h
@@ -65,7 +65,7 @@ public:
     virtual void onError(PassRefPtr<IDBDatabaseError>);
     virtual void onSuccess(); // For "null".
     virtual void onSuccess(PassRefPtr<IDBDatabase>);
-    virtual void onSuccess(PassRefPtr<IDBIndex>);
+    virtual void onSuccess(PassRefPtr<IDBIndexBackendInterface>);
     virtual void onSuccess(PassRefPtr<IDBKey>);
     virtual void onSuccess(PassRefPtr<IDBObjectStore>);
     virtual void onSuccess(PassRefPtr<SerializedScriptValue>);
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index b1e4989..06e5e8e 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,40 @@
+2010-07-29  Jeremy Orlow  <jorlow at chromium.org>
+
+        Reviewed by Steve Block.
+
+        Rename all the IDBIndex classses to match the latest conventions
+        https://bugs.webkit.org/show_bug.cgi?id=43190
+
+        Fix up stuff in WebKit layer to handle the renamings in WebCore.
+
+        * WebKit.gyp:
+        * src/IDBCallbacksProxy.cpp:
+        (WebCore::IDBCallbacksProxy::onSuccess):
+        * src/IDBCallbacksProxy.h:
+        * src/IDBIndexBackendProxy.cpp: Added.
+        (WebCore::IDBIndexBackendProxy::create):
+        (WebCore::IDBIndexBackendProxy::IDBIndexBackendProxy):
+        (WebCore::IDBIndexBackendProxy::~IDBIndexBackendProxy):
+        (WebCore::IDBIndexBackendProxy::name):
+        (WebCore::IDBIndexBackendProxy::keyPath):
+        (WebCore::IDBIndexBackendProxy::unique):
+        * src/IDBIndexBackendProxy.h: Added.
+        * src/IDBIndexProxy.cpp: Removed.
+        * src/IDBIndexProxy.h: Removed.
+        * src/IDBObjectStoreProxy.cpp:
+        (WebCore::IDBObjectStoreProxy::index):
+        * src/IDBObjectStoreProxy.h:
+        * src/WebIDBCallbacksImpl.cpp:
+        (WebCore::WebIDBCallbacksImpl::onSuccess):
+        * src/WebIDBIndexImpl.cpp:
+        (WebKit::WebIDBIndexImpl::WebIDBIndexImpl):
+        (WebKit::WebIDBIndexImpl::name):
+        (WebKit::WebIDBIndexImpl::keyPath):
+        (WebKit::WebIDBIndexImpl::unique):
+        * src/WebIDBIndexImpl.h:
+        * src/WebIDBObjectStoreImpl.cpp:
+        (WebKit::WebIDBObjectStoreImpl::index):
+
 2010-07-30  Satish Sampath  <satish at chromium.org>
 
         Reviewed by Jeremy Orlow.
diff --git a/WebKit/chromium/WebKit.gyp b/WebKit/chromium/WebKit.gyp
index ec96a50..0138554 100644
--- a/WebKit/chromium/WebKit.gyp
+++ b/WebKit/chromium/WebKit.gyp
@@ -323,8 +323,8 @@
                 'src/IDBDatabaseProxy.h',
                 'src/IDBFactoryBackendProxy.cpp',
                 'src/IDBFactoryBackendProxy.h',
-                'src/IDBIndexProxy.cpp',
-                'src/IDBIndexProxy.h',
+                'src/IDBIndexBackendProxy.cpp',
+                'src/IDBIndexBackendProxy.h',
                 'src/IDBObjectStoreProxy.cpp',
                 'src/IDBObjectStoreProxy.h',
                 'src/InspectorClientImpl.cpp',
diff --git a/WebKit/chromium/src/IDBCallbacksProxy.cpp b/WebKit/chromium/src/IDBCallbacksProxy.cpp
index 3591bee..4489e9b 100644
--- a/WebKit/chromium/src/IDBCallbacksProxy.cpp
+++ b/WebKit/chromium/src/IDBCallbacksProxy.cpp
@@ -75,9 +75,9 @@ void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBDatabase> idbDatabase)
     m_callbacks.clear();
 }
 
-void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBIndex> idbIndex)
+void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBIndexBackendInterface> backend)
 {
-    m_callbacks->onSuccess(new WebKit::WebIDBIndexImpl(idbIndex));
+    m_callbacks->onSuccess(new WebKit::WebIDBIndexImpl(backend));
     m_callbacks.clear();
 }
 
diff --git a/WebKit/chromium/src/IDBCallbacksProxy.h b/WebKit/chromium/src/IDBCallbacksProxy.h
index c5a8858..10fc31a 100644
--- a/WebKit/chromium/src/IDBCallbacksProxy.h
+++ b/WebKit/chromium/src/IDBCallbacksProxy.h
@@ -50,7 +50,7 @@ public:
     virtual void onError(PassRefPtr<IDBDatabaseError>);
     virtual void onSuccess(); // For "null".
     virtual void onSuccess(PassRefPtr<IDBDatabase>);
-    virtual void onSuccess(PassRefPtr<IDBIndex>);
+    virtual void onSuccess(PassRefPtr<IDBIndexBackendInterface>);
     virtual void onSuccess(PassRefPtr<IDBKey>);
     virtual void onSuccess(PassRefPtr<IDBObjectStore>);
     virtual void onSuccess(PassRefPtr<SerializedScriptValue>);
diff --git a/WebKit/chromium/src/IDBIndexBackendProxy.cpp b/WebKit/chromium/src/IDBIndexBackendProxy.cpp
new file mode 100644
index 0000000..5f1b9d9
--- /dev/null
+++ b/WebKit/chromium/src/IDBIndexBackendProxy.cpp
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "IDBIndexBackendProxy.h"
+
+#include "WebIDBDatabaseError.h"
+#include "WebIDBIndex.h"
+
+#if ENABLE(INDEXED_DATABASE)
+
+namespace WebCore {
+
+PassRefPtr<IDBIndexBackendInterface> IDBIndexBackendProxy::create(PassOwnPtr<WebKit::WebIDBIndex> index)
+{
+    return adoptRef(new IDBIndexBackendProxy(index));
+}
+
+IDBIndexBackendProxy::IDBIndexBackendProxy(PassOwnPtr<WebKit::WebIDBIndex> index)
+    : m_webIDBIndex(index)
+{
+}
+
+IDBIndexBackendProxy::~IDBIndexBackendProxy()
+{
+}
+
+String IDBIndexBackendProxy::name()
+{
+    return m_webIDBIndex->name();
+}
+
+String IDBIndexBackendProxy::keyPath()
+{
+    return m_webIDBIndex->keyPath();
+}
+
+bool IDBIndexBackendProxy::unique()
+{
+    return m_webIDBIndex->unique();
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
diff --git a/WebKit/chromium/src/IDBIndexBackendProxy.h b/WebKit/chromium/src/IDBIndexBackendProxy.h
new file mode 100644
index 0000000..1b378dd
--- /dev/null
+++ b/WebKit/chromium/src/IDBIndexBackendProxy.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef IDBIndexBackendProxy_h
+#define IDBIndexBackendProxy_h
+
+#include "IDBIndexBackendInterface.h"
+#include <wtf/OwnPtr.h>
+#include <wtf/PassOwnPtr.h>
+
+#if ENABLE(INDEXED_DATABASE)
+
+namespace WebKit { class WebIDBIndex; }
+
+namespace WebCore {
+
+class IDBIndexBackendProxy : public IDBIndexBackendInterface {
+public:
+    static PassRefPtr<IDBIndexBackendInterface> create(PassOwnPtr<WebKit::WebIDBIndex>);
+    virtual ~IDBIndexBackendProxy();
+
+    virtual String name();
+    virtual String keyPath();
+    virtual bool unique();
+
+    // FIXME: Add other methods.
+
+private:
+    IDBIndexBackendProxy(PassOwnPtr<WebKit::WebIDBIndex>);
+
+    OwnPtr<WebKit::WebIDBIndex> m_webIDBIndex;
+};
+
+} // namespace WebCore
+
+#endif
+
+#endif // IDBIndexBackendProxy_h
diff --git a/WebKit/chromium/src/IDBIndexProxy.cpp b/WebKit/chromium/src/IDBIndexProxy.cpp
deleted file mode 100644
index f80eff3..0000000
--- a/WebKit/chromium/src/IDBIndexProxy.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "IDBIndexProxy.h"
-
-#include "WebIDBDatabaseError.h"
-#include "WebIDBIndex.h"
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-PassRefPtr<IDBIndex> IDBIndexProxy::create(PassOwnPtr<WebKit::WebIDBIndex> Index)
-{
-    return adoptRef(new IDBIndexProxy(Index));
-}
-
-IDBIndexProxy::IDBIndexProxy(PassOwnPtr<WebKit::WebIDBIndex> Index)
-    : m_webIDBIndex(Index)
-{
-}
-
-IDBIndexProxy::~IDBIndexProxy()
-{
-}
-
-String IDBIndexProxy::name()
-{
-    return m_webIDBIndex->name();
-}
-
-String IDBIndexProxy::keyPath()
-{
-    return m_webIDBIndex->keyPath();
-}
-
-bool IDBIndexProxy::unique()
-{
-    return m_webIDBIndex->unique();
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
diff --git a/WebKit/chromium/src/IDBIndexProxy.h b/WebKit/chromium/src/IDBIndexProxy.h
deleted file mode 100644
index 35e6b30..0000000
--- a/WebKit/chromium/src/IDBIndexProxy.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef IDBIndexProxy_h
-#define IDBIndexProxy_h
-
-#include "IDBIndex.h"
-#include <wtf/OwnPtr.h>
-#include <wtf/PassOwnPtr.h>
-#include <wtf/PassRefPtr.h>
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebKit { class WebIDBIndex; }
-
-namespace WebCore {
-
-class IDBIndexProxy : public IDBIndex {
-public:
-    static PassRefPtr<IDBIndex> create(PassOwnPtr<WebKit::WebIDBIndex>);
-    virtual ~IDBIndexProxy();
-
-    virtual String name();
-    virtual String keyPath();
-    virtual bool unique();
-
-    // FIXME: Add other methods.
-
-private:
-    IDBIndexProxy(PassOwnPtr<WebKit::WebIDBIndex>);
-
-    OwnPtr<WebKit::WebIDBIndex> m_webIDBIndex;
-};
-
-} // namespace WebCore
-
-#endif
-
-#endif // IDBIndexProxy_h
diff --git a/WebKit/chromium/src/IDBObjectStoreProxy.cpp b/WebKit/chromium/src/IDBObjectStoreProxy.cpp
index cec4ed3..858ed20 100755
--- a/WebKit/chromium/src/IDBObjectStoreProxy.cpp
+++ b/WebKit/chromium/src/IDBObjectStoreProxy.cpp
@@ -28,7 +28,7 @@
 
 #include "DOMStringList.h"
 #include "IDBCallbacks.h"
-#include "IDBIndexProxy.h"
+#include "IDBIndexBackendProxy.h"
 #include "WebIDBCallbacksImpl.h"
 #include "WebIDBIndex.h"
 #include "WebIDBKey.h"
@@ -88,12 +88,12 @@ void IDBObjectStoreProxy::createIndex(const String& name, const String& keyPath,
     m_webIDBObjectStore->createIndex(name, keyPath, unique, new WebIDBCallbacksImpl(callbacks));
 }
 
-PassRefPtr<IDBIndex> IDBObjectStoreProxy::index(const String& name)
+PassRefPtr<IDBIndexBackendInterface> IDBObjectStoreProxy::index(const String& name)
 {
     WebKit::WebIDBIndex* index = m_webIDBObjectStore->index(name);
     if (!index)
         return 0;
-    return IDBIndexProxy::create(index);
+    return IDBIndexBackendProxy::create(index);
 }
 
 void IDBObjectStoreProxy::removeIndex(const String& name, PassRefPtr<IDBCallbacks> callbacks)
diff --git a/WebKit/chromium/src/IDBObjectStoreProxy.h b/WebKit/chromium/src/IDBObjectStoreProxy.h
index b8e4a01..b380bdc 100755
--- a/WebKit/chromium/src/IDBObjectStoreProxy.h
+++ b/WebKit/chromium/src/IDBObjectStoreProxy.h
@@ -37,9 +37,6 @@ namespace WebKit { class WebIDBObjectStore; }
 
 namespace WebCore {
 
-class DOMStringList;
-class IDBIndex;
-
 class IDBObjectStoreProxy : public IDBObjectStore {
 public:
     static PassRefPtr<IDBObjectStore> create(PassOwnPtr<WebKit::WebIDBObjectStore>);
@@ -54,7 +51,7 @@ public:
     void remove(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks>);
 
     void createIndex(const String& name, const String& keyPath, bool unique, PassRefPtr<IDBCallbacks>);
-    PassRefPtr<IDBIndex> index(const String& name);
+    PassRefPtr<IDBIndexBackendInterface> index(const String& name);
     void removeIndex(const String& name, PassRefPtr<IDBCallbacks>);
 
 private:
diff --git a/WebKit/chromium/src/WebIDBCallbacksImpl.cpp b/WebKit/chromium/src/WebIDBCallbacksImpl.cpp
index 21c9eed..dbf7d85 100644
--- a/WebKit/chromium/src/WebIDBCallbacksImpl.cpp
+++ b/WebKit/chromium/src/WebIDBCallbacksImpl.cpp
@@ -29,7 +29,7 @@
 #include "IDBCallbacks.h"
 #include "IDBDatabaseError.h"
 #include "IDBDatabaseProxy.h"
-#include "IDBIndexProxy.h"
+#include "IDBIndexBackendProxy.h"
 #include "IDBKey.h"
 #include "IDBObjectStoreProxy.h"
 #include "WebIDBCallbacks.h"
@@ -79,7 +79,7 @@ void WebIDBCallbacksImpl::onSuccess(const WebKit::WebIDBKey& key)
 
 void WebIDBCallbacksImpl::onSuccess(WebKit::WebIDBIndex* webKitInstance)
 {
-    m_callbacks->onSuccess(IDBIndexProxy::create(webKitInstance));
+    m_callbacks->onSuccess(IDBIndexBackendProxy::create(webKitInstance));
     m_callbacks.clear();
 }
 
diff --git a/WebKit/chromium/src/WebIDBIndexImpl.cpp b/WebKit/chromium/src/WebIDBIndexImpl.cpp
index 304217c..777ec32 100644
--- a/WebKit/chromium/src/WebIDBIndexImpl.cpp
+++ b/WebKit/chromium/src/WebIDBIndexImpl.cpp
@@ -34,8 +34,8 @@ using namespace WebCore;
 
 namespace WebKit {
 
-WebIDBIndexImpl::WebIDBIndexImpl(PassRefPtr<IDBIndex> idbIndex)
-    : m_idbIndex(idbIndex)
+WebIDBIndexImpl::WebIDBIndexImpl(PassRefPtr<IDBIndexBackendInterface> backend)
+    : m_backend(backend)
 {
 }
 
@@ -45,17 +45,17 @@ WebIDBIndexImpl::~WebIDBIndexImpl()
 
 WebString WebIDBIndexImpl::name() const
 {
-    return m_idbIndex->name();
+    return m_backend->name();
 }
 
 WebString WebIDBIndexImpl::keyPath() const
 {
-    return m_idbIndex->keyPath();
+    return m_backend->keyPath();
 }
 
 bool WebIDBIndexImpl::unique() const
 {
-    return m_idbIndex->unique();
+    return m_backend->unique();
 }
 
 } // namespace WebCore
diff --git a/WebKit/chromium/src/WebIDBIndexImpl.h b/WebKit/chromium/src/WebIDBIndexImpl.h
index e1f0538..73f3819 100644
--- a/WebKit/chromium/src/WebIDBIndexImpl.h
+++ b/WebKit/chromium/src/WebIDBIndexImpl.h
@@ -31,14 +31,14 @@
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefPtr.h>
 
-namespace WebCore { class IDBIndex; }
+namespace WebCore { class IDBIndexBackendInterface; }
 
 namespace WebKit {
 
 // See comment in WebIndexedDatabase for a high level overview these classes.
 class WebIDBIndexImpl : public WebIDBIndex {
 public:
-    WebIDBIndexImpl(WTF::PassRefPtr<WebCore::IDBIndex> idbIndex);
+    WebIDBIndexImpl(WTF::PassRefPtr<WebCore::IDBIndexBackendInterface>);
     virtual ~WebIDBIndexImpl();
 
     virtual WebString name() const;
@@ -46,7 +46,7 @@ public:
     virtual bool unique() const;
 
 private:
-    WTF::RefPtr<WebCore::IDBIndex> m_idbIndex;
+    WTF::RefPtr<WebCore::IDBIndexBackendInterface> m_backend;
 };
 
 } // namespace WebKit
diff --git a/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp b/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp
index d8e98db..7b6a32a 100755
--- a/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp
+++ b/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp
@@ -85,7 +85,7 @@ void WebIDBObjectStoreImpl::createIndex(const WebString& name, const WebString&
 
 WebIDBIndex* WebIDBObjectStoreImpl::index(const WebString& name)
 {
-    RefPtr<IDBIndex> index = m_objectStore->index(name);
+    RefPtr<IDBIndexBackendInterface> index = m_objectStore->index(name);
     if (!index)
         return 0;
     return new WebIDBIndexImpl(index);

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list