<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[191980] trunk/Source/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/191980">191980</a></dd>
<dt>Author</dt> <dd>beidson@apple.com</dd>
<dt>Date</dt> <dd>2015-11-03 14:24:14 -0800 (Tue, 03 Nov 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Modern IDB: Land empty IDBCursor/Index IDL implementations.
https://bugs.webkit.org/show_bug.cgi?id=150839

Reviewed by Alex Christensen.

No new tests (No change in behavior).

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:

* Modules/indexeddb/IDBIndex.h:

* Modules/indexeddb/client/IDBCursorImpl.cpp: Added.
(WebCore::IDBClient::IDBCursor::~IDBCursor):
(WebCore::IDBClient::IDBCursor::direction):
(WebCore::IDBClient::IDBCursor::key):
(WebCore::IDBClient::IDBCursor::primaryKey):
(WebCore::IDBClient::IDBCursor::value):
(WebCore::IDBClient::IDBCursor::source):
(WebCore::IDBClient::IDBCursor::update):
(WebCore::IDBClient::IDBCursor::advance):
(WebCore::IDBClient::IDBCursor::continueFunction):
(WebCore::IDBClient::IDBCursor::deleteFunction):
* Modules/indexeddb/client/IDBCursorImpl.h: Added.

* Modules/indexeddb/client/IDBCursorWithValueImpl.cpp: Added.
* Modules/indexeddb/client/IDBCursorWithValueImpl.h: Added.

* Modules/indexeddb/client/IDBIndexImpl.cpp: Added.
(WebCore::IDBClient::IDBIndex::~IDBIndex):
(WebCore::IDBClient::IDBIndex::name):
(WebCore::IDBClient::IDBIndex::objectStore):
(WebCore::IDBClient::IDBIndex::keyPathAny):
(WebCore::IDBClient::IDBIndex::keyPath):
(WebCore::IDBClient::IDBIndex::unique):
(WebCore::IDBClient::IDBIndex::multiEntry):
(WebCore::IDBClient::IDBIndex::openCursor):
(WebCore::IDBClient::IDBIndex::count):
(WebCore::IDBClient::IDBIndex::openKeyCursor):
(WebCore::IDBClient::IDBIndex::get):
(WebCore::IDBClient::IDBIndex::getKey):
* Modules/indexeddb/client/IDBIndexImpl.h: Copied from Source/WebCore/Modules/indexeddb/IDBIndex.h.

* Modules/indexeddb/legacy/LegacyIndex.h:
(WebCore::LegacyIndex::id):

* Modules/indexeddb/shared/IDBIndexInfo.cpp: Added.
* Modules/indexeddb/shared/IDBIndexInfo.h: Added.
(WebCore::IDBIndexInfo::name):
(WebCore::IDBIndexInfo::keyPath):
(WebCore::IDBIndexInfo::unique):
(WebCore::IDBIndexInfo::multiEntry):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBIndexh">trunk/Source/WebCore/Modules/indexeddb/IDBIndex.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddblegacyLegacyIndexh">trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyIndex.h</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreModulesindexeddbclientIDBCursorImplcpp">trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorImpl.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbclientIDBCursorImplh">trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorImpl.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbclientIDBCursorWithValueImplcpp">trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorWithValueImpl.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbclientIDBCursorWithValueImplh">trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorWithValueImpl.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbclientIDBIndexImplcpp">trunk/Source/WebCore/Modules/indexeddb/client/IDBIndexImpl.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbclientIDBIndexImplh">trunk/Source/WebCore/Modules/indexeddb/client/IDBIndexImpl.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbsharedIDBIndexInfocpp">trunk/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbsharedIDBIndexInfoh">trunk/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (191979 => 191980)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2015-11-03 22:18:11 UTC (rev 191979)
+++ trunk/Source/WebCore/CMakeLists.txt        2015-11-03 22:24:14 UTC (rev 191980)
</span><span class="lines">@@ -867,8 +867,11 @@
</span><span class="cx"> 
</span><span class="cx">     Modules/indexeddb/client/IDBAnyImpl.cpp
</span><span class="cx">     Modules/indexeddb/client/IDBConnectionToServer.cpp
</span><ins>+    Modules/indexeddb/client/IDBCursorImpl.cpp
+    Modules/indexeddb/client/IDBCursorWithValueImpl.cpp
</ins><span class="cx">     Modules/indexeddb/client/IDBDatabaseImpl.cpp
</span><span class="cx">     Modules/indexeddb/client/IDBFactoryImpl.cpp
</span><ins>+    Modules/indexeddb/client/IDBIndexImpl.cpp
</ins><span class="cx">     Modules/indexeddb/client/IDBObjectStoreImpl.cpp
</span><span class="cx">     Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp
</span><span class="cx">     Modules/indexeddb/client/IDBRequestImpl.cpp
</span><span class="lines">@@ -908,6 +911,7 @@
</span><span class="cx"> 
</span><span class="cx">     Modules/indexeddb/shared/IDBDatabaseInfo.cpp
</span><span class="cx">     Modules/indexeddb/shared/IDBError.cpp
</span><ins>+    Modules/indexeddb/shared/IDBIndexInfo.cpp
</ins><span class="cx">     Modules/indexeddb/shared/IDBObjectStoreInfo.cpp
</span><span class="cx">     Modules/indexeddb/shared/IDBRequestData.cpp
</span><span class="cx">     Modules/indexeddb/shared/IDBResourceIdentifier.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (191979 => 191980)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-11-03 22:18:11 UTC (rev 191979)
+++ trunk/Source/WebCore/ChangeLog        2015-11-03 22:24:14 UTC (rev 191980)
</span><span class="lines">@@ -1,3 +1,58 @@
</span><ins>+2015-11-03  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Modern IDB: Land empty IDBCursor/Index IDL implementations.
+        https://bugs.webkit.org/show_bug.cgi?id=150839
+
+        Reviewed by Alex Christensen.
+
+        No new tests (No change in behavior).
+
+        * CMakeLists.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+
+        * Modules/indexeddb/IDBIndex.h:
+        
+        * Modules/indexeddb/client/IDBCursorImpl.cpp: Added.
+        (WebCore::IDBClient::IDBCursor::~IDBCursor):
+        (WebCore::IDBClient::IDBCursor::direction):
+        (WebCore::IDBClient::IDBCursor::key):
+        (WebCore::IDBClient::IDBCursor::primaryKey):
+        (WebCore::IDBClient::IDBCursor::value):
+        (WebCore::IDBClient::IDBCursor::source):
+        (WebCore::IDBClient::IDBCursor::update):
+        (WebCore::IDBClient::IDBCursor::advance):
+        (WebCore::IDBClient::IDBCursor::continueFunction):
+        (WebCore::IDBClient::IDBCursor::deleteFunction):
+        * Modules/indexeddb/client/IDBCursorImpl.h: Added.
+        
+        * Modules/indexeddb/client/IDBCursorWithValueImpl.cpp: Added.
+        * Modules/indexeddb/client/IDBCursorWithValueImpl.h: Added.
+        
+        * Modules/indexeddb/client/IDBIndexImpl.cpp: Added.
+        (WebCore::IDBClient::IDBIndex::~IDBIndex):
+        (WebCore::IDBClient::IDBIndex::name):
+        (WebCore::IDBClient::IDBIndex::objectStore):
+        (WebCore::IDBClient::IDBIndex::keyPathAny):
+        (WebCore::IDBClient::IDBIndex::keyPath):
+        (WebCore::IDBClient::IDBIndex::unique):
+        (WebCore::IDBClient::IDBIndex::multiEntry):
+        (WebCore::IDBClient::IDBIndex::openCursor):
+        (WebCore::IDBClient::IDBIndex::count):
+        (WebCore::IDBClient::IDBIndex::openKeyCursor):
+        (WebCore::IDBClient::IDBIndex::get):
+        (WebCore::IDBClient::IDBIndex::getKey):
+        * Modules/indexeddb/client/IDBIndexImpl.h: Copied from Source/WebCore/Modules/indexeddb/IDBIndex.h.
+        
+        * Modules/indexeddb/legacy/LegacyIndex.h:
+        (WebCore::LegacyIndex::id):
+        
+        * Modules/indexeddb/shared/IDBIndexInfo.cpp: Added.
+        * Modules/indexeddb/shared/IDBIndexInfo.h: Added.
+        (WebCore::IDBIndexInfo::name):
+        (WebCore::IDBIndexInfo::keyPath):
+        (WebCore::IDBIndexInfo::unique):
+        (WebCore::IDBIndexInfo::multiEntry):
+
</ins><span class="cx"> 2015-11-03  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Addressing post-review comments on r191934.
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBIndexh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBIndex.h (191979 => 191980)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBIndex.h        2015-11-03 22:18:11 UTC (rev 191979)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBIndex.h        2015-11-03 22:24:14 UTC (rev 191980)
</span><span class="lines">@@ -48,13 +48,12 @@
</span><span class="cx">     virtual ~IDBIndex() { }
</span><span class="cx"> 
</span><span class="cx">     // Implement the IDL
</span><del>-    virtual const String name() const = 0;
</del><ins>+    virtual const String&amp; name() const = 0;
</ins><span class="cx">     virtual RefPtr&lt;IDBObjectStore&gt; objectStore() const = 0;
</span><span class="cx">     virtual RefPtr&lt;IDBAny&gt; keyPathAny() const = 0;
</span><del>-    virtual const IDBKeyPath keyPath() const = 0;
</del><ins>+    virtual const IDBKeyPath&amp; keyPath() const = 0;
</ins><span class="cx">     virtual bool unique() const = 0;
</span><span class="cx">     virtual bool multiEntry() const = 0;
</span><del>-    virtual int64_t id() const = 0;
</del><span class="cx"> 
</span><span class="cx">     virtual RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext*, ExceptionCode&amp;) = 0;
</span><span class="cx">     virtual RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext*, IDBKeyRange*, ExceptionCode&amp;) = 0;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbclientIDBCursorImplcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorImpl.cpp (0 => 191980)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorImpl.cpp                                (rev 0)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorImpl.cpp        2015-11-03 22:24:14 UTC (rev 191980)
</span><span class="lines">@@ -0,0 +1,91 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple 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 INC. 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 INC. 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 &quot;config.h&quot;
+#include &quot;IDBCursorImpl.h&quot;
+
+#if ENABLE(INDEXED_DATABASE)
+
+namespace WebCore {
+namespace IDBClient {
+
+IDBCursor::~IDBCursor()
+{
+}
+
+const String&amp; IDBCursor::direction() const
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+const Deprecated::ScriptValue&amp; IDBCursor::key() const
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+const Deprecated::ScriptValue&amp; IDBCursor::primaryKey() const
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+const Deprecated::ScriptValue&amp; IDBCursor::value() const
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+IDBAny* IDBCursor::source() const
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+RefPtr&lt;IDBRequest&gt; IDBCursor::update(JSC::ExecState&amp;, Deprecated::ScriptValue&amp;, ExceptionCode&amp;)
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+void IDBCursor::advance(unsigned long, ExceptionCode&amp;)
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+void IDBCursor::continueFunction(ScriptExecutionContext*, ExceptionCode&amp;)
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+void IDBCursor::continueFunction(ScriptExecutionContext*, const Deprecated::ScriptValue&amp;, ExceptionCode&amp;)
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+RefPtr&lt;IDBRequest&gt; IDBCursor::deleteFunction(ScriptExecutionContext*, ExceptionCode&amp;)
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+} // namespace IDBClient
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbclientIDBCursorImplh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorImpl.h (0 => 191980)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorImpl.h                                (rev 0)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorImpl.h        2015-11-03 22:24:14 UTC (rev 191980)
</span><span class="lines">@@ -0,0 +1,61 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple 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 INC. 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 INC. 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 IDBCursorImpl_h
+#define IDBCursorImpl_h
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include &quot;IDBCursorWithValue.h&quot;
+
+namespace WebCore {
+namespace IDBClient {
+
+class IDBCursor : public WebCore::IDBCursorWithValue {
+public:
+    virtual ~IDBCursor();
+
+    // Implement the IDL
+    virtual const String&amp; direction() const override final;
+    virtual const Deprecated::ScriptValue&amp; key() const override final;
+    virtual const Deprecated::ScriptValue&amp; primaryKey() const override final;
+    virtual const Deprecated::ScriptValue&amp; value() const override final;
+    virtual IDBAny* source() const override final;
+
+    virtual RefPtr&lt;IDBRequest&gt; update(JSC::ExecState&amp;, Deprecated::ScriptValue&amp;, ExceptionCode&amp;) override final;
+    virtual void advance(unsigned long, ExceptionCode&amp;) override final;
+    virtual void continueFunction(ScriptExecutionContext*, ExceptionCode&amp;) override final;
+    virtual void continueFunction(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; key, ExceptionCode&amp;) override final;
+    virtual RefPtr&lt;IDBRequest&gt; deleteFunction(ScriptExecutionContext*, ExceptionCode&amp;) override final;
+
+protected:
+    IDBCursor();
+};
+
+} // namespace IDBClient
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
+#endif // IDBCursorImpl_h
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbclientIDBCursorWithValueImplcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorWithValueImpl.cpp (0 => 191980)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorWithValueImpl.cpp                                (rev 0)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorWithValueImpl.cpp        2015-11-03 22:24:14 UTC (rev 191980)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple 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 INC. 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 INC. 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 &quot;config.h&quot;
+#include &quot;IDBCursorWithValueImpl.h&quot;
+
+#if ENABLE(INDEXED_DATABASE)
+
+namespace WebCore {
+
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbclientIDBCursorWithValueImplh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorWithValueImpl.h (0 => 191980)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorWithValueImpl.h                                (rev 0)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorWithValueImpl.h        2015-11-03 22:24:14 UTC (rev 191980)
</span><span class="lines">@@ -0,0 +1,48 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple 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 INC. 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 INC. 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 IDBCursorWithValueImpl_h
+#define IDBCursorWithValueImpl_h
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include &quot;IDBCursorWithValue.h&quot;
+
+namespace WebCore {
+namespace IDBClient {
+
+class IDBCursorWithValue : public IDBCursor {
+public:
+    virtual ~IDBCursorWithValue();
+
+private:
+    IDBCursorWithValue();
+};
+
+} // namespace IDBClient
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
+#endif // IDBCursorWithValueImpl_h
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbclientIDBIndexImplcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/indexeddb/client/IDBIndexImpl.cpp (0 => 191980)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/client/IDBIndexImpl.cpp                                (rev 0)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBIndexImpl.cpp        2015-11-03 22:24:14 UTC (rev 191980)
</span><span class="lines">@@ -0,0 +1,121 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple 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 INC. 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 INC. 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 &quot;config.h&quot;
+#include &quot;IDBIndexImpl.h&quot;
+
+#if ENABLE(INDEXED_DATABASE)
+
+namespace WebCore {
+namespace IDBClient {
+
+IDBIndex::~IDBIndex()
+{
+}
+
+const String&amp; IDBIndex::name() const
+{
+    return m_info.name();
+}
+
+RefPtr&lt;IDBObjectStore&gt; IDBIndex::objectStore() const
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+RefPtr&lt;IDBAny&gt; IDBIndex::keyPathAny() const
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+const IDBKeyPath&amp; IDBIndex::keyPath() const
+{
+    return m_info.keyPath();
+}
+
+bool IDBIndex::unique() const
+{
+    return m_info.unique();
+}
+
+bool IDBIndex::multiEntry() const
+{
+    return m_info.multiEntry();
+}
+
+RefPtr&lt;IDBRequest&gt; IDBIndex::openCursor(ScriptExecutionContext*, IDBKeyRange*, const String&amp;, ExceptionCode&amp;)
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+RefPtr&lt;IDBRequest&gt; IDBIndex::openCursor(ScriptExecutionContext*, const Deprecated::ScriptValue&amp;, const String&amp;, ExceptionCode&amp;)
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+RefPtr&lt;IDBRequest&gt; IDBIndex::count(ScriptExecutionContext*, IDBKeyRange*, ExceptionCode&amp;)
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+RefPtr&lt;IDBRequest&gt; IDBIndex::count(ScriptExecutionContext*, const Deprecated::ScriptValue&amp;, ExceptionCode&amp;)
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+RefPtr&lt;IDBRequest&gt; IDBIndex::openKeyCursor(ScriptExecutionContext*, IDBKeyRange*, const String&amp;, ExceptionCode&amp;)
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+RefPtr&lt;IDBRequest&gt; IDBIndex::openKeyCursor(ScriptExecutionContext*, const Deprecated::ScriptValue&amp;, const String&amp;, ExceptionCode&amp;)
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+RefPtr&lt;IDBRequest&gt; IDBIndex::get(ScriptExecutionContext*, IDBKeyRange*, ExceptionCode&amp;)
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+RefPtr&lt;IDBRequest&gt; IDBIndex::get(ScriptExecutionContext*, const Deprecated::ScriptValue&amp;, ExceptionCode&amp;)
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+RefPtr&lt;IDBRequest&gt; IDBIndex::getKey(ScriptExecutionContext*, IDBKeyRange*, ExceptionCode&amp;)
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+RefPtr&lt;IDBRequest&gt; IDBIndex::getKey(ScriptExecutionContext*, const Deprecated::ScriptValue&amp;, ExceptionCode&amp;)
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+
+} // namespace IDBClient
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbclientIDBIndexImplhfromrev191979trunkSourceWebCoreModulesindexeddbIDBIndexh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/Modules/indexeddb/client/IDBIndexImpl.h (from rev 191979, trunk/Source/WebCore/Modules/indexeddb/IDBIndex.h) (0 => 191980)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/client/IDBIndexImpl.h                                (rev 0)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBIndexImpl.h        2015-11-03 22:24:14 UTC (rev 191980)
</span><span class="lines">@@ -0,0 +1,71 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple 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 INC. 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 INC. 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 &quot;IDBIndex.h&quot;
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include &quot;IDBIndexInfo.h&quot;
+
+namespace WebCore {
+namespace IDBClient {
+
+class IDBIndex : public WebCore::IDBIndex {
+public:
+    virtual ~IDBIndex();
+
+    // Implement the IDL
+    virtual const String&amp; name() const override final;
+    virtual RefPtr&lt;IDBObjectStore&gt; objectStore() const override final;
+    virtual RefPtr&lt;IDBAny&gt; keyPathAny() const override final;
+    virtual const IDBKeyPath&amp; keyPath() const override final;
+    virtual bool unique() const override final;
+    virtual bool multiEntry() const override final;
+
+    virtual RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext*, IDBKeyRange*, const String&amp; direction, ExceptionCode&amp;) override final;
+    virtual RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; key, const String&amp; direction, ExceptionCode&amp;) override final;
+    virtual RefPtr&lt;IDBRequest&gt; count(ScriptExecutionContext*, IDBKeyRange*, ExceptionCode&amp;) override final;
+    virtual RefPtr&lt;IDBRequest&gt; count(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; key, ExceptionCode&amp;) override final;
+
+    virtual RefPtr&lt;IDBRequest&gt; openKeyCursor(ScriptExecutionContext*, IDBKeyRange*, const String&amp; direction, ExceptionCode&amp;) override final;
+    virtual RefPtr&lt;IDBRequest&gt; openKeyCursor(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; key, const String&amp; direction, ExceptionCode&amp;) override final;
+
+    virtual RefPtr&lt;IDBRequest&gt; get(ScriptExecutionContext*, IDBKeyRange*, ExceptionCode&amp;) override final;
+    virtual RefPtr&lt;IDBRequest&gt; get(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; key, ExceptionCode&amp;) override final;
+    virtual RefPtr&lt;IDBRequest&gt; getKey(ScriptExecutionContext*, IDBKeyRange*, ExceptionCode&amp;) override final;
+    virtual RefPtr&lt;IDBRequest&gt; getKey(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; key, ExceptionCode&amp;) override final;
+
+private:
+    IDBIndexInfo m_info;
+};
+
+} // namespace IDBClient
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
+#endif // IDBIndexImpl_h
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddblegacyLegacyIndexh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyIndex.h (191979 => 191980)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyIndex.h        2015-11-03 22:18:11 UTC (rev 191979)
+++ trunk/Source/WebCore/Modules/indexeddb/legacy/LegacyIndex.h        2015-11-03 22:24:14 UTC (rev 191980)
</span><span class="lines">@@ -55,14 +55,14 @@
</span><span class="cx">     ~LegacyIndex();
</span><span class="cx"> 
</span><span class="cx">     // Implement the IDL
</span><del>-    virtual const String name() const override final { return m_metadata.name; }
</del><ins>+    virtual const String&amp; name() const override final { return m_metadata.name; }
</ins><span class="cx">     virtual RefPtr&lt;IDBObjectStore&gt; objectStore() const override final { return m_objectStore; }
</span><span class="cx">     LegacyObjectStore* legacyObjectStore() const { return m_objectStore.get(); }
</span><span class="cx">     virtual RefPtr&lt;IDBAny&gt; keyPathAny() const override final { return LegacyAny::create(m_metadata.keyPath); }
</span><del>-    virtual const IDBKeyPath keyPath() const override final { return m_metadata.keyPath; }
</del><ins>+    virtual const IDBKeyPath&amp; keyPath() const override final { return m_metadata.keyPath; }
</ins><span class="cx">     virtual bool unique() const override final { return m_metadata.unique; }
</span><span class="cx">     virtual bool multiEntry() const override final { return m_metadata.multiEntry; }
</span><del>-    virtual int64_t id() const override final { return m_metadata.id; }
</del><ins>+    int64_t id() const { return m_metadata.id; }
</ins><span class="cx"> 
</span><span class="cx">     // FIXME: Try to modify the code generator so this is unneeded.
</span><span class="cx">     virtual RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext* context, ExceptionCode&amp; ec) override final { return openCursor(context, static_cast&lt;IDBKeyRange*&gt;(nullptr), ec); }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbsharedIDBIndexInfocpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.cpp (0 => 191980)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.cpp                                (rev 0)
+++ trunk/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.cpp        2015-11-03 22:24:14 UTC (rev 191980)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple 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 INC. 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 INC. 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 &quot;config.h&quot;
+#include &quot;IDBIndexInfo.h&quot;
+
+#if ENABLE(INDEXED_DATABASE)
+
+namespace WebCore {
+
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbsharedIDBIndexInfoh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h (0 => 191980)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h                                (rev 0)
+++ trunk/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h        2015-11-03 22:24:14 UTC (rev 191980)
</span><span class="lines">@@ -0,0 +1,55 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple 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 INC. 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 INC. 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 IDBIndexInfo_h
+#define IDBIndexInfo_h
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include &quot;IDBKeyPath.h&quot;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace WebCore {
+
+class IDBIndexInfo {
+public:
+    const String&amp; name() const { return m_name; }
+    const IDBKeyPath&amp; keyPath() const { return m_keyPath; }
+    bool unique() const { return m_unique; }
+    bool multiEntry() const { return m_multiEntry; }
+
+private:
+    IDBIndexInfo();
+
+    String m_name;
+    IDBKeyPath m_keyPath;
+    bool m_unique { true };
+    bool m_multiEntry { false };
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
+#endif // IDBIndexInfo_h
</ins></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (191979 => 191980)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-11-03 22:18:11 UTC (rev 191979)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-11-03 22:24:14 UTC (rev 191980)
</span><span class="lines">@@ -2214,6 +2214,14 @@
</span><span class="cx">                 51F41A7A1BA73B5B002E053B /* IDBPendingOpenCall.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F41A511BA73B2C002E053B /* IDBPendingOpenCall.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 51F41A7B1BA73B5B002E053B /* IDBPendingTransactionMonitor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B3C1B9F68CF00F789CE /* IDBPendingTransactionMonitor.cpp */; };
</span><span class="cx">                 51F41A7C1BA73B5B002E053B /* IDBPendingTransactionMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B3D1B9F68CF00F789CE /* IDBPendingTransactionMonitor.h */; };
</span><ins>+                51F798E51BE88092008AE491 /* IDBCursorImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F798E11BE88084008AE491 /* IDBCursorImpl.cpp */; };
+                51F798E61BE88092008AE491 /* IDBCursorImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F798E21BE88084008AE491 /* IDBCursorImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
+                51F798E71BE88092008AE491 /* IDBIndexImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F798E31BE88084008AE491 /* IDBIndexImpl.cpp */; };
+                51F798E81BE88092008AE491 /* IDBIndexImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F798E41BE88084008AE491 /* IDBIndexImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
+                51F798EF1BE880E7008AE491 /* IDBIndexInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F798EB1BE880D3008AE491 /* IDBIndexInfo.cpp */; };
+                51F798F01BE880E7008AE491 /* IDBIndexInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F798EC1BE880D3008AE491 /* IDBIndexInfo.h */; settings = {ATTRIBUTES = (Private, ); }; };
+                51F798F31BE88394008AE491 /* IDBCursorWithValueImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F798F11BE8838D008AE491 /* IDBCursorWithValueImpl.cpp */; };
+                51F798F41BE88394008AE491 /* IDBCursorWithValueImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F798F21BE8838D008AE491 /* IDBCursorWithValueImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">                 51FA2D78152132B300C1BA0B /* DOMWindowExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 517FBA18151AA71B00B57959 /* DOMWindowExtension.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 51FB5504113E3E9100821176 /* JSCloseEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 51FB5502113E3E9100821176 /* JSCloseEvent.h */; };
</span><span class="cx">                 51FB5505113E3E9100821176 /* JSCloseEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51FB5503113E3E9100821176 /* JSCloseEvent.cpp */; };
</span><span class="lines">@@ -9626,6 +9634,14 @@
</span><span class="cx">                 51F41A571BA73B2C002E053B /* IDBTransactionCoordinator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBTransactionCoordinator.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51F6A3D50663BF04004D2919 /* HTMLCanvasElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLCanvasElement.cpp; sourceTree = &quot;&lt;group&gt;&quot;; tabWidth = 8; usesTabs = 0; };
</span><span class="cx">                 51F6A3D60663BF04004D2919 /* HTMLCanvasElement.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = HTMLCanvasElement.h; sourceTree = &quot;&lt;group&gt;&quot;; tabWidth = 8; usesTabs = 0; };
</span><ins>+                51F798E11BE88084008AE491 /* IDBCursorImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBCursorImpl.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                51F798E21BE88084008AE491 /* IDBCursorImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBCursorImpl.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                51F798E31BE88084008AE491 /* IDBIndexImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBIndexImpl.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                51F798E41BE88084008AE491 /* IDBIndexImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBIndexImpl.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                51F798EB1BE880D3008AE491 /* IDBIndexInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBIndexInfo.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                51F798EC1BE880D3008AE491 /* IDBIndexInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBIndexInfo.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                51F798F11BE8838D008AE491 /* IDBCursorWithValueImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBCursorWithValueImpl.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                51F798F21BE8838D008AE491 /* IDBCursorWithValueImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBCursorWithValueImpl.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 51FB5502113E3E9100821176 /* JSCloseEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCloseEvent.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51FB5503113E3E9100821176 /* JSCloseEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCloseEvent.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51FB67D91AE6B5E400D06C5A /* ContentExtensionStyleSheet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ContentExtensionStyleSheet.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -16771,10 +16787,16 @@
</span><span class="cx">                                 5185FCBC1BB5CB770012898F /* IDBConnectionToServer.cpp */,
</span><span class="cx">                                 510A58FD1BB07A9600C19282 /* IDBConnectionToServer.h */,
</span><span class="cx">                                 5185FCBD1BB5CB770012898F /* IDBConnectionToServerDelegate.h */,
</span><ins>+                                51F798E11BE88084008AE491 /* IDBCursorImpl.cpp */,
+                                51F798E21BE88084008AE491 /* IDBCursorImpl.h */,
+                                51F798F11BE8838D008AE491 /* IDBCursorWithValueImpl.cpp */,
+                                51F798F21BE8838D008AE491 /* IDBCursorWithValueImpl.h */,
</ins><span class="cx">                                 5198F7AE1BBDF59200E2CC5F /* IDBDatabaseImpl.cpp */,
</span><span class="cx">                                 5198F7AF1BBDF59200E2CC5F /* IDBDatabaseImpl.h */,
</span><span class="cx">                                 5103104A1BA8C6A6003329C0 /* IDBFactoryImpl.cpp */,
</span><span class="cx">                                 5103104B1BA8C6A6003329C0 /* IDBFactoryImpl.h */,
</span><ins>+                                51F798E31BE88084008AE491 /* IDBIndexImpl.cpp */,
+                                51F798E41BE88084008AE491 /* IDBIndexImpl.h */,
</ins><span class="cx">                                 516071291BD8305300DBC4F2 /* IDBObjectStoreImpl.cpp */,
</span><span class="cx">                                 5160712A1BD8305300DBC4F2 /* IDBObjectStoreImpl.h */,
</span><span class="cx">                                 510310561BA8DB30003329C0 /* IDBOpenDBRequestImpl.cpp */,
</span><span class="lines">@@ -16798,6 +16820,8 @@
</span><span class="cx">                                 51BA4AC21BBB5CBF00DF3D6D /* IDBDatabaseInfo.h */,
</span><span class="cx">                                 5148453C1BB9D076006A72ED /* IDBError.cpp */,
</span><span class="cx">                                 5148453D1BB9D076006A72ED /* IDBError.h */,
</span><ins>+                                51F798EB1BE880D3008AE491 /* IDBIndexInfo.cpp */,
+                                51F798EC1BE880D3008AE491 /* IDBIndexInfo.h */,
</ins><span class="cx">                                 5160712C1BD8307200DBC4F2 /* IDBObjectStoreInfo.cpp */,
</span><span class="cx">                                 5160712D1BD8307200DBC4F2 /* IDBObjectStoreInfo.h */,
</span><span class="cx">                                 510A58F51BACC4A500C19282 /* IDBRequestData.cpp */,
</span><span class="lines">@@ -25164,6 +25188,7 @@
</span><span class="cx">                                 A4226E991163D7CC008B8397 /* DOMHTMLProgressElementInternal.h in Headers */,
</span><span class="cx">                                 85183B4A0AA6926100F19FA3 /* DOMHTMLQuoteElement.h in Headers */,
</span><span class="cx">                                 85E711C40AC5D5350053270F /* DOMHTMLQuoteElementInternal.h in Headers */,
</span><ins>+                                51F798E61BE88092008AE491 /* IDBCursorImpl.h in Headers */,
</ins><span class="cx">                                 85DF819B0AA77E4B00486AD7 /* DOMHTMLScriptElement.h in Headers */,
</span><span class="cx">                                 85E711C50AC5D5350053270F /* DOMHTMLScriptElementInternal.h in Headers */,
</span><span class="cx">                                 85F32AF00AA63B8700FF3184 /* DOMHTMLSelectElement.h in Headers */,
</span><span class="lines">@@ -26272,6 +26297,7 @@
</span><span class="cx">                                 A83B78FC0CCAFF15000B0825 /* JSSVGFontFaceUriElement.h in Headers */,
</span><span class="cx">                                 B2FA3D990AB75A6F000E5AC4 /* JSSVGForeignObjectElement.h in Headers */,
</span><span class="cx">                                 B2FA3D9B0AB75A6F000E5AC4 /* JSSVGGElement.h in Headers */,
</span><ins>+                                51F798F41BE88394008AE491 /* IDBCursorWithValueImpl.h in Headers */,
</ins><span class="cx">                                 B27B28280CEF0C0700D39D54 /* JSSVGGlyphElement.h in Headers */,
</span><span class="cx">                                 24D9129A13CA971400D21915 /* JSSVGGlyphRefElement.h in Headers */,
</span><span class="cx">                                 B2FA3D9D0AB75A6F000E5AC4 /* JSSVGGradientElement.h in Headers */,
</span><span class="lines">@@ -26971,6 +26997,7 @@
</span><span class="cx">                                 BCEA4880097D93020094C9E4 /* RenderObject.h in Headers */,
</span><span class="cx">                                 BCFA930810333193007B25D1 /* RenderOverflow.h in Headers */,
</span><span class="cx">                                 A43BF59D1149292800C643CA /* RenderProgress.h in Headers */,
</span><ins>+                                51F798E81BE88092008AE491 /* IDBIndexImpl.h in Headers */,
</ins><span class="cx">                                 B5B65874186FDE4C009C26E8 /* RenderPtr.h in Headers */,
</span><span class="cx">                                 5A574F25131DB93900471B88 /* RenderQuote.h in Headers */,
</span><span class="cx">                                 D70AD65813E1342B005B50B4 /* RenderRegion.h in Headers */,
</span><span class="lines">@@ -27731,6 +27758,7 @@
</span><span class="cx">                                 854FE7370A2297BE0058D7AD /* Traversal.h in Headers */,
</span><span class="cx">                                 37FD4298118368460093C029 /* TreeDepthLimit.h in Headers */,
</span><span class="cx">                                 14D64B5D134A5B6B00E58FDA /* TreeScope.h in Headers */,
</span><ins>+                                51F798F01BE880E7008AE491 /* IDBIndexInfo.h in Headers */,
</ins><span class="cx">                                 ADBAD6EF1BCDD95700381325 /* ResourceUsageOverlay.h in Headers */,
</span><span class="cx">                                 A77E1FF014AACB6E005B7CB6 /* TreeScopeAdopter.h in Headers */,
</span><span class="cx">                                 854FE7390A2297BE0058D7AD /* TreeWalker.h in Headers */,
</span><span class="lines">@@ -29029,6 +29057,7 @@
</span><span class="cx">                                 84730D841248F0B300D3A9C9 /* FEMorphology.cpp in Sources */,
</span><span class="cx">                                 84730D861248F0B300D3A9C9 /* FEOffset.cpp in Sources */,
</span><span class="cx">                                 84730D881248F0B300D3A9C9 /* FESpecularLighting.cpp in Sources */,
</span><ins>+                                51F798E51BE88092008AE491 /* IDBCursorImpl.cpp in Sources */,
</ins><span class="cx">                                 84730D8A1248F0B300D3A9C9 /* FETile.cpp in Sources */,
</span><span class="cx">                                 84730D8C1248F0B300D3A9C9 /* FETurbulence.cpp in Sources */,
</span><span class="cx">                                 FD31609412B026F700C1A359 /* FFTConvolver.cpp in Sources */,
</span><span class="lines">@@ -29872,6 +29901,7 @@
</span><span class="cx">                                 51E3F9D60DA05E1D00250911 /* JSStorage.cpp in Sources */,
</span><span class="cx">                                 51D0C5160DAA90B7003B3831 /* JSStorageCustom.cpp in Sources */,
</span><span class="cx">                                 51E0BAEA0DA55D4A00A9E417 /* JSStorageEvent.cpp in Sources */,
</span><ins>+                                51F798E71BE88092008AE491 /* IDBIndexImpl.cpp in Sources */,
</ins><span class="cx">                                 0FF50269102BA9430066F39A /* JSStyleMedia.cpp in Sources */,
</span><span class="cx">                                 BCE0139A0C0BEF180043860A /* JSStyleSheet.cpp in Sources */,
</span><span class="cx">                                 BC98A27D0C0C9950004BEBF7 /* JSStyleSheetCustom.cpp in Sources */,
</span><span class="lines">@@ -30262,6 +30292,7 @@
</span><span class="cx">                                 0783228418013ED800999E0C /* MediaStreamAudioSource.cpp in Sources */,
</span><span class="cx">                                 FD671A77159BB07000197559 /* MediaStreamAudioSourceNode.cpp in Sources */,
</span><span class="cx">                                 0705851517FB0EEA005F2BCB /* MediaStreamCapabilities.cpp in Sources */,
</span><ins>+                                51F798F31BE88394008AE491 /* IDBCursorWithValueImpl.cpp in Sources */,
</ins><span class="cx">                                 078E090017D14CEE00420AA1 /* MediaStreamEvent.cpp in Sources */,
</span><span class="cx">                                 0711589117DF6F6600EDFE2B /* MediaStreamPrivate.cpp in Sources */,
</span><span class="cx">                                 078E090117D14CEE00420AA1 /* MediaStreamRegistry.cpp in Sources */,
</span><span class="lines">@@ -30765,6 +30796,7 @@
</span><span class="cx">                                 FD45A953175D3FB800C21EC8 /* Shape.cpp in Sources */,
</span><span class="cx">                                 FD45A956175D3FB800C21EC8 /* ShapeOutsideInfo.cpp in Sources */,
</span><span class="cx">                                 1AB5EBD0194A1D170059AC70 /* ShapeValue.cpp in Sources */,
</span><ins>+                                51F798EF1BE880E7008AE491 /* IDBIndexInfo.cpp in Sources */,
</ins><span class="cx">                                 1A4A954D0B4EDCCB002D8C3C /* SharedBuffer.cpp in Sources */,
</span><span class="cx">                                 512DD8E30D91E2B4000F89EE /* SharedBufferCF.cpp in Sources */,
</span><span class="cx">                                 97B1F02E13B025CA00F5103F /* SharedBufferChunkReader.cpp in Sources */,
</span></span></pre>
</div>
</div>

</body>
</html>