2010-07-29  Jeremy Orlow  <jorlow@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@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 @@
     $(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 @@
     $(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 @@
 	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 @@
     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 @@
     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@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@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 @@
     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 @@
 	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/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 @@
     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 @@
         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 @@
         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.cpp"

+				>

+			</File>

+			<File

 				RelativePath="..\storage\IDBIndex.h"

 				>

 			</File>

 			<File

-				RelativePath="..\storage\IDBIndexImpl.cpp"

+				RelativePath="..\storage\IDBIndexBackendInterface.h"

 				>

 			</File>

 			<File

-				RelativePath="..\storage\IDBIndexImpl.h"

+				RelativePath="..\storage\IDBIndexBackendImpl.cpp"

 				>

 			</File>

 			<File

-				RelativePath="..\storage\IDBIndexRequest.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 @@
         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 @@
         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 @@
     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 @@
     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 @@
         UndefinedType = 0,
         NullType,
         IDBDatabaseRequestType,
-        IDBIndexRequestType,
         IDBFactoryType,
+        IDBIndexType,
         IDBKeyType,
         IDBObjectStoreRequestType,
         SerializedScriptValueType
@@ -67,8 +67,8 @@
     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 @@
     // 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 @@
 
     // 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 @@
     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/IDBIndexRequest.cpp b/WebCore/storage/IDBIndex.cpp
similarity index 90%
rename from WebCore/storage/IDBIndexRequest.cpp
rename to WebCore/storage/IDBIndex.cpp
index 30aee4b..62c1da8 100644
--- a/WebCore/storage/IDBIndexRequest.cpp
+++ b/WebCore/storage/IDBIndex.cpp
@@ -24,18 +24,18 @@
  */
 
 #include "config.h"
-#include "IDBIndexRequest.h"
+#include "IDBIndex.h"
 
 #if ENABLE(INDEXED_DATABASE)
 
 namespace WebCore {
 
-IDBIndexRequest::IDBIndexRequest(PassRefPtr<IDBIndex> idbIndex)
-    : m_idbIndex(idbIndex)
+IDBIndex::IDBIndex(PassRefPtr<IDBIndexBackendInterface> backend)
+    : m_backend(backend)
 {
 }
 
-IDBIndexRequest::~IDBIndexRequest()
+IDBIndex::~IDBIndex()
 {
 }
 
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/IDBIndexRequest.idl b/WebCore/storage/IDBIndex.idl
similarity index 98%
rename from WebCore/storage/IDBIndexRequest.idl
rename to WebCore/storage/IDBIndex.idl
index ad35f52..e796b03 100644
--- a/WebCore/storage/IDBIndexRequest.idl
+++ b/WebCore/storage/IDBIndex.idl
@@ -27,7 +27,7 @@
 
     interface [
         Conditional=INDEXED_DATABASE
-    ] IDBIndexRequest {
+    ] IDBIndex {
         // FIXME: Complete this file.
 
         readonly attribute DOMString name;
diff --git a/WebCore/storage/IDBIndexImpl.cpp b/WebCore/storage/IDBIndexBackendImpl.cpp
similarity index 89%
rename from WebCore/storage/IDBIndexImpl.cpp
rename to WebCore/storage/IDBIndexBackendImpl.cpp
index f78939a..406e37f 100644
--- a/WebCore/storage/IDBIndexImpl.cpp
+++ b/WebCore/storage/IDBIndexBackendImpl.cpp
@@ -24,20 +24,20 @@
  */
 
 #include "config.h"
-#include "IDBIndexImpl.h"
+#include "IDBIndexBackendImpl.h"
 
 #if ENABLE(INDEXED_DATABASE)
 
 namespace WebCore {
 
-IDBIndexImpl::IDBIndexImpl(const String& name, const String& keyPath, bool unique)
+IDBIndexBackendImpl::IDBIndexBackendImpl(const String& name, const String& keyPath, bool unique)
     : m_name(name)
     , m_keyPath(keyPath)
     , m_unique(unique)
 {
 }
 
-IDBIndexImpl::~IDBIndexImpl()
+IDBIndexBackendImpl::~IDBIndexBackendImpl()
 {
 }
 
diff --git a/WebCore/storage/IDBIndexImpl.h b/WebCore/storage/IDBIndexBackendImpl.h
similarity index 75%
rename from WebCore/storage/IDBIndexImpl.h
rename to WebCore/storage/IDBIndexBackendImpl.h
index b0034d5..ca3f01e 100644
--- a/WebCore/storage/IDBIndexImpl.h
+++ b/WebCore/storage/IDBIndexBackendImpl.h
@@ -23,30 +23,30 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef IDBIndexImpl_h
-#define IDBIndexImpl_h
+#ifndef IDBIndexBackendImpl_h
+#define IDBIndexBackendImpl_h
 
-#include "IDBIndex.h"
+#include "IDBIndexBackendInterface.h"
 
 #if ENABLE(INDEXED_DATABASE)
 
 namespace WebCore {
 
-class IDBIndexImpl : public IDBIndex {
+class IDBIndexBackendImpl : public IDBIndexBackendInterface {
 public:
-    static PassRefPtr<IDBIndex> create(const String& name, const String& keyPath, bool unique)
+    static PassRefPtr<IDBIndexBackendImpl> create(const String& name, const String& keyPath, bool unique)
     {
-        return adoptRef(new IDBIndexImpl(name, keyPath, unique));
+        return adoptRef(new IDBIndexBackendImpl(name, keyPath, unique));
     }
-    virtual ~IDBIndexImpl();
+    virtual ~IDBIndexBackendImpl();
 
-    // Implements IDBIndex
+    // Implements IDBIndexBackendInterface.
     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);
+    IDBIndexBackendImpl(const String& name, const String& keyPath, bool unique);
 
     String m_name;
     String m_keyPath;
@@ -57,4 +57,4 @@
 
 #endif
 
-#endif // IDBIndexImpl_h
+#endif // IDBIndexBackendImpl_h
diff --git a/WebCore/storage/IDBIndexRequest.cpp b/WebCore/storage/IDBIndexBackendInterface.h
similarity index 77%
copy from WebCore/storage/IDBIndexRequest.cpp
copy to WebCore/storage/IDBIndexBackendInterface.h
index 30aee4b..0d1ea34 100644
--- a/WebCore/storage/IDBIndexRequest.cpp
+++ b/WebCore/storage/IDBIndexBackendInterface.h
@@ -23,22 +23,27 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "config.h"
-#include "IDBIndexRequest.h"
+#ifndef IDBIndexBackendInterface_h
+#define IDBIndexBackendInterface_h
+
+#include "PlatformString.h"
+#include <wtf/Forward.h>
 
 #if ENABLE(INDEXED_DATABASE)
 
 namespace WebCore {
 
-IDBIndexRequest::IDBIndexRequest(PassRefPtr<IDBIndex> idbIndex)
-    : m_idbIndex(idbIndex)
-{
-}
+class IDBIndexBackendInterface : public ThreadSafeShared<IDBIndexBackendInterface> {
+public:
+    virtual ~IDBIndexBackendInterface() { }
 
-IDBIndexRequest::~IDBIndexRequest()
-{
-}
+    virtual String name() = 0;
+    virtual String keyPath() = 0;
+    virtual bool unique() = 0;
+};
 
 } // namespace WebCore
 
-#endif // ENABLE(INDEXED_DATABASE)
+#endif
+
+#endif // IDBIndexBackendInterface_h
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/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 @@
 
 class DOMStringList;
 class IDBCallbacks;
-class IDBIndex;
+class IDBIndexBackendInterface;
 class IDBKey;
 class SerializedScriptValue;
 
@@ -52,7 +52,7 @@
     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 @@
         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 @@
     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 @@
     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 @@
     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 @@
     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 @@
         // 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 @@
     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 @@
     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@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@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 @@
     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 @@
     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/IDBIndexProxy.cpp b/WebKit/chromium/src/IDBIndexBackendProxy.cpp
similarity index 78%
rename from WebKit/chromium/src/IDBIndexProxy.cpp
rename to WebKit/chromium/src/IDBIndexBackendProxy.cpp
index f80eff3..5f1b9d9 100644
--- a/WebKit/chromium/src/IDBIndexProxy.cpp
+++ b/WebKit/chromium/src/IDBIndexBackendProxy.cpp
@@ -24,7 +24,7 @@
  */
 
 #include "config.h"
-#include "IDBIndexProxy.h"
+#include "IDBIndexBackendProxy.h"
 
 #include "WebIDBDatabaseError.h"
 #include "WebIDBIndex.h"
@@ -33,31 +33,31 @@
 
 namespace WebCore {
 
-PassRefPtr<IDBIndex> IDBIndexProxy::create(PassOwnPtr<WebKit::WebIDBIndex> Index)
+PassRefPtr<IDBIndexBackendInterface> IDBIndexBackendProxy::create(PassOwnPtr<WebKit::WebIDBIndex> index)
 {
-    return adoptRef(new IDBIndexProxy(Index));
+    return adoptRef(new IDBIndexBackendProxy(index));
 }
 
-IDBIndexProxy::IDBIndexProxy(PassOwnPtr<WebKit::WebIDBIndex> Index)
-    : m_webIDBIndex(Index)
+IDBIndexBackendProxy::IDBIndexBackendProxy(PassOwnPtr<WebKit::WebIDBIndex> index)
+    : m_webIDBIndex(index)
 {
 }
 
-IDBIndexProxy::~IDBIndexProxy()
+IDBIndexBackendProxy::~IDBIndexBackendProxy()
 {
 }
 
-String IDBIndexProxy::name()
+String IDBIndexBackendProxy::name()
 {
     return m_webIDBIndex->name();
 }
 
-String IDBIndexProxy::keyPath()
+String IDBIndexBackendProxy::keyPath()
 {
     return m_webIDBIndex->keyPath();
 }
 
-bool IDBIndexProxy::unique()
+bool IDBIndexBackendProxy::unique()
 {
     return m_webIDBIndex->unique();
 }
diff --git a/WebKit/chromium/src/IDBIndexProxy.h b/WebKit/chromium/src/IDBIndexBackendProxy.h
similarity index 81%
rename from WebKit/chromium/src/IDBIndexProxy.h
rename to WebKit/chromium/src/IDBIndexBackendProxy.h
index 35e6b30..1b378dd 100644
--- a/WebKit/chromium/src/IDBIndexProxy.h
+++ b/WebKit/chromium/src/IDBIndexBackendProxy.h
@@ -23,13 +23,12 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef IDBIndexProxy_h
-#define IDBIndexProxy_h
+#ifndef IDBIndexBackendProxy_h
+#define IDBIndexBackendProxy_h
 
-#include "IDBIndex.h"
+#include "IDBIndexBackendInterface.h"
 #include <wtf/OwnPtr.h>
 #include <wtf/PassOwnPtr.h>
-#include <wtf/PassRefPtr.h>
 
 #if ENABLE(INDEXED_DATABASE)
 
@@ -37,10 +36,10 @@
 
 namespace WebCore {
 
-class IDBIndexProxy : public IDBIndex {
+class IDBIndexBackendProxy : public IDBIndexBackendInterface {
 public:
-    static PassRefPtr<IDBIndex> create(PassOwnPtr<WebKit::WebIDBIndex>);
-    virtual ~IDBIndexProxy();
+    static PassRefPtr<IDBIndexBackendInterface> create(PassOwnPtr<WebKit::WebIDBIndex>);
+    virtual ~IDBIndexBackendProxy();
 
     virtual String name();
     virtual String keyPath();
@@ -49,7 +48,7 @@
     // FIXME: Add other methods.
 
 private:
-    IDBIndexProxy(PassOwnPtr<WebKit::WebIDBIndex>);
+    IDBIndexBackendProxy(PassOwnPtr<WebKit::WebIDBIndex>);
 
     OwnPtr<WebKit::WebIDBIndex> m_webIDBIndex;
 };
@@ -58,4 +57,4 @@
 
 #endif
 
-#endif // IDBIndexProxy_h
+#endif // IDBIndexBackendProxy_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 @@
     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 WebCore {
 
-class DOMStringList;
-class IDBIndex;
-
 class IDBObjectStoreProxy : public IDBObjectStore {
 public:
     static PassRefPtr<IDBObjectStore> create(PassOwnPtr<WebKit::WebIDBObjectStore>);
@@ -54,7 +51,7 @@
     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(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 @@
 
 namespace WebKit {
 
-WebIDBIndexImpl::WebIDBIndexImpl(PassRefPtr<IDBIndex> idbIndex)
-    : m_idbIndex(idbIndex)
+WebIDBIndexImpl::WebIDBIndexImpl(PassRefPtr<IDBIndexBackendInterface> backend)
+    : m_backend(backend)
 {
 }
 
@@ -45,17 +45,17 @@
 
 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 @@
     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 @@
 
 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);