<!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>[196651] trunk/Source</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/196651">196651</a></dd>
<dt>Author</dt> <dd>beidson@apple.com</dd>
<dt>Date</dt> <dd>2016-02-16 12:58:56 -0800 (Tue, 16 Feb 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Modern IDB: WK2 IPC Scaffolding.
https://bugs.webkit.org/show_bug.cgi?id=154296
Reviewed by Alex Christensen.
No change in behavior yet; Just laying the groundwork.
Source/WebCore:
* Modules/indexeddb/client/IDBConnectionToServer.h:
* Modules/indexeddb/server/IDBConnectionToClient.h:
* Modules/indexeddb/shared/IDBResourceIdentifier.h:
Source/WebKit2:
* CMakeLists.txt:
* WebKit2.xcodeproj/project.pbxproj:
* DatabaseProcess/DatabaseToWebProcessConnection.cpp:
(WebKit::DatabaseToWebProcessConnection::establishIDBConnectionToServer):
(WebKit::DatabaseToWebProcessConnection::removeIDBConnectionToServer):
* DatabaseProcess/DatabaseToWebProcessConnection.h:
* DatabaseProcess/DatabaseToWebProcessConnection.messages.in:
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp: Added.
(WebKit::WebIDBConnectionToClient::create):
(WebKit::WebIDBConnectionToClient::WebIDBConnectionToClient):
(WebKit::WebIDBConnectionToClient::~WebIDBConnectionToClient):
(WebKit::WebIDBConnectionToClient::disconnectedFromWebProcess):
(WebKit::WebIDBConnectionToClient::messageSenderConnection):
(WebKit::WebIDBConnectionToClient::connectionToClient):
(WebKit::WebIDBConnectionToClient::didDeleteDatabase):
(WebKit::WebIDBConnectionToClient::didOpenDatabase):
(WebKit::WebIDBConnectionToClient::didAbortTransaction):
(WebKit::WebIDBConnectionToClient::didCommitTransaction):
(WebKit::WebIDBConnectionToClient::didCreateObjectStore):
(WebKit::WebIDBConnectionToClient::didDeleteObjectStore):
(WebKit::WebIDBConnectionToClient::didClearObjectStore):
(WebKit::WebIDBConnectionToClient::didCreateIndex):
(WebKit::WebIDBConnectionToClient::didDeleteIndex):
(WebKit::WebIDBConnectionToClient::didPutOrAdd):
(WebKit::WebIDBConnectionToClient::didGetRecord):
(WebKit::WebIDBConnectionToClient::didGetCount):
(WebKit::WebIDBConnectionToClient::didDeleteRecord):
(WebKit::WebIDBConnectionToClient::didOpenCursor):
(WebKit::WebIDBConnectionToClient::didIterateCursor):
(WebKit::WebIDBConnectionToClient::fireVersionChangeEvent):
(WebKit::WebIDBConnectionToClient::didStartTransaction):
(WebKit::WebIDBConnectionToClient::notifyOpenDBRequestBlocked):
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h: Added.
* Platform/Logging.h:
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: Added.
(WebKit::generateConnectionToServerIdentifier):
(WebKit::WebIDBConnectionToServer::create):
(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):
(WebKit::WebIDBConnectionToServer::~WebIDBConnectionToServer):
(WebKit::WebIDBConnectionToServer::messageSenderConnection):
(WebKit::WebIDBConnectionToServer::coreConnectionToServer):
(WebKit::WebIDBConnectionToServer::deleteDatabase):
(WebKit::WebIDBConnectionToServer::openDatabase):
(WebKit::WebIDBConnectionToServer::abortTransaction):
(WebKit::WebIDBConnectionToServer::commitTransaction):
(WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToServer::createObjectStore):
(WebKit::WebIDBConnectionToServer::deleteObjectStore):
(WebKit::WebIDBConnectionToServer::clearObjectStore):
(WebKit::WebIDBConnectionToServer::createIndex):
(WebKit::WebIDBConnectionToServer::deleteIndex):
(WebKit::WebIDBConnectionToServer::putOrAdd):
(WebKit::WebIDBConnectionToServer::getRecord):
(WebKit::WebIDBConnectionToServer::getCount):
(WebKit::WebIDBConnectionToServer::deleteRecord):
(WebKit::WebIDBConnectionToServer::openCursor):
(WebKit::WebIDBConnectionToServer::iterateCursor):
(WebKit::WebIDBConnectionToServer::establishTransaction):
(WebKit::WebIDBConnectionToServer::databaseConnectionClosed):
(WebKit::WebIDBConnectionToServer::abortOpenAndUpgradeNeeded):
(WebKit::WebIDBConnectionToServer::didFireVersionChangeEvent):
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h: Added.
* WebProcess/Databases/WebDatabaseProvider.cpp:
(WebKit::WebDatabaseProvider::idbConnectionToServerForSession):
* WebProcess/Databases/WebDatabaseProvider.h:
* WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
(WebKit::WebToDatabaseProcessConnection::idbConnectionToServerForSession):
* WebProcess/Databases/WebToDatabaseProcessConnection.h:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbclientIDBConnectionToServerh">trunk/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbserverIDBConnectionToClienth">trunk/Source/WebCore/Modules/indexeddb/server/IDBConnectionToClient.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbsharedIDBResourceIdentifierh">trunk/Source/WebCore/Modules/indexeddb/shared/IDBResourceIdentifier.h</a></li>
<li><a href="#trunkSourceWebKit2CMakeListstxt">trunk/Source/WebKit2/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2DatabaseProcessDatabaseToWebProcessConnectioncpp">trunk/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp</a></li>
<li><a href="#trunkSourceWebKit2DatabaseProcessDatabaseToWebProcessConnectionh">trunk/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.h</a></li>
<li><a href="#trunkSourceWebKit2DatabaseProcessDatabaseToWebProcessConnectionmessagesin">trunk/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.messages.in</a></li>
<li><a href="#trunkSourceWebKit2PlatformLoggingh">trunk/Source/WebKit2/Platform/Logging.h</a></li>
<li><a href="#trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj">trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebKit2WebProcessDatabasesWebDatabaseProvidercpp">trunk/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessDatabasesWebDatabaseProviderh">trunk/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessDatabasesWebToDatabaseProcessConnectioncpp">trunk/Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessDatabasesWebToDatabaseProcessConnectionh">trunk/Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.h</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2DatabaseProcessIndexedDBWebIDBConnectionToClientcpp">trunk/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2DatabaseProcessIndexedDBWebIDBConnectionToClienth">trunk/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessDatabasesIndexedDBWebIDBConnectionToServercpp">trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessDatabasesIndexedDBWebIDBConnectionToServerh">trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (196650 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-02-16 20:50:46 UTC (rev 196650)
+++ trunk/Source/WebCore/ChangeLog        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2016-02-16 Brady Eidson <beidson@apple.com>
+
+ Modern IDB: WK2 IPC Scaffolding.
+ https://bugs.webkit.org/show_bug.cgi?id=154296
+
+ Reviewed by Alex Christensen.
+
+ No change in behavior yet; Just laying the groundwork.
+
+ * Modules/indexeddb/client/IDBConnectionToServer.h:
+ * Modules/indexeddb/server/IDBConnectionToClient.h:
+ * Modules/indexeddb/shared/IDBResourceIdentifier.h:
+
</ins><span class="cx"> 2016-02-16 Chris Dumez <cdumez@apple.com>
</span><span class="cx">
</span><span class="cx"> [Web IDL] Operations should be on the instance for global objects or if [Unforgeable]
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbclientIDBConnectionToServerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h (196650 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h        2016-02-16 20:50:46 UTC (rev 196650)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx">
</span><span class="cx"> class IDBConnectionToServer : public RefCounted<IDBConnectionToServer> {
</span><span class="cx"> public:
</span><del>- static Ref<IDBConnectionToServer> create(IDBConnectionToServerDelegate&);
</del><ins>+ WEBCORE_EXPORT static Ref<IDBConnectionToServer> create(IDBConnectionToServerDelegate&);
</ins><span class="cx">
</span><span class="cx"> uint64_t identifier() const;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbserverIDBConnectionToClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/server/IDBConnectionToClient.h (196650 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/server/IDBConnectionToClient.h        2016-02-16 20:50:46 UTC (rev 196650)
+++ trunk/Source/WebCore/Modules/indexeddb/server/IDBConnectionToClient.h        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx">
</span><span class="cx"> class IDBConnectionToClient : public RefCounted<IDBConnectionToClient> {
</span><span class="cx"> public:
</span><del>- static Ref<IDBConnectionToClient> create(IDBConnectionToClientDelegate&);
</del><ins>+ WEBCORE_EXPORT static Ref<IDBConnectionToClient> create(IDBConnectionToClientDelegate&);
</ins><span class="cx">
</span><span class="cx"> uint64_t identifier() const;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbsharedIDBResourceIdentifierh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/shared/IDBResourceIdentifier.h (196650 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/shared/IDBResourceIdentifier.h        2016-02-16 20:50:46 UTC (rev 196650)
+++ trunk/Source/WebCore/Modules/indexeddb/shared/IDBResourceIdentifier.h        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> explicit IDBResourceIdentifier(const IDBServer::IDBConnectionToClient&);
</span><span class="cx">
</span><span class="cx"> static IDBResourceIdentifier deletedValue();
</span><del>- bool isHashTableDeletedValue() const;
</del><ins>+ WEBCORE_EXPORT bool isHashTableDeletedValue() const;
</ins><span class="cx">
</span><span class="cx"> static IDBResourceIdentifier emptyValue();
</span><span class="cx"> bool isEmpty() const
</span></span></pre></div>
<a id="trunkSourceWebKit2CMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/CMakeLists.txt (196650 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/CMakeLists.txt        2016-02-16 20:50:46 UTC (rev 196650)
+++ trunk/Source/WebKit2/CMakeLists.txt        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -70,7 +70,10 @@
</span><span class="cx"> "${WEBCORE_DIR}"
</span><span class="cx"> "${WEBCORE_DIR}/Modules/battery"
</span><span class="cx"> "${WEBCORE_DIR}/Modules/indexeddb"
</span><ins>+ "${WEBCORE_DIR}/Modules/indexeddb/client"
</ins><span class="cx"> "${WEBCORE_DIR}/Modules/indexeddb/legacy"
</span><ins>+ "${WEBCORE_DIR}/Modules/indexeddb/server"
+ "${WEBCORE_DIR}/Modules/indexeddb/shared"
</ins><span class="cx"> "${WEBCORE_DIR}/Modules/mediastream"
</span><span class="cx"> "${WEBCORE_DIR}/Modules/networkinfo"
</span><span class="cx"> "${WEBCORE_DIR}/Modules/notifications"
</span><span class="lines">@@ -195,6 +198,7 @@
</span><span class="cx"> DatabaseProcess/IndexedDB/IDBSerialization.cpp
</span><span class="cx"> DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp
</span><span class="cx"> DatabaseProcess/IndexedDB/UniqueIDBDatabaseIdentifier.cpp
</span><ins>+ DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp
</ins><span class="cx">
</span><span class="cx"> DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp
</span><span class="cx"> DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.cpp
</span><span class="lines">@@ -508,6 +512,7 @@
</span><span class="cx"> WebProcess/Databases/WebDatabaseProvider.cpp
</span><span class="cx"> WebProcess/Databases/WebToDatabaseProcessConnection.cpp
</span><span class="cx">
</span><ins>+ WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp
</ins><span class="cx"> WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp
</span><span class="cx"> WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (196650 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-02-16 20:50:46 UTC (rev 196650)
+++ trunk/Source/WebKit2/ChangeLog        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -1,3 +1,87 @@
</span><ins>+2016-02-16 Brady Eidson <beidson@apple.com>
+
+ Modern IDB: WK2 IPC Scaffolding.
+ https://bugs.webkit.org/show_bug.cgi?id=154296
+
+ Reviewed by Alex Christensen.
+
+ No change in behavior yet; Just laying the groundwork.
+
+ * CMakeLists.txt:
+ * WebKit2.xcodeproj/project.pbxproj:
+
+ * DatabaseProcess/DatabaseToWebProcessConnection.cpp:
+ (WebKit::DatabaseToWebProcessConnection::establishIDBConnectionToServer):
+ (WebKit::DatabaseToWebProcessConnection::removeIDBConnectionToServer):
+ * DatabaseProcess/DatabaseToWebProcessConnection.h:
+ * DatabaseProcess/DatabaseToWebProcessConnection.messages.in:
+
+ * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp: Added.
+ (WebKit::WebIDBConnectionToClient::create):
+ (WebKit::WebIDBConnectionToClient::WebIDBConnectionToClient):
+ (WebKit::WebIDBConnectionToClient::~WebIDBConnectionToClient):
+ (WebKit::WebIDBConnectionToClient::disconnectedFromWebProcess):
+ (WebKit::WebIDBConnectionToClient::messageSenderConnection):
+ (WebKit::WebIDBConnectionToClient::connectionToClient):
+ (WebKit::WebIDBConnectionToClient::didDeleteDatabase):
+ (WebKit::WebIDBConnectionToClient::didOpenDatabase):
+ (WebKit::WebIDBConnectionToClient::didAbortTransaction):
+ (WebKit::WebIDBConnectionToClient::didCommitTransaction):
+ (WebKit::WebIDBConnectionToClient::didCreateObjectStore):
+ (WebKit::WebIDBConnectionToClient::didDeleteObjectStore):
+ (WebKit::WebIDBConnectionToClient::didClearObjectStore):
+ (WebKit::WebIDBConnectionToClient::didCreateIndex):
+ (WebKit::WebIDBConnectionToClient::didDeleteIndex):
+ (WebKit::WebIDBConnectionToClient::didPutOrAdd):
+ (WebKit::WebIDBConnectionToClient::didGetRecord):
+ (WebKit::WebIDBConnectionToClient::didGetCount):
+ (WebKit::WebIDBConnectionToClient::didDeleteRecord):
+ (WebKit::WebIDBConnectionToClient::didOpenCursor):
+ (WebKit::WebIDBConnectionToClient::didIterateCursor):
+ (WebKit::WebIDBConnectionToClient::fireVersionChangeEvent):
+ (WebKit::WebIDBConnectionToClient::didStartTransaction):
+ (WebKit::WebIDBConnectionToClient::notifyOpenDBRequestBlocked):
+ * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h: Added.
+
+ * Platform/Logging.h:
+
+ * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: Added.
+ (WebKit::generateConnectionToServerIdentifier):
+ (WebKit::WebIDBConnectionToServer::create):
+ (WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):
+ (WebKit::WebIDBConnectionToServer::~WebIDBConnectionToServer):
+ (WebKit::WebIDBConnectionToServer::messageSenderConnection):
+ (WebKit::WebIDBConnectionToServer::coreConnectionToServer):
+ (WebKit::WebIDBConnectionToServer::deleteDatabase):
+ (WebKit::WebIDBConnectionToServer::openDatabase):
+ (WebKit::WebIDBConnectionToServer::abortTransaction):
+ (WebKit::WebIDBConnectionToServer::commitTransaction):
+ (WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
+ (WebKit::WebIDBConnectionToServer::createObjectStore):
+ (WebKit::WebIDBConnectionToServer::deleteObjectStore):
+ (WebKit::WebIDBConnectionToServer::clearObjectStore):
+ (WebKit::WebIDBConnectionToServer::createIndex):
+ (WebKit::WebIDBConnectionToServer::deleteIndex):
+ (WebKit::WebIDBConnectionToServer::putOrAdd):
+ (WebKit::WebIDBConnectionToServer::getRecord):
+ (WebKit::WebIDBConnectionToServer::getCount):
+ (WebKit::WebIDBConnectionToServer::deleteRecord):
+ (WebKit::WebIDBConnectionToServer::openCursor):
+ (WebKit::WebIDBConnectionToServer::iterateCursor):
+ (WebKit::WebIDBConnectionToServer::establishTransaction):
+ (WebKit::WebIDBConnectionToServer::databaseConnectionClosed):
+ (WebKit::WebIDBConnectionToServer::abortOpenAndUpgradeNeeded):
+ (WebKit::WebIDBConnectionToServer::didFireVersionChangeEvent):
+ * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h: Added.
+
+ * WebProcess/Databases/WebDatabaseProvider.cpp:
+ (WebKit::WebDatabaseProvider::idbConnectionToServerForSession):
+ * WebProcess/Databases/WebDatabaseProvider.h:
+
+ * WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
+ (WebKit::WebToDatabaseProcessConnection::idbConnectionToServerForSession):
+ * WebProcess/Databases/WebToDatabaseProcessConnection.h:
+
</ins><span class="cx"> 2016-02-16 Sam Weinig <sam@webkit.org>
</span><span class="cx">
</span><span class="cx"> Revert r195826.
</span></span></pre></div>
<a id="trunkSourceWebKit2DatabaseProcessDatabaseToWebProcessConnectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp (196650 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp        2016-02-16 20:50:46 UTC (rev 196650)
+++ trunk/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -29,6 +29,8 @@
</span><span class="cx"> #include "DatabaseProcessIDBConnection.h"
</span><span class="cx"> #include "DatabaseProcessIDBConnectionMessages.h"
</span><span class="cx"> #include "DatabaseToWebProcessConnectionMessages.h"
</span><ins>+#include "Logging.h"
+#include "WebIDBConnectionToClient.h"
</ins><span class="cx"> #include <wtf/RunLoop.h>
</span><span class="cx">
</span><span class="cx"> #if ENABLE(DATABASE_PROCESS)
</span><span class="lines">@@ -113,6 +115,22 @@
</span><span class="cx"> RefPtr<DatabaseProcessIDBConnection> idbConnection = m_idbConnections.take(serverConnectionIdentifier);
</span><span class="cx"> idbConnection->disconnectedFromWebProcess();
</span><span class="cx"> }
</span><ins>+
+void DatabaseToWebProcessConnection::establishIDBConnectionToServer(uint64_t serverConnectionIdentifier)
+{
+ LOG(IndexedDB, "DatabaseToWebProcessConnection::establishIDBConnectionToServer - %" PRIu64, serverConnectionIdentifier);
+ ASSERT(!m_webIDBConnections.contains(serverConnectionIdentifier));
+
+ m_webIDBConnections.set(serverConnectionIdentifier, WebIDBConnectionToClient::create(*this, serverConnectionIdentifier));
+}
+
+void DatabaseToWebProcessConnection::removeIDBConnectionToServer(uint64_t serverConnectionIdentifier)
+{
+ ASSERT(m_webIDBConnections.contains(serverConnectionIdentifier));
+
+ auto connection = m_webIDBConnections.take(serverConnectionIdentifier);
+ connection->disconnectedFromWebProcess();
+}
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2DatabaseProcessDatabaseToWebProcessConnectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.h (196650 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.h        2016-02-16 20:50:46 UTC (rev 196650)
+++ trunk/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.h        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -36,6 +36,8 @@
</span><span class="cx">
</span><span class="cx"> namespace WebKit {
</span><span class="cx">
</span><ins>+class WebIDBConnectionToClient;
+
</ins><span class="cx"> class DatabaseToWebProcessConnection : public RefCounted<DatabaseToWebProcessConnection>, public IPC::Connection::Client, public IPC::MessageSender {
</span><span class="cx"> public:
</span><span class="cx"> static Ref<DatabaseToWebProcessConnection> create(IPC::Connection::Identifier);
</span><span class="lines">@@ -60,12 +62,18 @@
</span><span class="cx"> virtual uint64_t messageSenderDestinationID() override { return 0; }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><del>- // Messages handlers
</del><ins>+ // Messages handlers (Legacy IDB)
</ins><span class="cx"> void establishIDBConnection(uint64_t serverConnectionIdentifier);
</span><span class="cx"> void removeDatabaseProcessIDBConnection(uint64_t serverConnectionIdentifier);
</span><span class="cx">
</span><span class="cx"> typedef HashMap<uint64_t, RefPtr<DatabaseProcessIDBConnection>> IDBConnectionMap;
</span><span class="cx"> IDBConnectionMap m_idbConnections;
</span><ins>+
+ // Messages handlers (Modern IDB)
+ void establishIDBConnectionToServer(uint64_t serverConnectionIdentifier);
+ void removeIDBConnectionToServer(uint64_t serverConnectionIdentifier);
+
+ HashMap<uint64_t, RefPtr<WebIDBConnectionToClient>> m_webIDBConnections;
</ins><span class="cx"> #endif // ENABLE(INDEXED_DATABASE)
</span><span class="cx">
</span><span class="cx"> RefPtr<IPC::Connection> m_connection;
</span></span></pre></div>
<a id="trunkSourceWebKit2DatabaseProcessDatabaseToWebProcessConnectionmessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.messages.in (196650 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.messages.in        2016-02-16 20:50:46 UTC (rev 196650)
+++ trunk/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.messages.in        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -24,9 +24,13 @@
</span><span class="cx">
</span><span class="cx"> messages -> DatabaseToWebProcessConnection LegacyReceiver {
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><del>- # Creates a connection for communication with a WebProcess
</del><ins>+ # Creates a connection for communication with a WebProcess (Legacy IDB)
</ins><span class="cx"> EstablishIDBConnection(uint64_t serverConnectionIdentifier)
</span><span class="cx"> RemoveDatabaseProcessIDBConnection(uint64_t serverConnectionIdentifier)
</span><ins>+
+ # Creates a connection for communication with a WebProcess (Modern IDB)
+ EstablishIDBConnectionToServer(uint64_t serverConnectionIdentifier)
+ RemoveIDBConnectionToServer(uint64_t serverConnectionIdentifier)
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2DatabaseProcessIndexedDBWebIDBConnectionToClientcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp (0 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp         (rev 0)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -0,0 +1,139 @@
</span><ins>+/*
+ * Copyright (C) 2016 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 "config.h"
+#include "WebIDBConnectionToClient.h"
+
+#if ENABLE(INDEXED_DATABASE)
+
+using namespace WebCore;
+
+namespace WebKit {
+
+Ref<WebIDBConnectionToClient> WebIDBConnectionToClient::create(DatabaseToWebProcessConnection& connection, uint64_t serverConnectionIdentifier)
+{
+ return adoptRef(*new WebIDBConnectionToClient(connection, serverConnectionIdentifier));
+}
+
+WebIDBConnectionToClient::WebIDBConnectionToClient(DatabaseToWebProcessConnection& connection, uint64_t serverConnectionIdentifier)
+ : m_connection(connection)
+{
+ relaxAdoptionRequirement();
+ m_connectionToClient = IDBServer::IDBConnectionToClient::create(*this);
+}
+
+WebIDBConnectionToClient::~WebIDBConnectionToClient()
+{
+}
+
+void WebIDBConnectionToClient::disconnectedFromWebProcess()
+{
+}
+
+IPC::Connection* WebIDBConnectionToClient::messageSenderConnection()
+{
+ return m_connection->connection();
+}
+
+WebCore::IDBServer::IDBConnectionToClient& WebIDBConnectionToClient::connectionToClient()
+{
+ return *m_connectionToClient;
+}
+
+void WebIDBConnectionToClient::didDeleteDatabase(const WebCore::IDBResultData&)
+{
+}
+
+void WebIDBConnectionToClient::didOpenDatabase(const WebCore::IDBResultData&)
+{
+}
+
+void WebIDBConnectionToClient::didAbortTransaction(const WebCore::IDBResourceIdentifier& transactionIdentifier, const WebCore::IDBError&)
+{
+}
+
+void WebIDBConnectionToClient::didCommitTransaction(const WebCore::IDBResourceIdentifier& transactionIdentifier, const WebCore::IDBError&)
+{
+}
+
+void WebIDBConnectionToClient::didCreateObjectStore(const WebCore::IDBResultData&)
+{
+}
+
+void WebIDBConnectionToClient::didDeleteObjectStore(const WebCore::IDBResultData&)
+{
+}
+
+void WebIDBConnectionToClient::didClearObjectStore(const WebCore::IDBResultData&)
+{
+}
+
+void WebIDBConnectionToClient::didCreateIndex(const WebCore::IDBResultData&)
+{
+}
+
+void WebIDBConnectionToClient::didDeleteIndex(const WebCore::IDBResultData&)
+{
+}
+
+void WebIDBConnectionToClient::didPutOrAdd(const WebCore::IDBResultData&)
+{
+}
+
+void WebIDBConnectionToClient::didGetRecord(const WebCore::IDBResultData&)
+{
+}
+
+void WebIDBConnectionToClient::didGetCount(const WebCore::IDBResultData&)
+{
+}
+
+void WebIDBConnectionToClient::didDeleteRecord(const WebCore::IDBResultData&)
+{
+}
+
+void WebIDBConnectionToClient::didOpenCursor(const WebCore::IDBResultData&)
+{
+}
+
+void WebIDBConnectionToClient::didIterateCursor(const WebCore::IDBResultData&)
+{
+}
+
+void WebIDBConnectionToClient::fireVersionChangeEvent(WebCore::IDBServer::UniqueIDBDatabaseConnection&, const WebCore::IDBResourceIdentifier& requestIdentifier, uint64_t requestedVersion)
+{
+}
+
+void WebIDBConnectionToClient::didStartTransaction(const WebCore::IDBResourceIdentifier& transactionIdentifier, const WebCore::IDBError&)
+{
+}
+
+void WebIDBConnectionToClient::notifyOpenDBRequestBlocked(const WebCore::IDBResourceIdentifier& requestIdentifier, uint64_t oldVersion, uint64_t newVersion)
+{
+}
+
+} // namespace WebKit
+
+#endif // ENABLE(INDEXED_DATABASE)
</ins></span></pre></div>
<a id="trunkSourceWebKit2DatabaseProcessIndexedDBWebIDBConnectionToClienth"></a>
<div class="addfile"><h4>Added: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h (0 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h         (rev 0)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -0,0 +1,85 @@
</span><ins>+/*
+ * Copyright (C) 2016 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 WebIDBConnectionToClient_h
+#define WebIDBConnectionToClient_h
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include "DatabaseToWebProcessConnection.h"
+#include "MessageSender.h"
+#include <WebCore/IDBConnectionToClient.h>
+
+namespace WebKit {
+
+class WebIDBConnectionToClient final : public WebCore::IDBServer::IDBConnectionToClientDelegate, public IPC::MessageSender, public RefCounted<WebIDBConnectionToClient> {
+public:
+ static Ref<WebIDBConnectionToClient> create(DatabaseToWebProcessConnection&, uint64_t serverConnectionIdentifier);
+
+ virtual ~WebIDBConnectionToClient();
+
+ WebCore::IDBServer::IDBConnectionToClient& connectionToClient();
+ virtual uint64_t identifier() const override final { return m_identifier; }
+ virtual uint64_t messageSenderDestinationID() override final { return m_identifier; }
+
+ virtual void didDeleteDatabase(const WebCore::IDBResultData&) override final;
+ virtual void didOpenDatabase(const WebCore::IDBResultData&) override final;
+ virtual void didAbortTransaction(const WebCore::IDBResourceIdentifier& transactionIdentifier, const WebCore::IDBError&) override final;
+ virtual void didCommitTransaction(const WebCore::IDBResourceIdentifier& transactionIdentifier, const WebCore::IDBError&) override final;
+ virtual void didCreateObjectStore(const WebCore::IDBResultData&) override final;
+ virtual void didDeleteObjectStore(const WebCore::IDBResultData&) override final;
+ virtual void didClearObjectStore(const WebCore::IDBResultData&) override final;
+ virtual void didCreateIndex(const WebCore::IDBResultData&) override final;
+ virtual void didDeleteIndex(const WebCore::IDBResultData&) override final;
+ virtual void didPutOrAdd(const WebCore::IDBResultData&) override final;
+ virtual void didGetRecord(const WebCore::IDBResultData&) override final;
+ virtual void didGetCount(const WebCore::IDBResultData&) override final;
+ virtual void didDeleteRecord(const WebCore::IDBResultData&) override final;
+ virtual void didOpenCursor(const WebCore::IDBResultData&) override final;
+ virtual void didIterateCursor(const WebCore::IDBResultData&) override final;
+
+ virtual void fireVersionChangeEvent(WebCore::IDBServer::UniqueIDBDatabaseConnection&, const WebCore::IDBResourceIdentifier& requestIdentifier, uint64_t requestedVersion) override final;
+ virtual void didStartTransaction(const WebCore::IDBResourceIdentifier& transactionIdentifier, const WebCore::IDBError&) override final;
+ virtual void notifyOpenDBRequestBlocked(const WebCore::IDBResourceIdentifier& requestIdentifier, uint64_t oldVersion, uint64_t newVersion) override final;
+
+ virtual void ref() override { RefCounted<WebIDBConnectionToClient>::ref(); }
+ virtual void deref() override { RefCounted<WebIDBConnectionToClient>::deref(); }
+
+ void disconnectedFromWebProcess();
+
+private:
+ WebIDBConnectionToClient(DatabaseToWebProcessConnection&, uint64_t serverConnectionIdentifier);
+
+ virtual IPC::Connection* messageSenderConnection() override final;
+ Ref<DatabaseToWebProcessConnection> m_connection;
+
+ uint64_t m_identifier;
+ RefPtr<WebCore::IDBServer::IDBConnectionToClient> m_connectionToClient;
+};
+
+} // namespace WebKit
+
+#endif // ENABLE(INDEXED_DATABASE)
+#endif // WebIDBConnectionToClient_h
</ins></span></pre></div>
<a id="trunkSourceWebKit2PlatformLoggingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Platform/Logging.h (196650 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/Logging.h        2016-02-16 20:50:46 UTC (rev 196650)
+++ trunk/Source/WebKit2/Platform/Logging.h        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -41,6 +41,7 @@
</span><span class="cx"> M(ContextMenu) \
</span><span class="cx"> M(IDB) \
</span><span class="cx"> M(IconDatabase) \
</span><ins>+ M(IndexedDB) \
</ins><span class="cx"> M(InspectorServer) \
</span><span class="cx"> M(KeyHandling) \
</span><span class="cx"> M(Network) \
</span></span></pre></div>
<a id="trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (196650 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2016-02-16 20:50:46 UTC (rev 196650)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -854,6 +854,8 @@
</span><span class="cx">                 51032F19180F73BB00961BB7 /* WebToDatabaseProcessConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 51032F17180F73BB00961BB7 /* WebToDatabaseProcessConnection.h */; };
</span><span class="cx">                 51032F1D180F791700961BB7 /* DatabaseToWebProcessConnectionMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51032F1B180F791700961BB7 /* DatabaseToWebProcessConnectionMessageReceiver.cpp */; };
</span><span class="cx">                 51032F1E180F791700961BB7 /* DatabaseToWebProcessConnectionMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 51032F1C180F791700961BB7 /* DatabaseToWebProcessConnectionMessages.h */; };
</span><ins>+                5105236F1C739D42007993CB /* WebIDBConnectionToClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5105236D1C7393E9007993CB /* WebIDBConnectionToClient.cpp */; };
+                510523701C739D42007993CB /* WebIDBConnectionToClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 5105236E1C7393E9007993CB /* WebIDBConnectionToClient.h */; };
</ins><span class="cx">                 51064D35189781C4004B2FEB /* SQLiteIDBCursor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51064D33189781C4004B2FEB /* SQLiteIDBCursor.cpp */; };
</span><span class="cx">                 51064D36189781C4004B2FEB /* SQLiteIDBCursor.h in Headers */ = {isa = PBXBuildFile; fileRef = 51064D34189781C4004B2FEB /* SQLiteIDBCursor.h */; };
</span><span class="cx">                 5106D7C218BDBE73000AB166 /* ContextMenuContextData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5106D7BF18BDBE73000AB166 /* ContextMenuContextData.cpp */; };
</span><span class="lines">@@ -914,6 +916,8 @@
</span><span class="cx">                 513A164D1630A9BF005D7D22 /* NetworkConnectionToWebProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 513A164A1630A9BF005D7D22 /* NetworkConnectionToWebProcess.h */; };
</span><span class="cx">                 513E462D1AD837560016234A /* WKSharingServicePickerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 513E462B1AD837560016234A /* WKSharingServicePickerDelegate.h */; };
</span><span class="cx">                 513E462E1AD837560016234A /* WKSharingServicePickerDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 513E462C1AD837560016234A /* WKSharingServicePickerDelegate.mm */; };
</span><ins>+                514129941C6428BB0059E714 /* WebIDBConnectionToServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 514129921C6428100059E714 /* WebIDBConnectionToServer.h */; };
+                514129951C6428C20059E714 /* WebIDBConnectionToServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514129911C6428100059E714 /* WebIDBConnectionToServer.cpp */; };
</ins><span class="cx">                 514BDED316C98EDD00E4E25E /* StatisticsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 514BDED216C98EDD00E4E25E /* StatisticsRequest.h */; };
</span><span class="cx">                 514D9F5719119D35000063A7 /* ServicesController.h in Headers */ = {isa = PBXBuildFile; fileRef = 514D9F5519119D35000063A7 /* ServicesController.h */; };
</span><span class="cx">                 514D9F5819119D35000063A7 /* ServicesController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 514D9F5619119D35000063A7 /* ServicesController.mm */; };
</span><span class="lines">@@ -2852,6 +2856,8 @@
</span><span class="cx">                 51032F1A180F74F100961BB7 /* DatabaseToWebProcessConnection.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = DatabaseToWebProcessConnection.messages.in; sourceTree = "<group>"; };
</span><span class="cx">                 51032F1B180F791700961BB7 /* DatabaseToWebProcessConnectionMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DatabaseToWebProcessConnectionMessageReceiver.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 51032F1C180F791700961BB7 /* DatabaseToWebProcessConnectionMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DatabaseToWebProcessConnectionMessages.h; sourceTree = "<group>"; };
</span><ins>+                5105236D1C7393E9007993CB /* WebIDBConnectionToClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebIDBConnectionToClient.cpp; sourceTree = "<group>"; };
+                5105236E1C7393E9007993CB /* WebIDBConnectionToClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebIDBConnectionToClient.h; sourceTree = "<group>"; };
</ins><span class="cx">                 5105B0D4162F7A7A00E27709 /* NetworkProcessConnection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkProcessConnection.cpp; path = Network/NetworkProcessConnection.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 5105B0D5162F7A7A00E27709 /* NetworkProcessConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkProcessConnection.h; path = Network/NetworkProcessConnection.h; sourceTree = "<group>"; };
</span><span class="cx">                 5105B0F31630872E00E27709 /* NetworkProcessProxy.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = NetworkProcessProxy.messages.in; sourceTree = "<group>"; };
</span><span class="lines">@@ -2920,6 +2926,8 @@
</span><span class="cx">                 513A164B1630A9BF005D7D22 /* NetworkConnectionToWebProcess.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = NetworkConnectionToWebProcess.messages.in; path = NetworkProcess/NetworkConnectionToWebProcess.messages.in; sourceTree = "<group>"; };
</span><span class="cx">                 513E462B1AD837560016234A /* WKSharingServicePickerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKSharingServicePickerDelegate.h; sourceTree = "<group>"; };
</span><span class="cx">                 513E462C1AD837560016234A /* WKSharingServicePickerDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKSharingServicePickerDelegate.mm; sourceTree = "<group>"; };
</span><ins>+                514129911C6428100059E714 /* WebIDBConnectionToServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebIDBConnectionToServer.cpp; sourceTree = "<group>"; };
+                514129921C6428100059E714 /* WebIDBConnectionToServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebIDBConnectionToServer.h; sourceTree = "<group>"; };
</ins><span class="cx">                 514BDED216C98EDD00E4E25E /* StatisticsRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StatisticsRequest.h; sourceTree = "<group>"; };
</span><span class="cx">                 514D9F5519119D35000063A7 /* ServicesController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServicesController.h; sourceTree = "<group>"; };
</span><span class="cx">                 514D9F5619119D35000063A7 /* ServicesController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ServicesController.mm; sourceTree = "<group>"; };
</span><span class="lines">@@ -5300,6 +5308,8 @@
</span><span class="cx">                 511F8EDA180881660047DA96 /* IndexedDB */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                514129911C6428100059E714 /* WebIDBConnectionToServer.cpp */,
+                                514129921C6428100059E714 /* WebIDBConnectionToServer.h */,
</ins><span class="cx">                                 51E351F1180F5C7500E53BE9 /* WebIDBFactoryBackend.cpp */,
</span><span class="cx">                                 51E351F2180F5C7500E53BE9 /* WebIDBFactoryBackend.h */,
</span><span class="cx">                                 51290990183ACEAF005522A6 /* WebIDBServerConnection.cpp */,
</span><span class="lines">@@ -5450,6 +5460,8 @@
</span><span class="cx">                                 51654EFF184EF34A007DC837 /* UniqueIDBDatabaseBackingStore.h */,
</span><span class="cx">                                 515E773118402D510007203F /* UniqueIDBDatabaseIdentifier.cpp */,
</span><span class="cx">                                 515E773218402D510007203F /* UniqueIDBDatabaseIdentifier.h */,
</span><ins>+                                5105236D1C7393E9007993CB /* WebIDBConnectionToClient.cpp */,
+                                5105236E1C7393E9007993CB /* WebIDBConnectionToClient.h */,
</ins><span class="cx">                         );
</span><span class="cx">                         path = IndexedDB;
</span><span class="cx">                         sourceTree = "<group>";
</span><span class="lines">@@ -7766,6 +7778,7 @@
</span><span class="cx">                                 1A52C0F81A38CDC70016160A /* WebStorageNamespaceProvider.h in Headers */,
</span><span class="cx">                                 BCC5715B115ADAEF001CCAF9 /* WebSystemInterface.h in Headers */,
</span><span class="cx">                                 51032F19180F73BB00961BB7 /* WebToDatabaseProcessConnection.h in Headers */,
</span><ins>+                                514129941C6428BB0059E714 /* WebIDBConnectionToServer.h in Headers */,
</ins><span class="cx">                                 BCA0EF7F12331E78007D3CFB /* WebUndoStep.h in Headers */,
</span><span class="cx">                                 1AAF08AE1926936700B6390C /* WebUserContentController.h in Headers */,
</span><span class="cx">                                 1AAF08B819269E6D00B6390C /* WebUserContentControllerMessages.h in Headers */,
</span><span class="lines">@@ -7789,6 +7802,7 @@
</span><span class="cx">                                 512F58F812A88A5400629530 /* WKAuthenticationDecisionListener.h in Headers */,
</span><span class="cx">                                 37C4C08D1814AC5C003688B9 /* WKBackForwardList.h in Headers */,
</span><span class="cx">                                 37C4C0951814B9E6003688B9 /* WKBackForwardListInternal.h in Headers */,
</span><ins>+                                510523701C739D42007993CB /* WebIDBConnectionToClient.h in Headers */,
</ins><span class="cx">                                 37C4C08718149C5B003688B9 /* WKBackForwardListItem.h in Headers */,
</span><span class="cx">                                 37C4C08918149F23003688B9 /* WKBackForwardListItemInternal.h in Headers */,
</span><span class="cx">                                 BC646C1D11DD399F006455B0 /* WKBackForwardListItemRef.h in Headers */,
</span><span class="lines">@@ -8796,6 +8810,7 @@
</span><span class="cx">                                 1AB7D4CB1288AAA700CFD08C /* DownloadProxy.cpp in Sources */,
</span><span class="cx">                                 1AD25E95167AB08100EA9BCD /* DownloadProxyMap.cpp in Sources */,
</span><span class="cx">                                 1AB7D6191288B9D900CFD08C /* DownloadProxyMessageReceiver.cpp in Sources */,
</span><ins>+                                5105236F1C739D42007993CB /* WebIDBConnectionToClient.cpp in Sources */,
</ins><span class="cx">                                 BC8452A71162C80900CAB9B5 /* DrawingArea.cpp in Sources */,
</span><span class="cx">                                 1A64229912DD029200CAAE2C /* DrawingAreaMessageReceiver.cpp in Sources */,
</span><span class="cx">                                 BC2652161182608100243E12 /* DrawingAreaProxy.cpp in Sources */,
</span><span class="lines">@@ -9422,6 +9437,7 @@
</span><span class="cx">                                 BCD597D1112B56AC00EC8C23 /* WKPreferences.cpp in Sources */,
</span><span class="cx">                                 1AFDD3191891CA1200153970 /* WKPreferences.mm in Sources */,
</span><span class="cx">                                 0FCB4E6718BBE3D9000FCFC9 /* WKPrintingView.mm in Sources */,
</span><ins>+                                514129951C6428C20059E714 /* WebIDBConnectionToServer.cpp in Sources */,
</ins><span class="cx">                                 BCBAACEC145225E30053F82F /* WKProcessGroup.mm in Sources */,
</span><span class="cx">                                 1A158419189044F50017616C /* WKProcessPool.mm in Sources */,
</span><span class="cx">                                 512F58FB12A88A5400629530 /* WKProtectionSpace.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessDatabasesIndexedDBWebIDBConnectionToServercpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp (0 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp         (rev 0)
+++ trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -0,0 +1,162 @@
</span><ins>+/*
+ * Copyright (C) 2016 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 "config.h"
+#include "WebIDBConnectionToServer.h"
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include "DatabaseToWebProcessConnectionMessages.h"
+#include "WebProcess.h"
+#include "WebToDatabaseProcessConnection.h"
+#include <WebCore/IDBConnectionToServer.h>
+#include <WebCore/IDBOpenDBRequestImpl.h>
+
+using namespace WebCore;
+
+namespace WebKit {
+
+static uint64_t generateConnectionToServerIdentifier()
+{
+ ASSERT(RunLoop::isMain());
+ static uint64_t identifier = 0;
+ return ++identifier;
+}
+
+Ref<WebIDBConnectionToServer> WebIDBConnectionToServer::create()
+{
+ return adoptRef(*new WebIDBConnectionToServer);
+}
+
+WebIDBConnectionToServer::WebIDBConnectionToServer()
+ : m_identifier(generateConnectionToServerIdentifier())
+{
+ relaxAdoptionRequirement();
+ m_connectionToServer = IDBClient::IDBConnectionToServer::create(*this);
+
+ send(Messages::DatabaseToWebProcessConnection::EstablishIDBConnectionToServer(m_identifier));
+
+ m_isOpenInServer = true;
+}
+
+WebIDBConnectionToServer::~WebIDBConnectionToServer()
+{
+ if (m_isOpenInServer)
+ send(Messages::DatabaseToWebProcessConnection::RemoveIDBConnectionToServer(m_identifier));
+}
+
+IPC::Connection* WebIDBConnectionToServer::messageSenderConnection()
+{
+ return WebProcess::singleton().webToDatabaseProcessConnection()->connection();
+}
+
+IDBClient::IDBConnectionToServer& WebIDBConnectionToServer::coreConnectionToServer()
+{
+ return *m_connectionToServer;
+}
+
+void WebIDBConnectionToServer::deleteDatabase(IDBRequestData&)
+{
+}
+
+void WebIDBConnectionToServer::openDatabase(IDBRequestData&)
+{
+}
+
+void WebIDBConnectionToServer::abortTransaction(IDBResourceIdentifier&)
+{
+}
+
+void WebIDBConnectionToServer::commitTransaction(IDBResourceIdentifier&)
+{
+}
+
+void WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction(IDBResourceIdentifier&)
+{
+}
+
+void WebIDBConnectionToServer::createObjectStore(const IDBRequestData&, const IDBObjectStoreInfo&)
+{
+}
+
+void WebIDBConnectionToServer::deleteObjectStore(const IDBRequestData&, const String& objectStoreName)
+{
+}
+
+void WebIDBConnectionToServer::clearObjectStore(const IDBRequestData&, uint64_t objectStoreIdentifier)
+{
+}
+
+void WebIDBConnectionToServer::createIndex(const IDBRequestData&, const IDBIndexInfo&)
+{
+}
+
+void WebIDBConnectionToServer::deleteIndex(const IDBRequestData&, uint64_t objectStoreIdentifier, const String& indexName)
+{
+}
+
+void WebIDBConnectionToServer::putOrAdd(const IDBRequestData&, IDBKey*, SerializedScriptValue&, const IndexedDB::ObjectStoreOverwriteMode)
+{
+}
+
+void WebIDBConnectionToServer::getRecord(const IDBRequestData&, const IDBKeyRangeData&)
+{
+}
+
+void WebIDBConnectionToServer::getCount(const IDBRequestData&, const IDBKeyRangeData&)
+{
+}
+
+void WebIDBConnectionToServer::deleteRecord(const IDBRequestData&, const IDBKeyRangeData&)
+{
+}
+
+void WebIDBConnectionToServer::openCursor(const IDBRequestData&, const IDBCursorInfo&)
+{
+}
+
+void WebIDBConnectionToServer::iterateCursor(const IDBRequestData&, const IDBKeyData&, unsigned long count)
+{
+}
+
+void WebIDBConnectionToServer::establishTransaction(uint64_t databaseConnectionIdentifier, const IDBTransactionInfo&)
+{
+}
+
+void WebIDBConnectionToServer::databaseConnectionClosed(uint64_t databaseConnectionIdentifier)
+{
+}
+
+void WebIDBConnectionToServer::abortOpenAndUpgradeNeeded(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier& transactionIdentifier)
+{
+}
+
+void WebIDBConnectionToServer::didFireVersionChangeEvent(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier& requestIdentifier)
+{
+}
+
+} // namespace WebKit
+
+#endif // ENABLE(INDEXED_DATABASE)
</ins></span></pre></div>
<a id="trunkSourceWebKit2WebProcessDatabasesIndexedDBWebIDBConnectionToServerh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h (0 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h         (rev 0)
+++ trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -0,0 +1,83 @@
</span><ins>+/*
+ * Copyright (C) 2016 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 WebIDBConnectionToServer_h
+#define WebIDBConnectionToServer_h
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include "MessageSender.h"
+#include <WebCore/IDBConnectionToServer.h>
+
+namespace WebKit {
+
+class WebIDBConnectionToServer final : public WebCore::IDBClient::IDBConnectionToServerDelegate, public IPC::MessageSender, public RefCounted<WebIDBConnectionToServer> {
+public:
+ static Ref<WebIDBConnectionToServer> create();
+
+ virtual ~WebIDBConnectionToServer();
+
+ WebCore::IDBClient::IDBConnectionToServer& coreConnectionToServer();
+ virtual uint64_t identifier() const override final { return m_identifier; }
+ virtual uint64_t messageSenderDestinationID() override final { return m_identifier; }
+
+ virtual void deleteDatabase(WebCore::IDBRequestData&) override final;
+ virtual void openDatabase(WebCore::IDBRequestData&) override final;
+ virtual void abortTransaction(WebCore::IDBResourceIdentifier&) override final;
+ virtual void commitTransaction(WebCore::IDBResourceIdentifier&) override final;
+ virtual void didFinishHandlingVersionChangeTransaction(WebCore::IDBResourceIdentifier&) override final;
+ virtual void createObjectStore(const WebCore::IDBRequestData&, const WebCore::IDBObjectStoreInfo&) override final;
+ virtual void deleteObjectStore(const WebCore::IDBRequestData&, const String& objectStoreName) override final;
+ virtual void clearObjectStore(const WebCore::IDBRequestData&, uint64_t objectStoreIdentifier) override final;
+ virtual void createIndex(const WebCore::IDBRequestData&, const WebCore::IDBIndexInfo&) override final;
+ virtual void deleteIndex(const WebCore::IDBRequestData&, uint64_t objectStoreIdentifier, const String& indexName) override final;
+ virtual void putOrAdd(const WebCore::IDBRequestData&, WebCore::IDBKey*, WebCore::SerializedScriptValue&, const WebCore::IndexedDB::ObjectStoreOverwriteMode) override final;
+ virtual void getRecord(const WebCore::IDBRequestData&, const WebCore::IDBKeyRangeData&) override final;
+ virtual void getCount(const WebCore::IDBRequestData&, const WebCore::IDBKeyRangeData&) override final;
+ virtual void deleteRecord(const WebCore::IDBRequestData&, const WebCore::IDBKeyRangeData&) override final;
+ virtual void openCursor(const WebCore::IDBRequestData&, const WebCore::IDBCursorInfo&) override final;
+ virtual void iterateCursor(const WebCore::IDBRequestData&, const WebCore::IDBKeyData&, unsigned long count) override final;
+ virtual void establishTransaction(uint64_t databaseConnectionIdentifier, const WebCore::IDBTransactionInfo&) override final;
+ virtual void databaseConnectionClosed(uint64_t databaseConnectionIdentifier) override final;
+ virtual void abortOpenAndUpgradeNeeded(uint64_t databaseConnectionIdentifier, const WebCore::IDBResourceIdentifier& transactionIdentifier) override final;
+ virtual void didFireVersionChangeEvent(uint64_t databaseConnectionIdentifier, const WebCore::IDBResourceIdentifier& requestIdentifier) override final;
+
+ virtual void ref() override { RefCounted<WebIDBConnectionToServer>::ref(); }
+ virtual void deref() override { RefCounted<WebIDBConnectionToServer>::deref(); }
+
+private:
+ WebIDBConnectionToServer();
+
+ virtual IPC::Connection* messageSenderConnection() override final;
+
+ uint64_t m_identifier;
+ bool m_isOpenInServer { false };
+ RefPtr<WebCore::IDBClient::IDBConnectionToServer> m_connectionToServer;
+};
+
+} // namespace WebKit
+
+#endif // ENABLE(INDEXED_DATABASE)
+#endif // WebIDBConnectionToServer_h
</ins></span></pre></div>
<a id="trunkSourceWebKit2WebProcessDatabasesWebDatabaseProvidercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.cpp (196650 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.cpp        2016-02-16 20:50:46 UTC (rev 196650)
+++ trunk/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.cpp        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -27,6 +27,9 @@
</span><span class="cx"> #include "WebDatabaseProvider.h"
</span><span class="cx">
</span><span class="cx"> #include "WebIDBFactoryBackend.h"
</span><ins>+#include "WebProcess.h"
+#include "WebToDatabaseProcessConnection.h"
+#include <WebCore/SessionID.h>
</ins><span class="cx"> #include <wtf/HashMap.h>
</span><span class="cx"> #include <wtf/NeverDestroyed.h>
</span><span class="cx">
</span><span class="lines">@@ -66,6 +69,21 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><ins>+
+WebCore::IDBClient::IDBConnectionToServer& WebDatabaseProvider::idbConnectionToServerForSession(const WebCore::SessionID& sessionID)
+{
+ if (sessionID.isEphemeral()) {
+ auto result = m_idbEphemeralConnectionMap.add(sessionID.sessionID(), nullptr);
+ if (result.isNewEntry)
+ result.iterator->value = WebCore::InProcessIDBServer::create();
+
+ return result.iterator->value->connectionToServer();
+ }
+
+ ASSERT(WebProcess::singleton().webToDatabaseProcessConnection());
+ return WebProcess::singleton().webToDatabaseProcessConnection()->idbConnectionToServerForSession(sessionID).coreConnectionToServer();
+}
+
</ins><span class="cx"> RefPtr<WebCore::IDBFactoryBackendInterface> WebDatabaseProvider::createIDBFactoryBackend()
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(DATABASE_PROCESS)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessDatabasesWebDatabaseProviderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.h (196650 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.h        2016-02-16 20:50:46 UTC (rev 196650)
+++ trunk/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.h        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -27,6 +27,8 @@
</span><span class="cx"> #define WebDatabaseProvider_h
</span><span class="cx">
</span><span class="cx"> #include <WebCore/DatabaseProvider.h>
</span><ins>+#include <WebCore/InProcessIDBServer.h>
+#include <wtf/HashMap.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebKit {
</span><span class="cx">
</span><span class="lines">@@ -37,11 +39,7 @@
</span><span class="cx">
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx"> virtual bool supportsModernIDB() const override { return false; }
</span><del>-
- virtual WebCore::IDBClient::IDBConnectionToServer& idbConnectionToServerForSession(const WebCore::SessionID&) override
- {
- RELEASE_ASSERT_NOT_REACHED();
- }
</del><ins>+ virtual WebCore::IDBClient::IDBConnectionToServer& idbConnectionToServerForSession(const WebCore::SessionID&) override final;
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="lines">@@ -49,6 +47,7 @@
</span><span class="cx">
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx"> virtual RefPtr<WebCore::IDBFactoryBackendInterface> createIDBFactoryBackend() override;
</span><ins>+ HashMap<uint64_t, RefPtr<WebCore::InProcessIDBServer>> m_idbEphemeralConnectionMap;
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> const uint64_t m_identifier;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessDatabasesWebToDatabaseProcessConnectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.cpp (196650 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.cpp        2016-02-16 20:50:46 UTC (rev 196650)
+++ trunk/Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.cpp        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -88,6 +88,15 @@
</span><span class="cx">
</span><span class="cx"> m_webIDBServerConnections.remove(connection.messageSenderDestinationID());
</span><span class="cx"> }
</span><ins>+
+WebIDBConnectionToServer& WebToDatabaseProcessConnection::idbConnectionToServerForSession(const SessionID& sessionID)
+{
+ auto result = m_webIDBConnections.add(sessionID.sessionID(), nullptr);
+ if (result.isNewEntry)
+ result.iterator->value = WebIDBConnectionToServer::create();
+
+ return *result.iterator->value;
+}
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessDatabasesWebToDatabaseProcessConnectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.h (196650 => 196651)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.h        2016-02-16 20:50:46 UTC (rev 196650)
+++ trunk/Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.h        2016-02-16 20:58:56 UTC (rev 196651)
</span><span class="lines">@@ -29,10 +29,15 @@
</span><span class="cx">
</span><span class="cx"> #include "Connection.h"
</span><span class="cx"> #include "MessageSender.h"
</span><ins>+#include "WebIDBConnectionToServer.h"
</ins><span class="cx"> #include <wtf/RefCounted.h>
</span><span class="cx">
</span><span class="cx"> #if ENABLE(DATABASE_PROCESS)
</span><span class="cx">
</span><ins>+namespace WebCore {
+class SessionID;
+}
+
</ins><span class="cx"> namespace WebKit {
</span><span class="cx">
</span><span class="cx"> class WebIDBServerConnection;
</span><span class="lines">@@ -51,6 +56,8 @@
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx"> void registerWebIDBServerConnection(WebIDBServerConnection&);
</span><span class="cx"> void removeWebIDBServerConnection(WebIDBServerConnection&);
</span><ins>+
+ WebIDBConnectionToServer& idbConnectionToServerForSession(const WebCore::SessionID&);
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="lines">@@ -71,6 +78,8 @@
</span><span class="cx">
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx"> HashMap<uint64_t, WebIDBServerConnection*> m_webIDBServerConnections;
</span><ins>+
+ HashMap<uint64_t, RefPtr<WebIDBConnectionToServer>> m_webIDBConnections;
</ins><span class="cx"> #endif
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre>
</div>
</div>
</body>
</html>