<!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>[197311] releases/WebKitGTK/webkit-2.12/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/197311">197311</a></dd>
<dt>Author</dt> <dd>carlosgc@webkit.org</dd>
<dt>Date</dt> <dd>2016-02-28 23:35:05 -0800 (Sun, 28 Feb 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Merge <a href="http://trac.webkit.org/projects/webkit/changeset/197131">r197131</a> - Remove LegacyIDB.
https://bugs.webkit.org/show_bug.cgi?id=150854

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (No change in behavior).

* CMakeLists.txt:
* Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
(WebCore::DOMWindowIndexedDatabase::indexedDB):
* Modules/indexeddb/IDBDatabaseMetadata.cpp: Removed.
* Modules/indexeddb/IDBDatabaseMetadata.h: Removed.
* Modules/indexeddb/IDBFactory.h:
* Modules/indexeddb/IDBIndex.h:
* Modules/indexeddb/IDBIndexMetadata.h: Removed.
* Modules/indexeddb/IDBObjectStoreMetadata.h: Removed.
* Modules/indexeddb/IDBOperation.h: Removed.
* Modules/indexeddb/IDBServerConnection.h: Removed.
* Modules/indexeddb/IDBTransaction.h:
* Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:
(WebCore::WorkerGlobalScopeIndexedDatabase::indexedDB):
* Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h:
* Modules/indexeddb/legacy/IDBCallbacks.h: Removed.
* Modules/indexeddb/legacy/IDBCursorBackend.cpp: Removed.
* Modules/indexeddb/legacy/IDBCursorBackend.h: Removed.
* Modules/indexeddb/legacy/IDBCursorBackendOperations.cpp: Removed.
* Modules/indexeddb/legacy/IDBCursorBackendOperations.h: Removed.
* Modules/indexeddb/legacy/IDBDatabaseBackend.cpp: Removed.
* Modules/indexeddb/legacy/IDBDatabaseBackend.h: Removed.
* Modules/indexeddb/legacy/IDBDatabaseCallbacks.h: Removed.
* Modules/indexeddb/legacy/IDBDatabaseCallbacksImpl.cpp: Removed.
* Modules/indexeddb/legacy/IDBDatabaseCallbacksImpl.h: Removed.
* Modules/indexeddb/legacy/IDBFactoryBackendInterface.h: Removed.
* Modules/indexeddb/legacy/IDBPendingDeleteCall.h: Removed.
* Modules/indexeddb/legacy/IDBPendingOpenCall.h: Removed.
* Modules/indexeddb/legacy/IDBPendingTransactionMonitor.cpp: Removed.
* Modules/indexeddb/legacy/IDBPendingTransactionMonitor.h: Removed.
* Modules/indexeddb/legacy/IDBTransactionBackend.cpp: Removed.
* Modules/indexeddb/legacy/IDBTransactionBackend.h: Removed.
* Modules/indexeddb/legacy/IDBTransactionBackendOperations.cpp: Removed.
* Modules/indexeddb/legacy/IDBTransactionBackendOperations.h: Removed.
* Modules/indexeddb/legacy/IDBTransactionCoordinator.cpp: Removed.
* Modules/indexeddb/legacy/IDBTransactionCoordinator.h: Removed.
* Modules/indexeddb/legacy/LegacyAny.cpp: Removed.
* Modules/indexeddb/legacy/LegacyAny.h: Removed.
* Modules/indexeddb/legacy/LegacyCursor.cpp: Removed.
* Modules/indexeddb/legacy/LegacyCursor.h: Removed.
* Modules/indexeddb/legacy/LegacyCursorWithValue.cpp: Removed.
* Modules/indexeddb/legacy/LegacyCursorWithValue.h: Removed.
* Modules/indexeddb/legacy/LegacyDatabase.cpp: Removed.
* Modules/indexeddb/legacy/LegacyDatabase.h: Removed.
* Modules/indexeddb/legacy/LegacyFactory.cpp: Removed.
* Modules/indexeddb/legacy/LegacyFactory.h: Removed.
* Modules/indexeddb/legacy/LegacyIndex.cpp: Removed.
* Modules/indexeddb/legacy/LegacyIndex.h: Removed.
* Modules/indexeddb/legacy/LegacyObjectStore.cpp: Removed.
* Modules/indexeddb/legacy/LegacyObjectStore.h: Removed.
* Modules/indexeddb/legacy/LegacyOpenDBRequest.cpp: Removed.
* Modules/indexeddb/legacy/LegacyOpenDBRequest.h: Removed.
* Modules/indexeddb/legacy/LegacyRequest.cpp: Removed.
* Modules/indexeddb/legacy/LegacyRequest.h: Removed.
* Modules/indexeddb/legacy/LegacyTransaction.cpp: Removed.
* Modules/indexeddb/legacy/LegacyTransaction.h: Removed.
* Modules/indexeddb/legacy/LegacyVersionChangeEvent.cpp: Removed.
* Modules/indexeddb/legacy/LegacyVersionChangeEvent.h: Removed.
* Modules/indexeddb/server/SQLiteIDBCursor.cpp:
(WebCore::IDBServer::SQLiteIDBCursor::SQLiteIDBCursor):
(WebCore::IDBServer::SQLiteIDBCursor::establishStatement):
(WebCore::IDBServer::SQLiteIDBCursor::internalAdvanceOnce):
* Modules/indexeddb/server/SQLiteIDBCursor.h:
* Modules/indexeddb/shared/IDBIndexInfo.h:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/IDBBindingUtilities.cpp:
(WebCore::generateIndexKeysForValue): Deleted.
* bindings/js/IDBBindingUtilities.h:
* bindings/js/JSMainThreadExecState.cpp:
(WebCore::JSMainThreadExecState::didLeaveScriptContext): Deleted.
* inspector/InspectorIndexedDBAgent.cpp:
* loader/EmptyClients.cpp:
* page/DatabaseProvider.cpp:
(WebCore::DatabaseProvider::idbFactoryBackend): Deleted.
* page/DatabaseProvider.h:
* platform/CrossThreadCopier.cpp:
(WebCore::IDBDatabaseMetadata&gt;::copy): Deleted.
(WebCore::IDBIndexMetadata&gt;::copy): Deleted.
(WebCore::IDBObjectStoreMetadata&gt;::copy): Deleted.
* platform/CrossThreadCopier.h:

Source/WebKit:

* Storage/WebDatabaseProvider.cpp:
(WebDatabaseProvider::createIDBFactoryBackend): Deleted.
* Storage/WebDatabaseProvider.h:

Source/WebKit2:

* CMakeLists.txt:
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::getOrCreateLegacyUniqueIDBDatabase): Deleted.
(WebKit::DatabaseProcess::removeLegacyUniqueIDBDatabase): Deleted.
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/DatabaseToWebProcessConnection.cpp:
(WebKit::DatabaseToWebProcessConnection::didClose):
(WebKit::DatabaseToWebProcessConnection::didReceiveMessage): Deleted.
(WebKit::DatabaseToWebProcessConnection::didReceiveSyncMessage): Deleted.
(WebKit::DatabaseToWebProcessConnection::establishIDBConnection): Deleted.
(WebKit::DatabaseToWebProcessConnection::removeDatabaseProcessIDBConnection): Deleted.
* DatabaseProcess/DatabaseToWebProcessConnection.h:
* DatabaseProcess/DatabaseToWebProcessConnection.messages.in:
* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp: Removed.
* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h: Removed.
* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in: Removed.
* DatabaseProcess/IndexedDB/IDBIdentifier.h: Removed.
* DatabaseProcess/IndexedDB/IDBSerialization.cpp: Removed.
* DatabaseProcess/IndexedDB/IDBSerialization.h: Removed.
* DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.cpp: Removed.
* DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.h: Removed.
* DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.cpp: Removed.
* DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.h: Removed.
* DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h: Removed.
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp: Removed.
* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.h: Removed.
* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.cpp: Removed.
* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.h: Removed.
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp: Removed.
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h: Removed.
* DerivedSources.make:
* Shared/WebCrossThreadCopier.cpp:
(WebCore::LegacyUniqueIDBDatabaseIdentifier&gt;::copy): Deleted.
(WebCore::IDBIdentifier&gt;::copy): Deleted.
* Shared/WebCrossThreadCopier.h:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp: Removed.
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h: Removed.
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp: Removed.
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.h: Removed.
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in: Removed.
* WebProcess/Databases/WebDatabaseProvider.cpp:
(WebKit::WebDatabaseProvider::createIDBFactoryBackend): Deleted.
* WebProcess/Databases/WebDatabaseProvider.h:
* WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
(WebKit::WebToDatabaseProcessConnection::didReceiveMessage): Deleted.
(WebKit::WebToDatabaseProcessConnection::registerWebIDBServerConnection): Deleted.
(WebKit::WebToDatabaseProcessConnection::removeWebIDBServerConnection): Deleted.
* WebProcess/Databases/WebToDatabaseProcessConnection.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreCMakeListstxt">releases/WebKitGTK/webkit-2.12/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreChangeLog">releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbDOMWindowIndexedDatabasecpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbIDBFactoryh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBFactory.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbIDBIndexh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBIndex.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbIDBTransactionh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBTransaction.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbWorkerGlobalScopeIndexedDatabasecpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbWorkerGlobalScopeIndexedDatabaseh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbserverSQLiteIDBCursorcpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbserverSQLiteIDBCursorh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbsharedIDBIndexInfoh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreWebCorexcodeprojprojectpbxproj">releases/WebKitGTK/webkit-2.12/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCorebindingsjsIDBBindingUtilitiescpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/bindings/js/IDBBindingUtilities.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCorebindingsjsIDBBindingUtilitiesh">releases/WebKitGTK/webkit-2.12/Source/WebCore/bindings/js/IDBBindingUtilities.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCorebindingsjsJSMainThreadExecStatecpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/bindings/js/JSMainThreadExecState.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreinspectorInspectorIndexedDBAgentcpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreloaderEmptyClientscpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/loader/EmptyClients.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCorepageDatabaseProvidercpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/page/DatabaseProvider.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCorepageDatabaseProviderh">releases/WebKitGTK/webkit-2.12/Source/WebCore/page/DatabaseProvider.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreplatformCrossThreadCopiercpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/CrossThreadCopier.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreplatformCrossThreadCopierh">releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/CrossThreadCopier.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKitChangeLog">releases/WebKitGTK/webkit-2.12/Source/WebKit/ChangeLog</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKitStorageWebDatabaseProvidercpp">releases/WebKitGTK/webkit-2.12/Source/WebKit/Storage/WebDatabaseProvider.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKitStorageWebDatabaseProviderh">releases/WebKitGTK/webkit-2.12/Source/WebKit/Storage/WebDatabaseProvider.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2CMakeListstxt">releases/WebKitGTK/webkit-2.12/Source/WebKit2/CMakeLists.txt</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2ChangeLog">releases/WebKitGTK/webkit-2.12/Source/WebKit2/ChangeLog</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessDatabaseProcesscpp">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessDatabaseProcessh">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseProcess.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessDatabaseToWebProcessConnectioncpp">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessDatabaseToWebProcessConnectionh">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessDatabaseToWebProcessConnectionmessagesin">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.messages.in</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBWebIDBConnectionToClienth">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DerivedSourcesmake">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DerivedSources.make</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2SharedWebCrossThreadCopiercpp">releases/WebKitGTK/webkit-2.12/Source/WebKit2/Shared/WebCrossThreadCopier.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2SharedWebCrossThreadCopierh">releases/WebKitGTK/webkit-2.12/Source/WebKit2/Shared/WebCrossThreadCopier.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2WebProcessDatabasesWebDatabaseProvidercpp">releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2WebProcessDatabasesWebDatabaseProviderh">releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2WebProcessDatabasesWebToDatabaseProcessConnectioncpp">releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2WebProcessDatabasesWebToDatabaseProcessConnectionh">releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2WebProcessWebCoreSupportWebPlatformStrategiescpp">releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbIDBDatabaseMetadatacpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBDatabaseMetadata.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbIDBDatabaseMetadatah">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBDatabaseMetadata.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbIDBIndexMetadatah">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBIndexMetadata.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbIDBObjectStoreMetadatah">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBObjectStoreMetadata.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbIDBOperationh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBOperation.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbIDBServerConnectionh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBServerConnection.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBCallbacksh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCallbacks.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBCursorBackendcpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCursorBackend.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBCursorBackendh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCursorBackend.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBCursorBackendOperationscpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCursorBackendOperations.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBCursorBackendOperationsh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCursorBackendOperations.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBDatabaseBackendcpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseBackend.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBDatabaseBackendh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseBackend.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBDatabaseCallbacksh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseCallbacks.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBDatabaseCallbacksImplcpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseCallbacksImpl.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBDatabaseCallbacksImplh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseCallbacksImpl.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBFactoryBackendInterfaceh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBFactoryBackendInterface.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBPendingDeleteCallh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBPendingDeleteCall.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBPendingOpenCallh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBPendingOpenCall.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBPendingTransactionMonitorcpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBPendingTransactionMonitor.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBPendingTransactionMonitorh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBPendingTransactionMonitor.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBTransactionBackendcpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackend.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBTransactionBackendh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackend.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBTransactionBackendOperationscpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackendOperations.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBTransactionBackendOperationsh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackendOperations.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBTransactionCoordinatorcpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionCoordinator.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBTransactionCoordinatorh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionCoordinator.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyAnycpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyAny.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyAnyh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyAny.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyCursorcpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyCursor.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyCursorh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyCursor.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyCursorWithValuecpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyCursorWithValue.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyCursorWithValueh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyCursorWithValue.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyDatabasecpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyDatabase.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyDatabaseh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyDatabase.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyFactorycpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyFactory.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyFactoryh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyFactory.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyIndexcpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyIndex.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyIndexh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyIndex.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyObjectStorecpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyObjectStore.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyObjectStoreh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyObjectStore.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyOpenDBRequestcpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyOpenDBRequest.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyOpenDBRequesth">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyOpenDBRequest.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyRequestcpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyRequest.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyRequesth">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyRequest.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyTransactioncpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyTransaction.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyTransactionh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyTransaction.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyVersionChangeEventcpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyVersionChangeEvent.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyVersionChangeEventh">releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyVersionChangeEvent.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBDatabaseProcessIDBConnectioncpp">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBDatabaseProcessIDBConnectionh">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBDatabaseProcessIDBConnectionmessagesin">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBIDBIdentifierh">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/IDBIdentifier.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBIDBSerializationcpp">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/IDBSerialization.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBIDBSerializationh">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/IDBSerialization.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBLegacyUniqueIDBDatabasecpp">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBLegacyUniqueIDBDatabaseh">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBLegacyUniqueIDBDatabaseIdentifiercpp">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBLegacyUniqueIDBDatabaseIdentifierh">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBUniqueIDBDatabaseBackingStoreh">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBsqliteSQLiteIDBCursorcpp">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBsqliteSQLiteIDBCursorh">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBsqliteSQLiteIDBTransactioncpp">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBsqliteSQLiteIDBTransactionh">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBsqliteUniqueIDBDatabaseBackingStoreSQLitecpp">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBsqliteUniqueIDBDatabaseBackingStoreSQLiteh">releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2WebProcessDatabasesIndexedDBWebIDBFactoryBackendcpp">releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2WebProcessDatabasesIndexedDBWebIDBFactoryBackendh">releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2WebProcessDatabasesIndexedDBWebIDBServerConnectioncpp">releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2WebProcessDatabasesIndexedDBWebIDBServerConnectionh">releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.h</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebKit2WebProcessDatabasesIndexedDBWebIDBServerConnectionmessagesin">releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="releasesWebKitGTKwebkit212SourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/CMakeLists.txt (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/CMakeLists.txt        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/CMakeLists.txt        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -10,7 +10,6 @@
</span><span class="cx">     &quot;${WEBCORE_DIR}/Modules/geolocation&quot;
</span><span class="cx">     &quot;${WEBCORE_DIR}/Modules/indexeddb&quot;
</span><span class="cx">     &quot;${WEBCORE_DIR}/Modules/indexeddb/client&quot;
</span><del>-    &quot;${WEBCORE_DIR}/Modules/indexeddb/legacy&quot;
</del><span class="cx">     &quot;${WEBCORE_DIR}/Modules/indexeddb/server&quot;
</span><span class="cx">     &quot;${WEBCORE_DIR}/Modules/indexeddb/shared&quot;
</span><span class="cx">     &quot;${WEBCORE_DIR}/Modules/indieui&quot;
</span><span class="lines">@@ -827,7 +826,6 @@
</span><span class="cx">     Modules/indexeddb/IDBDatabase.cpp
</span><span class="cx">     Modules/indexeddb/IDBDatabaseException.cpp
</span><span class="cx">     Modules/indexeddb/IDBDatabaseIdentifier.cpp
</span><del>-    Modules/indexeddb/IDBDatabaseMetadata.cpp
</del><span class="cx">     Modules/indexeddb/IDBEventDispatcher.cpp
</span><span class="cx">     Modules/indexeddb/IDBFactory.cpp
</span><span class="cx">     Modules/indexeddb/IDBGetResult.cpp
</span><span class="lines">@@ -859,26 +857,6 @@
</span><span class="cx">     Modules/indexeddb/client/IDBVersionChangeEventImpl.cpp
</span><span class="cx">     Modules/indexeddb/client/TransactionOperation.cpp
</span><span class="cx"> 
</span><del>-    Modules/indexeddb/legacy/IDBCursorBackend.cpp
-    Modules/indexeddb/legacy/IDBCursorBackendOperations.cpp
-    Modules/indexeddb/legacy/IDBDatabaseBackend.cpp
-    Modules/indexeddb/legacy/IDBDatabaseCallbacksImpl.cpp
-    Modules/indexeddb/legacy/IDBPendingTransactionMonitor.cpp
-    Modules/indexeddb/legacy/IDBTransactionBackend.cpp
-    Modules/indexeddb/legacy/IDBTransactionBackendOperations.cpp
-    Modules/indexeddb/legacy/IDBTransactionCoordinator.cpp
-    Modules/indexeddb/legacy/LegacyAny.cpp
-    Modules/indexeddb/legacy/LegacyCursor.cpp
-    Modules/indexeddb/legacy/LegacyCursorWithValue.cpp
-    Modules/indexeddb/legacy/LegacyDatabase.cpp
-    Modules/indexeddb/legacy/LegacyFactory.cpp
-    Modules/indexeddb/legacy/LegacyIndex.cpp
-    Modules/indexeddb/legacy/LegacyObjectStore.cpp
-    Modules/indexeddb/legacy/LegacyOpenDBRequest.cpp
-    Modules/indexeddb/legacy/LegacyRequest.cpp
-    Modules/indexeddb/legacy/LegacyTransaction.cpp
-    Modules/indexeddb/legacy/LegacyVersionChangeEvent.cpp
-
</del><span class="cx">     Modules/indexeddb/server/IDBConnectionToClient.cpp
</span><span class="cx">     Modules/indexeddb/server/IDBSerialization.cpp
</span><span class="cx">     Modules/indexeddb/server/IDBServer.cpp
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,5 +1,95 @@
</span><span class="cx"> 2016-02-25  Brady Eidson  &lt;beidson@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Remove LegacyIDB.
+        https://bugs.webkit.org/show_bug.cgi?id=150854
+
+        Reviewed by Alex Christensen.
+
+        No new tests (No change in behavior).
+
+        * CMakeLists.txt:
+        * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
+        (WebCore::DOMWindowIndexedDatabase::indexedDB):
+        * Modules/indexeddb/IDBDatabaseMetadata.cpp: Removed.
+        * Modules/indexeddb/IDBDatabaseMetadata.h: Removed.
+        * Modules/indexeddb/IDBFactory.h:
+        * Modules/indexeddb/IDBIndex.h:
+        * Modules/indexeddb/IDBIndexMetadata.h: Removed.
+        * Modules/indexeddb/IDBObjectStoreMetadata.h: Removed.
+        * Modules/indexeddb/IDBOperation.h: Removed.
+        * Modules/indexeddb/IDBServerConnection.h: Removed.
+        * Modules/indexeddb/IDBTransaction.h:
+        * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:
+        (WebCore::WorkerGlobalScopeIndexedDatabase::indexedDB):
+        * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h:
+        * Modules/indexeddb/legacy/IDBCallbacks.h: Removed.
+        * Modules/indexeddb/legacy/IDBCursorBackend.cpp: Removed.
+        * Modules/indexeddb/legacy/IDBCursorBackend.h: Removed.
+        * Modules/indexeddb/legacy/IDBCursorBackendOperations.cpp: Removed.
+        * Modules/indexeddb/legacy/IDBCursorBackendOperations.h: Removed.
+        * Modules/indexeddb/legacy/IDBDatabaseBackend.cpp: Removed.
+        * Modules/indexeddb/legacy/IDBDatabaseBackend.h: Removed.
+        * Modules/indexeddb/legacy/IDBDatabaseCallbacks.h: Removed.
+        * Modules/indexeddb/legacy/IDBDatabaseCallbacksImpl.cpp: Removed.
+        * Modules/indexeddb/legacy/IDBDatabaseCallbacksImpl.h: Removed.
+        * Modules/indexeddb/legacy/IDBFactoryBackendInterface.h: Removed.
+        * Modules/indexeddb/legacy/IDBPendingDeleteCall.h: Removed.
+        * Modules/indexeddb/legacy/IDBPendingOpenCall.h: Removed.
+        * Modules/indexeddb/legacy/IDBPendingTransactionMonitor.cpp: Removed.
+        * Modules/indexeddb/legacy/IDBPendingTransactionMonitor.h: Removed.
+        * Modules/indexeddb/legacy/IDBTransactionBackend.cpp: Removed.
+        * Modules/indexeddb/legacy/IDBTransactionBackend.h: Removed.
+        * Modules/indexeddb/legacy/IDBTransactionBackendOperations.cpp: Removed.
+        * Modules/indexeddb/legacy/IDBTransactionBackendOperations.h: Removed.
+        * Modules/indexeddb/legacy/IDBTransactionCoordinator.cpp: Removed.
+        * Modules/indexeddb/legacy/IDBTransactionCoordinator.h: Removed.
+        * Modules/indexeddb/legacy/LegacyAny.cpp: Removed.
+        * Modules/indexeddb/legacy/LegacyAny.h: Removed.
+        * Modules/indexeddb/legacy/LegacyCursor.cpp: Removed.
+        * Modules/indexeddb/legacy/LegacyCursor.h: Removed.
+        * Modules/indexeddb/legacy/LegacyCursorWithValue.cpp: Removed.
+        * Modules/indexeddb/legacy/LegacyCursorWithValue.h: Removed.
+        * Modules/indexeddb/legacy/LegacyDatabase.cpp: Removed.
+        * Modules/indexeddb/legacy/LegacyDatabase.h: Removed.
+        * Modules/indexeddb/legacy/LegacyFactory.cpp: Removed.
+        * Modules/indexeddb/legacy/LegacyFactory.h: Removed.
+        * Modules/indexeddb/legacy/LegacyIndex.cpp: Removed.
+        * Modules/indexeddb/legacy/LegacyIndex.h: Removed.
+        * Modules/indexeddb/legacy/LegacyObjectStore.cpp: Removed.
+        * Modules/indexeddb/legacy/LegacyObjectStore.h: Removed.
+        * Modules/indexeddb/legacy/LegacyOpenDBRequest.cpp: Removed.
+        * Modules/indexeddb/legacy/LegacyOpenDBRequest.h: Removed.
+        * Modules/indexeddb/legacy/LegacyRequest.cpp: Removed.
+        * Modules/indexeddb/legacy/LegacyRequest.h: Removed.
+        * Modules/indexeddb/legacy/LegacyTransaction.cpp: Removed.
+        * Modules/indexeddb/legacy/LegacyTransaction.h: Removed.
+        * Modules/indexeddb/legacy/LegacyVersionChangeEvent.cpp: Removed.
+        * Modules/indexeddb/legacy/LegacyVersionChangeEvent.h: Removed.
+        * Modules/indexeddb/server/SQLiteIDBCursor.cpp:
+        (WebCore::IDBServer::SQLiteIDBCursor::SQLiteIDBCursor):
+        (WebCore::IDBServer::SQLiteIDBCursor::establishStatement):
+        (WebCore::IDBServer::SQLiteIDBCursor::internalAdvanceOnce):
+        * Modules/indexeddb/server/SQLiteIDBCursor.h:
+        * Modules/indexeddb/shared/IDBIndexInfo.h:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/IDBBindingUtilities.cpp:
+        (WebCore::generateIndexKeysForValue): Deleted.
+        * bindings/js/IDBBindingUtilities.h:
+        * bindings/js/JSMainThreadExecState.cpp:
+        (WebCore::JSMainThreadExecState::didLeaveScriptContext): Deleted.
+        * inspector/InspectorIndexedDBAgent.cpp:
+        * loader/EmptyClients.cpp:
+        * page/DatabaseProvider.cpp:
+        (WebCore::DatabaseProvider::idbFactoryBackend): Deleted.
+        * page/DatabaseProvider.h:
+        * platform/CrossThreadCopier.cpp:
+        (WebCore::IDBDatabaseMetadata&gt;::copy): Deleted.
+        (WebCore::IDBIndexMetadata&gt;::copy): Deleted.
+        (WebCore::IDBObjectStoreMetadata&gt;::copy): Deleted.
+        * platform/CrossThreadCopier.h:
+
+2016-02-25  Brady Eidson  &lt;beidson@apple.com&gt;
+
</ins><span class="cx">         Modern IDB: WebKit 2 IPC layer.
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=153808
</span><span class="cx"> 
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbDOMWindowIndexedDatabasecpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -32,7 +32,6 @@
</span><span class="cx"> #include &quot;DatabaseProvider.h&quot;
</span><span class="cx"> #include &quot;Document.h&quot;
</span><span class="cx"> #include &quot;IDBFactoryImpl.h&quot;
</span><del>-#include &quot;LegacyFactory.h&quot;
</del><span class="cx"> #include &quot;Page.h&quot;
</span><span class="cx"> #include &quot;SecurityOrigin.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -112,12 +111,8 @@
</span><span class="cx">     if (!m_window-&gt;isCurrentlyDisplayedInFrame())
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    if (!m_idbFactory) {
-        if (page-&gt;databaseProvider().supportsModernIDB())
-            m_idbFactory = IDBClient::IDBFactory::create(page-&gt;idbConnection());
-        else
-            m_idbFactory = LegacyFactory::create(page-&gt;databaseProvider().idbFactoryBackend());
-    }
</del><ins>+    if (!m_idbFactory)
+        m_idbFactory = IDBClient::IDBFactory::create(page-&gt;idbConnection());
</ins><span class="cx"> 
</span><span class="cx">     return m_idbFactory.get();
</span><span class="cx"> }
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbIDBDatabaseMetadatacpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBDatabaseMetadata.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBDatabaseMetadata.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBDatabaseMetadata.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,79 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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;IDBDatabaseMetadata.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-IDBDatabaseMetadata IDBDatabaseMetadata::isolatedCopy() const
-{
-    IDBDatabaseMetadata result;
-    result.id = id;
-    result.version = version;
-    result.maxObjectStoreId = maxObjectStoreId;
-
-    result.name = name.isolatedCopy();
-
-    for (auto&amp; objectStore : objectStores)
-        result.objectStores.set(objectStore.key, objectStore.value.isolatedCopy());
-
-    return result;
-}
-
-IDBObjectStoreMetadata IDBObjectStoreMetadata::isolatedCopy() const
-{
-    IDBObjectStoreMetadata result;
-    result.id = id;
-    result.autoIncrement = autoIncrement;
-    result.maxIndexId = maxIndexId;
-
-    result.name = name.isolatedCopy();
-    result.keyPath = keyPath.isolatedCopy();
-
-    for (auto&amp; index : indexes)
-        result.indexes.set(index.key, index.value.isolatedCopy());
-
-    return result;
-}
-
-IDBIndexMetadata IDBIndexMetadata::isolatedCopy() const
-{
-    IDBIndexMetadata result;
-    result.id = id;
-    result.unique = unique;
-    result.multiEntry = multiEntry;
-
-    result.name = name.isolatedCopy();
-    result.keyPath = keyPath.isolatedCopy();
-
-    return result;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbIDBDatabaseMetadatah"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBDatabaseMetadata.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBDatabaseMetadata.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBDatabaseMetadata.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,115 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- * 3.  Neither the name of Apple Inc. (&quot;Apple&quot;) nor the names of
- *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY GOOGLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef IDBDatabaseMetadata_h
-#define IDBDatabaseMetadata_h
-
-#include &quot;IDBObjectStoreMetadata.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-struct IDBDatabaseMetadata {
-
-    // FIXME: These are only here to support the LevelDB backend which incorrectly handles versioning.
-    // Once LevelDB supports a single, uint64_t version and throws out the old string version, these
-    // should be gotten rid of.
-    // Also, &quot;NoIntVersion&quot; used to be a magic number of -1, which doesn't work with the new unsigned type.
-    // Changing the value to INT64_MAX here seems like a reasonable temporary fix as the current LevelDB
-    // already cannot represent valid version numbers between INT64_MAX and UINT64_MAX.
-
-#ifndef INT64_MAX
-#define INT64_MAX 9223372036854775807LL
-#endif
-
-    enum {
-        NoIntVersion = INT64_MAX,
-        DefaultIntVersion = 0
-    };
-
-    IDBDatabaseMetadata()
-        : id(0)
-        , version(0)
-        , maxObjectStoreId(0)
-    {
-    }
-
-    IDBDatabaseMetadata(const String&amp; name, int64_t id, uint64_t version, int64_t maxObjectStoreId)
-        : name(name)
-        , id(id)
-        , version(version)
-        , maxObjectStoreId(maxObjectStoreId)
-    {
-    }
-
-    template&lt;class Encoder&gt; void encode(Encoder&amp;) const;
-    template&lt;class Decoder&gt; static bool decode(Decoder&amp;, IDBDatabaseMetadata&amp;);
-
-    String name;
-    int64_t id;
-    uint64_t version;
-    int64_t maxObjectStoreId;
-
-    typedef HashMap&lt;int64_t, IDBObjectStoreMetadata&gt; ObjectStoreMap;
-    ObjectStoreMap objectStores;
-
-    WEBCORE_EXPORT IDBDatabaseMetadata isolatedCopy() const;
-};
-
-template&lt;class Encoder&gt;
-void IDBDatabaseMetadata::encode(Encoder&amp; encoder) const
-{
-    encoder &lt;&lt; name &lt;&lt; id &lt;&lt; version &lt;&lt; maxObjectStoreId &lt;&lt; objectStores;
-}
-
-template&lt;class Decoder&gt;
-bool IDBDatabaseMetadata::decode(Decoder&amp; decoder, IDBDatabaseMetadata&amp; metadata)
-{
-    if (!decoder.decode(metadata.name))
-        return false;
-
-    if (!decoder.decode(metadata.id))
-        return false;
-
-    if (!decoder.decode(metadata.version))
-        return false;
-
-    if (!decoder.decode(metadata.maxObjectStoreId))
-        return false;
-
-    if (!decoder.decode(metadata.objectStores))
-        return false;
-
-    return true;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-#endif // IDBDatabaseMetadata_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbIDBFactoryh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBFactory.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBFactory.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBFactory.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -38,7 +38,6 @@
</span><span class="cx"> 
</span><span class="cx"> class IDBKey;
</span><span class="cx"> class IDBKeyRange;
</span><del>-class IDBFactoryBackendInterface;
</del><span class="cx"> class ScriptExecutionContext;
</span><span class="cx"> 
</span><span class="cx"> struct ExceptionCodeWithMessage;
</span><span class="lines">@@ -68,4 +67,4 @@
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#endif // LegacyFactory_h
</del><ins>+#endif // IDBFactory_h
</ins></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbIDBIndexh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBIndex.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBIndex.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBIndex.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;IDBCursor.h&quot;
</span><span class="cx"> #include &quot;IDBDatabase.h&quot;
</span><del>-#include &quot;IDBDatabaseMetadata.h&quot;
</del><span class="cx"> #include &quot;IDBKeyPath.h&quot;
</span><span class="cx"> #include &quot;IDBKeyRange.h&quot;
</span><span class="cx"> #include &quot;IDBObjectStore.h&quot;
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbIDBIndexMetadatah"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBIndexMetadata.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBIndexMetadata.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBIndexMetadata.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,98 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- * 3.  Neither the name of Apple Inc. (&quot;Apple&quot;) nor the names of
- *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY GOOGLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef IDBIndexMetadata_h
-#define IDBIndexMetadata_h
-
-#include &quot;IDBKeyPath.h&quot;
-#include &lt;wtf/HashMap.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-struct IDBIndexMetadata {
-    IDBIndexMetadata()
-    {
-    }
-
-    IDBIndexMetadata(const String&amp; name, int64_t id, const IDBKeyPath&amp; keyPath, bool unique, bool multiEntry)
-        : name(name)
-        , id(id)
-        , keyPath(keyPath)
-        , unique(unique)
-        , multiEntry(multiEntry)
-    {
-    }
-    
-    template&lt;class Encoder&gt; void encode(Encoder&amp;) const;
-    template&lt;class Decoder&gt; static bool decode(Decoder&amp;, IDBIndexMetadata&amp;);
-
-    String name;
-    int64_t id;
-    IDBKeyPath keyPath;
-    bool unique;
-    bool multiEntry;
-
-    IDBIndexMetadata isolatedCopy() const;
-
-    static const int64_t InvalidId = -1;
-};
-
-template&lt;class Encoder&gt;
-void IDBIndexMetadata::encode(Encoder&amp; encoder) const
-{
-    encoder &lt;&lt; name &lt;&lt; id &lt;&lt; keyPath &lt;&lt; unique &lt;&lt; multiEntry;
-}
-
-template&lt;class Decoder&gt;
-bool IDBIndexMetadata::decode(Decoder&amp; decoder, IDBIndexMetadata&amp; metadata)
-{
-    if (!decoder.decode(metadata.name))
-        return false;
-
-    if (!decoder.decode(metadata.id))
-        return false;
-
-    if (!decoder.decode(metadata.keyPath))
-        return false;
-
-    if (!decoder.decode(metadata.unique))
-        return false;
-
-    if (!decoder.decode(metadata.multiEntry))
-        return false;
-
-    return true;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-#endif // IDBIndexMetadata_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbIDBObjectStoreMetadatah"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBObjectStoreMetadata.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBObjectStoreMetadata.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBObjectStoreMetadata.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,102 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- * 3.  Neither the name of Apple Inc. (&quot;Apple&quot;) nor the names of
- *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY GOOGLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef IDBObjectStoreMetadata_h
-#define IDBObjectStoreMetadata_h
-
-#include &quot;IDBIndexMetadata.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-struct IDBObjectStoreMetadata {
-    IDBObjectStoreMetadata()
-    {
-    }
-
-    IDBObjectStoreMetadata(const String&amp; name, int64_t id, const IDBKeyPath&amp; keyPath, bool autoIncrement, int64_t maxIndexId)
-        : name(name)
-        , id(id)
-        , keyPath(keyPath)
-        , autoIncrement(autoIncrement)
-        , maxIndexId(maxIndexId)
-    {
-    }
-
-    template&lt;class Encoder&gt; void encode(Encoder&amp;) const;
-    template&lt;class Decoder&gt; static bool decode(Decoder&amp;, IDBObjectStoreMetadata&amp;);
-    
-    String name;
-    int64_t id;
-    IDBKeyPath keyPath;
-    bool autoIncrement;
-    int64_t maxIndexId;
-
-    static const int64_t InvalidId = -1;
-
-    typedef HashMap&lt;int64_t, IDBIndexMetadata&gt; IndexMap;
-    IndexMap indexes;
-
-    IDBObjectStoreMetadata isolatedCopy() const;
-};
-
-template&lt;class Encoder&gt;
-void IDBObjectStoreMetadata::encode(Encoder&amp; encoder) const
-{
-    encoder &lt;&lt; name &lt;&lt; id &lt;&lt; keyPath &lt;&lt; autoIncrement &lt;&lt; maxIndexId &lt;&lt; indexes;
-}
-
-template&lt;class Decoder&gt;
-bool IDBObjectStoreMetadata::decode(Decoder&amp; decoder, IDBObjectStoreMetadata&amp; metadata)
-{
-    if (!decoder.decode(metadata.name))
-        return false;
-
-    if (!decoder.decode(metadata.id))
-        return false;
-
-    if (!decoder.decode(metadata.keyPath))
-        return false;
-
-    if (!decoder.decode(metadata.autoIncrement))
-        return false;
-
-    if (!decoder.decode(metadata.maxIndexId))
-        return false;
-
-    if (!decoder.decode(metadata.indexes))
-        return false;
-
-    return true;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-#endif // IDBObjectStoreMetadata_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbIDBOperationh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBOperation.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBOperation.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBOperation.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,50 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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 IDBOperation_h
-#define IDBOperation_h
-
-#include &lt;functional&gt;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-class IDBOperation : public RefCounted&lt;IDBOperation&gt; {
-public:
-    virtual ~IDBOperation() { }
-    virtual void perform(std::function&lt;void()&gt; completionCallback) = 0;
-};
-
-class IDBSynchronousOperation : public RefCounted&lt;IDBSynchronousOperation&gt; {
-public:
-    virtual ~IDBSynchronousOperation() { }
-    virtual void perform() = 0;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-#endif // IDBOperation_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbIDBServerConnectionh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBServerConnection.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBServerConnection.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBServerConnection.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,99 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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 IDBServerConnection_h
-#define IDBServerConnection_h
-
-#include &quot;IDBCursorBackendOperations.h&quot;
-#include &quot;IDBDatabaseMetadata.h&quot;
-#include &quot;IDBGetResult.h&quot;
-#include &quot;IDBTransactionBackendOperations.h&quot;
-#include &quot;IndexedDB.h&quot;
-#include &lt;functional&gt;
-#include &lt;wtf/HashSet.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-class IDBDatabaseError;
-class IDBKey;
-class IDBTransactionBackend;
-
-struct IDBOpenCursorResult;
-struct IDBIndexMetadata;
-struct IDBObjectStoreMetadata;
-
-// This interface provides a single asynchronous layer between the web-facing frontend
-// and the I/O performing backend of IndexedDatabase.
-// If an operation's completion needs to be confirmed that must be done through use of a callback function.
-class IDBServerConnection : public RefCounted&lt;IDBServerConnection&gt; {
-public:
-    virtual ~IDBServerConnection() { }
-
-    virtual bool isClosed() = 0;
-
-    typedef std::function&lt;void (bool success)&gt; BoolCallbackFunction;
-
-    // Database-level operations
-    typedef std::function&lt;void (const IDBDatabaseMetadata&amp;, bool success)&gt; GetIDBDatabaseMetadataFunction;
-    virtual void getOrEstablishIDBDatabaseMetadata(GetIDBDatabaseMetadataFunction) = 0;
-    virtual void close() = 0;
-    virtual void deleteDatabase(const String&amp; name, BoolCallbackFunction successCallback) = 0;
-
-    // Transaction-level operations
-    virtual void openTransaction(int64_t transactionID, const HashSet&lt;int64_t&gt;&amp; objectStoreIds, IndexedDB::TransactionMode, BoolCallbackFunction successCallback) = 0;
-    virtual void beginTransaction(int64_t transactionID, std::function&lt;void()&gt; completionCallback) = 0;
-    virtual void commitTransaction(int64_t transactionID, BoolCallbackFunction successCallback) = 0;
-    virtual void resetTransaction(int64_t transactionID, std::function&lt;void()&gt; completionCallback) = 0;
-    virtual bool resetTransactionSync(int64_t transactionID) = 0;
-    virtual void rollbackTransaction(int64_t transactionID, std::function&lt;void()&gt; completionCallback) = 0;
-    virtual bool rollbackTransactionSync(int64_t transactionID) = 0;
-
-    virtual void setIndexKeys(int64_t transactionID, int64_t databaseID, int64_t objectStoreID, const IDBObjectStoreMetadata&amp;, IDBKey&amp; primaryKey, const Vector&lt;int64_t, 1&gt;&amp; indexIDs, const Vector&lt;Vector&lt;RefPtr&lt;IDBKey&gt;&gt;, 1&gt;&amp; indexKeys, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
-
-    virtual void createObjectStore(IDBTransactionBackend&amp;, const CreateObjectStoreOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
-    virtual void createIndex(IDBTransactionBackend&amp;, const CreateIndexOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
-    virtual void deleteIndex(IDBTransactionBackend&amp;, const DeleteIndexOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
-    virtual void get(IDBTransactionBackend&amp;, const GetOperation&amp;, std::function&lt;void(const IDBGetResult&amp;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
-    virtual void put(IDBTransactionBackend&amp;, const PutOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
-    virtual void openCursor(IDBTransactionBackend&amp;, const OpenCursorOperation&amp;, std::function&lt;void(int64_t, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
-    virtual void count(IDBTransactionBackend&amp;, const CountOperation&amp;, std::function&lt;void(int64_t, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
-    virtual void deleteRange(IDBTransactionBackend&amp;, const DeleteRangeOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
-    virtual void clearObjectStore(IDBTransactionBackend&amp;, const ClearObjectStoreOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
-    virtual void deleteObjectStore(IDBTransactionBackend&amp;, const DeleteObjectStoreOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
-    virtual void changeDatabaseVersion(IDBTransactionBackend&amp;, const IDBDatabaseBackend::VersionChangeOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
-
-    // Cursor-level operations
-    virtual void cursorAdvance(IDBCursorBackend&amp;, const CursorAdvanceOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
-    virtual void cursorIterate(IDBCursorBackend&amp;, const CursorIterationOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-#endif // IDBServerConnection_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbIDBTransactionh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBTransaction.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBTransaction.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/IDBTransaction.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -40,13 +40,11 @@
</span><span class="cx"> class DOMError;
</span><span class="cx"> class IDBCursor;
</span><span class="cx"> class IDBDatabase;
</span><del>-class IDBDatabaseBackend;
</del><span class="cx"> class IDBDatabaseError;
</span><span class="cx"> class IDBObjectStore;
</span><span class="cx"> class IDBOpenDBRequest;
</span><span class="cx"> 
</span><span class="cx"> struct ExceptionCodeWithMessage;
</span><del>-struct IDBObjectStoreMetadata;
</del><span class="cx"> 
</span><span class="cx"> class IDBTransaction : public RefCounted&lt;IDBTransaction&gt;, public EventTargetWithInlineData, public ActiveDOMObject {
</span><span class="cx"> public:
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbWorkerGlobalScopeIndexedDatabasecpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -32,7 +32,6 @@
</span><span class="cx"> #include &quot;WorkerGlobalScopeIndexedDatabase.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;IDBFactory.h&quot;
</span><del>-#include &quot;IDBFactoryBackendInterface.h&quot;
</del><span class="cx"> #include &quot;ScriptExecutionContext.h&quot;
</span><span class="cx"> #include &quot;SecurityOrigin.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -69,11 +68,7 @@
</span><span class="cx"> 
</span><span class="cx"> IDBFactory* WorkerGlobalScopeIndexedDatabase::indexedDB()
</span><span class="cx"> {
</span><del>-    if (!m_factoryBackend)
-        m_factoryBackend = IDBFactoryBackendInterface::create();
-    if (!m_idbFactory)
-        m_idbFactory = IDBFactory::create(m_factoryBackend.get());
-    return m_idbFactory.get();
</del><ins>+    return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbWorkerGlobalScopeIndexedDatabaseh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -35,7 +35,6 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class IDBFactory;
</span><del>-class IDBFactoryBackendInterface;
</del><span class="cx"> class ScriptExecutionContext;
</span><span class="cx"> 
</span><span class="cx"> class WorkerGlobalScopeIndexedDatabase : public Supplement&lt;ScriptExecutionContext&gt; {
</span><span class="lines">@@ -50,7 +49,6 @@
</span><span class="cx">     IDBFactory* indexedDB();
</span><span class="cx">     static const char* supplementName();
</span><span class="cx"> 
</span><del>-    RefPtr&lt;IDBFactoryBackendInterface&gt; m_factoryBackend;
</del><span class="cx">     RefPtr&lt;IDBFactory&gt; m_idbFactory;
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBCallbacksh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCallbacks.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCallbacks.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCallbacks.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,82 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- * 3.  Neither the name of Apple Inc. (&quot;Apple&quot;) nor the names of
- *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef IDBCallbacks_h
-#define IDBCallbacks_h
-
-#include &quot;IDBDatabaseError.h&quot;
-#include &quot;IDBKey.h&quot;
-#include &quot;IDBKeyPath.h&quot;
-#include &lt;wtf/RefCounted.h&gt;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-class DOMStringList;
-class IDBCursorBackend;
-class IDBDatabaseBackend;
-class SharedBuffer;
-
-struct IDBDatabaseMetadata;
-
-class IDBCallbacks : public RefCounted&lt;IDBCallbacks&gt; {
-public:
-    virtual ~IDBCallbacks() { }
-
-    virtual void onError(PassRefPtr&lt;IDBDatabaseError&gt;) = 0;
-    // From IDBFactory.webkitGetDatabaseNames()
-    virtual void onSuccess(PassRefPtr&lt;DOMStringList&gt;) = 0;
-    // From IDBObjectStore/IDBIndex.openCursor(), IDBIndex.openKeyCursor()
-    virtual void onSuccess(PassRefPtr&lt;IDBCursorBackend&gt;) = 0;
-    // From IDBObjectStore.add()/put(), IDBIndex.getKey()
-    virtual void onSuccess(PassRefPtr&lt;IDBKey&gt;) = 0;
-    // From IDBObjectStore/IDBIndex.get()/count(), and various methods that yield null/undefined.
-    virtual void onSuccess(PassRefPtr&lt;SharedBuffer&gt;) = 0;
-    // From IDBObjectStore/IDBIndex.get() (with key injection)
-    virtual void onSuccess(PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBKey&gt;, const IDBKeyPath&amp;) = 0;
-    // From IDBObjectStore/IDBIndex.count()
-    virtual void onSuccess(int64_t value) = 0;
-
-    // From IDBFactor.deleteDatabase(), IDBObjectStore/IDBIndex.get(), IDBObjectStore.delete(), IDBObjectStore.clear()
-    virtual void onSuccess() = 0;
-
-    // From IDBCursor.advance()/continue()
-    virtual void onSuccess(PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt; primaryKey, PassRefPtr&lt;SharedBuffer&gt;) = 0;
-
-    // From IDBFactory.open()/deleteDatabase()
-    virtual void onBlocked(uint64_t /* existingVersion */) { ASSERT_NOT_REACHED(); }
-    // From IDBFactory.open()
-    virtual void onUpgradeNeeded(uint64_t /* oldVersion */, PassRefPtr&lt;IDBDatabaseBackend&gt;, const IDBDatabaseMetadata&amp;) { ASSERT_NOT_REACHED(); }
-    virtual void onSuccess(PassRefPtr&lt;IDBDatabaseBackend&gt;, const IDBDatabaseMetadata&amp;) { ASSERT_NOT_REACHED(); }
-};
-
-} // namespace WebCore
-
-#endif
-
-#endif // IDBCallbacks_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBCursorBackendcpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCursorBackend.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCursorBackend.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCursorBackend.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,109 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;IDBCursorBackend.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;IDBCallbacks.h&quot;
-#include &quot;IDBCursorBackendOperations.h&quot;
-#include &quot;IDBDatabaseBackend.h&quot;
-#include &quot;IDBDatabaseCallbacks.h&quot;
-#include &quot;IDBDatabaseError.h&quot;
-#include &quot;IDBDatabaseException.h&quot;
-#include &quot;IDBKeyRange.h&quot;
-#include &quot;IDBOperation.h&quot;
-#include &quot;IDBServerConnection.h&quot;
-#include &quot;Logging.h&quot;
-#include &quot;SharedBuffer.h&quot;
-
-namespace WebCore {
-
-IDBCursorBackend::IDBCursorBackend(int64_t cursorID, IndexedDB::CursorType cursorType, IDBDatabaseBackend::TaskType taskType, IDBTransactionBackend&amp; transaction, int64_t objectStoreID)
-    : m_taskType(taskType)
-    , m_cursorType(cursorType)
-    , m_transaction(&amp;transaction)
-    , m_objectStoreID(objectStoreID)
-    , m_cursorID(cursorID)
-    , m_savedCursorID(0)
-    , m_closed(false)
-{
-    m_transaction-&gt;registerOpenCursor(this);
-}
-
-IDBCursorBackend::~IDBCursorBackend()
-{
-    m_transaction-&gt;unregisterOpenCursor(this);
-}
-
-void IDBCursorBackend::continueFunction(PassRefPtr&lt;IDBKey&gt; key, PassRefPtr&lt;IDBCallbacks&gt; prpCallbacks, ExceptionCode&amp;)
-{
-    LOG(StorageAPI, &quot;IDBCursorBackend::continue&quot;);
-    RefPtr&lt;IDBCallbacks&gt; callbacks = prpCallbacks;
-    m_transaction-&gt;scheduleTask(m_taskType, CursorIterationOperation::create(this, key, callbacks));
-}
-
-void IDBCursorBackend::advance(unsigned long count, PassRefPtr&lt;IDBCallbacks&gt; prpCallbacks, ExceptionCode&amp;)
-{
-    LOG(StorageAPI, &quot;IDBCursorBackend::advance&quot;);
-    RefPtr&lt;IDBCallbacks&gt; callbacks = prpCallbacks;
-    m_transaction-&gt;scheduleTask(CursorAdvanceOperation::create(this, count, callbacks));
-}
-
-void IDBCursorBackend::deleteFunction(PassRefPtr&lt;IDBCallbacks&gt; prpCallbacks, ExceptionCode&amp;)
-{
-    LOG(StorageAPI, &quot;IDBCursorBackend::delete&quot;);
-    ASSERT(m_transaction-&gt;mode() != IndexedDB::TransactionMode::ReadOnly);
-    RefPtr&lt;IDBKeyRange&gt; keyRange = IDBKeyRange::create(primaryKey());
-    m_transaction-&gt;database().deleteRange(m_transaction-&gt;id(), m_objectStoreID, keyRange.release(), prpCallbacks);
-}
-
-void IDBCursorBackend::close()
-{
-    LOG(StorageAPI, &quot;IDBCursorBackend::close&quot;);
-    clear();
-    m_closed = true;
-    m_savedCursorID = 0;
-}
-
-void IDBCursorBackend::updateCursorData(IDBKey* key, IDBKey* primaryKey, SharedBuffer* valueBuffer)
-{
-    m_currentKey = key;
-    m_currentPrimaryKey = primaryKey;
-    m_currentValueBuffer = valueBuffer;
-}
-
-void IDBCursorBackend::clear()
-{
-    m_cursorID = 0;
-    m_currentKey = nullptr;
-    m_currentPrimaryKey = nullptr;
-    m_currentValueBuffer = nullptr;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBCursorBackendh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCursorBackend.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCursorBackend.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCursorBackend.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,96 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-
-#ifndef IDBCursorBackend_h
-#define IDBCursorBackend_h
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;IDBDatabaseBackend.h&quot;
-#include &quot;IDBTransactionBackend.h&quot;
-#include &lt;wtf/RefPtr.h&gt;
-
-namespace WebCore {
-
-class IDBKeyRange;
-class SharedBuffer;
-
-class IDBCursorBackend : public RefCounted&lt;IDBCursorBackend&gt; {
-public:
-    static Ref&lt;IDBCursorBackend&gt; create(int64_t cursorID, IndexedDB::CursorType cursorType, IDBTransactionBackend&amp; transaction, int64_t objectStoreID)
-    {
-        return adoptRef(*new IDBCursorBackend(cursorID, cursorType, IDBDatabaseBackend::NormalTask, transaction, objectStoreID));
-    }
-    static Ref&lt;IDBCursorBackend&gt; create(int64_t cursorID, IndexedDB::CursorType cursorType, IDBDatabaseBackend::TaskType taskType, IDBTransactionBackend&amp; transaction, int64_t objectStoreID)
-    {
-        return adoptRef(*new IDBCursorBackend(cursorID, cursorType, taskType, transaction, objectStoreID));
-    }
-    ~IDBCursorBackend();
-
-    void advance(unsigned long, PassRefPtr&lt;IDBCallbacks&gt;, ExceptionCode&amp;);
-    void continueFunction(PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBCallbacks&gt;, ExceptionCode&amp;);
-    void deleteFunction(PassRefPtr&lt;IDBCallbacks&gt;, ExceptionCode&amp;);
-    void postSuccessHandlerCallback() { }
-
-    IDBKey* key() const { return m_currentKey.get(); }
-    IDBKey* primaryKey() const { return m_currentPrimaryKey.get(); }
-    SharedBuffer* valueBuffer() const { return (m_cursorType == IndexedDB::CursorType::KeyOnly) ? nullptr : m_currentValueBuffer.get(); }
-    void updateCursorData(IDBKey*, IDBKey* primaryKey, SharedBuffer* valueBuffer);
-
-    void close();
-
-    IndexedDB::CursorType cursorType() const { return m_cursorType; }
-
-    int64_t id() const { return m_cursorID; }
-
-    IDBTransactionBackend&amp; transaction() { return *m_transaction; }
-
-    void clear();
-    void setSavedCursorID(int64_t cursorID) { m_savedCursorID = cursorID; }
-
-private:
-    IDBCursorBackend(int64_t cursorID, IndexedDB::CursorType, IDBDatabaseBackend::TaskType, IDBTransactionBackend&amp;, int64_t objectStoreID);
-
-    IDBDatabaseBackend::TaskType m_taskType;
-    IndexedDB::CursorType m_cursorType;
-    RefPtr&lt;IDBTransactionBackend&gt; m_transaction;
-    const int64_t m_objectStoreID;
-
-    int64_t m_cursorID;
-    int64_t m_savedCursorID;
-
-    RefPtr&lt;IDBKey&gt; m_currentKey;
-    RefPtr&lt;IDBKey&gt; m_currentPrimaryKey;
-    RefPtr&lt;SharedBuffer&gt; m_currentValueBuffer;
-
-    bool m_closed;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-
-#endif // IDBCursorBackend_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBCursorBackendOperationscpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCursorBackendOperations.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCursorBackendOperations.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCursorBackendOperations.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,89 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- * Copyright (C) 2013 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 AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;IDBCursorBackendOperations.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;IDBServerConnection.h&quot;
-#include &quot;Logging.h&quot;
-
-namespace WebCore {
-
-void CursorAdvanceOperation::perform(std::function&lt;void()&gt; completionCallback)
-{
-    LOG(StorageAPI, &quot;CursorAdvanceOperation&quot;);
-
-    RefPtr&lt;CursorAdvanceOperation&gt; operation(this);
-    auto callback = [this, operation, completionCallback](PassRefPtr&lt;IDBKey&gt; key, PassRefPtr&lt;IDBKey&gt; primaryKey, PassRefPtr&lt;SharedBuffer&gt; valueBuffer, PassRefPtr&lt;IDBDatabaseError&gt; error) {
-        if (error) {
-            m_cursor-&gt;clear();
-            m_callbacks-&gt;onError(error);
-        } else if (!key) {
-            // If there's no error but also no key, then the cursor reached the end.
-            m_cursor-&gt;clear();
-            m_callbacks-&gt;onSuccess(static_cast&lt;SharedBuffer*&gt;(nullptr));
-        } else {
-            m_cursor-&gt;updateCursorData(key.get(), primaryKey.get(), valueBuffer.get());
-            m_callbacks-&gt;onSuccess(key, primaryKey, valueBuffer);
-        }
-
-        // FIXME: Cursor operations should be able to pass along an error instead of success
-        completionCallback();
-    };
-
-    m_cursor-&gt;transaction().database().serverConnection().cursorAdvance(*m_cursor, *this, callback);
-}
-
-void CursorIterationOperation::perform(std::function&lt;void()&gt; completionCallback)
-{
-    LOG(StorageAPI, &quot;CursorIterationOperation&quot;);
-
-    RefPtr&lt;CursorIterationOperation&gt; operation(this);
-    auto callback = [this, operation, completionCallback](PassRefPtr&lt;IDBKey&gt; key, PassRefPtr&lt;IDBKey&gt; primaryKey, PassRefPtr&lt;SharedBuffer&gt; valueBuffer, PassRefPtr&lt;IDBDatabaseError&gt; error) {
-        if (error) {
-            m_cursor-&gt;clear();
-            m_callbacks-&gt;onError(error);
-        } else if (!key) {
-            // If there's no error but also no key, then the cursor reached the end.
-            m_cursor-&gt;clear();
-            m_callbacks-&gt;onSuccess(static_cast&lt;SharedBuffer*&gt;(nullptr));
-        } else {
-            m_cursor-&gt;updateCursorData(key.get(), primaryKey.get(), valueBuffer.get());
-            m_callbacks-&gt;onSuccess(key, primaryKey, valueBuffer);
-        }
-
-        // FIXME: Cursor operations should be able to pass along an error instead of success
-        completionCallback();
-    };
-
-    m_cursor-&gt;transaction().database().serverConnection().cursorIterate(*m_cursor, *this, callback);
-}
-
-} // namespace WebCore
-
-#endif // ENABLED(INDEXED_DATABASE)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBCursorBackendOperationsh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCursorBackendOperations.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCursorBackendOperations.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBCursorBackendOperations.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,88 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- * Copyright (C) 2013 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 AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef IDBCursorBackendOperations_h
-#define IDBCursorBackendOperations_h
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;IDBCursorBackend.h&quot;
-#include &quot;IDBOperation.h&quot;
-
-namespace WebCore {
-
-class CursorIterationOperation : public IDBOperation {
-public:
-    static Ref&lt;IDBOperation&gt; create(PassRefPtr&lt;IDBCursorBackend&gt; cursor, PassRefPtr&lt;IDBKey&gt; key, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-    {
-        return adoptRef(*new CursorIterationOperation(cursor, key, callbacks));
-    }
-    virtual void perform(std::function&lt;void()&gt; completionCallback) override final;
-
-    int64_t cursorID() const { return m_cursor-&gt;id(); }
-    IDBKey* key() const { return m_key.get(); }
-
-private:
-    CursorIterationOperation(PassRefPtr&lt;IDBCursorBackend&gt; cursor, PassRefPtr&lt;IDBKey&gt; key, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-        : m_cursor(cursor)
-        , m_key(key)
-        , m_callbacks(callbacks)
-    {
-    }
-
-    RefPtr&lt;IDBCursorBackend&gt; m_cursor;
-    RefPtr&lt;IDBKey&gt; m_key;
-    RefPtr&lt;IDBCallbacks&gt; m_callbacks;
-};
-
-class CursorAdvanceOperation : public IDBOperation {
-public:
-    static Ref&lt;IDBOperation&gt; create(PassRefPtr&lt;IDBCursorBackend&gt; cursor, unsigned long count, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-    {
-        return adoptRef(*new CursorAdvanceOperation(cursor, count, callbacks));
-    }
-    virtual void perform(std::function&lt;void()&gt; completionCallback) override final;
-
-    int64_t cursorID() const { return m_cursor-&gt;id(); }
-    unsigned long count() const { return m_count; }
-
-private:
-    CursorAdvanceOperation(PassRefPtr&lt;IDBCursorBackend&gt; cursor, unsigned long count, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-        : m_cursor(cursor)
-        , m_count(count)
-        , m_callbacks(callbacks)
-    {
-    }
-
-    RefPtr&lt;IDBCursorBackend&gt; m_cursor;
-    unsigned long m_count;
-    RefPtr&lt;IDBCallbacks&gt; m_callbacks;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-#endif // IDBCursorBackendOperations_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBDatabaseBackendcpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseBackend.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseBackend.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseBackend.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,622 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;IDBDatabaseBackend.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;IDBCursorBackend.h&quot;
-#include &quot;IDBDatabaseCallbacks.h&quot;
-#include &quot;IDBDatabaseException.h&quot;
-#include &quot;IDBFactoryBackendInterface.h&quot;
-#include &quot;IDBKeyRange.h&quot;
-#include &quot;IDBRecordIdentifier.h&quot;
-#include &quot;IDBServerConnection.h&quot;
-#include &quot;IDBTransactionBackend.h&quot;
-#include &quot;IDBTransactionCoordinator.h&quot;
-#include &quot;Logging.h&quot;
-#include &quot;SharedBuffer.h&quot;
-#include &lt;wtf/TemporaryChange.h&gt;
-
-namespace WebCore {
-
-Ref&lt;IDBDatabaseBackend&gt; IDBDatabaseBackend::create(const String&amp; name, const String&amp; uniqueIdentifier, IDBFactoryBackendInterface* factory, IDBServerConnection&amp; serverConnection)
-{
-    Ref&lt;IDBDatabaseBackend&gt; backend = adoptRef(*new IDBDatabaseBackend(name, uniqueIdentifier, factory, serverConnection));
-    backend-&gt;openInternalAsync();
-    
-    return backend;
-}
-
-IDBDatabaseBackend::IDBDatabaseBackend(const String&amp; name, const String&amp; uniqueIdentifier, IDBFactoryBackendInterface* factory, IDBServerConnection&amp; serverConnection)
-    : m_metadata(name, InvalidId, 0, InvalidId)
-    , m_identifier(uniqueIdentifier)
-    , m_factory(factory)
-    , m_serverConnection(serverConnection)
-    , m_transactionCoordinator(std::make_unique&lt;IDBTransactionCoordinator&gt;())
-    , m_closingConnection(false)
-    , m_didOpenInternal(false)
-{
-    ASSERT(!m_metadata.name.isNull());
-}
-
-void IDBDatabaseBackend::addObjectStore(const IDBObjectStoreMetadata&amp; objectStore, int64_t newMaxObjectStoreId)
-{
-    ASSERT(!m_metadata.objectStores.contains(objectStore.id));
-    if (newMaxObjectStoreId != IDBObjectStoreMetadata::InvalidId) {
-        ASSERT(m_metadata.maxObjectStoreId &lt; newMaxObjectStoreId);
-        m_metadata.maxObjectStoreId = newMaxObjectStoreId;
-    }
-    m_metadata.objectStores.set(objectStore.id, objectStore);
-}
-
-void IDBDatabaseBackend::removeObjectStore(int64_t objectStoreId)
-{
-    ASSERT(m_metadata.objectStores.contains(objectStoreId));
-    m_metadata.objectStores.remove(objectStoreId);
-}
-
-void IDBDatabaseBackend::addIndex(int64_t objectStoreId, const IDBIndexMetadata&amp; index, int64_t newMaxIndexId)
-{
-    ASSERT(m_metadata.objectStores.contains(objectStoreId));
-    IDBObjectStoreMetadata objectStore = m_metadata.objectStores.get(objectStoreId);
-
-    ASSERT(!objectStore.indexes.contains(index.id));
-    objectStore.indexes.set(index.id, index);
-    if (newMaxIndexId != IDBIndexMetadata::InvalidId) {
-        ASSERT(objectStore.maxIndexId &lt; newMaxIndexId);
-        objectStore.maxIndexId = newMaxIndexId;
-    }
-    m_metadata.objectStores.set(objectStoreId, objectStore);
-}
-
-void IDBDatabaseBackend::removeIndex(int64_t objectStoreId, int64_t indexId)
-{
-    ASSERT(m_metadata.objectStores.contains(objectStoreId));
-    IDBObjectStoreMetadata objectStore = m_metadata.objectStores.get(objectStoreId);
-
-    ASSERT(objectStore.indexes.contains(indexId));
-    objectStore.indexes.remove(indexId);
-    m_metadata.objectStores.set(objectStoreId, objectStore);
-}
-
-void IDBDatabaseBackend::openInternalAsync()
-{
-    RefPtr&lt;IDBDatabaseBackend&gt; self = this;
-    m_serverConnection-&gt;getOrEstablishIDBDatabaseMetadata([self](const IDBDatabaseMetadata&amp; metadata, bool success) {
-        self-&gt;didOpenInternalAsync(metadata, success);
-    });
-}
-
-void IDBDatabaseBackend::didOpenInternalAsync(const IDBDatabaseMetadata&amp; metadata, bool success)
-{
-    m_didOpenInternal = true;
-
-    if (!success) {
-        processPendingOpenCalls(false);
-        return;
-    }
-
-    m_metadata = metadata;
-
-    processPendingCalls();
-}
-
-IDBDatabaseBackend::~IDBDatabaseBackend()
-{
-    m_factory-&gt;removeIDBDatabaseBackend(m_identifier);
-}
-
-void IDBDatabaseBackend::createObjectStore(int64_t transactionId, int64_t objectStoreId, const String&amp; name, const IDBKeyPath&amp; keyPath, bool autoIncrement)
-{
-    LOG(StorageAPI, &quot;IDBDatabaseBackend::createObjectStore&quot;);
-    IDBTransactionBackend* transaction = m_transactions.get(transactionId);
-    if (!transaction)
-        return;
-    ASSERT(transaction-&gt;mode() == IndexedDB::TransactionMode::VersionChange);
-
-    ASSERT(!m_metadata.objectStores.contains(objectStoreId));
-    IDBObjectStoreMetadata objectStoreMetadata(name, objectStoreId, keyPath, autoIncrement, IDBDatabaseBackend::MinimumIndexId);
-
-    transaction-&gt;scheduleCreateObjectStoreOperation(objectStoreMetadata);
-    addObjectStore(objectStoreMetadata, objectStoreId);
-}
-
-void IDBDatabaseBackend::deleteObjectStore(int64_t transactionId, int64_t objectStoreId)
-{
-    LOG(StorageAPI, &quot;IDBDatabaseBackend::deleteObjectStore&quot;);
-    IDBTransactionBackend* transaction = m_transactions.get(transactionId);
-    if (!transaction)
-        return;
-    ASSERT(transaction-&gt;mode() == IndexedDB::TransactionMode::VersionChange);
-
-    ASSERT(m_metadata.objectStores.contains(objectStoreId));
-    const IDBObjectStoreMetadata&amp; objectStoreMetadata = m_metadata.objectStores.get(objectStoreId);
-
-    transaction-&gt;scheduleDeleteObjectStoreOperation(objectStoreMetadata);
-    removeObjectStore(objectStoreId);
-}
-
-void IDBDatabaseBackend::createIndex(int64_t transactionId, int64_t objectStoreId, int64_t indexId, const String&amp; name, const IDBKeyPath&amp; keyPath, bool unique, bool multiEntry)
-{
-    LOG(StorageAPI, &quot;IDBDatabaseBackend::createIndex&quot;);
-    IDBTransactionBackend* transaction = m_transactions.get(transactionId);
-    if (!transaction)
-        return;
-    ASSERT(transaction-&gt;mode() == IndexedDB::TransactionMode::VersionChange);
-
-    ASSERT(m_metadata.objectStores.contains(objectStoreId));
-    const IDBObjectStoreMetadata objectStore = m_metadata.objectStores.get(objectStoreId);
-
-    ASSERT(!objectStore.indexes.contains(indexId));
-    const IDBIndexMetadata indexMetadata(name, indexId, keyPath, unique, multiEntry);
-
-    transaction-&gt;scheduleCreateIndexOperation(objectStoreId, indexMetadata);
-
-    addIndex(objectStoreId, indexMetadata, indexId);
-}
-
-void IDBDatabaseBackend::deleteIndex(int64_t transactionId, int64_t objectStoreId, int64_t indexId)
-{
-    LOG(StorageAPI, &quot;IDBDatabaseBackend::deleteIndex&quot;);
-    IDBTransactionBackend* transaction = m_transactions.get(transactionId);
-    if (!transaction)
-        return;
-    ASSERT(transaction-&gt;mode() == IndexedDB::TransactionMode::VersionChange);
-
-    ASSERT(m_metadata.objectStores.contains(objectStoreId));
-    const IDBObjectStoreMetadata objectStore = m_metadata.objectStores.get(objectStoreId);
-
-    ASSERT(objectStore.indexes.contains(indexId));
-    const IDBIndexMetadata&amp; indexMetadata = objectStore.indexes.get(indexId);
-
-    transaction-&gt;scheduleDeleteIndexOperation(objectStoreId, indexMetadata);
-
-    removeIndex(objectStoreId, indexId);
-}
-
-void IDBDatabaseBackend::commit(int64_t transactionId)
-{
-    // The frontend suggests that we commit, but we may have previously initiated an abort, and so have disposed of the transaction. onAbort has already been dispatched to the frontend, so it will find out about that asynchronously.
-    if (m_transactions.contains(transactionId))
-        m_transactions.get(transactionId)-&gt;commit();
-}
-
-void IDBDatabaseBackend::abort(int64_t transactionId)
-{
-    // If the transaction is unknown, then it has already been aborted by the backend before this call so it is safe to ignore it.
-    if (m_transactions.contains(transactionId))
-        m_transactions.get(transactionId)-&gt;abort();
-}
-
-void IDBDatabaseBackend::abort(int64_t transactionId, PassRefPtr&lt;IDBDatabaseError&gt; error)
-{
-    // If the transaction is unknown, then it has already been aborted by the backend before this call so it is safe to ignore it.
-    if (m_transactions.contains(transactionId))
-        m_transactions.get(transactionId)-&gt;abort(error);
-}
-
-void IDBDatabaseBackend::get(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt; keyRange, bool keyOnly, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-{
-    LOG(StorageAPI, &quot;IDBDatabaseBackend::get&quot;);
-    IDBTransactionBackend* transaction = m_transactions.get(transactionId);
-    if (!transaction)
-        return;
-
-    transaction-&gt;scheduleGetOperation(m_metadata, objectStoreId, indexId, keyRange, keyOnly ? IndexedDB::CursorType::KeyOnly : IndexedDB::CursorType::KeyAndValue, callbacks);
-}
-
-void IDBDatabaseBackend::put(int64_t transactionId, int64_t objectStoreId, PassRefPtr&lt;SharedBuffer&gt; value, PassRefPtr&lt;IDBKey&gt; key, PutMode putMode, PassRefPtr&lt;IDBCallbacks&gt; callbacks, const Vector&lt;int64_t&gt;&amp; indexIds, const Vector&lt;IndexKeys&gt;&amp; indexKeys)
-{
-    LOG(StorageAPI, &quot;IDBDatabaseBackend::put&quot;);
-    IDBTransactionBackend* transaction = m_transactions.get(transactionId);
-    if (!transaction)
-        return;
-    ASSERT(transaction-&gt;mode() != IndexedDB::TransactionMode::ReadOnly);
-
-    const IDBObjectStoreMetadata objectStoreMetadata = m_metadata.objectStores.get(objectStoreId);
-
-    ASSERT(objectStoreMetadata.autoIncrement || key.get());
-
-    transaction-&gt;schedulePutOperation(objectStoreMetadata, value, key, putMode, callbacks, indexIds, indexKeys);
-}
-
-void IDBDatabaseBackend::setIndexKeys(int64_t transactionID, int64_t objectStoreID, PassRefPtr&lt;IDBKey&gt; prpPrimaryKey, const Vector&lt;int64_t, 1&gt;&amp; indexIDs, const Vector&lt;IndexKeys, 1&gt;&amp; indexKeys)
-{
-    LOG(StorageAPI, &quot;IDBDatabaseBackend::setIndexKeys&quot;);
-    ASSERT(prpPrimaryKey);
-    ASSERT(m_metadata.objectStores.contains(objectStoreID));
-
-    RefPtr&lt;IDBTransactionBackend&gt; transaction = m_transactions.get(transactionID);
-    if (!transaction)
-        return;
-    ASSERT(transaction-&gt;mode() == IndexedDB::TransactionMode::VersionChange);
-
-    RefPtr&lt;IDBKey&gt; primaryKey = prpPrimaryKey;
-    m_serverConnection-&gt;setIndexKeys(transactionID, m_metadata.id, objectStoreID, m_metadata.objectStores.get(objectStoreID), *primaryKey, indexIDs, indexKeys, [transaction](PassRefPtr&lt;IDBDatabaseError&gt; error) {
-        if (error)
-            transaction-&gt;abort(error);
-    });
-}
-
-void IDBDatabaseBackend::setIndexesReady(int64_t transactionId, int64_t, const Vector&lt;int64_t, 1&gt;&amp; indexIds)
-{
-    LOG(StorageAPI, &quot;IDBDatabaseBackend::setIndexesReady&quot;);
-
-    IDBTransactionBackend* transaction = m_transactions.get(transactionId);
-    if (!transaction)
-        return;
-
-    transaction-&gt;scheduleSetIndexesReadyOperation(indexIds.size());
-}
-
-void IDBDatabaseBackend::openCursor(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt; keyRange, IndexedDB::CursorDirection direction, bool keyOnly, TaskType taskType, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-{
-    LOG(StorageAPI, &quot;IDBDatabaseBackend::openCursor&quot;);
-    IDBTransactionBackend* transaction = m_transactions.get(transactionId);
-    if (!transaction)
-        return;
-
-    transaction-&gt;scheduleOpenCursorOperation(objectStoreId, indexId, keyRange, direction, keyOnly ? IndexedDB::CursorType::KeyOnly : IndexedDB::CursorType::KeyAndValue, taskType, callbacks);
-}
-
-void IDBDatabaseBackend::count(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt; keyRange, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-{
-    LOG(StorageAPI, &quot;IDBDatabaseBackend::count&quot;);
-    IDBTransactionBackend* transaction = m_transactions.get(transactionId);
-    if (!transaction)
-        return;
-
-    ASSERT(m_metadata.objectStores.contains(objectStoreId));
-    transaction-&gt;scheduleCountOperation(objectStoreId, indexId, keyRange, callbacks);
-}
-
-
-void IDBDatabaseBackend::deleteRange(int64_t transactionId, int64_t objectStoreId, PassRefPtr&lt;IDBKeyRange&gt; keyRange, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-{
-    LOG(StorageAPI, &quot;IDBDatabaseBackend::deleteRange&quot;);
-    IDBTransactionBackend* transaction = m_transactions.get(transactionId);
-    if (!transaction)
-        return;
-    ASSERT(transaction-&gt;mode() != IndexedDB::TransactionMode::ReadOnly);
-
-    transaction-&gt;scheduleDeleteRangeOperation(objectStoreId, keyRange, callbacks);
-}
-
-void IDBDatabaseBackend::clearObjectStore(int64_t transactionId, int64_t objectStoreId, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-{
-    LOG(StorageAPI, &quot;IDBDatabaseBackend::clearObjectStore %lli in transaction %lli&quot;, static_cast&lt;long long&gt;(objectStoreId), static_cast&lt;long long&gt;(transactionId));
-    IDBTransactionBackend* transaction = m_transactions.get(transactionId);
-    if (!transaction)
-        return;
-    ASSERT(transaction-&gt;mode() != IndexedDB::TransactionMode::ReadOnly);
-
-    transaction-&gt;scheduleClearObjectStoreOperation(objectStoreId, callbacks);
-}
-
-void IDBDatabaseBackend::transactionStarted(IDBTransactionBackend* transaction)
-{
-    if (transaction-&gt;mode() == IndexedDB::TransactionMode::VersionChange) {
-        ASSERT(!m_runningVersionChangeTransaction);
-        m_runningVersionChangeTransaction = transaction;
-    }
-}
-
-void IDBDatabaseBackend::transactionFinished(IDBTransactionBackend* rawTransaction)
-{
-    RefPtr&lt;IDBTransactionBackend&gt; transaction = rawTransaction;
-    ASSERT(m_transactions.contains(transaction-&gt;id()));
-    ASSERT(m_transactions.get(transaction-&gt;id()) == transaction.get());
-    m_transactions.remove(transaction-&gt;id());
-    if (transaction-&gt;mode() == IndexedDB::TransactionMode::VersionChange) {
-        ASSERT(transaction.get() == m_runningVersionChangeTransaction.get());
-        m_runningVersionChangeTransaction = nullptr;
-    }
-}
-
-void IDBDatabaseBackend::transactionFinishedAndAbortFired(IDBTransactionBackend* rawTransaction)
-{
-    RefPtr&lt;IDBTransactionBackend&gt; transaction = rawTransaction;
-    if (transaction-&gt;mode() == IndexedDB::TransactionMode::VersionChange) {
-        // If this was an open-with-version call, there will be a &quot;second
-        // half&quot; open call waiting for us in processPendingCalls.
-        // FIXME: When we no longer support setVersion, assert such a thing.
-        if (m_pendingSecondHalfOpen) {
-            m_pendingSecondHalfOpen-&gt;callbacks()-&gt;onError(IDBDatabaseError::create(IDBDatabaseException::AbortError, &quot;Version change transaction was aborted in upgradeneeded event handler.&quot;));
-            m_pendingSecondHalfOpen = nullptr;
-        }
-        processPendingCalls();
-    }
-}
-
-void IDBDatabaseBackend::transactionFinishedAndCompleteFired(IDBTransactionBackend* rawTransaction)
-{
-    RefPtr&lt;IDBTransactionBackend&gt; transaction = rawTransaction;
-    if (transaction-&gt;mode() == IndexedDB::TransactionMode::VersionChange)
-        processPendingCalls();
-}
-
-size_t IDBDatabaseBackend::connectionCount()
-{
-    // This does not include pending open calls, as those should not block version changes and deletes.
-    return m_databaseCallbacksSet.size();
-}
-
-void IDBDatabaseBackend::processPendingCalls()
-{
-    // processPendingCalls() will be called again after openInternalAsync() completes.
-    if (!m_didOpenInternal)
-        return;
-
-    if (m_pendingSecondHalfOpen) {
-        ASSERT(m_pendingSecondHalfOpen-&gt;version() == m_metadata.version);
-        ASSERT(m_metadata.id != InvalidId);
-        m_pendingSecondHalfOpen-&gt;callbacks()-&gt;onSuccess(this, this-&gt;metadata());
-        m_pendingSecondHalfOpen = nullptr;
-        // Fall through when complete, as pending deletes may be (partially) unblocked.
-    }
-
-    // Note that this check is only an optimization to reduce queue-churn and
-    // not necessary for correctness; deleteDatabase and openConnection will
-    // requeue their calls if this condition is true.
-    if (m_runningVersionChangeTransaction)
-        return;
-
-    if (!m_pendingDeleteCalls.isEmpty() &amp;&amp; isDeleteDatabaseBlocked())
-        return;
-    while (!m_pendingDeleteCalls.isEmpty()) {
-        std::unique_ptr&lt;IDBPendingDeleteCall&gt; pendingDeleteCall = m_pendingDeleteCalls.takeFirst();
-        m_deleteCallbacksWaitingCompletion.add(pendingDeleteCall-&gt;callbacks());
-        deleteDatabaseAsync(pendingDeleteCall-&gt;callbacks());
-    }
-
-    // deleteDatabaseAsync should never re-queue calls.
-    ASSERT(m_pendingDeleteCalls.isEmpty());
-
-    // If there are any database deletions waiting for completion, we're done for now.
-    // Further callbacks will be handled in a future call to processPendingCalls().
-    if (!m_deleteCallbacksWaitingCompletion.isEmpty())
-        return;
-
-    if (m_runningVersionChangeTransaction)
-        return;
-
-    processPendingOpenCalls(true);
-}
-
-void IDBDatabaseBackend::processPendingOpenCalls(bool success)
-{
-    // Open calls can be requeued if an open call started a version change transaction or deletes the database.
-    Deque&lt;std::unique_ptr&lt;IDBPendingOpenCall&gt;&gt; pendingOpenCalls;
-    m_pendingOpenCalls.swap(pendingOpenCalls);
-
-    while (!pendingOpenCalls.isEmpty()) {
-        std::unique_ptr&lt;IDBPendingOpenCall&gt; pendingOpenCall = pendingOpenCalls.takeFirst();
-        if (success) {
-            if (m_metadata.id == InvalidId) {
-                // This database was deleted then quickly re-opened.
-                // openInternalAsync() will recreate it in the backing store and then resume processing pending callbacks.
-                pendingOpenCalls.prepend(WTFMove(pendingOpenCall));
-                pendingOpenCalls.swap(m_pendingOpenCalls);
-
-                openInternalAsync();
-                return;
-            }
-            openConnectionInternal(pendingOpenCall-&gt;callbacks(), pendingOpenCall-&gt;databaseCallbacks(), pendingOpenCall-&gt;transactionId(), pendingOpenCall-&gt;version());
-        } else {
-            String message;
-            if (pendingOpenCall-&gt;version() == IDBDatabaseMetadata::NoIntVersion)
-                message = &quot;Internal error opening database with no version specified.&quot;;
-            else
-                message = String::format(&quot;Internal error opening database with version %&quot; PRIu64, pendingOpenCall-&gt;version());
-            pendingOpenCall-&gt;callbacks()-&gt;onError(IDBDatabaseError::create(IDBDatabaseException::UnknownError, message));
-        }
-    }
-}
-
-void IDBDatabaseBackend::createTransaction(int64_t transactionID, PassRefPtr&lt;IDBDatabaseCallbacks&gt; callbacks, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, IndexedDB::TransactionMode mode)
-{
-    RefPtr&lt;IDBTransactionBackend&gt; transaction = IDBTransactionBackend::create(this, transactionID, callbacks, objectStoreIDs, mode);
-
-    ASSERT(!m_transactions.contains(transactionID));
-    m_transactions.add(transactionID, transaction.get());
-}
-
-void IDBDatabaseBackend::openConnection(PassRefPtr&lt;IDBCallbacks&gt; prpCallbacks, PassRefPtr&lt;IDBDatabaseCallbacks&gt; prpDatabaseCallbacks, int64_t transactionId, uint64_t version)
-{
-    RefPtr&lt;IDBCallbacks&gt; callbacks = prpCallbacks;
-    RefPtr&lt;IDBDatabaseCallbacks&gt; databaseCallbacks = prpDatabaseCallbacks;
-
-    m_pendingOpenCalls.append(std::make_unique&lt;IDBPendingOpenCall&gt;(*callbacks, *databaseCallbacks, transactionId, version));
-
-    processPendingCalls();
-}
-
-void IDBDatabaseBackend::openConnectionInternal(PassRefPtr&lt;IDBCallbacks&gt; prpCallbacks, PassRefPtr&lt;IDBDatabaseCallbacks&gt; prpDatabaseCallbacks, int64_t transactionId, uint64_t version)
-{
-    ASSERT(m_pendingDeleteCalls.isEmpty());
-    ASSERT(!m_runningVersionChangeTransaction);
-
-    RefPtr&lt;IDBCallbacks&gt; callbacks = prpCallbacks;
-    RefPtr&lt;IDBDatabaseCallbacks&gt; databaseCallbacks = prpDatabaseCallbacks;
-
-    // We infer that the database didn't exist from its lack of version.
-    bool isNewDatabase = m_metadata.version == IDBDatabaseMetadata::NoIntVersion;
-
-    if (version == IDBDatabaseMetadata::DefaultIntVersion &amp;&amp; !isNewDatabase) {
-        m_databaseCallbacksSet.add(databaseCallbacks);
-        callbacks-&gt;onSuccess(this, this-&gt;metadata());
-        return;
-    }
-
-    if (isNewDatabase &amp;&amp; version == IDBDatabaseMetadata::DefaultIntVersion) {
-        // Spec says: If no version is specified and no database exists, set database version to 1.
-        version = 1;
-    }
-
-    if (version &gt; m_metadata.version || m_metadata.version == IDBDatabaseMetadata::NoIntVersion) {
-        runIntVersionChangeTransaction(callbacks, databaseCallbacks, transactionId, version);
-        return;
-    }
-
-    if (version &lt; m_metadata.version &amp;&amp; m_metadata.version != IDBDatabaseMetadata::NoIntVersion) {
-        callbacks-&gt;onError(IDBDatabaseError::create(IDBDatabaseException::VersionError, String::format(&quot;The requested version (%&quot; PRIu64 &quot;) is less than the existing version (%&quot; PRIu64 &quot;).&quot;, version, m_metadata.version)));
-        return;
-    }
-
-    ASSERT(version == m_metadata.version);
-    m_databaseCallbacksSet.add(databaseCallbacks);
-    callbacks-&gt;onSuccess(this, this-&gt;metadata());
-}
-
-void IDBDatabaseBackend::runIntVersionChangeTransaction(PassRefPtr&lt;IDBCallbacks&gt; prpCallbacks, PassRefPtr&lt;IDBDatabaseCallbacks&gt; prpDatabaseCallbacks, int64_t transactionId, int64_t requestedVersion)
-{
-    RefPtr&lt;IDBCallbacks&gt; callbacks = prpCallbacks;
-    RefPtr&lt;IDBDatabaseCallbacks&gt; databaseCallbacks = prpDatabaseCallbacks;
-    ASSERT(callbacks);
-    for (auto&amp; callback : m_databaseCallbacksSet) {
-        // Front end ensures the event is not fired at connections that have closePending set.
-        if (callback != databaseCallbacks)
-            callback-&gt;onVersionChange(m_metadata.version, requestedVersion);
-    }
-    // The spec dictates we wait until all the version change events are
-    // delivered and then check m_databaseCallbacks.empty() before proceeding
-    // or firing a blocked event, but instead we should be consistent with how
-    // the old setVersion (incorrectly) did it.
-    // FIXME: Remove the call to onBlocked and instead wait until the frontend
-    // tells us that all the blocked events have been delivered. See
-    // https://bugs.webkit.org/show_bug.cgi?id=71130
-    if (connectionCount())
-        callbacks-&gt;onBlocked(m_metadata.version);
-    // FIXME: Add test for m_runningVersionChangeTransaction.
-    if (m_runningVersionChangeTransaction || connectionCount()) {
-        m_pendingOpenCalls.append(std::make_unique&lt;IDBPendingOpenCall&gt;(*callbacks, *databaseCallbacks, transactionId, requestedVersion));
-        return;
-    }
-
-    Vector&lt;int64_t&gt; objectStoreIds;
-    createTransaction(transactionId, databaseCallbacks, objectStoreIds, IndexedDB::TransactionMode::VersionChange);
-    RefPtr&lt;IDBTransactionBackend&gt; transaction = m_transactions.get(transactionId);
-
-    transaction-&gt;scheduleVersionChangeOperation(requestedVersion, callbacks, databaseCallbacks, m_metadata);
-
-    ASSERT(!m_pendingSecondHalfOpen);
-    m_databaseCallbacksSet.add(databaseCallbacks);
-}
-
-void IDBDatabaseBackend::deleteDatabase(PassRefPtr&lt;IDBCallbacks&gt; prpCallbacks)
-{
-    RefPtr&lt;IDBCallbacks&gt; callbacks = prpCallbacks;
-    if (isDeleteDatabaseBlocked()) {
-        for (auto&amp; callback : m_databaseCallbacksSet) {
-            // Front end ensures the event is not fired at connections that have closePending set.
-            callback-&gt;onVersionChange(m_metadata.version, 0);
-        }
-        // FIXME: Only fire onBlocked if there are open connections after the
-        // VersionChangeEvents are received, not just set up to fire.
-        // https://bugs.webkit.org/show_bug.cgi?id=71130
-        callbacks-&gt;onBlocked(m_metadata.version);
-        m_pendingDeleteCalls.append(std::make_unique&lt;IDBPendingDeleteCall&gt;(callbacks.release()));
-        return;
-    }
-    deleteDatabaseAsync(callbacks.release());
-}
-
-bool IDBDatabaseBackend::isDeleteDatabaseBlocked()
-{
-    return connectionCount();
-}
-
-void IDBDatabaseBackend::deleteDatabaseAsync(PassRefPtr&lt;IDBCallbacks&gt; prpCallbacks)
-{
-    ASSERT(!isDeleteDatabaseBlocked());
-
-    RefPtr&lt;IDBDatabaseBackend&gt; self(this);
-    RefPtr&lt;IDBCallbacks&gt; callbacks = prpCallbacks;
-    m_serverConnection-&gt;deleteDatabase(m_metadata.name, [self, callbacks](bool success) {
-        self-&gt;m_deleteCallbacksWaitingCompletion.remove(callbacks);
-
-        // If this IDBDatabaseBackend was closed while waiting for deleteDatabase to complete, no point in performing any callbacks.
-        if (!self-&gt;m_serverConnection-&gt;isClosed())
-            return;
-
-        if (success) {
-            self-&gt;m_metadata.id = InvalidId;
-            self-&gt;m_metadata.version = IDBDatabaseMetadata::NoIntVersion;
-            self-&gt;m_metadata.objectStores.clear();
-            callbacks-&gt;onSuccess();
-        } else
-            callbacks-&gt;onError(IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Internal error deleting database.&quot;));
-
-        self-&gt;processPendingCalls();
-    });
-}
-
-void IDBDatabaseBackend::close(PassRefPtr&lt;IDBDatabaseCallbacks&gt; prpCallbacks)
-{
-    RefPtr&lt;IDBDatabaseCallbacks&gt; callbacks = prpCallbacks;
-    ASSERT(m_databaseCallbacksSet.contains(callbacks));
-
-    m_databaseCallbacksSet.remove(callbacks);
-    if (m_pendingSecondHalfOpen &amp;&amp; m_pendingSecondHalfOpen-&gt;databaseCallbacks() == callbacks) {
-        m_pendingSecondHalfOpen-&gt;callbacks()-&gt;onError(IDBDatabaseError::create(IDBDatabaseException::AbortError, &quot;The connection was closed.&quot;));
-        m_pendingSecondHalfOpen = nullptr;
-    }
-
-    if (connectionCount() &gt; 1)
-        return;
-
-    // processPendingCalls allows the inspector to process a pending open call
-    // and call close, reentering IDBDatabaseBackend::close. Then the
-    // backend would be removed both by the inspector closing its connection, and
-    // by the connection that first called close.
-    // To avoid that situation, don't proceed in case of reentrancy.
-    if (m_closingConnection)
-        return;
-    TemporaryChange&lt;bool&gt; closingConnection(m_closingConnection, true);
-    processPendingCalls();
-
-    // FIXME: Add a test for the m_pendingOpenCalls cases below.
-    if (!connectionCount() &amp;&amp; !m_pendingOpenCalls.size() &amp;&amp; !m_pendingDeleteCalls.size()) {
-        TransactionMap transactions(m_transactions);
-        RefPtr&lt;IDBDatabaseError&gt; error = IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Connection is closing.&quot;);
-        for (auto&amp; transaction : transactions.values())
-            transaction-&gt;abort(error);
-
-        ASSERT(m_transactions.isEmpty());
-
-        m_serverConnection-&gt;close();
-
-        // This check should only be false in unit tests.
-        ASSERT(m_factory);
-        if (m_factory)
-            m_factory-&gt;removeIDBDatabaseBackend(m_identifier);
-    }
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBDatabaseBackendh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseBackend.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseBackend.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseBackend.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,175 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef IDBDatabaseBackend_h
-#define IDBDatabaseBackend_h
-
-#include &quot;IDBDatabaseCallbacks.h&quot;
-#include &quot;IDBDatabaseMetadata.h&quot;
-#include &quot;IDBKeyRange.h&quot;
-#include &quot;IDBPendingDeleteCall.h&quot;
-#include &quot;IDBPendingOpenCall.h&quot;
-
-#include &lt;stdint.h&gt;
-#include &lt;wtf/Deque.h&gt;
-#include &lt;wtf/HashMap.h&gt;
-#include &lt;wtf/ListHashSet.h&gt;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-class IDBDatabase;
-class IDBFactoryBackendInterface;
-class IDBKey;
-class IDBKeyPath;
-class IDBServerConnection;
-class IDBTransactionBackend;
-class IDBTransactionCoordinator;
-class SharedBuffer;
-
-struct IDBDatabaseMetadata;
-struct IDBIndexMetadata;
-struct IDBObjectStoreMetadata;
-
-typedef Vector&lt;RefPtr&lt;IDBKey&gt;&gt; IndexKeys;
-typedef int ExceptionCode;
-
-class IDBDatabaseBackend : public RefCounted&lt;IDBDatabaseBackend&gt; {
-public:
-    WEBCORE_EXPORT static Ref&lt;IDBDatabaseBackend&gt; create(const String&amp; name, const String&amp; uniqueIdentifier, IDBFactoryBackendInterface*, IDBServerConnection&amp;);
-    WEBCORE_EXPORT ~IDBDatabaseBackend();
-
-    IDBServerConnection&amp; serverConnection() { return m_serverConnection.get(); }
-
-    static const int64_t InvalidId = 0;
-    int64_t id() const { return m_metadata.id; }
-    void addObjectStore(const IDBObjectStoreMetadata&amp;, int64_t newMaxObjectStoreId);
-    void removeObjectStore(int64_t objectStoreId);
-    void addIndex(int64_t objectStoreId, const IDBIndexMetadata&amp;, int64_t newMaxIndexId);
-    void removeIndex(int64_t objectStoreId, int64_t indexId);
-
-    WEBCORE_EXPORT void openConnection(PassRefPtr&lt;IDBCallbacks&gt;, PassRefPtr&lt;IDBDatabaseCallbacks&gt;, int64_t transactionId, uint64_t version);
-    WEBCORE_EXPORT void deleteDatabase(PassRefPtr&lt;IDBCallbacks&gt;);
-
-    // IDBDatabaseBackend
-    void createObjectStore(int64_t transactionId, int64_t objectStoreId, const String&amp; name, const IDBKeyPath&amp;, bool autoIncrement);
-    void deleteObjectStore(int64_t transactionId, int64_t objectStoreId);
-    void createTransaction(int64_t transactionId, PassRefPtr&lt;IDBDatabaseCallbacks&gt;, const Vector&lt;int64_t&gt;&amp; objectStoreIds, IndexedDB::TransactionMode);
-    void close(PassRefPtr&lt;IDBDatabaseCallbacks&gt;);
-
-    void commit(int64_t transactionId);
-    void abort(int64_t transactionId);
-    void abort(int64_t transactionId, PassRefPtr&lt;IDBDatabaseError&gt;);
-
-    void createIndex(int64_t transactionId, int64_t objectStoreId, int64_t indexId, const String&amp; name, const IDBKeyPath&amp;, bool unique, bool multiEntry);
-    void deleteIndex(int64_t transactionId, int64_t objectStoreId, int64_t indexId);
-
-    IDBTransactionCoordinator* transactionCoordinator() const { return m_transactionCoordinator.get(); }
-    void transactionStarted(IDBTransactionBackend*);
-    void transactionFinished(IDBTransactionBackend*);
-    void transactionFinishedAndCompleteFired(IDBTransactionBackend*);
-    void transactionFinishedAndAbortFired(IDBTransactionBackend*);
-
-    enum TaskType {
-        NormalTask = 0,
-        PreemptiveTask
-    };
-
-    enum PutMode {
-        AddOrUpdate,
-        AddOnly,
-        CursorUpdate
-    };
-
-    static const int64_t MinimumIndexId = 30;
-
-    void get(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt;, bool keyOnly, PassRefPtr&lt;IDBCallbacks&gt;);
-    void put(int64_t transactionId, int64_t objectStoreId, PassRefPtr&lt;SharedBuffer&gt; value, PassRefPtr&lt;IDBKey&gt;, PutMode, PassRefPtr&lt;IDBCallbacks&gt;, const Vector&lt;int64_t&gt;&amp; indexIds, const Vector&lt;IndexKeys&gt;&amp;);
-    void setIndexKeys(int64_t transactionId, int64_t objectStoreId, PassRefPtr&lt;IDBKey&gt; prpPrimaryKey, const Vector&lt;int64_t, 1&gt;&amp; indexIds, const Vector&lt;IndexKeys, 1&gt;&amp;);
-    void setIndexesReady(int64_t transactionId, int64_t objectStoreId, const Vector&lt;int64_t, 1&gt;&amp; indexIds);
-    void openCursor(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt;, IndexedDB::CursorDirection, bool keyOnly, TaskType, PassRefPtr&lt;IDBCallbacks&gt;);
-    void count(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt;, PassRefPtr&lt;IDBCallbacks&gt;);
-    void deleteRange(int64_t transactionId, int64_t objectStoreId, PassRefPtr&lt;IDBKeyRange&gt;, PassRefPtr&lt;IDBCallbacks&gt;);
-    void clearObjectStore(int64_t transactionId, int64_t objectStoreId, PassRefPtr&lt;IDBCallbacks&gt;);
-
-    const IDBDatabaseMetadata&amp; metadata() const { return m_metadata; }
-    void setCurrentVersion(uint64_t version) { m_metadata.version = version; }
-
-    bool hasPendingSecondHalfOpen() { return m_pendingSecondHalfOpen.get(); }
-    void setPendingSecondHalfOpen(std::unique_ptr&lt;IDBPendingOpenCall&gt; pendingOpenCall) { m_pendingSecondHalfOpen = WTFMove(pendingOpenCall); }
-
-    IDBFactoryBackendInterface&amp; factoryBackend() { return *m_factory; }
-
-    class VersionChangeOperation;
-    class VersionChangeAbortOperation;
-
-private:
-    IDBDatabaseBackend(const String&amp; name, const String&amp; uniqueIdentifier, IDBFactoryBackendInterface*, IDBServerConnection&amp;);
-
-    void openConnectionInternal(PassRefPtr&lt;IDBCallbacks&gt;, PassRefPtr&lt;IDBDatabaseCallbacks&gt;, int64_t transactionId, uint64_t version);
-
-    void openInternalAsync();
-    void didOpenInternalAsync(const IDBDatabaseMetadata&amp;, bool success);
-
-    void runIntVersionChangeTransaction(PassRefPtr&lt;IDBCallbacks&gt;, PassRefPtr&lt;IDBDatabaseCallbacks&gt;, int64_t transactionId, int64_t requestedVersion);
-    size_t connectionCount();
-    void processPendingCalls();
-    void processPendingOpenCalls(bool success);
-
-    bool isDeleteDatabaseBlocked();
-    void deleteDatabaseAsync(PassRefPtr&lt;IDBCallbacks&gt;);
-
-    IDBDatabaseMetadata m_metadata;
-
-    String m_identifier;
-
-    RefPtr&lt;IDBFactoryBackendInterface&gt; m_factory;
-    Ref&lt;IDBServerConnection&gt; m_serverConnection;
-
-    std::unique_ptr&lt;IDBTransactionCoordinator&gt; m_transactionCoordinator;
-    RefPtr&lt;IDBTransactionBackend&gt; m_runningVersionChangeTransaction;
-
-    typedef HashMap&lt;int64_t, IDBTransactionBackend*&gt; TransactionMap;
-    TransactionMap m_transactions;
-
-    Deque&lt;std::unique_ptr&lt;IDBPendingOpenCall&gt;&gt; m_pendingOpenCalls;
-    std::unique_ptr&lt;IDBPendingOpenCall&gt; m_pendingSecondHalfOpen;
-
-    Deque&lt;std::unique_ptr&lt;IDBPendingDeleteCall&gt;&gt; m_pendingDeleteCalls;
-    HashSet&lt;RefPtr&lt;IDBCallbacks&gt;&gt; m_deleteCallbacksWaitingCompletion;
-
-    typedef ListHashSet&lt;RefPtr&lt;IDBDatabaseCallbacks&gt;&gt; DatabaseCallbacksSet;
-    DatabaseCallbacksSet m_databaseCallbacksSet;
-
-    bool m_closingConnection;
-    bool m_didOpenInternal;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-
-#endif // IDBDatabaseBackend_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBDatabaseCallbacksh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseCallbacks.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseCallbacks.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseCallbacks.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,57 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef IDBDatabaseCallbacks_h
-#define IDBDatabaseCallbacks_h
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;IDBDatabaseError.h&quot;
-#include &quot;IndexedDB.h&quot;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-namespace WebCore {
-
-class LegacyDatabase;
-
-class IDBDatabaseCallbacks : public RefCounted&lt;IDBDatabaseCallbacks&gt; {
-public:
-    virtual ~IDBDatabaseCallbacks() { }
-
-    virtual void onForcedClose() = 0;
-    virtual void onVersionChange(uint64_t oldVersion, uint64_t newVersion) = 0;
-
-    virtual void onAbort(int64_t transactionId, PassRefPtr&lt;IDBDatabaseError&gt;) = 0;
-    virtual void onComplete(int64_t transactionId) = 0;
-
-    virtual void connect(LegacyDatabase*) = 0;
-};
-
-} // namespace WebCore
-
-#endif
-
-#endif // IDBDatabaseCallbacks_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBDatabaseCallbacksImplcpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseCallbacksImpl.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseCallbacksImpl.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseCallbacksImpl.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,82 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;IDBDatabaseCallbacksImpl.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;LegacyDatabase.h&quot;
-
-namespace WebCore {
-
-Ref&lt;IDBDatabaseCallbacksImpl&gt; IDBDatabaseCallbacksImpl::create()
-{
-    return adoptRef(*new IDBDatabaseCallbacksImpl());
-}
-
-IDBDatabaseCallbacksImpl::IDBDatabaseCallbacksImpl()
-    : m_database(nullptr)
-{
-}
-
-IDBDatabaseCallbacksImpl::~IDBDatabaseCallbacksImpl()
-{
-}
-
-void IDBDatabaseCallbacksImpl::onForcedClose()
-{
-    if (m_database)
-        m_database-&gt;forceClose();
-}
-
-void IDBDatabaseCallbacksImpl::onVersionChange(uint64_t oldVersion, uint64_t newVersion)
-{
-    if (m_database)
-        m_database-&gt;onVersionChange(oldVersion, newVersion);
-}
-
-void IDBDatabaseCallbacksImpl::connect(LegacyDatabase* database)
-{
-    ASSERT(!m_database);
-    ASSERT(database);
-    m_database = database;
-}
-
-void IDBDatabaseCallbacksImpl::onAbort(int64_t transactionId, PassRefPtr&lt;IDBDatabaseError&gt; error)
-{
-    if (m_database)
-        m_database-&gt;onAbort(transactionId, error);
-}
-
-void IDBDatabaseCallbacksImpl::onComplete(int64_t transactionId)
-{
-    if (m_database)
-        m_database-&gt;onComplete(transactionId);
-}
-
-} // namespace WebCore
-
-#endif
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBDatabaseCallbacksImplh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseCallbacksImpl.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseCallbacksImpl.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBDatabaseCallbacksImpl.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,64 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef IDBDatabaseCallbacksImpl_h
-#define IDBDatabaseCallbacksImpl_h
-
-#include &quot;IDBDatabaseCallbacks.h&quot;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-class LegacyDatabase;
-
-class IDBDatabaseCallbacksImpl final : public IDBDatabaseCallbacks {
-public:
-    static Ref&lt;IDBDatabaseCallbacksImpl&gt; create();
-    virtual ~IDBDatabaseCallbacksImpl() override;
-
-    // IDBDatabaseCallbacks
-    virtual void onForcedClose() override;
-    virtual void onVersionChange(uint64_t oldVersion, uint64_t newVersion) override;
-
-    virtual void onAbort(int64_t transactionId, PassRefPtr&lt;IDBDatabaseError&gt;) override;
-    virtual void onComplete(int64_t transactionId) override;
-
-    virtual void connect(LegacyDatabase*) override;
-
-private:
-    IDBDatabaseCallbacksImpl();
-
-    // The initial IDBOpenDBRequest or final IDBDatabase maintains a RefPtr to this
-    LegacyDatabase* m_database;
-};
-
-} // namespace WebCore
-
-#endif
-
-#endif // IDBDatabaseCallbacksImpl_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBFactoryBackendInterfaceh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBFactoryBackendInterface.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBFactoryBackendInterface.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBFactoryBackendInterface.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- * 3.  Neither the name of Apple Inc. (&quot;Apple&quot;) nor the names of
- *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef IDBFactoryBackendInterface_h
-#define IDBFactoryBackendInterface_h
-
-#include &quot;IDBDatabaseBackend.h&quot;
-#include &quot;IndexedDB.h&quot;
-
-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-class IDBCallbacks;
-class IDBCursorBackend;
-class IDBDatabase;
-class IDBDatabaseBackend;
-class IDBDatabaseCallbacks;
-class IDBTransactionBackend;
-class SecurityOrigin;
-class ScriptExecutionContext;
-
-typedef int ExceptionCode;
-
-// This class is shared by IDBFactory (async) and IDBFactorySync (sync).
-// This is implemented by IDBFactoryBackendImpl and optionally others (in order to proxy
-// calls across process barriers). All calls to these classes should be non-blocking and
-// trigger work on a background thread if necessary.
-class IDBFactoryBackendInterface : public RefCounted&lt;IDBFactoryBackendInterface&gt; {
-public:
-    virtual ~IDBFactoryBackendInterface() { }
-
-    virtual void getDatabaseNames(PassRefPtr&lt;IDBCallbacks&gt;, const SecurityOrigin&amp; openingOrigin, const SecurityOrigin&amp; mainFrameOrigin, ScriptExecutionContext*) = 0;
-    virtual void open(const String&amp; name, uint64_t version, int64_t transactionId, PassRefPtr&lt;IDBCallbacks&gt;, PassRefPtr&lt;IDBDatabaseCallbacks&gt;, const SecurityOrigin&amp; openingOrigin, const SecurityOrigin&amp; mainFrameOrigin) = 0;
-    virtual void deleteDatabase(const String&amp; name, const SecurityOrigin&amp; openingOrigin, const SecurityOrigin&amp; mainFrameOrigin, PassRefPtr&lt;IDBCallbacks&gt;, ScriptExecutionContext*) = 0;
-
-    virtual void removeIDBDatabaseBackend(const String&amp; uniqueIdentifier) = 0;
-
-};
-
-} // namespace WebCore
-
-#endif // IDBFactoryBackendInterface_h
-
-#endif // IDBFactoryBackendInterface_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBPendingDeleteCallh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBPendingDeleteCall.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBPendingDeleteCall.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBPendingDeleteCall.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,52 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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 IDBPendingDeleteCall_h
-#define IDBPendingDeleteCall_h
-
-#include &quot;IDBCallbacks.h&quot;
-#include &lt;wtf/RefPtr.h&gt;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-class IDBPendingDeleteCall {
-public:
-    explicit IDBPendingDeleteCall(PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-        : m_callbacks(callbacks)
-    {
-    }
-
-    IDBCallbacks* callbacks() { return m_callbacks.get(); }
-
-private:
-    RefPtr&lt;IDBCallbacks&gt; m_callbacks;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-#endif // IDBPendingDeleteCall_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBPendingOpenCallh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBPendingOpenCall.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBPendingOpenCall.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBPendingOpenCall.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,63 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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 IDBPendingOpenCall_h
-#define IDBPendingOpenCall_h
-
-#include &lt;wtf/RefPtr.h&gt;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-class IDBCallbacks;
-class IDBDatabaseCallbacks;
-
-class IDBPendingOpenCall {
-public:
-    IDBPendingOpenCall(IDBCallbacks&amp; callbacks, IDBDatabaseCallbacks&amp; databaseCallbacks, int64_t transactionId, uint64_t version)
-        : m_callbacks(&amp;callbacks)
-        , m_databaseCallbacks(&amp;databaseCallbacks)
-        , m_version(version)
-        , m_transactionId(transactionId)
-    {
-    }
-
-    IDBCallbacks* callbacks() { return m_callbacks.get(); }
-    IDBDatabaseCallbacks* databaseCallbacks() { return m_databaseCallbacks.get(); }
-    uint64_t version() { return m_version; }
-    int64_t transactionId() const { return m_transactionId; }
-
-private:
-    RefPtr&lt;IDBCallbacks&gt; m_callbacks;
-    RefPtr&lt;IDBDatabaseCallbacks&gt; m_databaseCallbacks;
-    uint64_t m_version;
-    const int64_t m_transactionId;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-#endif // IDBPendingOpenCall_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBPendingTransactionMonitorcpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBPendingTransactionMonitor.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBPendingTransactionMonitor.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBPendingTransactionMonitor.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,69 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;IDBPendingTransactionMonitor.h&quot;
-
-#include &quot;LegacyTransaction.h&quot;
-#include &lt;mutex&gt;
-#include &lt;wtf/ThreadSpecific.h&gt;
-
-using WTF::ThreadSpecific;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-typedef Vector&lt;RefPtr&lt;LegacyTransaction&gt;&gt; TransactionList;
-
-static ThreadSpecific&lt;TransactionList&gt;&amp; transactions()
-{
-    // FIXME: Move the Vector to ScriptExecutionContext to avoid dealing with
-    // thread-local storage.
-    static std::once_flag onceFlag;
-    static ThreadSpecific&lt;TransactionList&gt;* transactions;
-    std::call_once(onceFlag, [] {
-        transactions = new ThreadSpecific&lt;TransactionList&gt;;
-    });
-
-    return *transactions;
-}
-
-void IDBPendingTransactionMonitor::addNewTransaction(PassRefPtr&lt;LegacyTransaction&gt; transaction)
-{
-    transactions()-&gt;append(transaction);
-}
-
-void IDBPendingTransactionMonitor::deactivateNewTransactions()
-{
-    ThreadSpecific&lt;TransactionList&gt;&amp; list = transactions();
-    for (auto&amp; transaction : *list)
-        transaction-&gt;setActive(false);
-    // FIXME: Exercise this call to clear() in a layout test.
-    list-&gt;clear();
-}
-
-};
-#endif // ENABLE(INDEXED_DATABASE)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBPendingTransactionMonitorh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBPendingTransactionMonitor.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBPendingTransactionMonitor.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBPendingTransactionMonitor.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,57 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef IDBPendingTransactionMonitor_h
-#define IDBPendingTransactionMonitor_h
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &lt;wtf/Noncopyable.h&gt;
-#include &lt;wtf/Vector.h&gt;
-
-namespace WebCore {
-
-class LegacyTransaction;
-
-// This class keeps track of the transactions created during the current
-// Javascript execution context. Transactions have an internal |active| flag
-// which is set to true on creation, but must be set to false when control
-// returns to the event loop.
-
-class IDBPendingTransactionMonitor {
-    WTF_MAKE_NONCOPYABLE(IDBPendingTransactionMonitor);
-public:
-    static void addNewTransaction(PassRefPtr&lt;LegacyTransaction&gt;);
-    static void deactivateNewTransactions();
-
-private:
-    IDBPendingTransactionMonitor();
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-
-#endif // IDBPendingTransactionMonitor_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBTransactionBackendcpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackend.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackend.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackend.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,377 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;IDBTransactionBackend.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;IDBCursorBackend.h&quot;
-#include &quot;IDBDatabaseBackend.h&quot;
-#include &quot;IDBDatabaseCallbacks.h&quot;
-#include &quot;IDBDatabaseException.h&quot;
-#include &quot;IDBFactoryBackendInterface.h&quot;
-#include &quot;IDBKeyRange.h&quot;
-#include &quot;IDBServerConnection.h&quot;
-#include &quot;IDBTransactionBackendOperations.h&quot;
-#include &quot;IDBTransactionCoordinator.h&quot;
-#include &quot;Logging.h&quot;
-
-namespace WebCore {
-
-Ref&lt;IDBTransactionBackend&gt; IDBTransactionBackend::create(IDBDatabaseBackend* databaseBackend, int64_t id, PassRefPtr&lt;IDBDatabaseCallbacks&gt; callbacks, const Vector&lt;int64_t&gt;&amp; objectStoreIds, IndexedDB::TransactionMode mode)
-{
-    HashSet&lt;int64_t&gt; objectStoreHashSet;
-    for (auto&amp; id : objectStoreIds)
-        objectStoreHashSet.add(id);
-
-    return adoptRef(*new IDBTransactionBackend(databaseBackend, id, callbacks, objectStoreHashSet, mode));
-}
-
-IDBTransactionBackend::IDBTransactionBackend(IDBDatabaseBackend* databaseBackend, int64_t id, PassRefPtr&lt;IDBDatabaseCallbacks&gt; callbacks, const HashSet&lt;int64_t&gt;&amp; objectStoreIds, IndexedDB::TransactionMode mode)
-    : m_objectStoreIds(objectStoreIds)
-    , m_mode(mode)
-    , m_state(Unopened)
-    , m_commitPending(false)
-    , m_callbacks(callbacks)
-    , m_database(databaseBackend)
-    , m_taskTimer(*this, &amp;IDBTransactionBackend::taskTimerFired)
-    , m_pendingPreemptiveEvents(0)
-    , m_id(id)
-{
-    // We pass a reference of this object before it can be adopted.
-    relaxAdoptionRequirement();
-
-    m_database-&gt;transactionCoordinator()-&gt;didCreateTransaction(this);
-
-    RefPtr&lt;IDBTransactionBackend&gt; backend(this);
-    m_database-&gt;serverConnection().openTransaction(id, objectStoreIds, mode, [backend](bool success) {
-        if (!success) {
-            callOnMainThread([backend]() {
-                backend-&gt;abort();
-            });
-            return;
-        }
-
-        // Handle the case where the transaction was aborted before the server connection finished opening the transaction.
-        if (backend-&gt;m_state == Finished)
-            return;
-
-        backend-&gt;m_state = Unused;
-        if (backend-&gt;hasPendingTasks())
-            backend-&gt;start();
-    });
-}
-
-IDBTransactionBackend::~IDBTransactionBackend()
-{
-    // It shouldn't be possible for this object to get deleted unless it's unused, complete, or aborted.
-    ASSERT(m_state == Finished || m_state == Unused);
-}
-
-void IDBTransactionBackend::scheduleTask(IDBDatabaseBackend::TaskType type, PassRefPtr&lt;IDBOperation&gt; task, PassRefPtr&lt;IDBSynchronousOperation&gt; abortTask)
-{
-    if (m_state == Finished)
-        return;
-
-    if (type == IDBDatabaseBackend::NormalTask)
-        m_taskQueue.append(task);
-    else
-        m_preemptiveTaskQueue.append(task);
-
-    if (abortTask)
-        m_abortTaskQueue.prepend(abortTask);
-
-    if (m_state == Unopened)
-        return;
-
-    if (m_state == Unused)
-        start();
-    else if (m_state == Running &amp;&amp; !m_taskTimer.isActive())
-        m_taskTimer.startOneShot(0);
-}
-
-void IDBTransactionBackend::abort()
-{
-    abort(IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Internal error (unknown cause)&quot;));
-}
-
-void IDBTransactionBackend::abort(PassRefPtr&lt;IDBDatabaseError&gt; error)
-{
-#ifndef NDEBUG
-    if (error)
-        LOG(StorageAPI, &quot;IDBTransactionBackend::abort - (%s) %s&quot;, error-&gt;name().utf8().data(), error-&gt;message().utf8().data());
-    else
-        LOG(StorageAPI, &quot;IDBTransactionBackend::abort (no error)&quot;);
-#endif
-
-    if (m_state == Finished)
-        return;
-
-    bool wasRunning = m_state == Running;
-
-    // The last reference to this object may be released while performing the
-    // abort steps below. We therefore take a self reference to keep ourselves
-    // alive while executing this method.
-    Ref&lt;IDBTransactionBackend&gt; protect(*this);
-
-    m_state = Finished;
-    m_taskTimer.stop();
-
-    if (wasRunning)
-        m_database-&gt;serverConnection().rollbackTransactionSync(m_id);
-
-    // Run the abort tasks, if any.
-    while (!m_abortTaskQueue.isEmpty()) {
-        RefPtr&lt;IDBSynchronousOperation&gt; task(m_abortTaskQueue.takeFirst());
-        task-&gt;perform();
-    }
-
-    // Backing store resources (held via cursors) must be released before script callbacks
-    // are fired, as the script callbacks may release references and allow the backing store
-    // itself to be released, and order is critical.
-    closeOpenCursors();
-
-    m_database-&gt;serverConnection().resetTransactionSync(m_id);
-
-    // Transactions must also be marked as completed before the front-end is notified, as
-    // the transaction completion unblocks operations like closing connections.
-    m_database-&gt;transactionCoordinator()-&gt;didFinishTransaction(this);
-    ASSERT(!m_database-&gt;transactionCoordinator()-&gt;isActive(this));
-    m_database-&gt;transactionFinished(this);
-
-    RefPtr&lt;IDBDatabaseBackend&gt; database = m_database.release();
-
-    if (m_callbacks)
-        m_callbacks-&gt;onAbort(id(), error);
-
-    database-&gt;transactionFinishedAndAbortFired(this);
-}
-
-bool IDBTransactionBackend::isTaskQueueEmpty() const
-{
-    return m_preemptiveTaskQueue.isEmpty() &amp;&amp; m_taskQueue.isEmpty();
-}
-
-bool IDBTransactionBackend::hasPendingTasks() const
-{
-    return m_pendingPreemptiveEvents || !isTaskQueueEmpty();
-}
-
-void IDBTransactionBackend::registerOpenCursor(IDBCursorBackend* cursor)
-{
-    m_openCursors.add(cursor);
-}
-
-void IDBTransactionBackend::unregisterOpenCursor(IDBCursorBackend* cursor)
-{
-    m_openCursors.remove(cursor);
-}
-
-void IDBTransactionBackend::run()
-{
-    // TransactionCoordinator has started this transaction. Schedule a timer
-    // to process the first task.
-    ASSERT(m_state == StartPending || m_state == Running);
-    ASSERT(!m_taskTimer.isActive());
-
-    m_taskTimer.startOneShot(0);
-}
-
-void IDBTransactionBackend::start()
-{
-    ASSERT(m_state == Unused);
-
-    m_state = StartPending;
-    m_database-&gt;transactionCoordinator()-&gt;didStartTransaction(this);
-    m_database-&gt;transactionStarted(this);
-}
-
-void IDBTransactionBackend::commit()
-{
-    LOG(StorageAPI, &quot;IDBTransactionBackend::commit transaction %lli in state %u&quot;, static_cast&lt;long long&gt;(m_id), m_state);
-
-    // In multiprocess ports, front-end may have requested a commit but an abort has already
-    // been initiated asynchronously by the back-end.
-    if (m_state == Finished)
-        return;
-
-    ASSERT(m_state == Unopened || m_state == Unused || m_state == Running);
-    m_commitPending = true;
-
-    // Front-end has requested a commit, but there may be tasks like createIndex which
-    // are considered synchronous by the front-end but are processed asynchronously.
-    if (hasPendingTasks()) {
-        LOG(StorageAPI, &quot;IDBTransactionBackend::commit - Not committing now, transaction still has pending tasks (Transaction %lli)&quot;, static_cast&lt;long long&gt;(m_id));
-        return;
-    }
-
-    // The last reference to this object may be released while performing the
-    // commit steps below. We therefore take a self reference to keep ourselves
-    // alive while executing this method.
-    RefPtr&lt;IDBTransactionBackend&gt; backend(this);
-
-    bool unused = m_state == Unused || m_state == Unopened;
-    m_state = Finished;
-
-    bool committed = unused;
-
-    m_database-&gt;serverConnection().commitTransaction(m_id, [backend, this, committed, unused](bool success) mutable {
-        // This might be commitTransaction request aborting during or after synchronous IDBTransactionBackend::abort() call.
-        // This can easily happen if the page is navigated before all transactions finish.
-        // In this case we have no further cleanup and don't need to make any callbacks.
-        if (!m_database) {
-            ASSERT(!success);
-            return;
-        }
-
-        committed |= success;
-
-        // Backing store resources (held via cursors) must be released before script callbacks
-        // are fired, as the script callbacks may release references and allow the backing store
-        // itself to be released, and order is critical.
-        closeOpenCursors();
-
-        m_database-&gt;serverConnection().resetTransaction(m_id, []() { });
-
-        // Transactions must also be marked as completed before the front-end is notified, as
-        // the transaction completion unblocks operations like closing connections.
-        if (!unused)
-            m_database-&gt;transactionCoordinator()-&gt;didFinishTransaction(this);
-        m_database-&gt;transactionFinished(this);
-
-        if (committed) {
-            m_callbacks-&gt;onComplete(id());
-            m_database-&gt;transactionFinishedAndCompleteFired(this);
-        } else {
-            m_callbacks-&gt;onAbort(id(), IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Internal error committing transaction.&quot;));
-            m_database-&gt;transactionFinishedAndAbortFired(this);
-        }
-
-        m_database = nullptr;
-    });
-}
-
-void IDBTransactionBackend::taskTimerFired()
-{
-    LOG(StorageAPI, &quot;IDBTransactionBackend::taskTimerFired&quot;);
-
-    if (m_state == StartPending) {
-        m_database-&gt;serverConnection().beginTransaction(m_id, []() { });
-        m_state = Running;
-    }
-
-    // The last reference to this object may be released while performing a task.
-    // Take a self reference to keep this object alive so that tasks can
-    // successfully make their completion callbacks.
-    RefPtr&lt;IDBTransactionBackend&gt; self(this);
-
-    TaskQueue* taskQueue = m_pendingPreemptiveEvents ? &amp;m_preemptiveTaskQueue : &amp;m_taskQueue;
-    if (!taskQueue-&gt;isEmpty() &amp;&amp; m_state != Finished) {
-        ASSERT(m_state == Running);
-        RefPtr&lt;IDBOperation&gt; task(taskQueue-&gt;takeFirst());
-        task-&gt;perform([self, this, task]() {
-            m_taskTimer.startOneShot(0);
-        });
-
-        return;
-    }
-
-    // If there are no pending tasks, we haven't already committed/aborted,
-    // and the front-end requested a commit, it is now safe to do so.
-    if (!hasPendingTasks() &amp;&amp; m_state != Finished &amp;&amp; m_commitPending)
-        commit();
-}
-
-void IDBTransactionBackend::closeOpenCursors()
-{
-    for (auto&amp; cursor : m_openCursors)
-        cursor-&gt;close();
-    m_openCursors.clear();
-}
-
-void IDBTransactionBackend::scheduleCreateObjectStoreOperation(const IDBObjectStoreMetadata&amp; objectStoreMetadata)
-{
-    scheduleTask(CreateObjectStoreOperation::create(this, objectStoreMetadata), CreateObjectStoreAbortOperation::create(this, objectStoreMetadata.id));
-}
-
-void IDBTransactionBackend::scheduleDeleteObjectStoreOperation(const IDBObjectStoreMetadata&amp; objectStoreMetadata)
-{
-    scheduleTask(DeleteObjectStoreOperation::create(this, objectStoreMetadata), DeleteObjectStoreAbortOperation::create(this, objectStoreMetadata));
-}
-
-void IDBTransactionBackend::scheduleVersionChangeOperation(int64_t requestedVersion, PassRefPtr&lt;IDBCallbacks&gt; callbacks, PassRefPtr&lt;IDBDatabaseCallbacks&gt; databaseCallbacks, const IDBDatabaseMetadata&amp; metadata)
-{
-    scheduleTask(IDBDatabaseBackend::VersionChangeOperation::create(this, requestedVersion, callbacks, databaseCallbacks), IDBDatabaseBackend::VersionChangeAbortOperation::create(this, String::number(metadata.version), metadata.version));
-}
-
-void IDBTransactionBackend::scheduleCreateIndexOperation(int64_t objectStoreId, const IDBIndexMetadata&amp; indexMetadata)
-{
-    scheduleTask(CreateIndexOperation::create(this, objectStoreId, indexMetadata), CreateIndexAbortOperation::create(this, objectStoreId, indexMetadata.id));
-}
-
-void IDBTransactionBackend::scheduleDeleteIndexOperation(int64_t objectStoreId, const IDBIndexMetadata&amp; indexMetadata)
-{
-    scheduleTask(DeleteIndexOperation::create(this, objectStoreId, indexMetadata), DeleteIndexAbortOperation::create(this, objectStoreId, indexMetadata));
-}
-
-void IDBTransactionBackend::scheduleGetOperation(const IDBDatabaseMetadata&amp; metadata, int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt; keyRange, IndexedDB::CursorType cursorType, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-{
-    scheduleTask(GetOperation::create(this, metadata, objectStoreId, indexId, keyRange, cursorType, callbacks));
-}
-
-void IDBTransactionBackend::schedulePutOperation(const IDBObjectStoreMetadata&amp; objectStoreMetadata, PassRefPtr&lt;SharedBuffer&gt; value, PassRefPtr&lt;IDBKey&gt; key, IDBDatabaseBackend::PutMode putMode, PassRefPtr&lt;IDBCallbacks&gt; callbacks, const Vector&lt;int64_t&gt;&amp; indexIds, const Vector&lt;IndexKeys&gt;&amp; indexKeys)
-{
-    scheduleTask(PutOperation::create(this, objectStoreMetadata, value, key, putMode, callbacks, indexIds, indexKeys));
-}
-
-void IDBTransactionBackend::scheduleSetIndexesReadyOperation(size_t indexCount)
-{
-    scheduleTask(IDBDatabaseBackend::PreemptiveTask, SetIndexesReadyOperation::create(this, indexCount));
-}
-
-void IDBTransactionBackend::scheduleOpenCursorOperation(int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt; keyRange, IndexedDB::CursorDirection direction, IndexedDB::CursorType cursorType, IDBDatabaseBackend::TaskType taskType, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-{
-    scheduleTask(OpenCursorOperation::create(this, objectStoreId, indexId, keyRange, direction, cursorType, taskType, callbacks));
-}
-
-void IDBTransactionBackend::scheduleCountOperation(int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt; keyRange, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-{
-    scheduleTask(CountOperation::create(this, objectStoreId, indexId, keyRange, callbacks));
-}
-
-void IDBTransactionBackend::scheduleDeleteRangeOperation(int64_t objectStoreId, PassRefPtr&lt;IDBKeyRange&gt; keyRange, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-{
-    scheduleTask(DeleteRangeOperation::create(this, objectStoreId, keyRange, callbacks));
-}
-
-void IDBTransactionBackend::scheduleClearObjectStoreOperation(int64_t objectStoreId, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-{
-    scheduleTask(ClearObjectStoreOperation::create(this, objectStoreId, callbacks));
-}
-
-};
-
-#endif // ENABLE(INDEXED_DATABASE)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBTransactionBackendh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackend.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackend.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackend.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,128 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef IDBTransactionBackend_h
-#define IDBTransactionBackend_h
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;IDBDatabaseBackend.h&quot;
-#include &quot;IDBDatabaseError.h&quot;
-#include &quot;IDBOperation.h&quot;
-#include &quot;Timer.h&quot;
-#include &lt;wtf/Deque.h&gt;
-#include &lt;wtf/HashSet.h&gt;
-#include &lt;wtf/RefPtr.h&gt;
-
-namespace WebCore {
-
-class IDBCursorBackend;
-class IDBDatabaseCallbacks;
-
-class IDBTransactionBackend : public RefCounted&lt;IDBTransactionBackend&gt; {
-public:
-    static Ref&lt;IDBTransactionBackend&gt; create(IDBDatabaseBackend*, int64_t transactionId, PassRefPtr&lt;IDBDatabaseCallbacks&gt;, const Vector&lt;int64_t&gt;&amp; objectStoreIds, IndexedDB::TransactionMode);
-    ~IDBTransactionBackend();
-
-    void commit();
-    void abort();
-    void abort(PassRefPtr&lt;IDBDatabaseError&gt;);
-
-    void run();
-    IndexedDB::TransactionMode mode() const  { return m_mode; }
-    const HashSet&lt;int64_t&gt;&amp; scope() const  { return m_objectStoreIds; }
-
-    void scheduleTask(PassRefPtr&lt;IDBOperation&gt; task, PassRefPtr&lt;IDBSynchronousOperation&gt; abortTask = nullptr) { scheduleTask(IDBDatabaseBackend::NormalTask, task, abortTask); }
-    void scheduleTask(IDBDatabaseBackend::TaskType, PassRefPtr&lt;IDBOperation&gt;, PassRefPtr&lt;IDBSynchronousOperation&gt; abortTask = nullptr);
-
-    void registerOpenCursor(IDBCursorBackend*);
-    void unregisterOpenCursor(IDBCursorBackend*);
-
-    void addPreemptiveEvent()  { m_pendingPreemptiveEvents++; }
-    void didCompletePreemptiveEvent()  { m_pendingPreemptiveEvents--; ASSERT(m_pendingPreemptiveEvents &gt;= 0); }
-
-    IDBDatabaseBackend&amp; database() const  { return *m_database; }
-
-    void scheduleCreateObjectStoreOperation(const IDBObjectStoreMetadata&amp;);
-    void scheduleDeleteObjectStoreOperation(const IDBObjectStoreMetadata&amp;);
-    void scheduleVersionChangeOperation(int64_t requestedVersion, PassRefPtr&lt;IDBCallbacks&gt;, PassRefPtr&lt;IDBDatabaseCallbacks&gt;, const IDBDatabaseMetadata&amp;);
-    void scheduleCreateIndexOperation(int64_t objectStoreId, const IDBIndexMetadata&amp;);
-    void scheduleDeleteIndexOperation(int64_t objectStoreId, const IDBIndexMetadata&amp;);
-    void scheduleGetOperation(const IDBDatabaseMetadata&amp;, int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt;, IndexedDB::CursorType, PassRefPtr&lt;IDBCallbacks&gt;);
-    void schedulePutOperation(const IDBObjectStoreMetadata&amp;, PassRefPtr&lt;SharedBuffer&gt; value, PassRefPtr&lt;IDBKey&gt;, IDBDatabaseBackend::PutMode, PassRefPtr&lt;IDBCallbacks&gt;, const Vector&lt;int64_t&gt;&amp; indexIds, const Vector&lt;IndexKeys&gt;&amp;);
-    void scheduleSetIndexesReadyOperation(size_t indexCount);
-    void scheduleOpenCursorOperation(int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt;, IndexedDB::CursorDirection, IndexedDB::CursorType, IDBDatabaseBackend::TaskType, PassRefPtr&lt;IDBCallbacks&gt;);
-    void scheduleCountOperation(int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt;, PassRefPtr&lt;IDBCallbacks&gt;);
-    void scheduleDeleteRangeOperation(int64_t objectStoreId, PassRefPtr&lt;IDBKeyRange&gt;, PassRefPtr&lt;IDBCallbacks&gt;);
-    void scheduleClearObjectStoreOperation(int64_t objectStoreId, PassRefPtr&lt;IDBCallbacks&gt;);
-
-    int64_t id() const { return m_id; }
-
-private:
-    IDBTransactionBackend(IDBDatabaseBackend*, int64_t id, PassRefPtr&lt;IDBDatabaseCallbacks&gt;, const HashSet&lt;int64_t&gt;&amp; objectStoreIds, IndexedDB::TransactionMode);
-
-    enum State {
-        Unopened, // Backing store transaction not yet created.
-        Unused, // Backing store transaction created, but no tasks yet.
-        StartPending, // Enqueued tasks, but backing store transaction not yet started.
-        Running, // Backing store transaction started but not yet finished.
-        Finished, // Either aborted or committed.
-    };
-
-    void start();
-
-    bool isTaskQueueEmpty() const;
-    bool hasPendingTasks() const;
-
-    void taskTimerFired();
-    void closeOpenCursors();
-
-    const HashSet&lt;int64_t&gt; m_objectStoreIds;
-    const IndexedDB::TransactionMode m_mode;
-
-    State m_state;
-    bool m_commitPending;
-    RefPtr&lt;IDBDatabaseCallbacks&gt; m_callbacks;
-    RefPtr&lt;IDBDatabaseBackend&gt; m_database;
-
-    typedef Deque&lt;RefPtr&lt;IDBOperation&gt;&gt; TaskQueue;
-    TaskQueue m_taskQueue;
-    TaskQueue m_preemptiveTaskQueue;
-    Deque&lt;RefPtr&lt;IDBSynchronousOperation&gt;&gt; m_abortTaskQueue;
-
-    // FIXME: delete the timer once we have threads instead.
-    Timer m_taskTimer;
-    int m_pendingPreemptiveEvents;
-
-    HashSet&lt;IDBCursorBackend*&gt; m_openCursors;
-
-    int64_t m_id;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-
-#endif // IDBTransactionBackend_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBTransactionBackendOperationscpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackendOperations.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackendOperations.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackendOperations.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,285 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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;IDBTransactionBackendOperations.h&quot;
-
-#include &quot;IDBCursorBackend.h&quot;
-#include &quot;IDBDatabaseCallbacks.h&quot;
-#include &quot;IDBKeyRange.h&quot;
-#include &quot;IDBRecordIdentifier.h&quot;
-#include &quot;IDBServerConnection.h&quot;
-#include &quot;Logging.h&quot;
-#include &lt;wtf/text/CString.h&gt;
-
-#if ENABLE(INDEXED_DATABASE)
-
-#define STANDARD_DATABASE_ERROR_CALLBACK std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; operationCallback = \
-    [operation, completionCallback](PassRefPtr&lt;IDBDatabaseError&gt; error) { \
-        if (error) \
-            operation-&gt;m_transaction-&gt;abort(error); \
-        completionCallback(); \
-    };
-
-namespace WebCore {
-
-void CreateObjectStoreOperation::perform(std::function&lt;void()&gt; completionCallback)
-{
-    LOG(StorageAPI, &quot;CreateObjectStoreOperation&quot;);
-
-    RefPtr&lt;CreateObjectStoreOperation&gt; operation(this);
-    STANDARD_DATABASE_ERROR_CALLBACK;
-
-    m_transaction-&gt;database().serverConnection().createObjectStore(*m_transaction, *this, operationCallback);
-}
-
-void CreateIndexOperation::perform(std::function&lt;void()&gt; completionCallback)
-{
-    LOG(StorageAPI, &quot;CreateIndexOperation&quot;);
-
-    RefPtr&lt;CreateIndexOperation&gt; operation(this);
-    STANDARD_DATABASE_ERROR_CALLBACK;
-
-    m_transaction-&gt;database().serverConnection().createIndex(*m_transaction, *this, operationCallback);
-}
-
-void CreateIndexAbortOperation::perform()
-{
-    LOG(StorageAPI, &quot;CreateIndexAbortOperation&quot;);
-    m_transaction-&gt;database().removeIndex(m_objectStoreID, m_indexID);
-}
-
-void DeleteIndexOperation::perform(std::function&lt;void()&gt; completionCallback)
-{
-    LOG(StorageAPI, &quot;DeleteIndexOperation&quot;);
-
-    RefPtr&lt;DeleteIndexOperation&gt; operation(this);
-    STANDARD_DATABASE_ERROR_CALLBACK;
-
-    m_transaction-&gt;database().serverConnection().deleteIndex(*m_transaction, *this, operationCallback);
-}
-
-void DeleteIndexAbortOperation::perform()
-{
-    LOG(StorageAPI, &quot;DeleteIndexAbortOperation&quot;);
-    m_transaction-&gt;database().addIndex(m_objectStoreID, m_indexMetadata, IDBIndexMetadata::InvalidId);
-}
-
-void GetOperation::perform(std::function&lt;void()&gt; completionCallback)
-{
-    LOG(StorageAPI, &quot;GetOperation&quot;);
-
-    RefPtr&lt;GetOperation&gt; operation(this);
-    STANDARD_DATABASE_ERROR_CALLBACK;
-
-    m_transaction-&gt;database().serverConnection().get(*m_transaction, *this, [this, operation, operationCallback](const IDBGetResult&amp; result, PassRefPtr&lt;IDBDatabaseError&gt; prpError) {
-        RefPtr&lt;IDBDatabaseError&gt; error = prpError;
-
-        if (error)
-            m_callbacks-&gt;onError(error);
-        else {
-            if (!result.valueBuffer().data()) {
-                if (result.keyData().isNull())
-                    m_callbacks-&gt;onSuccess();
-                else
-                    m_callbacks-&gt;onSuccess(result.keyData().maybeCreateIDBKey());
-            } else {
-                auto valueBuffer = SharedBuffer::create(result.valueBuffer().data()-&gt;data(), result.valueBuffer().data()-&gt;size());
-                if (!result.keyData().isNull())
-                    m_callbacks-&gt;onSuccess(valueBuffer, result.keyData().maybeCreateIDBKey(), result.keyPath());
-                else
-                    m_callbacks-&gt;onSuccess(valueBuffer);
-            }
-        }
-
-        operationCallback(error.release());
-    });
-}
-
-void PutOperation::perform(std::function&lt;void()&gt; completionCallback)
-{
-    LOG(StorageAPI, &quot;PutOperation&quot;);
-    ASSERT(m_transaction-&gt;mode() != IndexedDB::TransactionMode::ReadOnly);
-    ASSERT(m_indexIDs.size() == m_indexKeys.size());
-
-    m_transaction-&gt;database().serverConnection().put(*m_transaction, *this, [this, completionCallback](PassRefPtr&lt;IDBKey&gt; key, PassRefPtr&lt;IDBDatabaseError&gt; prpError) {
-        RefPtr&lt;IDBDatabaseError&gt; error = prpError;
-        if (key) {
-            ASSERT(!error);
-            m_callbacks-&gt;onSuccess(key);
-        } else {
-            ASSERT(error);
-            m_callbacks-&gt;onError(error);
-        }
-        completionCallback();
-    });
-}
-
-void SetIndexesReadyOperation::perform(std::function&lt;void()&gt; completionCallback)
-{
-    LOG(StorageAPI, &quot;SetIndexesReadyOperation&quot;);
-
-    for (size_t i = 0; i &lt; m_indexCount; ++i)
-        m_transaction-&gt;didCompletePreemptiveEvent();
-
-    callOnMainThread(completionCallback);
-}
-
-void OpenCursorOperation::perform(std::function&lt;void()&gt; completionCallback)
-{
-    LOG(StorageAPI, &quot;OpenCursorOperation&quot;);
-
-    RefPtr&lt;OpenCursorOperation&gt; operation(this);
-    auto callback = [this, operation, completionCallback](int64_t cursorID, PassRefPtr&lt;IDBKey&gt; key, PassRefPtr&lt;IDBKey&gt; primaryKey, PassRefPtr&lt;SharedBuffer&gt; valueBuffer, PassRefPtr&lt;IDBDatabaseError&gt; error) {
-        if (error) {
-            m_callbacks-&gt;onError(error);
-        } else if (!key) {
-            // If there's no error but also no key, then the cursor had no records.
-            m_callbacks-&gt;onSuccess(static_cast&lt;SharedBuffer*&gt;(nullptr));
-        } else {
-            RefPtr&lt;IDBCursorBackend&gt; cursor = IDBCursorBackend::create(cursorID, m_cursorType, m_taskType, *m_transaction, m_objectStoreID);
-            cursor-&gt;updateCursorData(key.get(), primaryKey.get(), valueBuffer.get());
-            m_callbacks-&gt;onSuccess(cursor.release());
-        }
-
-        completionCallback();
-    };
-
-    m_transaction-&gt;database().serverConnection().openCursor(*m_transaction, *this, callback);
-}
-
-void CountOperation::perform(std::function&lt;void()&gt; completionCallback)
-{
-    LOG(StorageAPI, &quot;CountOperation&quot;);
-
-    RefPtr&lt;CountOperation&gt; operation(this);
-    auto callback = [this, operation, completionCallback](int64_t count, PassRefPtr&lt;IDBDatabaseError&gt;) {
-        // FIXME: The LevelDB port never had an error condition for the count operation.
-        // We probably need to support an error for the count operation, breaking the LevelDB port.
-        m_callbacks-&gt;onSuccess(count);
-
-        completionCallback();
-    };
-
-    m_transaction-&gt;database().serverConnection().count(*m_transaction, *this, callback);
-}
-
-void DeleteRangeOperation::perform(std::function&lt;void()&gt; completionCallback)
-{
-    LOG(StorageAPI, &quot;DeleteRangeOperation&quot;);
-
-    RefPtr&lt;DeleteRangeOperation&gt; operation(this);
-    auto callback = [this, operation, completionCallback](PassRefPtr&lt;IDBDatabaseError&gt; error) {
-        if (error)
-            m_callbacks-&gt;onError(error);
-        else
-            m_callbacks-&gt;onSuccess();
-
-        completionCallback();
-    };
-
-    m_transaction-&gt;database().serverConnection().deleteRange(*m_transaction, *this, callback);
-}
-
-void ClearObjectStoreOperation::perform(std::function&lt;void()&gt; completionCallback)
-{
-    LOG(StorageAPI, &quot;ClearObjectStoreOperation&quot;);
-
-    RefPtr&lt;ClearObjectStoreOperation&gt; operation(this);
-
-    auto clearCallback = [this, operation, completionCallback](PassRefPtr&lt;IDBDatabaseError&gt; prpError) {
-        RefPtr&lt;IDBDatabaseError&gt; error = prpError;
-
-        if (error) {
-            m_callbacks-&gt;onError(error);
-            m_transaction-&gt;abort(error.release());
-        } else
-            m_callbacks-&gt;onSuccess();
-
-        completionCallback();
-    };
-
-    m_transaction-&gt;database().serverConnection().clearObjectStore(*m_transaction, *this, clearCallback);
-}
-
-void DeleteObjectStoreOperation::perform(std::function&lt;void()&gt; completionCallback)
-{
-    LOG(StorageAPI, &quot;DeleteObjectStoreOperation&quot;);
-
-    RefPtr&lt;DeleteObjectStoreOperation&gt; operation(this);
-    STANDARD_DATABASE_ERROR_CALLBACK;
-
-    m_transaction-&gt;database().serverConnection().deleteObjectStore(*m_transaction, *this, operationCallback);
-}
-
-void IDBDatabaseBackend::VersionChangeOperation::perform(std::function&lt;void()&gt; completionCallback)
-{
-    LOG(StorageAPI, &quot;VersionChangeOperation&quot;);
-
-    uint64_t oldVersion = m_transaction-&gt;database().metadata().version;
-    if (oldVersion == IDBDatabaseMetadata::NoIntVersion)
-        oldVersion = 0;
-
-    RefPtr&lt;IDBDatabaseBackend::VersionChangeOperation&gt; operation(this);
-    ASSERT(static_cast&lt;uint64_t&gt;(m_version) &gt; oldVersion);
-
-    std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; operationCallback = [oldVersion, operation, this, completionCallback](PassRefPtr&lt;IDBDatabaseError&gt; prpError) {
-        RefPtr&lt;IDBDatabaseError&gt; error = prpError;
-        if (error) {
-            m_callbacks-&gt;onError(error);
-            m_transaction-&gt;abort(error);
-        } else {
-            ASSERT(!m_transaction-&gt;database().hasPendingSecondHalfOpen());
-            m_transaction-&gt;database().setCurrentVersion(m_version);
-            m_transaction-&gt;database().setPendingSecondHalfOpen(std::make_unique&lt;IDBPendingOpenCall&gt;(*m_callbacks, *m_databaseCallbacks, m_transaction-&gt;id(), m_version));
-            m_callbacks-&gt;onUpgradeNeeded(oldVersion, &amp;m_transaction-&gt;database(), m_transaction-&gt;database().metadata());
-        }
-        completionCallback();
-    };
-
-    m_transaction-&gt;database().serverConnection().changeDatabaseVersion(*m_transaction, *this, operationCallback);
-}
-
-void CreateObjectStoreAbortOperation::perform()
-{
-    LOG(StorageAPI, &quot;CreateObjectStoreAbortOperation&quot;);
-    m_transaction-&gt;database().removeObjectStore(m_objectStoreID);
-}
-
-void DeleteObjectStoreAbortOperation::perform()
-{
-    LOG(StorageAPI, &quot;DeleteObjectStoreAbortOperation&quot;);
-    m_transaction-&gt;database().addObjectStore(m_objectStoreMetadata, IDBObjectStoreMetadata::InvalidId);
-}
-
-void IDBDatabaseBackend::VersionChangeAbortOperation::perform()
-{
-    LOG(StorageAPI, &quot;VersionChangeAbortOperation&quot;);
-    m_transaction-&gt;database().setCurrentVersion(m_previousIntVersion);
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBTransactionBackendOperationsh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackendOperations.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackendOperations.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackendOperations.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,471 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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 IDBTransactionBackendOperations_h
-#define IDBTransactionBackendOperations_h
-
-#include &quot;IDBDatabaseBackend.h&quot;
-#include &quot;IDBOperation.h&quot;
-#include &quot;IDBTransactionBackend.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-class IDBServerConnection;
-
-class CreateObjectStoreOperation : public IDBOperation {
-public:
-    static Ref&lt;IDBOperation&gt; create(IDBTransactionBackend* transaction, const IDBObjectStoreMetadata&amp; objectStoreMetadata)
-    {
-        return adoptRef(*new CreateObjectStoreOperation(transaction, objectStoreMetadata));
-    }
-    virtual void perform(std::function&lt;void()&gt; successCallback) override final;
-
-    const IDBObjectStoreMetadata&amp; objectStoreMetadata() const { return m_objectStoreMetadata; }
-
-private:
-    CreateObjectStoreOperation(IDBTransactionBackend* transaction, const IDBObjectStoreMetadata&amp; objectStoreMetadata)
-        : m_transaction(transaction)
-        , m_objectStoreMetadata(objectStoreMetadata)
-    {
-    }
-    
-    RefPtr&lt;IDBTransactionBackend&gt; m_transaction;
-    const IDBObjectStoreMetadata m_objectStoreMetadata;
-};
-
-class DeleteObjectStoreOperation : public IDBOperation {
-public:
-    static Ref&lt;IDBOperation&gt; create(IDBTransactionBackend* transaction, const IDBObjectStoreMetadata&amp; objectStoreMetadata)
-    {
-        return adoptRef(*new DeleteObjectStoreOperation(transaction, objectStoreMetadata));
-    }
-    virtual void perform(std::function&lt;void()&gt; successCallback) override final;
-
-    IDBTransactionBackend* transaction() const { return m_transaction.get(); }
-    const IDBObjectStoreMetadata&amp; objectStoreMetadata() const { return m_objectStoreMetadata; }
-
-private:
-    DeleteObjectStoreOperation(IDBTransactionBackend* transaction, const IDBObjectStoreMetadata&amp; objectStoreMetadata)
-        : m_transaction(transaction)
-        , m_objectStoreMetadata(objectStoreMetadata)
-    {
-    }
-
-    RefPtr&lt;IDBTransactionBackend&gt; m_transaction;
-    const IDBObjectStoreMetadata m_objectStoreMetadata;
-};
-
-class IDBDatabaseBackend::VersionChangeOperation : public IDBOperation {
-public:
-    static Ref&lt;IDBOperation&gt; create(IDBTransactionBackend* transaction, int64_t version, PassRefPtr&lt;IDBCallbacks&gt; callbacks, PassRefPtr&lt;IDBDatabaseCallbacks&gt; databaseCallbacks)
-    {
-        return adoptRef(*new VersionChangeOperation(transaction, version, callbacks, databaseCallbacks));
-    }
-    virtual void perform(std::function&lt;void()&gt; successCallback) override final;
-
-    IDBTransactionBackend* transaction() const { return m_transaction.get(); }
-    int64_t version() const { return m_version; }
-    IDBDatabaseCallbacks* databaseCallbacks() const { return m_databaseCallbacks.get(); }
-
-private:
-    VersionChangeOperation(IDBTransactionBackend* transaction, int64_t version, PassRefPtr&lt;IDBCallbacks&gt; callbacks, PassRefPtr&lt;IDBDatabaseCallbacks&gt; databaseCallbacks)
-        : m_transaction(transaction)
-        , m_version(version)
-        , m_callbacks(callbacks)
-        , m_databaseCallbacks(databaseCallbacks)
-    {
-    }
-
-    RefPtr&lt;IDBTransactionBackend&gt; m_transaction;
-    int64_t m_version;
-    RefPtr&lt;IDBCallbacks&gt; m_callbacks;
-    RefPtr&lt;IDBDatabaseCallbacks&gt; m_databaseCallbacks;
-};
-
-class CreateObjectStoreAbortOperation : public IDBSynchronousOperation {
-public:
-    static Ref&lt;IDBSynchronousOperation&gt; create(IDBTransactionBackend* transaction, int64_t objectStoreId)
-    {
-        return adoptRef(*new CreateObjectStoreAbortOperation(transaction, objectStoreId));
-    }
-    virtual void perform() override final;
-private:
-    CreateObjectStoreAbortOperation(IDBTransactionBackend* transaction, int64_t objectStoreId)
-        : m_transaction(transaction)
-        , m_objectStoreID(objectStoreId)
-    {
-    }
-
-    RefPtr&lt;IDBTransactionBackend&gt; m_transaction;
-    const int64_t m_objectStoreID;
-};
-
-class DeleteObjectStoreAbortOperation : public IDBSynchronousOperation {
-public:
-    static Ref&lt;IDBSynchronousOperation&gt; create(IDBTransactionBackend* transaction, const IDBObjectStoreMetadata&amp; objectStore)
-    {
-        return adoptRef(*new DeleteObjectStoreAbortOperation(transaction, objectStore));
-    }
-    virtual void perform() override final;
-private:
-    DeleteObjectStoreAbortOperation(IDBTransactionBackend* transaction, const IDBObjectStoreMetadata&amp; objectStoreMetadata)
-        : m_transaction(transaction)
-        , m_objectStoreMetadata(objectStoreMetadata)
-    {
-    }
-
-    RefPtr&lt;IDBTransactionBackend&gt; m_transaction;
-    IDBObjectStoreMetadata m_objectStoreMetadata;
-};
-
-class IDBDatabaseBackend::VersionChangeAbortOperation : public IDBSynchronousOperation {
-public:
-    static Ref&lt;IDBSynchronousOperation&gt; create(IDBTransactionBackend* transaction, const String&amp; previousVersion, int64_t previousIntVersion)
-    {
-        return adoptRef(*new VersionChangeAbortOperation(transaction, previousVersion, previousIntVersion));
-    }
-    virtual void perform() override final;
-private:
-    VersionChangeAbortOperation(IDBTransactionBackend* transaction, const String&amp; previousVersion, int64_t previousIntVersion)
-        : m_transaction(transaction)
-        , m_previousVersion(previousVersion)
-        , m_previousIntVersion(previousIntVersion)
-    {
-    }
-
-    RefPtr&lt;IDBTransactionBackend&gt; m_transaction;
-    String m_previousVersion;
-    int64_t m_previousIntVersion;
-};
-
-class CreateIndexOperation : public IDBOperation {
-public:
-    static Ref&lt;IDBOperation&gt; create(IDBTransactionBackend* transaction, int64_t objectStoreId, const IDBIndexMetadata&amp; indexMetadata)
-    {
-        return adoptRef(*new CreateIndexOperation(transaction, objectStoreId, indexMetadata));
-    }
-    virtual void perform(std::function&lt;void()&gt; successCallback) override final;
-
-    int64_t objectStoreID() const { return m_objectStoreID; }
-    const IDBIndexMetadata&amp; idbIndexMetadata() const { return m_indexMetadata; }
-
-private:
-    CreateIndexOperation(IDBTransactionBackend* transaction, int64_t objectStoreId, const IDBIndexMetadata&amp; indexMetadata)
-        : m_transaction(transaction)
-        , m_objectStoreID(objectStoreId)
-        , m_indexMetadata(indexMetadata)
-    {
-    }
-
-    RefPtr&lt;IDBTransactionBackend&gt; m_transaction;
-    const int64_t m_objectStoreID;
-    const IDBIndexMetadata m_indexMetadata;
-};
-
-class CreateIndexAbortOperation : public IDBSynchronousOperation {
-public:
-    static Ref&lt;IDBSynchronousOperation&gt; create(IDBTransactionBackend* transaction, int64_t objectStoreId, int64_t indexId)
-    {
-        return adoptRef(*new CreateIndexAbortOperation(transaction, objectStoreId, indexId));
-    }
-    virtual void perform() override final;
-private:
-    CreateIndexAbortOperation(IDBTransactionBackend* transaction, int64_t objectStoreId, int64_t indexId)
-        : m_transaction(transaction)
-        , m_objectStoreID(objectStoreId)
-        , m_indexID(indexId)
-    {
-    }
-
-    const RefPtr&lt;IDBTransactionBackend&gt; m_transaction;
-    const int64_t m_objectStoreID;
-    const int64_t m_indexID;
-};
-
-class DeleteIndexOperation : public IDBOperation {
-public:
-    static Ref&lt;IDBOperation&gt; create(IDBTransactionBackend* transaction, int64_t objectStoreId, const IDBIndexMetadata&amp; indexMetadata)
-    {
-        return adoptRef(*new DeleteIndexOperation(transaction, objectStoreId, indexMetadata));
-    }
-    virtual void perform(std::function&lt;void()&gt; successCallback) override final;
-
-    int64_t objectStoreID() const { return m_objectStoreID; }
-    const IDBIndexMetadata&amp; idbIndexMetadata() const { return m_indexMetadata; }
-
-private:
-    DeleteIndexOperation(IDBTransactionBackend* transaction, int64_t objectStoreId, const IDBIndexMetadata&amp; indexMetadata)
-        : m_transaction(transaction)
-        , m_objectStoreID(objectStoreId)
-        , m_indexMetadata(indexMetadata)
-    {
-    }
-
-    RefPtr&lt;IDBTransactionBackend&gt; m_transaction;
-    const int64_t m_objectStoreID;
-    const IDBIndexMetadata m_indexMetadata;
-};
-
-class DeleteIndexAbortOperation : public IDBSynchronousOperation {
-public:
-    static Ref&lt;IDBSynchronousOperation&gt; create(IDBTransactionBackend* transaction, int64_t objectStoreId, const IDBIndexMetadata&amp; indexMetadata)
-    {
-        return adoptRef(*new DeleteIndexAbortOperation(transaction, objectStoreId, indexMetadata));
-    }
-    virtual void perform() override final;
-private:
-    DeleteIndexAbortOperation(IDBTransactionBackend* transaction, int64_t objectStoreId, const IDBIndexMetadata&amp; indexMetadata)
-        : m_transaction(transaction)
-        , m_objectStoreID(objectStoreId)
-        , m_indexMetadata(indexMetadata)
-    {
-    }
-
-    RefPtr&lt;IDBTransactionBackend&gt; m_transaction;
-    const int64_t m_objectStoreID;
-    const IDBIndexMetadata m_indexMetadata;
-};
-
-class GetOperation : public IDBOperation {
-public:
-    static Ref&lt;IDBOperation&gt; create(IDBTransactionBackend* transaction, const IDBDatabaseMetadata&amp; metadata, int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt; keyRange, IndexedDB::CursorType cursorType, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-    {
-        return adoptRef(*new GetOperation(transaction, metadata, objectStoreId, indexId, keyRange, cursorType, callbacks));
-    }
-    virtual void perform(std::function&lt;void()&gt; successCallback) override final;
-
-    int64_t objectStoreID() const { return m_objectStoreID; }
-    int64_t indexID() const { return m_indexID; }
-    IndexedDB::CursorType cursorType() const { return m_cursorType; }
-    IDBKeyRange* keyRange() const { return m_keyRange.get(); }
-    bool autoIncrement() const { return m_autoIncrement; }
-    IDBKeyPath keyPath() const { return m_keyPath; }
-
-private:
-    GetOperation(IDBTransactionBackend* transaction, const IDBDatabaseMetadata&amp; metadata, int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt; keyRange, IndexedDB::CursorType cursorType, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-        : m_transaction(transaction)
-        , m_objectStoreID(objectStoreId)
-        , m_indexID(indexId)
-        , m_keyPath(metadata.objectStores.get(objectStoreId).keyPath)
-        , m_autoIncrement(metadata.objectStores.get(objectStoreId).autoIncrement)
-        , m_keyRange(keyRange)
-        , m_cursorType(cursorType)
-        , m_callbacks(callbacks)
-    {
-        ASSERT(metadata.objectStores.contains(objectStoreId));
-        ASSERT(metadata.objectStores.get(objectStoreId).id == objectStoreId);
-    }
-
-    RefPtr&lt;IDBTransactionBackend&gt; m_transaction;
-    const int64_t m_objectStoreID;
-    const int64_t m_indexID;
-    const IDBKeyPath m_keyPath;
-    const bool m_autoIncrement;
-    const RefPtr&lt;IDBKeyRange&gt; m_keyRange;
-    const IndexedDB::CursorType m_cursorType;
-    const RefPtr&lt;IDBCallbacks&gt; m_callbacks;
-};
-
-class PutOperation : public IDBOperation {
-public:
-    static Ref&lt;IDBOperation&gt; create(IDBTransactionBackend* transaction, const IDBObjectStoreMetadata&amp; objectStore, PassRefPtr&lt;SharedBuffer&gt; value, PassRefPtr&lt;IDBKey&gt; key, IDBDatabaseBackend::PutMode putMode, PassRefPtr&lt;IDBCallbacks&gt; callbacks, const Vector&lt;int64_t&gt;&amp; indexIds, const Vector&lt;IndexKeys&gt;&amp; indexKeys)
-    {
-        return adoptRef(*new PutOperation(transaction, objectStore, value, key, putMode, callbacks, indexIds, indexKeys));
-    }
-    virtual void perform(std::function&lt;void()&gt; successCallback) override final;
-
-    IDBDatabaseBackend::PutMode putMode() const { return m_putMode; }
-    const IDBObjectStoreMetadata&amp; objectStore() const { return m_objectStore; }
-    IDBKey* key() const { return m_key.get(); }
-    const Vector&lt;int64_t&gt;&amp; indexIDs() const { return m_indexIDs; }
-    const Vector&lt;IndexKeys&gt;&amp; indexKeys() const { return m_indexKeys; }
-    SharedBuffer* value() const { return m_value.get(); }
-
-private:
-    PutOperation(IDBTransactionBackend* transaction, const IDBObjectStoreMetadata&amp; objectStore, PassRefPtr&lt;SharedBuffer&gt;&amp; value, PassRefPtr&lt;IDBKey&gt; key, IDBDatabaseBackend::PutMode putMode, PassRefPtr&lt;IDBCallbacks&gt; callbacks, const Vector&lt;int64_t&gt;&amp; indexIds, const Vector&lt;IndexKeys&gt;&amp; indexKeys)
-        : m_transaction(transaction)
-        , m_objectStore(objectStore)
-        , m_value(value)
-        , m_key(key)
-        , m_putMode(putMode)
-        , m_callbacks(callbacks)
-        , m_indexIDs(indexIds)
-        , m_indexKeys(indexKeys)
-    {
-    }
-
-    RefPtr&lt;IDBTransactionBackend&gt; m_transaction;
-    const IDBObjectStoreMetadata m_objectStore;
-    const RefPtr&lt;SharedBuffer&gt; m_value;
-    const RefPtr&lt;IDBKey&gt; m_key;
-    const IDBDatabaseBackend::PutMode m_putMode;
-    const RefPtr&lt;IDBCallbacks&gt; m_callbacks;
-    const Vector&lt;int64_t&gt; m_indexIDs;
-    const Vector&lt;IndexKeys&gt; m_indexKeys;
-};
-
-class SetIndexesReadyOperation : public IDBOperation {
-public:
-    static Ref&lt;IDBOperation&gt; create(IDBTransactionBackend* transaction, size_t indexCount)
-    {
-        return adoptRef(*new SetIndexesReadyOperation(transaction, indexCount));
-    }
-    virtual void perform(std::function&lt;void()&gt; successCallback) override final;
-private:
-    SetIndexesReadyOperation(IDBTransactionBackend* transaction, size_t indexCount)
-        : m_transaction(transaction)
-        , m_indexCount(indexCount)
-    {
-    }
-
-    RefPtr&lt;IDBTransactionBackend&gt; m_transaction;
-    const size_t m_indexCount;
-};
-
-class OpenCursorOperation : public IDBOperation {
-public:
-    static Ref&lt;IDBOperation&gt; create(IDBTransactionBackend* transaction, int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt; keyRange, IndexedDB::CursorDirection direction, IndexedDB::CursorType cursorType, IDBDatabaseBackend::TaskType taskType, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-    {
-        return adoptRef(*new OpenCursorOperation(transaction, objectStoreId, indexId, keyRange, direction, cursorType, taskType, callbacks));
-    }
-    virtual void perform(std::function&lt;void()&gt; successCallback) override final;
-
-    int64_t transactionID() const { return m_transaction-&gt;id(); }
-    int64_t objectStoreID() const { return m_objectStoreID; }
-    int64_t indexID() const { return m_indexID; }
-    IndexedDB::CursorDirection direction() const { return m_direction; }
-    IndexedDB::CursorType cursorType() const { return m_cursorType; }
-    IDBDatabaseBackend::TaskType taskType() const { return m_taskType; }
-    IDBKeyRange* keyRange() const { return m_keyRange.get(); }
-    IndexedDB::CursorDirection cursorDirection() const { return m_direction; }
-
-private:
-    OpenCursorOperation(IDBTransactionBackend* transaction, int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt; keyRange, IndexedDB::CursorDirection direction, IndexedDB::CursorType cursorType, IDBDatabaseBackend::TaskType taskType, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-        : m_transaction(transaction)
-        , m_objectStoreID(objectStoreId)
-        , m_indexID(indexId)
-        , m_keyRange(keyRange)
-        , m_direction(direction)
-        , m_cursorType(cursorType)
-        , m_taskType(taskType)
-        , m_callbacks(callbacks)
-    {
-    }
-
-    RefPtr&lt;IDBTransactionBackend&gt; m_transaction;
-    const int64_t m_objectStoreID;
-    const int64_t m_indexID;
-    const PassRefPtr&lt;IDBKeyRange&gt; m_keyRange;
-    const IndexedDB::CursorDirection m_direction;
-    const IndexedDB::CursorType m_cursorType;
-    const IDBDatabaseBackend::TaskType m_taskType;
-    const RefPtr&lt;IDBCallbacks&gt; m_callbacks;
-};
-
-class CountOperation : public IDBOperation {
-public:
-    static Ref&lt;IDBOperation&gt; create(IDBTransactionBackend* transaction, int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt; keyRange, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-    {
-        return adoptRef(*new CountOperation(transaction, objectStoreId, indexId, keyRange, callbacks));
-    }
-    virtual void perform(std::function&lt;void()&gt; successCallback) override final;
-
-    int64_t objectStoreID() const { return m_objectStoreID; }
-    int64_t indexID() const { return m_indexID; }
-    IDBKeyRange* keyRange() const { return m_keyRange.get(); }
-
-private:
-    CountOperation(IDBTransactionBackend* transaction, int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt; keyRange, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-        : m_transaction(transaction)
-        , m_objectStoreID(objectStoreId)
-        , m_indexID(indexId)
-        , m_keyRange(keyRange)
-        , m_callbacks(callbacks)
-    {
-    }
-
-    RefPtr&lt;IDBTransactionBackend&gt; m_transaction;
-    const int64_t m_objectStoreID;
-    const int64_t m_indexID;
-    const RefPtr&lt;IDBKeyRange&gt; m_keyRange;
-    const RefPtr&lt;IDBCallbacks&gt; m_callbacks;
-};
-
-class DeleteRangeOperation : public IDBOperation {
-public:
-    static Ref&lt;IDBOperation&gt; create(IDBTransactionBackend* transaction, int64_t objectStoreId, PassRefPtr&lt;IDBKeyRange&gt; keyRange, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-    {
-        return adoptRef(*new DeleteRangeOperation(transaction, objectStoreId, keyRange, callbacks));
-    }
-    virtual void perform(std::function&lt;void()&gt; successCallback) override final;
-
-    int64_t objectStoreID() const { return m_objectStoreID; }
-    IDBKeyRange* keyRange() const { return m_keyRange.get(); }
-
-private:
-    DeleteRangeOperation(IDBTransactionBackend* transaction, int64_t objectStoreId, PassRefPtr&lt;IDBKeyRange&gt; keyRange, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-        : m_transaction(transaction)
-        , m_objectStoreID(objectStoreId)
-        , m_keyRange(keyRange)
-        , m_callbacks(callbacks)
-    {
-    }
-
-    RefPtr&lt;IDBTransactionBackend&gt; m_transaction;
-    const int64_t m_objectStoreID;
-    const RefPtr&lt;IDBKeyRange&gt; m_keyRange;
-    const RefPtr&lt;IDBCallbacks&gt; m_callbacks;
-};
-
-class ClearObjectStoreOperation : public IDBOperation {
-public:
-    static Ref&lt;IDBOperation&gt; create(IDBTransactionBackend* transaction, int64_t objectStoreId, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-    {
-        return adoptRef(*new ClearObjectStoreOperation(transaction, objectStoreId, callbacks));
-    }
-    virtual void perform(std::function&lt;void()&gt; successCallback) override final;
-
-    IDBTransactionBackend* transaction() const { return m_transaction.get(); }
-    int64_t objectStoreID() const { return m_objectStoreID; }
-
-private:
-    ClearObjectStoreOperation(IDBTransactionBackend* transaction, int64_t objectStoreId, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-        : m_transaction(transaction)
-        , m_objectStoreID(objectStoreId)
-        , m_callbacks(callbacks)
-    {
-    }
-
-    RefPtr&lt;IDBTransactionBackend&gt; m_transaction;
-    const int64_t m_objectStoreID;
-    const RefPtr&lt;IDBCallbacks&gt; m_callbacks;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-#endif // IDBTransactionBackendOperations_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBTransactionCoordinatorcpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionCoordinator.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionCoordinator.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionCoordinator.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,118 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;IDBTransactionCoordinator.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;IDBDatabaseCallbacks.h&quot;
-#include &quot;IDBTransactionBackend.h&quot;
-
-namespace WebCore {
-
-IDBTransactionCoordinator::IDBTransactionCoordinator()
-{
-}
-
-IDBTransactionCoordinator::~IDBTransactionCoordinator()
-{
-}
-
-void IDBTransactionCoordinator::didCreateTransaction(IDBTransactionBackend* transaction)
-{
-    ASSERT(!m_transactions.contains(transaction));
-    m_transactions.add(transaction, transaction);
-}
-
-void IDBTransactionCoordinator::didStartTransaction(IDBTransactionBackend* transaction)
-{
-    ASSERT(m_transactions.contains(transaction));
-
-    m_queuedTransactions.add(transaction);
-    processStartedTransactions();
-}
-
-void IDBTransactionCoordinator::didFinishTransaction(IDBTransactionBackend* transaction)
-{
-    ASSERT(m_transactions.contains(transaction));
-
-    if (m_queuedTransactions.contains(transaction)) {
-        ASSERT(!m_startedTransactions.contains(transaction));
-        m_queuedTransactions.remove(transaction);
-    } else if (m_startedTransactions.contains(transaction))
-        m_startedTransactions.remove(transaction);
-
-    m_transactions.remove(transaction);
-
-    processStartedTransactions();
-}
-
-#ifndef NDEBUG
-// Verifies internal consistiency while returning whether anything is found.
-bool IDBTransactionCoordinator::isActive(IDBTransactionBackend* transaction)
-{
-    bool found = false;
-    if (m_queuedTransactions.contains(transaction))
-        found = true;
-    if (m_startedTransactions.contains(transaction)) {
-        ASSERT(!found);
-        found = true;
-    }
-    ASSERT(found == m_transactions.contains(transaction));
-    return found;
-}
-#endif
-
-void IDBTransactionCoordinator::processStartedTransactions()
-{
-    if (m_queuedTransactions.isEmpty())
-        return;
-
-    ASSERT(m_startedTransactions.isEmpty() || (*m_startedTransactions.begin())-&gt;mode() != IndexedDB::TransactionMode::VersionChange);
-
-    ListHashSet&lt;IDBTransactionBackend*&gt;::const_iterator it = m_queuedTransactions.begin();
-    while (it != m_queuedTransactions.end()) {
-        IDBTransactionBackend* transaction = *it;
-        ++it;
-        if (canRunTransaction(transaction)) {
-            m_queuedTransactions.remove(transaction);
-            m_startedTransactions.add(transaction);
-            transaction-&gt;run();
-        }
-    }
-}
-
-bool IDBTransactionCoordinator::canRunTransaction(IDBTransactionBackend* transaction)
-{
-    ASSERT(m_queuedTransactions.contains(transaction));
-
-    UNUSED_PARAM(transaction);
-    return !m_startedTransactions.size();
-}
-
-};
-
-#endif // ENABLE(INDEXED_DATABASE)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyIDBTransactionCoordinatorh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionCoordinator.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionCoordinator.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionCoordinator.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,71 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef IDBTransactionCoordinator_h
-#define IDBTransactionCoordinator_h
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &lt;memory&gt;
-#include &lt;wtf/HashMap.h&gt;
-#include &lt;wtf/ListHashSet.h&gt;
-#include &lt;wtf/RefPtr.h&gt;
-
-namespace WebCore {
-
-class IDBTransactionBackend;
-
-// Transactions are executed in the order the were created.
-class IDBTransactionCoordinator {
-public:
-    IDBTransactionCoordinator();
-    virtual ~IDBTransactionCoordinator();
-
-    // Called by transactions as they start and finish.
-    void didCreateTransaction(IDBTransactionBackend*);
-    void didOpenBackingStoreTransaction(IDBTransactionBackend*);
-    void didStartTransaction(IDBTransactionBackend*);
-    void didFinishTransaction(IDBTransactionBackend*);
-
-#ifndef NDEBUG
-    bool isActive(IDBTransactionBackend*);
-#endif
-
-private:
-    void processStartedTransactions();
-    bool canRunTransaction(IDBTransactionBackend*);
-
-    // This is just an efficient way to keep references to all transactions.
-    HashMap&lt;IDBTransactionBackend*, RefPtr&lt;IDBTransactionBackend&gt; &gt; m_transactions;
-    // Transactions in different states are grouped below.
-    ListHashSet&lt;IDBTransactionBackend*&gt; m_queuedTransactions;
-    HashSet&lt;IDBTransactionBackend*&gt; m_startedTransactions;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-
-#endif // IDBTransactionCoordinator_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyAnycpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyAny.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyAny.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyAny.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,261 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;LegacyAny.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;DOMStringList.h&quot;
-#include &quot;IDBKeyPath.h&quot;
-#include &quot;LegacyCursorWithValue.h&quot;
-#include &quot;LegacyDatabase.h&quot;
-#include &quot;LegacyFactory.h&quot;
-#include &quot;LegacyIndex.h&quot;
-#include &quot;LegacyObjectStore.h&quot;
-
-namespace WebCore {
-
-RefPtr&lt;LegacyAny&gt; LegacyAny::createInvalid()
-{
-    return adoptRef(new LegacyAny(Type::Undefined));
-}
-
-RefPtr&lt;LegacyAny&gt; LegacyAny::createNull()
-{
-    return adoptRef(new LegacyAny(Type::Null));
-}
-
-RefPtr&lt;LegacyAny&gt; LegacyAny::createString(const String&amp; value)
-{
-    return adoptRef(new LegacyAny(value));
-}
-
-LegacyAny::LegacyAny(Type type)
-    : m_type(type)
-    , m_integer(0)
-{
-    ASSERT(type == Type::Undefined || type == Type::Null);
-}
-
-LegacyAny::~LegacyAny()
-{
-}
-
-RefPtr&lt;DOMStringList&gt; LegacyAny::domStringList()
-{
-    ASSERT(m_type == Type::DOMStringList);
-    return m_domStringList;
-}
-
-RefPtr&lt;IDBCursor&gt; LegacyAny::idbCursor()
-{
-    ASSERT(m_type == Type::IDBCursor);
-    return m_idbCursor;
-}
-
-RefPtr&lt;IDBCursorWithValue&gt; LegacyAny::idbCursorWithValue()
-{
-    ASSERT(m_type == Type::IDBCursorWithValue);
-    return m_idbCursorWithValue;
-}
-
-RefPtr&lt;IDBDatabase&gt; LegacyAny::idbDatabase()
-{
-    ASSERT(m_type == Type::IDBDatabase);
-    return m_idbDatabase;
-}
-
-RefPtr&lt;IDBFactory&gt; LegacyAny::idbFactory()
-{
-    ASSERT(m_type == Type::IDBFactory);
-    return m_idbFactory;
-}
-
-RefPtr&lt;IDBIndex&gt; LegacyAny::idbIndex()
-{
-    ASSERT(m_type == Type::IDBIndex);
-    return m_idbIndex;
-}
-
-RefPtr&lt;IDBObjectStore&gt; LegacyAny::idbObjectStore()
-{
-    ASSERT(m_type == Type::IDBObjectStore);
-    return m_idbObjectStore;
-}
-
-RefPtr&lt;IDBTransaction&gt; LegacyAny::idbTransaction()
-{
-    ASSERT(m_type == Type::IDBTransaction);
-    return m_idbTransaction;
-}
-
-const Deprecated::ScriptValue&amp; LegacyAny::scriptValue()
-{
-    ASSERT(m_type == Type::ScriptValue);
-    return m_scriptValue;
-}
-
-const String&amp; LegacyAny::string()
-{
-    ASSERT(m_type == Type::String);
-    return m_string;
-}
-
-int64_t LegacyAny::integer()
-{
-    ASSERT(m_type == Type::Integer);
-    return m_integer;
-}
-
-LegacyAny::LegacyAny(RefPtr&lt;DOMStringList&gt; value)
-    : m_type(Type::DOMStringList)
-    , m_domStringList(value)
-    , m_integer(0)
-{
-}
-
-LegacyAny::LegacyAny(RefPtr&lt;LegacyCursorWithValue&gt; value)
-    : m_type(Type::IDBCursorWithValue)
-    , m_idbCursorWithValue(value)
-    , m_integer(0)
-{
-}
-
-LegacyAny::LegacyAny(RefPtr&lt;LegacyCursor&gt; value)
-    : m_type(Type::IDBCursor)
-    , m_idbCursor(value)
-    , m_integer(0)
-{
-}
-
-LegacyAny::LegacyAny(RefPtr&lt;LegacyDatabase&gt; value)
-    : m_type(Type::IDBDatabase)
-    , m_idbDatabase(value)
-    , m_integer(0)
-{
-}
-
-LegacyAny::LegacyAny(RefPtr&lt;LegacyFactory&gt; value)
-    : m_type(Type::IDBFactory)
-    , m_idbFactory(value)
-    , m_integer(0)
-{
-}
-
-LegacyAny::LegacyAny(RefPtr&lt;LegacyIndex&gt; value)
-    : m_type(Type::IDBIndex)
-    , m_idbIndex(value)
-    , m_integer(0)
-{
-}
-
-LegacyAny::LegacyAny(RefPtr&lt;LegacyTransaction&gt; value)
-    : m_type(Type::IDBTransaction)
-    , m_idbTransaction(value)
-    , m_integer(0)
-{
-}
-
-LegacyAny::LegacyAny(RefPtr&lt;LegacyObjectStore&gt; value)
-    : m_type(Type::IDBObjectStore)
-    , m_idbObjectStore(value)
-    , m_integer(0)
-{
-}
-
-LegacyAny::LegacyAny(const Deprecated::ScriptValue&amp; value)
-    : m_type(Type::ScriptValue)
-    , m_scriptValue(value)
-    , m_integer(0)
-{
-}
-
-LegacyAny::LegacyAny(const IDBKeyPath&amp; value)
-    : m_type(Type::KeyPath)
-    , m_idbKeyPath(value)
-    , m_integer(0)
-{
-}
-
-LegacyAny::LegacyAny(const String&amp; value)
-    : m_type(Type::String)
-    , m_string(value)
-    , m_integer(0)
-{
-}
-
-LegacyAny::LegacyAny(int64_t value)
-    : m_type(Type::Integer)
-    , m_integer(value)
-{
-}
-
-LegacyCursor* LegacyAny::legacyCursor()
-{
-    ASSERT(m_type == Type::IDBCursor);
-    return m_idbCursor.get();
-}
-
-LegacyCursorWithValue* LegacyAny::legacyCursorWithValue()
-{
-    ASSERT(m_type == Type::IDBCursorWithValue);
-    return m_idbCursorWithValue.get();
-}
-
-LegacyDatabase* LegacyAny::legacyDatabase()
-{
-    ASSERT(m_type == Type::IDBDatabase);
-    return m_idbDatabase.get();
-}
-
-LegacyFactory* LegacyAny::legacyFactory()
-{
-    ASSERT(m_type == Type::IDBFactory);
-    return m_idbFactory.get();
-}
-
-LegacyIndex* LegacyAny::legacyIndex()
-{
-    ASSERT(m_type == Type::IDBIndex);
-    return m_idbIndex.get();
-}
-
-LegacyObjectStore* LegacyAny::legacyObjectStore()
-{
-    ASSERT(m_type == Type::IDBObjectStore);
-    return m_idbObjectStore.get();
-}
-
-LegacyTransaction* LegacyAny::legacyTransaction()
-{
-    ASSERT(m_type == Type::IDBTransaction);
-    return m_idbTransaction.get();
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyAnyh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyAny.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyAny.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyAny.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,150 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef LegacyAny_h
-#define LegacyAny_h
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;IDBAny.h&quot;
-#include &quot;IDBKeyPath.h&quot;
-#include &quot;ScriptWrappable.h&quot;
-#include &lt;bindings/ScriptValue.h&gt;
-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/RefPtr.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-namespace WebCore {
-
-class DOMStringList;
-class IDBCursor;
-class IDBCursorWithValue;
-class IDBDatabase;
-class IDBFactory;
-class IDBIndex;
-class IDBKeyPath;
-class IDBObjectStore;
-class IDBTransaction;
-
-class LegacyCursor;
-class LegacyCursorWithValue;
-class LegacyDatabase;
-class LegacyFactory;
-class LegacyIndex;
-class LegacyObjectStore;
-class LegacyTransaction;
-
-class LegacyAny : public IDBAny {
-public:
-    static RefPtr&lt;LegacyAny&gt; createInvalid();
-    static RefPtr&lt;LegacyAny&gt; createNull();
-    static RefPtr&lt;LegacyAny&gt; createString(const String&amp;);
-    template&lt;typename T&gt;
-    static RefPtr&lt;LegacyAny&gt; create(T* idbObject)
-    {
-        return adoptRef(new LegacyAny(idbObject));
-    }
-    template&lt;typename T&gt;
-    static RefPtr&lt;LegacyAny&gt; create(const T&amp; idbObject)
-    {
-        return adoptRef(new LegacyAny(idbObject));
-    }
-    template&lt;typename T&gt;
-    static RefPtr&lt;LegacyAny&gt; create(PassRefPtr&lt;T&gt; idbObject)
-    {
-        RefPtr&lt;T&gt; refObject = idbObject;
-        return adoptRef(new LegacyAny(WTFMove(refObject)));
-    }
-    static RefPtr&lt;LegacyAny&gt; create(int64_t value)
-    {
-        return adoptRef(new LegacyAny(value));
-    }
-    ~LegacyAny();
-
-    // FIXME: This is a temporary hack to allow casts in WebInspector code while Modern IDB and Legacy IDB live side-by-side.
-    // It should be removed when the legacy implementation is removed as part of https://bugs.webkit.org/show_bug.cgi?id=149117
-    virtual bool isLegacy() const override final { return true; }
-
-    virtual Type type() const override final { return m_type; }
-    // Use type() to figure out which one of these you're allowed to call.
-    virtual RefPtr&lt;DOMStringList&gt; domStringList() override final;
-    virtual RefPtr&lt;IDBCursor&gt; idbCursor() override final;
-    virtual RefPtr&lt;IDBCursorWithValue&gt; idbCursorWithValue() override final;
-    virtual RefPtr&lt;IDBDatabase&gt; idbDatabase() override final;
-    virtual RefPtr&lt;IDBFactory&gt; idbFactory() override final;
-    virtual RefPtr&lt;IDBIndex&gt; idbIndex() override final;
-    virtual RefPtr&lt;IDBObjectStore&gt; idbObjectStore() override final;
-    virtual RefPtr&lt;IDBTransaction&gt; idbTransaction() override final;
-    virtual const Deprecated::ScriptValue&amp; scriptValue() override final;
-    virtual int64_t integer() override final;
-    virtual const String&amp; string() override final;
-    virtual const IDBKeyPath&amp; keyPath() override final { return m_idbKeyPath; };
-
-    LegacyCursor* legacyCursor();
-    LegacyCursorWithValue* legacyCursorWithValue();
-    LegacyDatabase* legacyDatabase();
-    LegacyFactory* legacyFactory();
-    LegacyIndex* legacyIndex();
-    LegacyObjectStore* legacyObjectStore();
-    LegacyTransaction* legacyTransaction();
-
-private:
-    explicit LegacyAny(Type);
-    explicit LegacyAny(RefPtr&lt;DOMStringList&gt;);
-    explicit LegacyAny(RefPtr&lt;LegacyCursor&gt;);
-    explicit LegacyAny(RefPtr&lt;LegacyCursorWithValue&gt;);
-    explicit LegacyAny(RefPtr&lt;LegacyDatabase&gt;);
-    explicit LegacyAny(RefPtr&lt;LegacyFactory&gt;);
-    explicit LegacyAny(RefPtr&lt;LegacyIndex&gt;);
-    explicit LegacyAny(RefPtr&lt;LegacyObjectStore&gt;);
-    explicit LegacyAny(RefPtr&lt;LegacyTransaction&gt;);
-    explicit LegacyAny(const IDBKeyPath&amp;);
-    explicit LegacyAny(const String&amp;);
-    explicit LegacyAny(const Deprecated::ScriptValue&amp;);
-    explicit LegacyAny(int64_t);
-
-    const Type m_type;
-
-    // Only one of the following should ever be in use at any given time.
-    const RefPtr&lt;DOMStringList&gt; m_domStringList;
-    const RefPtr&lt;LegacyCursor&gt; m_idbCursor;
-    const RefPtr&lt;LegacyCursorWithValue&gt; m_idbCursorWithValue;
-    const RefPtr&lt;LegacyDatabase&gt; m_idbDatabase;
-    const RefPtr&lt;LegacyFactory&gt; m_idbFactory;
-    const RefPtr&lt;LegacyIndex&gt; m_idbIndex;
-    const RefPtr&lt;LegacyObjectStore&gt; m_idbObjectStore;
-    const RefPtr&lt;LegacyTransaction&gt; m_idbTransaction;
-    const IDBKeyPath m_idbKeyPath;
-    const Deprecated::ScriptValue m_scriptValue;
-    const String m_string;
-    const int64_t m_integer;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-
-#endif // LegacyAny_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyCursorcpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyCursor.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyCursor.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyCursor.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,277 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;LegacyCursor.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;IDBAny.h&quot;
-#include &quot;IDBBindingUtilities.h&quot;
-#include &quot;IDBCallbacks.h&quot;
-#include &quot;IDBCursorBackend.h&quot;
-#include &quot;IDBKey.h&quot;
-#include &quot;IDBObjectStore.h&quot;
-#include &quot;IDBTransaction.h&quot;
-#include &quot;LegacyRequest.h&quot;
-#include &quot;Logging.h&quot;
-#include &quot;ScriptExecutionContext.h&quot;
-#include &lt;inspector/ScriptCallStack.h&gt;
-#include &lt;limits&gt;
-
-namespace WebCore {
-
-Ref&lt;LegacyCursor&gt; LegacyCursor::create(PassRefPtr&lt;IDBCursorBackend&gt; backend, IndexedDB::CursorDirection direction, LegacyRequest* request, LegacyAny* source, LegacyTransaction* transaction)
-{
-    return adoptRef(*new LegacyCursor(backend, direction, request, source, transaction));
-}
-
-LegacyCursor::LegacyCursor(PassRefPtr&lt;IDBCursorBackend&gt; backend, IndexedDB::CursorDirection direction, LegacyRequest* request, LegacyAny* source, LegacyTransaction* transaction)
-    : m_backend(backend)
-    , m_request(request)
-    , m_direction(direction)
-    , m_source(source)
-    , m_transaction(transaction)
-    , m_transactionNotifier(transaction, this)
-    , m_gotValue(false)
-{
-    ASSERT(m_backend);
-    ASSERT(m_request);
-    ASSERT(m_source-&gt;type() == IDBAny::Type::IDBObjectStore || m_source-&gt;type() == IDBAny::Type::IDBIndex);
-    ASSERT(m_transaction);
-}
-
-LegacyCursor::~LegacyCursor()
-{
-}
-
-const String&amp; LegacyCursor::direction() const
-{
-    LOG(StorageAPI, &quot;LegacyCursor::direction&quot;);
-    return directionToString(m_direction);
-}
-
-const Deprecated::ScriptValue&amp; LegacyCursor::key() const
-{
-    LOG(StorageAPI, &quot;LegacyCursor::key&quot;);
-    return m_currentKeyValue;
-}
-
-const Deprecated::ScriptValue&amp; LegacyCursor::primaryKey() const
-{
-    LOG(StorageAPI, &quot;LegacyCursor::primaryKey&quot;);
-    return m_currentPrimaryKeyValue;
-}
-
-const Deprecated::ScriptValue&amp; LegacyCursor::value() const
-{
-    LOG(StorageAPI, &quot;LegacyCursor::value&quot;);
-    return m_currentValue;
-}
-
-IDBAny* LegacyCursor::source()
-{
-    return m_source.get();
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyCursor::update(JSC::ExecState&amp; state, Deprecated::ScriptValue&amp; value, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyCursor::update&quot;);
-
-    if (!m_gotValue || isKeyCursor()) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-    if (!m_transaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return 0;
-    }
-    if (m_transaction-&gt;isReadOnly()) {
-        ec.code = IDBDatabaseException::ReadOnlyError;
-        return 0;
-    }
-
-    RefPtr&lt;LegacyObjectStore&gt; objectStore = effectiveObjectStore();
-    const IDBKeyPath&amp; keyPath = objectStore-&gt;metadata().keyPath;
-    const bool usesInLineKeys = !keyPath.isNull();
-    if (usesInLineKeys) {
-        RefPtr&lt;IDBKey&gt; keyPathKey = createIDBKeyFromScriptValueAndKeyPath(m_request-&gt;requestState()-&gt;exec(), value, keyPath);
-        if (!keyPathKey || !keyPathKey-&gt;isEqual(m_currentPrimaryKey.get())) {
-            ec.code = IDBDatabaseException::DataError;
-            return 0;
-        }
-    }
-
-    return objectStore-&gt;put(IDBDatabaseBackend::CursorUpdate, LegacyAny::create(this), state, value, m_currentPrimaryKey, ec);
-}
-
-void LegacyCursor::advance(unsigned long count, ExceptionCodeWithMessage&amp; ec)
-{
-    ec.code = 0;
-    LOG(StorageAPI, &quot;LegacyCursor::advance&quot;);
-    if (!m_gotValue) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return;
-    }
-
-    if (!m_transaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return;
-    }
-
-    if (!count) {
-        ec.code = TypeError;
-        return;
-    }
-
-    m_request-&gt;setPendingCursor(this);
-    m_gotValue = false;
-    m_backend-&gt;advance(count, m_request, ec.code);
-    ASSERT(!ec.code);
-}
-
-void LegacyCursor::continueFunction(ScriptExecutionContext* context, const Deprecated::ScriptValue&amp; keyValue, ExceptionCodeWithMessage&amp; ec)
-{
-    DOMRequestState requestState(context);
-    RefPtr&lt;IDBKey&gt; key = scriptValueToIDBKey(&amp;requestState, keyValue);
-    continueFunction(key.release(), ec);
-}
-
-void LegacyCursor::continueFunction(PassRefPtr&lt;IDBKey&gt; key, ExceptionCodeWithMessage&amp; ec)
-{
-    ec.code = 0;
-    LOG(StorageAPI, &quot;LegacyCursor::continue&quot;);
-    if (key &amp;&amp; !key-&gt;isValid()) {
-        ec.code = IDBDatabaseException::DataError;
-        return;
-    }
-
-    if (!m_transaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return;
-    }
-
-    if (!m_gotValue) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return;
-    }
-
-    if (key) {
-        ASSERT(m_currentKey);
-        if (m_direction == IndexedDB::CursorDirection::Next || m_direction == IndexedDB::CursorDirection::NextNoDuplicate) {
-            if (!m_currentKey-&gt;isLessThan(key.get())) {
-                ec.code = IDBDatabaseException::DataError;
-                return;
-            }
-        } else {
-            if (!key-&gt;isLessThan(m_currentKey.get())) {
-                ec.code = IDBDatabaseException::DataError;
-                return;
-            }
-        }
-    }
-
-    // FIXME: We're not using the context from when continue was called, which means the callback
-    //        will be on the original context openCursor was called on. Is this right?
-    m_request-&gt;setPendingCursor(this);
-    m_gotValue = false;
-    m_backend-&gt;continueFunction(key, m_request, ec.code);
-    ASSERT(!ec.code);
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyCursor::deleteFunction(ScriptExecutionContext* context, ExceptionCodeWithMessage&amp; ec)
-{
-    ec.code = 0;
-    LOG(StorageAPI, &quot;LegacyCursor::delete&quot;);
-    if (!m_transaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return 0;
-    }
-    if (m_transaction-&gt;isReadOnly()) {
-        ec.code = IDBDatabaseException::ReadOnlyError;
-        return 0;
-    }
-
-    if (!m_gotValue || isKeyCursor()) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-    RefPtr&lt;LegacyRequest&gt; request = LegacyRequest::create(context, LegacyAny::create(this), m_transaction.get());
-    m_backend-&gt;deleteFunction(request, ec.code);
-    ASSERT(!ec.code);
-    return request.release();
-}
-
-void LegacyCursor::postSuccessHandlerCallback()
-{
-    m_backend-&gt;postSuccessHandlerCallback();
-}
-
-void LegacyCursor::close()
-{
-    m_transactionNotifier.cursorFinished();
-    if (m_request) {
-        m_request-&gt;finishCursor();
-        m_request = nullptr;
-    }
-}
-
-void LegacyCursor::setValueReady(DOMRequestState* state, PassRefPtr&lt;IDBKey&gt; key, PassRefPtr&lt;IDBKey&gt; primaryKey, Deprecated::ScriptValue&amp; value)
-{
-    m_currentKey = key;
-    m_currentKeyValue = idbKeyToScriptValue(state, m_currentKey);
-
-    m_currentPrimaryKey = primaryKey;
-    m_currentPrimaryKeyValue = idbKeyToScriptValue(state, m_currentPrimaryKey);
-
-    if (!isKeyCursor()) {
-        RefPtr&lt;LegacyObjectStore&gt; objectStore = effectiveObjectStore();
-        const IDBObjectStoreMetadata metadata = objectStore-&gt;metadata();
-        if (metadata.autoIncrement &amp;&amp; !metadata.keyPath.isNull()) {
-#ifndef NDEBUG
-            RefPtr&lt;IDBKey&gt; expectedKey = createIDBKeyFromScriptValueAndKeyPath(m_request-&gt;requestState()-&gt;exec(), value, metadata.keyPath);
-            ASSERT(!expectedKey || expectedKey-&gt;isEqual(m_currentPrimaryKey.get()));
-#endif
-            bool injected = injectIDBKeyIntoScriptValue(m_request-&gt;requestState(), m_currentPrimaryKey, value, metadata.keyPath);
-            // FIXME: There is no way to report errors here. Move this into onSuccessWithContinuation so that we can abort the transaction there. See: https://bugs.webkit.org/show_bug.cgi?id=92278
-            ASSERT_UNUSED(injected, injected);
-        }
-    }
-    m_currentValue = value;
-
-    m_gotValue = true;
-}
-
-PassRefPtr&lt;LegacyObjectStore&gt; LegacyCursor::effectiveObjectStore()
-{
-    if (m_source-&gt;type() == IDBAny::Type::IDBObjectStore)
-        return m_source-&gt;legacyObjectStore();
-    RefPtr&lt;LegacyIndex&gt; index = m_source-&gt;legacyIndex();
-    return index-&gt;legacyObjectStore();
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyCursorh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyCursor.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyCursor.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyCursor.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,105 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef LegacyCursor_h
-#define LegacyCursor_h
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;IDBCursorWithValue.h&quot;
-#include &quot;IDBKey.h&quot;
-#include &quot;IndexedDB.h&quot;
-#include &quot;LegacyObjectStore.h&quot;
-#include &quot;LegacyTransaction.h&quot;
-#include &quot;ScriptWrappable.h&quot;
-#include &lt;bindings/ScriptValue.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/RefPtr.h&gt;
-
-namespace WebCore {
-
-class DOMRequestState;
-class IDBAny;
-class IDBCallbacks;
-class IDBCursorBackend;
-class LegacyRequest;
-class ScriptExecutionContext;
-
-typedef int ExceptionCode;
-
-class LegacyCursor : public IDBCursorWithValue {
-public:
-    static Ref&lt;LegacyCursor&gt; create(PassRefPtr&lt;IDBCursorBackend&gt;, IndexedDB::CursorDirection, LegacyRequest*, LegacyAny* source, LegacyTransaction*);
-    virtual ~LegacyCursor();
-
-    // Implement the IDL
-    const String&amp; direction() const override;
-    const Deprecated::ScriptValue&amp; key() const override;
-    const Deprecated::ScriptValue&amp; primaryKey() const override;
-    const Deprecated::ScriptValue&amp; value() const override;
-    IDBAny* source() override;
-
-    RefPtr&lt;IDBRequest&gt; update(JSC::ExecState&amp;, Deprecated::ScriptValue&amp;, ExceptionCodeWithMessage&amp;) override;
-    void advance(unsigned long, ExceptionCodeWithMessage&amp;) override;
-    // FIXME: Try to modify the code generator so this overload is unneeded.
-    void continueFunction(ScriptExecutionContext*, ExceptionCodeWithMessage&amp; ec) override { continueFunction(static_cast&lt;IDBKey*&gt;(nullptr), ec); }
-    void continueFunction(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; key, ExceptionCodeWithMessage&amp;) override;
-    RefPtr&lt;IDBRequest&gt; deleteFunction(ScriptExecutionContext*, ExceptionCodeWithMessage&amp;) override;
-
-    void continueFunction(PassRefPtr&lt;IDBKey&gt;, ExceptionCodeWithMessage&amp;);
-    void postSuccessHandlerCallback();
-    void close();
-    void setValueReady(DOMRequestState*, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt; primaryKey, Deprecated::ScriptValue&amp;);
-    PassRefPtr&lt;IDBKey&gt; idbPrimaryKey() { return m_currentPrimaryKey; }
-
-    virtual bool isKeyCursor() const override { return true; }
-
-protected:
-    LegacyCursor(PassRefPtr&lt;IDBCursorBackend&gt;, IndexedDB::CursorDirection, LegacyRequest*, LegacyAny* source, LegacyTransaction*);
-
-private:
-    PassRefPtr&lt;LegacyObjectStore&gt; effectiveObjectStore();
-
-    RefPtr&lt;IDBCursorBackend&gt; m_backend;
-    RefPtr&lt;LegacyRequest&gt; m_request;
-    const IndexedDB::CursorDirection m_direction;
-    RefPtr&lt;LegacyAny&gt; m_source;
-    RefPtr&lt;LegacyTransaction&gt; m_transaction;
-    LegacyTransaction::OpenCursorNotifier m_transactionNotifier;
-    bool m_gotValue;
-    // These values are held because m_backend may advance while they
-    // are still valid for the current success handlers.
-    Deprecated::ScriptValue m_currentKeyValue;
-    Deprecated::ScriptValue m_currentPrimaryKeyValue;
-    RefPtr&lt;IDBKey&gt; m_currentKey;
-    RefPtr&lt;IDBKey&gt; m_currentPrimaryKey;
-    Deprecated::ScriptValue m_currentValue;
-};
-
-} // namespace WebCore
-
-#endif
-
-#endif // LegacyCursor_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyCursorWithValuecpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyCursorWithValue.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyCursorWithValue.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyCursorWithValue.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,58 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;LegacyCursorWithValue.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;IDBCursorBackend.h&quot;
-#include &quot;IDBKey.h&quot;
-
-namespace WebCore {
-
-PassRefPtr&lt;LegacyCursorWithValue&gt; LegacyCursorWithValue::create(PassRefPtr&lt;IDBCursorBackend&gt; backend, IndexedDB::CursorDirection direction, LegacyRequest* request, LegacyAny* source, LegacyTransaction* transaction)
-{
-    return adoptRef(new LegacyCursorWithValue(backend, direction, request, source, transaction));
-}
-
-PassRefPtr&lt;LegacyCursorWithValue&gt; LegacyCursorWithValue::fromCursor(PassRefPtr&lt;LegacyCursor&gt; prpCursor)
-{
-    RefPtr&lt;LegacyCursorWithValue&gt; cursorWithValue(static_cast&lt;LegacyCursorWithValue*&gt;(prpCursor.get()));
-    return cursorWithValue.release();
-}
-
-LegacyCursorWithValue::LegacyCursorWithValue(PassRefPtr&lt;IDBCursorBackend&gt; backend, IndexedDB::CursorDirection direction, LegacyRequest* request, LegacyAny* source, LegacyTransaction* transaction)
-    : LegacyCursor(backend, direction, request, source, transaction)
-{
-}
-
-LegacyCursorWithValue::~LegacyCursorWithValue()
-{
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyCursorWithValueh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyCursorWithValue.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyCursorWithValue.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyCursorWithValue.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,54 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef LegacyCursorWithValue_h
-#define LegacyCursorWithValue_h
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;LegacyCursor.h&quot;
-
-namespace WebCore {
-
-class LegacyCursorWithValue : public LegacyCursor {
-public:
-    static PassRefPtr&lt;LegacyCursorWithValue&gt; create(PassRefPtr&lt;IDBCursorBackend&gt;, IndexedDB::CursorDirection, LegacyRequest*, LegacyAny* source, LegacyTransaction*);
-    static PassRefPtr&lt;LegacyCursorWithValue&gt; fromCursor(PassRefPtr&lt;LegacyCursor&gt;);
-    virtual ~LegacyCursorWithValue();
-
-    // The value attribute defined in the IDL is simply implemented in LegacyCursor (but not exposed via
-    // its IDL). This is to make the implementation more simple while matching what the spec says.
-
-    virtual bool isKeyCursor() const override final { return false; }
-
-private:
-    LegacyCursorWithValue(PassRefPtr&lt;IDBCursorBackend&gt;, IndexedDB::CursorDirection, LegacyRequest*, LegacyAny* source, LegacyTransaction*);
-};
-
-} // namespace WebCore
-
-#endif
-
-#endif // LegacyCursorWithValue_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyDatabasecpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyDatabase.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyDatabase.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyDatabase.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,404 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;LegacyDatabase.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;DOMStringList.h&quot;
-#include &quot;EventQueue.h&quot;
-#include &quot;ExceptionCode.h&quot;
-#include &quot;IDBAny.h&quot;
-#include &quot;IDBDatabaseBackend.h&quot;
-#include &quot;IDBDatabaseCallbacks.h&quot;
-#include &quot;IDBDatabaseError.h&quot;
-#include &quot;IDBDatabaseException.h&quot;
-#include &quot;IDBEventDispatcher.h&quot;
-#include &quot;IDBIndex.h&quot;
-#include &quot;IDBKeyPath.h&quot;
-#include &quot;IDBObjectStore.h&quot;
-#include &quot;IDBTransaction.h&quot;
-#include &quot;IDBVersionChangeEvent.h&quot;
-#include &quot;LegacyObjectStore.h&quot;
-#include &quot;LegacyVersionChangeEvent.h&quot;
-#include &quot;Logging.h&quot;
-#include &quot;ScriptExecutionContext.h&quot;
-#include &lt;atomic&gt;
-#include &lt;inspector/ScriptCallStack.h&gt;
-#include &lt;limits&gt;
-#include &lt;wtf/Atomics.h&gt;
-
-namespace WebCore {
-
-Ref&lt;LegacyDatabase&gt; LegacyDatabase::create(ScriptExecutionContext* context, PassRefPtr&lt;IDBDatabaseBackend&gt; database, PassRefPtr&lt;IDBDatabaseCallbacks&gt; callbacks)
-{
-    Ref&lt;LegacyDatabase&gt; legacyDatabase(adoptRef(*new LegacyDatabase(context, database, callbacks)));
-    legacyDatabase-&gt;suspendIfNeeded();
-    return legacyDatabase;
-}
-
-LegacyDatabase::LegacyDatabase(ScriptExecutionContext* context, PassRefPtr&lt;IDBDatabaseBackend&gt; backend, PassRefPtr&lt;IDBDatabaseCallbacks&gt; callbacks)
-    : IDBDatabase(context)
-    , m_backend(backend)
-    , m_closePending(false)
-    , m_isClosed(false)
-    , m_contextStopped(false)
-    , m_databaseCallbacks(callbacks)
-{
-    // We pass a reference of this object before it can be adopted.
-    relaxAdoptionRequirement();
-}
-
-LegacyDatabase::~LegacyDatabase()
-{
-    // This does what LegacyDatabase::close does, but without any ref/deref of the
-    // database since it is already in the process of being deleted. The logic here
-    // is also simpler since we know there are no transactions (since they ref the
-    // database when they are alive).
-
-    ASSERT(m_transactions.isEmpty());
-
-    if (!m_closePending) {
-        m_closePending = true;
-        m_backend-&gt;close(m_databaseCallbacks);
-    }
-
-    if (auto* context = scriptExecutionContext()) {
-        // Remove any pending versionchange events scheduled to fire on this
-        // connection. They would have been scheduled by the backend when another
-        // connection called setVersion, but the frontend connection is being
-        // closed before they could fire.
-        for (auto&amp; event : m_enqueuedEvents)
-            context-&gt;eventQueue().cancelEvent(event);
-    }
-}
-
-int64_t LegacyDatabase::nextTransactionId()
-{
-    // Only keep a 32-bit counter to allow ports to use the other 32
-    // bits of the id.
-    static std::atomic&lt;uint32_t&gt; currentTransactionId;
-
-    return ++currentTransactionId;
-}
-
-void LegacyDatabase::transactionCreated(LegacyTransaction* transaction)
-{
-    ASSERT(transaction);
-    ASSERT(!m_transactions.contains(transaction-&gt;id()));
-    m_transactions.add(transaction-&gt;id(), transaction);
-
-    if (transaction-&gt;isVersionChange()) {
-        ASSERT(!m_versionChangeTransaction);
-        m_versionChangeTransaction = transaction;
-    }
-}
-
-void LegacyDatabase::transactionFinished(LegacyTransaction* transaction)
-{
-    ASSERT(transaction);
-    ASSERT(m_transactions.contains(transaction-&gt;id()));
-    ASSERT(m_transactions.get(transaction-&gt;id()) == transaction);
-    m_transactions.remove(transaction-&gt;id());
-
-    if (transaction-&gt;isVersionChange()) {
-        ASSERT(m_versionChangeTransaction == transaction);
-        m_versionChangeTransaction = nullptr;
-    }
-
-    if (m_closePending &amp;&amp; m_transactions.isEmpty())
-        closeConnection();
-}
-
-void LegacyDatabase::onAbort(int64_t transactionId, PassRefPtr&lt;IDBDatabaseError&gt; error)
-{
-    ASSERT(m_transactions.contains(transactionId));
-    m_transactions.get(transactionId)-&gt;onAbort(error);
-}
-
-void LegacyDatabase::onComplete(int64_t transactionId)
-{
-    ASSERT(m_transactions.contains(transactionId));
-    m_transactions.get(transactionId)-&gt;onComplete();
-}
-
-RefPtr&lt;DOMStringList&gt; LegacyDatabase::objectStoreNames() const
-{
-    RefPtr&lt;DOMStringList&gt; objectStoreNames = DOMStringList::create();
-    for (auto&amp; objectStore : m_metadata.objectStores.values())
-        objectStoreNames-&gt;append(objectStore.name);
-    objectStoreNames-&gt;sort();
-    return objectStoreNames.release();
-}
-
-uint64_t LegacyDatabase::version() const
-{
-    // NoIntVersion is a special value for internal use only and shouldn't be exposed to script.
-    // DefaultIntVersion should be exposed instead.
-    return m_metadata.version != IDBDatabaseMetadata::NoIntVersion ? m_metadata.version : static_cast&lt;uint64_t&gt;(IDBDatabaseMetadata::DefaultIntVersion);
-}
-
-RefPtr&lt;IDBObjectStore&gt; LegacyDatabase::createObjectStore(const String&amp; name, const Dictionary&amp; options, ExceptionCodeWithMessage&amp; ec)
-{
-    IDBKeyPath keyPath;
-    bool autoIncrement = false;
-    if (!options.isUndefinedOrNull()) {
-        String keyPathString;
-        Vector&lt;String&gt; keyPathArray;
-        if (options.get(&quot;keyPath&quot;, keyPathArray))
-            keyPath = IDBKeyPath(keyPathArray);
-        else if (options.getWithUndefinedOrNullCheck(&quot;keyPath&quot;, keyPathString))
-            keyPath = IDBKeyPath(keyPathString);
-
-        options.get(&quot;autoIncrement&quot;, autoIncrement);
-    }
-
-    return createObjectStore(name, keyPath, autoIncrement, ec);
-}
-
-RefPtr&lt;IDBObjectStore&gt; LegacyDatabase::createObjectStore(const String&amp; name, const IDBKeyPath&amp; keyPath, bool autoIncrement, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyDatabase::createObjectStore&quot;);
-    if (!m_versionChangeTransaction) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-    if (!m_versionChangeTransaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return 0;
-    }
-
-    if (containsObjectStore(name)) {
-        ec.code = IDBDatabaseException::ConstraintError;
-        return 0;
-    }
-
-    if (!keyPath.isNull() &amp;&amp; !keyPath.isValid()) {
-        ec.code = IDBDatabaseException::SyntaxError;
-        return 0;
-    }
-
-    if (autoIncrement &amp;&amp; ((keyPath.type() == IndexedDB::KeyPathType::String &amp;&amp; keyPath.string().isEmpty()) || keyPath.type() == IndexedDB::KeyPathType::Array)) {
-        ec.code = IDBDatabaseException::InvalidAccessError;
-        return 0;
-    }
-
-    int64_t objectStoreId = m_metadata.maxObjectStoreId + 1;
-    m_backend-&gt;createObjectStore(m_versionChangeTransaction-&gt;id(), objectStoreId, name, keyPath, autoIncrement);
-
-    IDBObjectStoreMetadata metadata(name, objectStoreId, keyPath, autoIncrement, IDBDatabaseBackend::MinimumIndexId);
-    RefPtr&lt;LegacyObjectStore&gt; objectStore = LegacyObjectStore::create(metadata, m_versionChangeTransaction.get());
-    m_metadata.objectStores.set(metadata.id, metadata);
-    ++m_metadata.maxObjectStoreId;
-
-    m_versionChangeTransaction-&gt;objectStoreCreated(name, objectStore);
-    return objectStore.release();
-}
-
-void LegacyDatabase::deleteObjectStore(const String&amp; name, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyDatabase::deleteObjectStore&quot;);
-    if (!m_versionChangeTransaction) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return;
-    }
-    if (!m_versionChangeTransaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return;
-    }
-
-    int64_t objectStoreId = findObjectStoreId(name);
-    if (objectStoreId == IDBObjectStoreMetadata::InvalidId) {
-        ec.code = IDBDatabaseException::NotFoundError;
-        return;
-    }
-
-    m_backend-&gt;deleteObjectStore(m_versionChangeTransaction-&gt;id(), objectStoreId);
-    m_versionChangeTransaction-&gt;objectStoreDeleted(name);
-    m_metadata.objectStores.remove(objectStoreId);
-}
-
-RefPtr&lt;IDBTransaction&gt; LegacyDatabase::transaction(ScriptExecutionContext* context, const Vector&lt;String&gt;&amp; scope, const String&amp; modeString, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyDatabase::transaction&quot;);
-    if (!scope.size()) {
-        ec.code = IDBDatabaseException::InvalidAccessError;
-        return 0;
-    }
-
-    IndexedDB::TransactionMode mode = IDBTransaction::stringToMode(modeString, ec.code);
-    if (ec.code)
-        return 0;
-
-    if (m_versionChangeTransaction || m_closePending) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-
-    Vector&lt;int64_t&gt; objectStoreIds;
-    for (auto&amp; name : scope) {
-        int64_t objectStoreId = findObjectStoreId(name);
-        if (objectStoreId == IDBObjectStoreMetadata::InvalidId) {
-            ec.code = IDBDatabaseException::NotFoundError;
-            return 0;
-        }
-        objectStoreIds.append(objectStoreId);
-    }
-
-    int64_t transactionId = nextTransactionId();
-    m_backend-&gt;createTransaction(transactionId, m_databaseCallbacks, objectStoreIds, mode);
-
-    RefPtr&lt;LegacyTransaction&gt; transaction = LegacyTransaction::create(context, transactionId, scope, mode, this);
-    return transaction.release();
-}
-
-RefPtr&lt;IDBTransaction&gt; LegacyDatabase::transaction(ScriptExecutionContext* context, const String&amp; storeName, const String&amp; mode, ExceptionCodeWithMessage&amp; ec)
-{
-    RefPtr&lt;DOMStringList&gt; storeNames = DOMStringList::create();
-    storeNames-&gt;append(storeName);
-    return transaction(context, storeNames, mode, ec);
-}
-
-void LegacyDatabase::forceClose()
-{
-    ExceptionCodeWithMessage ec;
-    for (auto&amp; transaction : m_transactions.values())
-        transaction-&gt;abort(ec);
-    this-&gt;close();
-}
-
-void LegacyDatabase::close()
-{
-    LOG(StorageAPI, &quot;LegacyDatabase::close&quot;);
-    if (m_closePending)
-        return;
-
-    m_closePending = true;
-
-    if (m_transactions.isEmpty())
-        closeConnection();
-}
-
-void LegacyDatabase::closeConnection()
-{
-    ASSERT(m_closePending);
-    ASSERT(m_transactions.isEmpty());
-
-    // Closing may result in deallocating the last transaction, which could result in deleting
-    // this LegacyDatabase. We need the deallocation to happen after we are through.
-    Ref&lt;LegacyDatabase&gt; protect(*this);
-
-    m_backend-&gt;close(m_databaseCallbacks);
-
-    if (m_contextStopped || !scriptExecutionContext())
-        return;
-
-    EventQueue&amp; eventQueue = scriptExecutionContext()-&gt;eventQueue();
-    // Remove any pending versionchange events scheduled to fire on this
-    // connection. They would have been scheduled by the backend when another
-    // connection called setVersion, but the frontend connection is being
-    // closed before they could fire.
-    for (auto&amp; event : m_enqueuedEvents) {
-        bool removed = eventQueue.cancelEvent(event);
-        ASSERT_UNUSED(removed, removed);
-    }
-
-    m_isClosed = true;
-}
-
-void LegacyDatabase::onVersionChange(uint64_t oldVersion, uint64_t newVersion)
-{
-    LOG(StorageAPI, &quot;LegacyDatabase::onVersionChange&quot;);
-    if (m_contextStopped || !scriptExecutionContext())
-        return;
-
-    if (m_closePending)
-        return;
-
-    ASSERT(newVersion != IDBDatabaseMetadata::NoIntVersion);
-    enqueueEvent(LegacyVersionChangeEvent::create(oldVersion, newVersion, eventNames().versionchangeEvent));
-}
-
-void LegacyDatabase::enqueueEvent(Ref&lt;Event&gt;&amp;&amp; event)
-{
-    ASSERT(!m_contextStopped);
-    ASSERT(!m_isClosed);
-    ASSERT(scriptExecutionContext());
-    event-&gt;setTarget(this);
-    scriptExecutionContext()-&gt;eventQueue().enqueueEvent(event.copyRef());
-    m_enqueuedEvents.append(WTFMove(event));
-}
-
-bool LegacyDatabase::dispatchEvent(Event&amp; event)
-{
-    LOG(StorageAPI, &quot;LegacyDatabase::dispatchEvent&quot;);
-    ASSERT(event.type() == eventNames().versionchangeEvent);
-    for (size_t i = 0; i &lt; m_enqueuedEvents.size(); ++i) {
-        if (m_enqueuedEvents[i].ptr() == &amp;event)
-            m_enqueuedEvents.remove(i);
-    }
-    return EventTarget::dispatchEvent(event);
-}
-
-int64_t LegacyDatabase::findObjectStoreId(const String&amp; name) const
-{
-    for (auto&amp; objectStore : m_metadata.objectStores) {
-        if (objectStore.value.name == name) {
-            ASSERT(objectStore.key != IDBObjectStoreMetadata::InvalidId);
-            return objectStore.key;
-        }
-    }
-    return IDBObjectStoreMetadata::InvalidId;
-}
-
-bool LegacyDatabase::hasPendingActivity() const
-{
-    // The script wrapper must not be collected before the object is closed or
-    // we can't fire a &quot;versionchange&quot; event to let script manually close the connection.
-    return !m_closePending &amp;&amp; hasEventListeners() &amp;&amp; !m_contextStopped;
-}
-
-void LegacyDatabase::stop()
-{
-    // Stop fires at a deterministic time, so we need to call close in it.
-    close();
-
-    m_contextStopped = true;
-}
-
-const char* LegacyDatabase::activeDOMObjectName() const
-{
-    return &quot;LegacyDatabase&quot;;
-}
-
-bool LegacyDatabase::canSuspendForDocumentSuspension() const
-{
-    return m_isClosed;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyDatabaseh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyDatabase.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyDatabase.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyDatabase.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,142 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef LegacyDatabase_h
-#define LegacyDatabase_h
-
-#include &quot;ActiveDOMObject.h&quot;
-#include &quot;DOMStringList.h&quot;
-#include &quot;Dictionary.h&quot;
-#include &quot;Event.h&quot;
-#include &quot;EventTarget.h&quot;
-#include &quot;IDBDatabase.h&quot;
-#include &quot;IDBDatabaseCallbacks.h&quot;
-#include &quot;IDBDatabaseMetadata.h&quot;
-#include &quot;IDBObjectStore.h&quot;
-#include &quot;IndexedDB.h&quot;
-#include &quot;LegacyTransaction.h&quot;
-#include &quot;ScriptWrappable.h&quot;
-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/RefPtr.h&gt;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-class LegacyTransaction;
-class ScriptExecutionContext;
-
-typedef int ExceptionCode;
-
-class LegacyDatabase final : public IDBDatabase {
-public:
-    static Ref&lt;LegacyDatabase&gt; create(ScriptExecutionContext*, PassRefPtr&lt;IDBDatabaseBackend&gt;, PassRefPtr&lt;IDBDatabaseCallbacks&gt;);
-    ~LegacyDatabase();
-
-    void setMetadata(const IDBDatabaseMetadata&amp; metadata) { m_metadata = metadata; }
-    void transactionCreated(LegacyTransaction*);
-    void transactionFinished(LegacyTransaction*);
-
-    // Implement the IDL
-    virtual const String name() const override final { return m_metadata.name; }
-    virtual uint64_t version() const override final;
-    virtual RefPtr&lt;DOMStringList&gt; objectStoreNames() const override final;
-
-    virtual RefPtr&lt;IDBObjectStore&gt; createObjectStore(const String&amp; name, const Dictionary&amp;, ExceptionCodeWithMessage&amp;) override final;
-    virtual RefPtr&lt;IDBObjectStore&gt; createObjectStore(const String&amp; name, const IDBKeyPath&amp;, bool autoIncrement, ExceptionCodeWithMessage&amp;) override final;
-    virtual RefPtr&lt;IDBTransaction&gt; transaction(ScriptExecutionContext*, const Vector&lt;String&gt;&amp;, const String&amp; mode, ExceptionCodeWithMessage&amp;) override final;
-    virtual RefPtr&lt;IDBTransaction&gt; transaction(ScriptExecutionContext*, const String&amp;, const String&amp; mode, ExceptionCodeWithMessage&amp;) override final;
-    virtual void deleteObjectStore(const String&amp; name, ExceptionCodeWithMessage&amp;) override final;
-    virtual void close() override final;
-
-    // IDBDatabaseCallbacks
-    virtual void onVersionChange(uint64_t oldVersion, uint64_t newVersion);
-    virtual void onAbort(int64_t, PassRefPtr&lt;IDBDatabaseError&gt;);
-    virtual void onComplete(int64_t);
-
-    // EventTarget
-    virtual EventTargetInterface eventTargetInterface() const override final { return IDBDatabaseEventTargetInterfaceType; }
-    virtual ScriptExecutionContext* scriptExecutionContext() const override final { return ActiveDOMObject::scriptExecutionContext(); }
-
-    bool isClosePending() const { return m_closePending; }
-    void forceClose();
-    const IDBDatabaseMetadata metadata() const { return m_metadata; }
-    void enqueueEvent(Ref&lt;Event&gt;&amp;&amp;);
-
-    using EventTarget::dispatchEvent;
-    virtual bool dispatchEvent(Event&amp;) override;
-
-    int64_t findObjectStoreId(const String&amp; name) const;
-    bool containsObjectStore(const String&amp; name) const
-    {
-        return findObjectStoreId(name) != IDBObjectStoreMetadata::InvalidId;
-    }
-
-    IDBDatabaseBackend* backend() const { return m_backend.get(); }
-
-    static int64_t nextTransactionId();
-
-    // ActiveDOMObject API.
-    bool hasPendingActivity() const override;
-
-private:
-    LegacyDatabase(ScriptExecutionContext*, PassRefPtr&lt;IDBDatabaseBackend&gt;, PassRefPtr&lt;IDBDatabaseCallbacks&gt;);
-
-    PassRefPtr&lt;IDBTransaction&gt; transaction(ScriptExecutionContext* context, PassRefPtr&lt;DOMStringList&gt; scope, const String&amp; mode, ExceptionCodeWithMessage&amp; ec) { return transaction(context, *scope, mode, ec); }
-
-    // ActiveDOMObject API.
-    void stop() override;
-    const char* activeDOMObjectName() const override;
-    bool canSuspendForDocumentSuspension() const override;
-
-    // EventTarget
-    virtual void refEventTarget() override final { ref(); }
-    virtual void derefEventTarget() override final { deref(); }
-
-    void closeConnection();
-
-    IDBDatabaseMetadata m_metadata;
-    RefPtr&lt;IDBDatabaseBackend&gt; m_backend;
-    RefPtr&lt;LegacyTransaction&gt; m_versionChangeTransaction;
-    typedef HashMap&lt;int64_t, LegacyTransaction*&gt; TransactionMap;
-    TransactionMap m_transactions;
-
-    bool m_closePending;
-    bool m_isClosed;
-    bool m_contextStopped;
-
-    // Keep track of the versionchange events waiting to be fired on this
-    // database so that we can cancel them if the database closes.
-    Vector&lt;Ref&lt;Event&gt;&gt; m_enqueuedEvents;
-
-    RefPtr&lt;IDBDatabaseCallbacks&gt; m_databaseCallbacks;
-};
-
-} // namespace WebCore
-
-#endif
-
-#endif // LegacyDatabase_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyFactorycpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyFactory.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyFactory.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyFactory.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,168 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- * 3.  Neither the name of Apple Inc. (&quot;Apple&quot;) nor the names of
- *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;LegacyFactory.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;Document.h&quot;
-#include &quot;ExceptionCode.h&quot;
-#include &quot;Frame.h&quot;
-#include &quot;IDBBindingUtilities.h&quot;
-#include &quot;IDBDatabaseCallbacksImpl.h&quot;
-#include &quot;IDBDatabaseException.h&quot;
-#include &quot;IDBFactoryBackendInterface.h&quot;
-#include &quot;IDBKey.h&quot;
-#include &quot;IDBKeyRange.h&quot;
-#include &quot;LegacyAny.h&quot;
-#include &quot;LegacyDatabase.h&quot;
-#include &quot;LegacyOpenDBRequest.h&quot;
-#include &quot;Logging.h&quot;
-#include &quot;Page.h&quot;
-#include &quot;PageGroup.h&quot;
-#include &quot;SchemeRegistry.h&quot;
-#include &quot;SecurityOrigin.h&quot;
-#include &quot;WorkerGlobalScope.h&quot;
-#include &quot;WorkerLoaderProxy.h&quot;
-#include &quot;WorkerThread.h&quot;
-
-namespace WebCore {
-
-LegacyFactory::LegacyFactory(IDBFactoryBackendInterface* factory)
-    : m_backend(factory)
-{
-    // We pass a reference to this object before it can be adopted.
-    relaxAdoptionRequirement();
-}
-
-LegacyFactory::~LegacyFactory()
-{
-}
-
-static bool isContextValid(ScriptExecutionContext* context)
-{
-    ASSERT(is&lt;Document&gt;(*context) || context-&gt;isWorkerGlobalScope());
-    if (is&lt;Document&gt;(*context)) {
-        Document&amp; document = downcast&lt;Document&gt;(*context);
-        return document.frame() &amp;&amp; document.page() &amp;&amp; (!document.page()-&gt;usesEphemeralSession() || SchemeRegistry::allowsDatabaseAccessInPrivateBrowsing(document.securityOrigin()-&gt;protocol()));
-    }
-    return true;
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyFactory::getDatabaseNames(ScriptExecutionContext* context, ExceptionCode&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyFactory::getDatabaseNames&quot;);
-    if (!isContextValid(context))
-        return 0;
-    if (!context-&gt;securityOrigin()-&gt;canAccessDatabase(context-&gt;topOrigin())) {
-        ec = SECURITY_ERR;
-        return 0;
-    }
-
-    RefPtr&lt;LegacyRequest&gt; request = LegacyRequest::create(context, LegacyAny::create(this), 0);
-    m_backend-&gt;getDatabaseNames(request, *(context-&gt;securityOrigin()), *(context-&gt;topOrigin()), context);
-    return request;
-}
-
-RefPtr&lt;IDBOpenDBRequest&gt; LegacyFactory::open(ScriptExecutionContext* context, const String&amp; name, ExceptionCode&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyFactory::open&quot;);
-    return openInternal(context, name, 0, IndexedDB::VersionNullness::Null, ec);
-}
-
-RefPtr&lt;IDBOpenDBRequest&gt; LegacyFactory::open(ScriptExecutionContext* context, const String&amp; name, unsigned long long version, ExceptionCode&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyFactory::open&quot;);
-    if (!version) {
-        ec = TypeError;
-        return 0;
-    }
-    return openInternal(context, name, version, IndexedDB::VersionNullness::NonNull, ec);
-}
-
-PassRefPtr&lt;IDBOpenDBRequest&gt; LegacyFactory::openInternal(ScriptExecutionContext* context, const String&amp; name, uint64_t version, IndexedDB::VersionNullness versionNullness, ExceptionCode&amp; ec)
-{
-    ASSERT(version &gt;= 1 || versionNullness == IndexedDB::VersionNullness::Null);
-    if (name.isNull()) {
-        ec = TypeError;
-        return 0;
-    }
-    if (!isContextValid(context))
-        return 0;
-    if (!context-&gt;securityOrigin()-&gt;canAccessDatabase(context-&gt;topOrigin())) {
-        ec = SECURITY_ERR;
-        return 0;
-    }
-
-    RefPtr&lt;IDBDatabaseCallbacks&gt; databaseCallbacks = IDBDatabaseCallbacksImpl::create();
-    int64_t transactionId = LegacyDatabase::nextTransactionId();
-    RefPtr&lt;LegacyOpenDBRequest&gt; request = LegacyOpenDBRequest::create(context, databaseCallbacks, transactionId, version, versionNullness);
-    m_backend-&gt;open(name, version, transactionId, request, databaseCallbacks, *(context-&gt;securityOrigin()), *(context-&gt;topOrigin()));
-    return request;
-}
-
-RefPtr&lt;IDBOpenDBRequest&gt; LegacyFactory::deleteDatabase(ScriptExecutionContext* context, const String&amp; name, ExceptionCode&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyFactory::deleteDatabase&quot;);
-    if (name.isNull()) {
-        ec = TypeError;
-        return 0;
-    }
-    if (!isContextValid(context))
-        return 0;
-    if (!context-&gt;securityOrigin()-&gt;canAccessDatabase(context-&gt;topOrigin())) {
-        ec = SECURITY_ERR;
-        return 0;
-    }
-
-    RefPtr&lt;LegacyOpenDBRequest&gt; request = LegacyOpenDBRequest::create(context, 0, 0, 0, IndexedDB::VersionNullness::Null);
-    m_backend-&gt;deleteDatabase(name, *context-&gt;securityOrigin(), *context-&gt;topOrigin(), request, context);
-    return request;
-}
-
-short LegacyFactory::cmp(ScriptExecutionContext* context, const Deprecated::ScriptValue&amp; firstValue, const Deprecated::ScriptValue&amp; secondValue, ExceptionCodeWithMessage&amp; ec)
-{
-    DOMRequestState requestState(context);
-    RefPtr&lt;IDBKey&gt; first = scriptValueToIDBKey(&amp;requestState, firstValue);
-    RefPtr&lt;IDBKey&gt; second = scriptValueToIDBKey(&amp;requestState, secondValue);
-
-    ASSERT(first);
-    ASSERT(second);
-
-    if (!first-&gt;isValid() || !second-&gt;isValid()) {
-        ec.code = IDBDatabaseException::DataError;
-        return 0;
-    }
-
-    return static_cast&lt;short&gt;(first-&gt;compare(second.get()));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyFactoryh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyFactory.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyFactory.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyFactory.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,84 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- * 3.  Neither the name of Apple Inc. (&quot;Apple&quot;) nor the names of
- *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef LegacyFactory_h
-#define LegacyFactory_h
-
-#include &quot;IDBFactory.h&quot;
-#include &quot;IDBOpenDBRequest.h&quot;
-#include &quot;ScriptWrappable.h&quot;
-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/RefPtr.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-class IDBKey;
-class IDBKeyRange;
-class IDBFactoryBackendInterface;
-class ScriptExecutionContext;
-
-typedef int ExceptionCode;
-
-class LegacyFactory : public ScriptWrappable, public IDBFactory {
-public:
-    static PassRefPtr&lt;LegacyFactory&gt; create(IDBFactoryBackendInterface* factory)
-    {
-        // FIXME: While the feature is under development we'll handle a null factory backend here,
-        // returning null, so javascript can't try to use the feature.
-        // Once the feature is fully functional we should remove the null factory backend.
-        return factory ? adoptRef(new LegacyFactory(factory)) : nullptr;
-    }
-    ~LegacyFactory();
-
-    // FIXME: getDatabaseNames is no longer a web-facing API, and should be removed from LegacyFactory.
-    // The Web Inspector currently uses this to enumerate the list of databases, but is more complicated as a result.
-    // We should provide a simpler API to the Web Inspector then remove getDatabaseNames.
-    virtual RefPtr&lt;IDBRequest&gt; getDatabaseNames(ScriptExecutionContext*, ExceptionCode&amp;) override;
-
-    virtual RefPtr&lt;IDBOpenDBRequest&gt; open(ScriptExecutionContext*, const String&amp; name, ExceptionCode&amp;) override;
-    virtual RefPtr&lt;IDBOpenDBRequest&gt; open(ScriptExecutionContext*, const String&amp; name, unsigned long long version, ExceptionCode&amp;) override;
-    virtual RefPtr&lt;IDBOpenDBRequest&gt; deleteDatabase(ScriptExecutionContext*, const String&amp; name, ExceptionCode&amp;) override;
-
-    short cmp(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; first, const Deprecated::ScriptValue&amp; second, ExceptionCodeWithMessage&amp;) override;
-
-private:
-    LegacyFactory(IDBFactoryBackendInterface*);
-
-    PassRefPtr&lt;IDBOpenDBRequest&gt; openInternal(ScriptExecutionContext*, const String&amp; name, uint64_t version, IndexedDB::VersionNullness, ExceptionCode&amp;);
-
-    RefPtr&lt;IDBFactoryBackendInterface&gt; m_backend;
-};
-
-} // namespace WebCore
-
-#endif
-
-#endif // LegacyFactory_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyIndexcpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyIndex.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyIndex.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyIndex.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,223 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;LegacyIndex.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;IDBDatabaseException.h&quot;
-#include &quot;IDBKey.h&quot;
-#include &quot;IDBKeyRange.h&quot;
-#include &quot;IDBObjectStore.h&quot;
-#include &quot;IDBRequest.h&quot;
-#include &quot;IDBTransaction.h&quot;
-#include &quot;Logging.h&quot;
-#include &quot;ScriptExecutionContext.h&quot;
-
-namespace WebCore {
-
-LegacyIndex::LegacyIndex(const IDBIndexMetadata&amp; metadata, LegacyObjectStore* objectStore, LegacyTransaction* transaction)
-    : m_metadata(metadata)
-    , m_objectStore(objectStore)
-    , m_transaction(transaction)
-    , m_deleted(false)
-{
-    ASSERT(m_objectStore);
-    ASSERT(m_transaction);
-    ASSERT(m_metadata.id != IDBIndexMetadata::InvalidId);
-}
-
-LegacyIndex::~LegacyIndex()
-{
-}
-
-void LegacyIndex::ref()
-{
-    ++m_refCount;
-}
-
-void LegacyIndex::deref()
-{
-    if (--m_refCount)
-        return;
-
-    delete this;
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyIndex::openCursor(ScriptExecutionContext* context, IDBKeyRange* keyRange, const String&amp; directionString, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyIndex::openCursor&quot;);
-    if (m_deleted) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-    if (!m_transaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return 0;
-    }
-    IndexedDB::CursorDirection direction = IDBCursor::stringToDirection(directionString, ec.code);
-    if (ec.code)
-        return 0;
-
-    RefPtr&lt;LegacyRequest&gt; request = LegacyRequest::create(context, LegacyAny::create(this), m_transaction.get());
-    request-&gt;setCursorDetails(IndexedDB::CursorType::KeyAndValue, direction);
-    backendDB()-&gt;openCursor(m_transaction-&gt;id(), m_objectStore-&gt;id(), m_metadata.id, keyRange, direction, false, IDBDatabaseBackend::NormalTask, request);
-    return request;
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyIndex::openCursor(ScriptExecutionContext* context, const Deprecated::ScriptValue&amp; key, const String&amp; direction, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyIndex::openCursor&quot;);
-    RefPtr&lt;IDBKeyRange&gt; keyRange = IDBKeyRange::only(context, key, ec.code);
-    if (ec.code)
-        return 0;
-    return openCursor(context, keyRange.get(), direction, ec);
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyIndex::count(ScriptExecutionContext* context, IDBKeyRange* keyRange, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyIndex::count&quot;);
-    if (m_deleted) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-    if (!m_transaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return 0;
-    }
-    RefPtr&lt;LegacyRequest&gt; request = LegacyRequest::create(context, LegacyAny::create(this), m_transaction.get());
-    backendDB()-&gt;count(m_transaction-&gt;id(), m_objectStore-&gt;id(), m_metadata.id, keyRange, request);
-    return request;
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyIndex::count(ScriptExecutionContext* context, const Deprecated::ScriptValue&amp; key, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyIndex::count&quot;);
-    RefPtr&lt;IDBKeyRange&gt; keyRange = IDBKeyRange::only(context, key, ec.code);
-    if (ec.code)
-        return 0;
-    return count(context, keyRange.get(), ec);
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyIndex::openKeyCursor(ScriptExecutionContext* context, IDBKeyRange* keyRange, const String&amp; directionString, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyIndex::openKeyCursor&quot;);
-    if (m_deleted) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-    if (!m_transaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return 0;
-    }
-    IndexedDB::CursorDirection direction = IDBCursor::stringToDirection(directionString, ec.code);
-    if (ec.code)
-        return 0;
-
-    RefPtr&lt;LegacyRequest&gt; request = LegacyRequest::create(context, LegacyAny::create(this), m_transaction.get());
-    request-&gt;setCursorDetails(IndexedDB::CursorType::KeyOnly, direction);
-    backendDB()-&gt;openCursor(m_transaction-&gt;id(), m_objectStore-&gt;id(), m_metadata.id, keyRange, direction, true, IDBDatabaseBackend::NormalTask, request);
-    return request;
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyIndex::openKeyCursor(ScriptExecutionContext* context, const Deprecated::ScriptValue&amp; key, const String&amp; direction, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyIndex::openKeyCursor&quot;);
-    RefPtr&lt;IDBKeyRange&gt; keyRange = IDBKeyRange::only(context, key, ec.code);
-    if (ec.code)
-        return 0;
-    return openKeyCursor(context, keyRange.get(), direction, ec);
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyIndex::get(ScriptExecutionContext* context, const Deprecated::ScriptValue&amp; key, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyIndex::get&quot;);
-    RefPtr&lt;IDBKeyRange&gt; keyRange = IDBKeyRange::only(context, key, ec.code);
-    if (ec.code)
-        return 0;
-    return get(context, keyRange.get(), ec);
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyIndex::get(ScriptExecutionContext* context, IDBKeyRange* keyRange, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyIndex::get&quot;);
-    if (m_deleted) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-    if (!m_transaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return 0;
-    }
-    if (!keyRange) {
-        ec.code = IDBDatabaseException::DataError;
-        return 0;
-    }
-
-    RefPtr&lt;LegacyRequest&gt; request = LegacyRequest::create(context, LegacyAny::create(this), m_transaction.get());
-    backendDB()-&gt;get(m_transaction-&gt;id(), m_objectStore-&gt;id(), m_metadata.id, keyRange, false, request);
-    return request;
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyIndex::getKey(ScriptExecutionContext* context, const Deprecated::ScriptValue&amp; key, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyIndex::getKey&quot;);
-    RefPtr&lt;IDBKeyRange&gt; keyRange = IDBKeyRange::only(context, key, ec.code);
-    if (ec.code)
-        return 0;
-
-    return getKey(context, keyRange.get(), ec);
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyIndex::getKey(ScriptExecutionContext* context, IDBKeyRange* keyRange, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyIndex::getKey&quot;);
-    if (m_deleted) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-    if (!m_transaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return 0;
-    }
-    if (!keyRange) {
-        ec.code = IDBDatabaseException::DataError;
-        return 0;
-    }
-
-    RefPtr&lt;LegacyRequest&gt; request = LegacyRequest::create(context, LegacyAny::create(this), m_transaction.get());
-    backendDB()-&gt;get(m_transaction-&gt;id(), m_objectStore-&gt;id(), m_metadata.id, keyRange, true, request);
-    return request;
-}
-
-IDBDatabaseBackend* LegacyIndex::backendDB() const
-{
-    return m_transaction-&gt;backendDB();
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyIndexh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyIndex.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyIndex.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyIndex.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,110 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef LegacyIndex_h
-#define LegacyIndex_h
-
-#include &quot;IDBCursor.h&quot;
-#include &quot;IDBDatabase.h&quot;
-#include &quot;IDBDatabaseMetadata.h&quot;
-#include &quot;IDBKeyPath.h&quot;
-#include &quot;IDBKeyRange.h&quot;
-#include &quot;IDBRequest.h&quot;
-#include &quot;LegacyAny.h&quot;
-#include &quot;LegacyObjectStore.h&quot;
-#include &quot;LegacyRequest.h&quot;
-#include &quot;LegacyTransaction.h&quot;
-#include &quot;ScriptWrappable.h&quot;
-#include &lt;wtf/Forward.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-class IDBObjectStore;
-
-class LegacyIndex : public ScriptWrappable, public IDBIndex {
-public:
-    static Ref&lt;LegacyIndex&gt; create(const IDBIndexMetadata&amp; metadata, LegacyObjectStore* objectStore, LegacyTransaction* transaction)
-    {
-        return adoptRef(*new LegacyIndex(metadata, objectStore, transaction));
-    }
-    ~LegacyIndex();
-
-    // Implement the IDL
-    virtual const String&amp; name() const override final { return m_metadata.name; }
-    virtual RefPtr&lt;IDBObjectStore&gt; objectStore() override final { return m_objectStore; }
-    LegacyObjectStore* legacyObjectStore() const { return m_objectStore.get(); }
-    virtual RefPtr&lt;IDBAny&gt; keyPathAny() const override final { return LegacyAny::create(m_metadata.keyPath); }
-    virtual const IDBKeyPath&amp; keyPath() const override final { return m_metadata.keyPath; }
-    virtual bool unique() const override final { return m_metadata.unique; }
-    virtual bool multiEntry() const override final { return m_metadata.multiEntry; }
-    int64_t id() const { return m_metadata.id; }
-
-    // FIXME: Try to modify the code generator so this is unneeded.
-    virtual RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext* context, ExceptionCodeWithMessage&amp; ec) override final { return openCursor(context, static_cast&lt;IDBKeyRange*&gt;(nullptr), ec); }
-    virtual RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext* context, IDBKeyRange* keyRange, ExceptionCodeWithMessage&amp; ec) override final { return openCursor(context, keyRange, IDBCursor::directionNext(), ec); }
-    virtual RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext* context, const Deprecated::ScriptValue&amp; key, ExceptionCodeWithMessage&amp; ec) override final { return openCursor(context, key, IDBCursor::directionNext(), ec); }
-    virtual RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext*, IDBKeyRange*, const String&amp; direction, ExceptionCodeWithMessage&amp;) override final;
-    virtual RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; key, const String&amp; direction, ExceptionCodeWithMessage&amp;) override final;
-    virtual RefPtr&lt;IDBRequest&gt; count(ScriptExecutionContext* context, ExceptionCodeWithMessage&amp; ec) override final { return count(context, static_cast&lt;IDBKeyRange*&gt;(nullptr), ec); }
-    virtual RefPtr&lt;IDBRequest&gt; count(ScriptExecutionContext*, IDBKeyRange*, ExceptionCodeWithMessage&amp;) override final;
-    virtual RefPtr&lt;IDBRequest&gt; count(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; key, ExceptionCodeWithMessage&amp;) override final;
-
-    virtual RefPtr&lt;IDBRequest&gt; openKeyCursor(ScriptExecutionContext* context, ExceptionCodeWithMessage&amp; ec) override final { return openKeyCursor(context, static_cast&lt;IDBKeyRange*&gt;(nullptr), ec); }
-    virtual RefPtr&lt;IDBRequest&gt; openKeyCursor(ScriptExecutionContext* context, IDBKeyRange* keyRange, ExceptionCodeWithMessage&amp; ec) override final { return openKeyCursor(context, keyRange, IDBCursor::directionNext(), ec); }
-    virtual RefPtr&lt;IDBRequest&gt; openKeyCursor(ScriptExecutionContext* context, const Deprecated::ScriptValue&amp; key, ExceptionCodeWithMessage&amp; ec) override final { return openKeyCursor(context, key, IDBCursor::directionNext(), ec); }
-    virtual RefPtr&lt;IDBRequest&gt; openKeyCursor(ScriptExecutionContext*, IDBKeyRange*, const String&amp; direction, ExceptionCodeWithMessage&amp;) override final;
-    virtual RefPtr&lt;IDBRequest&gt; openKeyCursor(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; key, const String&amp; direction, ExceptionCodeWithMessage&amp;) override final;
-
-    virtual RefPtr&lt;IDBRequest&gt; get(ScriptExecutionContext*, IDBKeyRange*, ExceptionCodeWithMessage&amp;) override final;
-    virtual RefPtr&lt;IDBRequest&gt; get(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; key, ExceptionCodeWithMessage&amp;) override final;
-    virtual RefPtr&lt;IDBRequest&gt; getKey(ScriptExecutionContext*, IDBKeyRange*, ExceptionCodeWithMessage&amp;) override final;
-    virtual RefPtr&lt;IDBRequest&gt; getKey(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; key, ExceptionCodeWithMessage&amp;) override final;
-
-    void markDeleted() { m_deleted = true; }
-
-    IDBDatabaseBackend* backendDB() const;
-
-    virtual void ref() override;
-    virtual void deref() override;
-
-private:
-    LegacyIndex(const IDBIndexMetadata&amp;, LegacyObjectStore*, LegacyTransaction*);
-
-    IDBIndexMetadata m_metadata;
-    RefPtr&lt;LegacyObjectStore&gt; m_objectStore;
-    RefPtr&lt;LegacyTransaction&gt; m_transaction;
-    bool m_deleted;
-
-    unsigned m_refCount { 1 };
-};
-
-} // namespace WebCore
-
-#endif
-
-#endif // LegacyIndex_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyObjectStorecpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyObjectStore.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyObjectStore.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyObjectStore.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,582 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;LegacyObjectStore.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;DOMStringList.h&quot;
-#include &quot;IDBAny.h&quot;
-#include &quot;IDBBindingUtilities.h&quot;
-#include &quot;IDBCursorWithValue.h&quot;
-#include &quot;IDBDatabase.h&quot;
-#include &quot;IDBDatabaseException.h&quot;
-#include &quot;IDBKey.h&quot;
-#include &quot;IDBKeyData.h&quot;
-#include &quot;IDBKeyPath.h&quot;
-#include &quot;IDBKeyRange.h&quot;
-#include &quot;IDBTransaction.h&quot;
-#include &quot;LegacyCursorWithValue.h&quot;
-#include &quot;LegacyIndex.h&quot;
-#include &quot;Logging.h&quot;
-#include &quot;ScriptExecutionContext.h&quot;
-#include &quot;SerializedScriptValue.h&quot;
-#include &quot;SharedBuffer.h&quot;
-
-namespace WebCore {
-
-LegacyObjectStore::LegacyObjectStore(const IDBObjectStoreMetadata&amp; metadata, LegacyTransaction* transaction)
-    : m_metadata(metadata)
-    , m_transaction(transaction)
-    , m_deleted(false)
-{
-    ASSERT(m_transaction);
-    // We pass a reference to this object before it can be adopted.
-    relaxAdoptionRequirement();
-}
-
-RefPtr&lt;DOMStringList&gt; LegacyObjectStore::indexNames() const
-{
-    LOG(StorageAPI, &quot;LegacyObjectStore::indexNames&quot;);
-    RefPtr&lt;DOMStringList&gt; indexNames = DOMStringList::create();
-    for (auto&amp; index : m_metadata.indexes.values())
-        indexNames-&gt;append(index.name);
-    indexNames-&gt;sort();
-    return indexNames.release();
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::get(ScriptExecutionContext* context, IDBKeyRange* keyRange, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyObjectStore::get&quot;);
-    if (m_deleted) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-    if (!keyRange) {
-        ec.code = IDBDatabaseException::DataError;
-        return 0;
-    }
-    if (!m_transaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return 0;
-    }
-    RefPtr&lt;LegacyRequest&gt; request = LegacyRequest::create(context, LegacyAny::create(this), m_transaction.get());
-    backendDB()-&gt;get(m_transaction-&gt;id(), id(), IDBIndexMetadata::InvalidId, keyRange, false, request);
-    return request.release();
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::get(ScriptExecutionContext* context, const Deprecated::ScriptValue&amp; key, ExceptionCodeWithMessage&amp; ec)
-{
-    RefPtr&lt;IDBKeyRange&gt; keyRange = IDBKeyRange::only(context, key, ec.code);
-    if (ec.code)
-        return 0;
-    return get(context, keyRange.get(), ec);
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::add(JSC::ExecState&amp; state, JSC::JSValue value, JSC::JSValue key, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyObjectStore::add&quot;);
-    auto deprecatedValue = Deprecated::ScriptValue(state.vm(), value);
-    auto dKey = Deprecated::ScriptValue(state.vm(), key);
-    return put(IDBDatabaseBackend::AddOnly, LegacyAny::create(this), state, deprecatedValue, dKey, ec);
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::add(JSC::ExecState&amp; state, JSC::JSValue value, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyObjectStore::add&quot;);
-    auto deprecatedValue = Deprecated::ScriptValue(state.vm(), value);
-    return put(IDBDatabaseBackend::AddOnly, LegacyAny::create(this), state, deprecatedValue, static_cast&lt;IDBKey*&gt;(nullptr), ec);
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::put(JSC::ExecState&amp; state, JSC::JSValue value, JSC::JSValue key, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyObjectStore::put&quot;);
-    auto deprecatedValue = Deprecated::ScriptValue(state.vm(), value);
-    return put(IDBDatabaseBackend::AddOrUpdate, LegacyAny::create(this), state, deprecatedValue, Deprecated::ScriptValue(state.vm(), key), ec);
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::put(JSC::ExecState&amp; state, JSC::JSValue value, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyObjectStore::put&quot;);
-    auto deprecatedValue = Deprecated::ScriptValue(state.vm(), value);
-    return put(IDBDatabaseBackend::AddOrUpdate, LegacyAny::create(this), state, deprecatedValue, static_cast&lt;IDBKey*&gt;(nullptr), ec);
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::put(IDBDatabaseBackend::PutMode putMode, RefPtr&lt;LegacyAny&gt; source, JSC::ExecState&amp; state, Deprecated::ScriptValue&amp; value, const Deprecated::ScriptValue&amp; keyValue, ExceptionCodeWithMessage&amp; ec)
-{
-    ScriptExecutionContext* context = scriptExecutionContextFromExecState(&amp;state);
-    DOMRequestState requestState(context);
-    RefPtr&lt;IDBKey&gt; key = scriptValueToIDBKey(&amp;requestState, keyValue);
-    return put(putMode, source, state, value, key.release(), ec);
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::put(IDBDatabaseBackend::PutMode putMode, RefPtr&lt;LegacyAny&gt; source, JSC::ExecState&amp; state, Deprecated::ScriptValue&amp; value, RefPtr&lt;IDBKey&gt; prpKey, ExceptionCodeWithMessage&amp; ec)
-{
-    RefPtr&lt;IDBKey&gt; key = prpKey;
-    if (m_deleted) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return nullptr;
-    }
-    if (!m_transaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return nullptr;
-    }
-    if (m_transaction-&gt;isReadOnly()) {
-        ec.code = IDBDatabaseException::ReadOnlyError;
-        return nullptr;
-    }
-
-    RefPtr&lt;SerializedScriptValue&gt; serializedValue = SerializedScriptValue::create(&amp;state, value.jsValue(), nullptr, nullptr);
-    if (state.hadException())
-        return nullptr;
-
-    if (serializedValue-&gt;hasBlobURLs()) {
-        // FIXME: Add Blob/File/FileList support
-        ec.code = IDBDatabaseException::DataCloneError;
-        return nullptr;
-    }
-
-    const IDBKeyPath&amp; keyPath = m_metadata.keyPath;
-    const bool usesInLineKeys = !keyPath.isNull();
-    const bool hasKeyGenerator = autoIncrement();
-
-    ScriptExecutionContext* context = scriptExecutionContextFromExecState(&amp;state);
-    DOMRequestState requestState(context);
-
-    if (putMode != IDBDatabaseBackend::CursorUpdate &amp;&amp; usesInLineKeys &amp;&amp; key) {
-        ec.code = IDBDatabaseException::DataError;
-        return nullptr;
-    }
-    if (!usesInLineKeys &amp;&amp; !hasKeyGenerator &amp;&amp; !key) {
-        ec.code = IDBDatabaseException::DataError;
-        return nullptr;
-    }
-    if (usesInLineKeys) {
-        RefPtr&lt;IDBKey&gt; keyPathKey = createIDBKeyFromScriptValueAndKeyPath(requestState.exec(), value, keyPath);
-        if (keyPathKey &amp;&amp; !keyPathKey-&gt;isValid()) {
-            ec.code = IDBDatabaseException::DataError;
-            return nullptr;
-        }
-        if (!hasKeyGenerator &amp;&amp; !keyPathKey) {
-            ec.code = IDBDatabaseException::DataError;
-            return nullptr;
-        }
-        if (hasKeyGenerator &amp;&amp; !keyPathKey) {
-            if (!canInjectIDBKeyIntoScriptValue(&amp;requestState, value, keyPath)) {
-                ec.code = IDBDatabaseException::DataError;
-                return nullptr;
-            }
-        }
-        if (keyPathKey)
-            key = keyPathKey;
-    }
-    if (key &amp;&amp; !key-&gt;isValid()) {
-        ec.code = IDBDatabaseException::DataError;
-        return nullptr;
-    }
-
-    Vector&lt;int64_t&gt; indexIds;
-    Vector&lt;IndexKeys&gt; indexKeys;
-    for (auto&amp; index : m_metadata.indexes) {
-        Vector&lt;IDBKeyData&gt; keyDatas;
-        generateIndexKeysForValue(requestState.exec(), index.value, value, keyDatas);
-        indexIds.append(index.key);
-
-        // FIXME: Much of the Indexed DB code needs to use IDBKeyData directly to avoid wasteful conversions like this.
-        Vector&lt;RefPtr&lt;IDBKey&gt;&gt; keys;
-        for (auto&amp; keyData : keyDatas) {
-            RefPtr&lt;IDBKey&gt; key = keyData.maybeCreateIDBKey();
-            if (key)
-                keys.append(key.release());
-        }
-        indexKeys.append(keys);
-    }
-
-    RefPtr&lt;LegacyRequest&gt; request = LegacyRequest::create(context, source, m_transaction.get());
-    Vector&lt;uint8_t&gt; valueBytes = serializedValue-&gt;toWireBytes();
-    // This is a hack to account for disagreements about whether SerializedScriptValue should deal in Vector&lt;uint8_t&gt; or Vector&lt;char&gt;.
-    // See https://lists.webkit.org/pipermail/webkit-dev/2013-February/023682.html
-    Vector&lt;char&gt;* valueBytesSigned = reinterpret_cast&lt;Vector&lt;char&gt;*&gt;(&amp;valueBytes);
-    RefPtr&lt;SharedBuffer&gt; valueBuffer = SharedBuffer::adoptVector(*valueBytesSigned);
-    backendDB()-&gt;put(m_transaction-&gt;id(), id(), valueBuffer, key.release(), static_cast&lt;IDBDatabaseBackend::PutMode&gt;(putMode), request, indexIds, indexKeys);
-    return request.release();
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::deleteFunction(ScriptExecutionContext* context, IDBKeyRange* keyRange, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyObjectStore::delete&quot;);
-    if (m_deleted) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-    if (!m_transaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return 0;
-    }
-    if (m_transaction-&gt;isReadOnly()) {
-        ec.code = IDBDatabaseException::ReadOnlyError;
-        return 0;
-    }
-    if (!keyRange) {
-        ec.code = IDBDatabaseException::DataError;
-        return 0;
-    }
-
-    RefPtr&lt;LegacyRequest&gt; request = LegacyRequest::create(context, LegacyAny::create(this), m_transaction.get());
-    backendDB()-&gt;deleteRange(m_transaction-&gt;id(), id(), keyRange, request);
-    return request.release();
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::deleteFunction(ScriptExecutionContext* context, const Deprecated::ScriptValue&amp; key, ExceptionCodeWithMessage&amp; ec)
-{
-    RefPtr&lt;IDBKeyRange&gt; keyRange = IDBKeyRange::only(context, key, ec.code);
-    if (ec.code)
-        return 0;
-    return deleteFunction(context, keyRange.get(), ec);
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::clear(ScriptExecutionContext* context, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyObjectStore::clear&quot;);
-    if (m_deleted) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-    if (!m_transaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return 0;
-    }
-    if (m_transaction-&gt;isReadOnly()) {
-        ec.code = IDBDatabaseException::ReadOnlyError;
-        return 0;
-    }
-
-    RefPtr&lt;LegacyRequest&gt; request = LegacyRequest::create(context, LegacyAny::create(this), m_transaction.get());
-    backendDB()-&gt;clearObjectStore(m_transaction-&gt;id(), id(), request);
-    return request.release();
-}
-
-namespace {
-// This class creates the index keys for a given index by extracting
-// them from the SerializedScriptValue, for all the existing values in
-// the objectStore. It only needs to be kept alive by virtue of being
-// a listener on an IDBRequest object, in the same way that JavaScript
-// cursor success handlers are kept alive.
-class IndexPopulator : public EventListener {
-public:
-    static Ref&lt;IndexPopulator&gt; create(RefPtr&lt;IDBDatabaseBackend&gt; backend, int64_t transactionId, int64_t objectStoreId, const IDBIndexMetadata&amp; indexMetadata)
-    {
-        return adoptRef(*new IndexPopulator(backend, transactionId, objectStoreId, indexMetadata));
-    }
-
-    virtual bool operator==(const EventListener&amp; other)
-    {
-        return this == &amp;other;
-    }
-
-private:
-    IndexPopulator(RefPtr&lt;IDBDatabaseBackend&gt; backend, int64_t transactionId, int64_t objectStoreId, const IDBIndexMetadata&amp; indexMetadata)
-        : EventListener(CPPEventListenerType)
-        , m_databaseBackend(backend)
-        , m_transactionId(transactionId)
-        , m_objectStoreId(objectStoreId)
-        , m_indexMetadata(indexMetadata)
-    {
-    }
-
-    virtual void handleEvent(ScriptExecutionContext*, Event* event)
-    {
-        ASSERT(event-&gt;type() == eventNames().successEvent);
-        EventTarget* target = event-&gt;target();
-        LegacyRequest* request = static_cast&lt;LegacyRequest*&gt;(target);
-
-        RefPtr&lt;LegacyAny&gt; cursorAny = request-&gt;legacyResult(ASSERT_NO_EXCEPTION);
-        RefPtr&lt;LegacyCursorWithValue&gt; cursor;
-        if (cursorAny-&gt;type() == IDBAny::Type::IDBCursorWithValue)
-            cursor = cursorAny-&gt;legacyCursorWithValue();
-
-        Vector&lt;int64_t, 1&gt; indexIds;
-        indexIds.append(m_indexMetadata.id);
-        if (cursor) {
-            ExceptionCodeWithMessage ec;
-            cursor-&gt;continueFunction(static_cast&lt;IDBKey*&gt;(nullptr), ec);
-            ASSERT(!ec.code);
-
-            RefPtr&lt;IDBKey&gt; primaryKey = cursor-&gt;idbPrimaryKey();
-            Deprecated::ScriptValue value = cursor-&gt;value();
-
-            Vector&lt;IDBKeyData&gt; indexKeyDatas;
-            generateIndexKeysForValue(request-&gt;requestState()-&gt;exec(), m_indexMetadata, value, indexKeyDatas);
-
-            Vector&lt;RefPtr&lt;IDBKey&gt;&gt; indexKeys;
-            for (auto&amp; indexKeyData : indexKeyDatas) {
-                RefPtr&lt;IDBKey&gt; key = indexKeyData.maybeCreateIDBKey();
-                if (key)
-                    indexKeys.append(key.release());
-            }
-            Vector&lt;LegacyObjectStore::IndexKeys, 1&gt; indexKeysList;
-            indexKeysList.append(indexKeys);
-
-            m_databaseBackend-&gt;setIndexKeys(m_transactionId, m_objectStoreId, primaryKey, indexIds, indexKeysList);
-        } else {
-            // Now that we are done indexing, tell the backend to go
-            // back to processing tasks of type NormalTask.
-            m_databaseBackend-&gt;setIndexesReady(m_transactionId, m_objectStoreId, indexIds);
-            m_databaseBackend = nullptr;
-        }
-
-    }
-
-    RefPtr&lt;IDBDatabaseBackend&gt; m_databaseBackend;
-    const int64_t m_transactionId;
-    const int64_t m_objectStoreId;
-    const IDBIndexMetadata m_indexMetadata;
-};
-}
-
-RefPtr&lt;IDBIndex&gt; LegacyObjectStore::createIndex(ScriptExecutionContext* context, const String&amp; name, const IDBKeyPath&amp; keyPath, const Dictionary&amp; options, ExceptionCodeWithMessage&amp; ec)
-{
-    bool unique = false;
-    options.get(&quot;unique&quot;, unique);
-
-    bool multiEntry = false;
-    options.get(&quot;multiEntry&quot;, multiEntry);
-
-    return createIndex(context, name, keyPath, unique, multiEntry, ec);
-}
-
-RefPtr&lt;IDBIndex&gt; LegacyObjectStore::createIndex(ScriptExecutionContext* context, const String&amp; name, const IDBKeyPath&amp; keyPath, bool unique, bool multiEntry, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyObjectStore::createIndex&quot;);
-    if (!m_transaction-&gt;isVersionChange() || m_deleted) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-    if (!m_transaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return 0;
-    }
-    if (!keyPath.isValid()) {
-        ec.code = IDBDatabaseException::SyntaxError;
-        return 0;
-    }
-    if (name.isNull()) {
-        ec.code = TypeError;
-        return 0;
-    }
-    if (containsIndex(name)) {
-        ec.code = IDBDatabaseException::ConstraintError;
-        return 0;
-    }
-
-    if (keyPath.type() == IndexedDB::KeyPathType::Array &amp;&amp; multiEntry) {
-        ec.code = IDBDatabaseException::InvalidAccessError;
-        return 0;
-    }
-
-    int64_t indexId = m_metadata.maxIndexId + 1;
-    backendDB()-&gt;createIndex(m_transaction-&gt;id(), id(), indexId, name, keyPath, unique, multiEntry);
-
-    ++m_metadata.maxIndexId;
-
-    IDBIndexMetadata metadata(name, indexId, keyPath, unique, multiEntry);
-    RefPtr&lt;LegacyIndex&gt; index = LegacyIndex::create(metadata, this, m_transaction.get());
-    m_indexMap.set(name, index);
-    m_metadata.indexes.set(indexId, metadata);
-
-    ASSERT(!ec.code);
-    if (ec.code)
-        return 0;
-
-    ASSERT_UNUSED(context, context);
-    return index.release();
-}
-
-RefPtr&lt;IDBIndex&gt; LegacyObjectStore::index(const String&amp; name, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyObjectStore::index&quot;);
-    if (m_deleted) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-    if (m_transaction-&gt;isFinished()) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-
-    IDBIndexMap::iterator it = m_indexMap.find(name);
-    if (it != m_indexMap.end())
-        return it-&gt;value;
-
-    int64_t indexId = findIndexId(name);
-    if (indexId == IDBIndexMetadata::InvalidId) {
-        ec.code = IDBDatabaseException::NotFoundError;
-        return 0;
-    }
-
-    const IDBIndexMetadata* indexMetadata(nullptr);
-    for (auto&amp; index : m_metadata.indexes.values()) {
-        if (index.name == name) {
-            indexMetadata = &amp;index;
-            break;
-        }
-    }
-    ASSERT(indexMetadata);
-    ASSERT(indexMetadata-&gt;id != IDBIndexMetadata::InvalidId);
-
-    RefPtr&lt;LegacyIndex&gt; index = LegacyIndex::create(*indexMetadata, this, m_transaction.get());
-    m_indexMap.set(name, index);
-    return index.release();
-}
-
-void LegacyObjectStore::deleteIndex(const String&amp; name, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyObjectStore::deleteIndex&quot;);
-    if (!m_transaction-&gt;isVersionChange() || m_deleted) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return;
-    }
-    if (!m_transaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return;
-    }
-    int64_t indexId = findIndexId(name);
-    if (indexId == IDBIndexMetadata::InvalidId) {
-        ec.code = IDBDatabaseException::NotFoundError;
-        return;
-    }
-
-    backendDB()-&gt;deleteIndex(m_transaction-&gt;id(), id(), indexId);
-
-    m_metadata.indexes.remove(indexId);
-    IDBIndexMap::iterator it = m_indexMap.find(name);
-    if (it != m_indexMap.end()) {
-        it-&gt;value-&gt;markDeleted();
-        m_indexMap.remove(name);
-    }
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::openCursor(ScriptExecutionContext* context, ExceptionCodeWithMessage&amp; ec)
-{
-    return openCursor(context, static_cast&lt;IDBKeyRange*&gt;(nullptr), ec);
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::openCursor(ScriptExecutionContext* context, IDBKeyRange* keyRange, ExceptionCodeWithMessage&amp; ec)
-{
-    return openCursor(context, keyRange, IDBCursor::directionNext(), ec);
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::openCursor(ScriptExecutionContext* context, const Deprecated::ScriptValue&amp; key, ExceptionCodeWithMessage&amp; ec)
-{
-    return openCursor(context, key, IDBCursor::directionNext(), ec);
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::openCursor(ScriptExecutionContext* context, IDBKeyRange* range, const String&amp; direction, ExceptionCodeWithMessage&amp; ec)
-{
-    return openCursor(context, range, direction, IDBDatabaseBackend::NormalTask, ec);
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::openCursor(ScriptExecutionContext* context, IDBKeyRange* range, const String&amp; directionString, IDBDatabaseBackend::TaskType taskType, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyObjectStore::openCursor&quot;);
-    if (m_deleted) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-    if (!m_transaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return 0;
-    }
-    IndexedDB::CursorDirection direction = IDBCursor::stringToDirection(directionString, ec.code);
-    if (ec.code)
-        return 0;
-
-    RefPtr&lt;LegacyRequest&gt; request = LegacyRequest::create(context, LegacyAny::create(this), m_transaction.get());
-    request-&gt;setCursorDetails(IndexedDB::CursorType::KeyAndValue, direction);
-
-    backendDB()-&gt;openCursor(m_transaction-&gt;id(), id(), IDBIndexMetadata::InvalidId, range, direction, false, static_cast&lt;IDBDatabaseBackend::TaskType&gt;(taskType), request);
-    return request.release();
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::openCursor(ScriptExecutionContext* context, const Deprecated::ScriptValue&amp; key, const String&amp; direction, ExceptionCodeWithMessage&amp; ec)
-{
-    RefPtr&lt;IDBKeyRange&gt; keyRange = IDBKeyRange::only(context, key, ec.code);
-    if (ec.code)
-        return 0;
-    return openCursor(context, keyRange.get(), direction, ec);
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::count(ScriptExecutionContext* context, IDBKeyRange* range, ExceptionCodeWithMessage&amp; ec)
-{
-    LOG(StorageAPI, &quot;LegacyObjectStore::count&quot;);
-    if (m_deleted) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-    if (!m_transaction-&gt;isActive()) {
-        ec.code = IDBDatabaseException::TransactionInactiveError;
-        return 0;
-    }
-    RefPtr&lt;LegacyRequest&gt; request = LegacyRequest::create(context, LegacyAny::create(this), m_transaction.get());
-    backendDB()-&gt;count(m_transaction-&gt;id(), id(), IDBIndexMetadata::InvalidId, range, request);
-    return request.release();
-}
-
-RefPtr&lt;IDBRequest&gt; LegacyObjectStore::count(ScriptExecutionContext* context, const Deprecated::ScriptValue&amp; key, ExceptionCodeWithMessage&amp; ec)
-{
-    RefPtr&lt;IDBKeyRange&gt; keyRange = IDBKeyRange::only(context, key, ec.code);
-    if (ec.code)
-        return 0;
-    return count(context, keyRange.get(), ec);
-}
-
-void LegacyObjectStore::transactionFinished()
-{
-    ASSERT(m_transaction-&gt;isFinished());
-
-    // Break reference cycles.
-    m_indexMap.clear();
-}
-
-int64_t LegacyObjectStore::findIndexId(const String&amp; name) const
-{
-    for (auto&amp; index : m_metadata.indexes) {
-        if (index.value.name == name) {
-            ASSERT(index.key != IDBIndexMetadata::InvalidId);
-            return index.key;
-        }
-    }
-    return IDBIndexMetadata::InvalidId;
-}
-
-IDBDatabaseBackend* LegacyObjectStore::backendDB() const
-{
-    return m_transaction-&gt;backendDB();
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyObjectStoreh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyObjectStore.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyObjectStore.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyObjectStore.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,134 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef LegacyObjectStore_h
-#define LegacyObjectStore_h
-
-#include &quot;Dictionary.h&quot;
-#include &quot;IDBCursor.h&quot;
-#include &quot;IDBDatabaseBackend.h&quot;
-#include &quot;IDBDatabaseMetadata.h&quot;
-#include &quot;IDBIndex.h&quot;
-#include &quot;IDBKey.h&quot;
-#include &quot;IDBKeyRange.h&quot;
-#include &quot;IDBRequest.h&quot;
-#include &quot;LegacyIndex.h&quot;
-#include &quot;LegacyTransaction.h&quot;
-#include &quot;ScriptWrappable.h&quot;
-#include &quot;SerializedScriptValue.h&quot;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/RefPtr.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-class DOMStringList;
-class IDBAny;
-class LegacyIndex;
-
-class LegacyObjectStore : public ScriptWrappable, public IDBObjectStore {
-public:
-    static Ref&lt;LegacyObjectStore&gt; create(const IDBObjectStoreMetadata&amp; metadata, LegacyTransaction* transaction)
-    {
-        return adoptRef(*new LegacyObjectStore(metadata, transaction));
-    }
-    ~LegacyObjectStore() { }
-
-    // Implement the IDBObjectStore IDL
-    int64_t id() const { return m_metadata.id; }
-    const String name() const { return m_metadata.name; }
-    RefPtr&lt;IDBAny&gt; keyPathAny() const { return LegacyAny::create(m_metadata.keyPath); }
-    const IDBKeyPath keyPath() const { return m_metadata.keyPath; }
-    RefPtr&lt;DOMStringList&gt; indexNames() const;
-    RefPtr&lt;IDBTransaction&gt; transaction() { return m_transaction; }
-    bool autoIncrement() const { return m_metadata.autoIncrement; }
-
-    RefPtr&lt;IDBRequest&gt; add(JSC::ExecState&amp;, JSC::JSValue, ExceptionCodeWithMessage&amp;);
-    RefPtr&lt;IDBRequest&gt; put(JSC::ExecState&amp;, JSC::JSValue, ExceptionCodeWithMessage&amp;);
-    RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext*, ExceptionCodeWithMessage&amp;);
-    RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext*, IDBKeyRange*, ExceptionCodeWithMessage&amp;);
-    RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; key, ExceptionCodeWithMessage&amp;);
-    RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext*, IDBKeyRange*, const String&amp; direction, ExceptionCodeWithMessage&amp;);
-    RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext*, IDBKeyRange*, const String&amp; direction, IDBDatabaseBackend::TaskType, ExceptionCodeWithMessage&amp;);
-    RefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; key, const String&amp; direction, ExceptionCodeWithMessage&amp;);
-
-    RefPtr&lt;IDBRequest&gt; get(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; key, ExceptionCodeWithMessage&amp;);
-    RefPtr&lt;IDBRequest&gt; get(ScriptExecutionContext*, IDBKeyRange*, ExceptionCodeWithMessage&amp;);
-    RefPtr&lt;IDBRequest&gt; add(JSC::ExecState&amp;, JSC::JSValue, JSC::JSValue key, ExceptionCodeWithMessage&amp;);
-    RefPtr&lt;IDBRequest&gt; put(JSC::ExecState&amp;, JSC::JSValue, JSC::JSValue key, ExceptionCodeWithMessage&amp;);
-    RefPtr&lt;IDBRequest&gt; put(IDBDatabaseBackend::PutMode, RefPtr&lt;LegacyAny&gt;, JSC::ExecState&amp;, Deprecated::ScriptValue&amp;, RefPtr&lt;IDBKey&gt;, ExceptionCodeWithMessage&amp;);
-    RefPtr&lt;IDBRequest&gt; put(IDBDatabaseBackend::PutMode, RefPtr&lt;LegacyAny&gt; source, JSC::ExecState&amp;, Deprecated::ScriptValue&amp;, const Deprecated::ScriptValue&amp; key, ExceptionCodeWithMessage&amp;);
-
-    RefPtr&lt;IDBRequest&gt; deleteFunction(ScriptExecutionContext*, IDBKeyRange*, ExceptionCodeWithMessage&amp;);
-    RefPtr&lt;IDBRequest&gt; deleteFunction(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; key, ExceptionCodeWithMessage&amp;);
-    RefPtr&lt;IDBRequest&gt; clear(ScriptExecutionContext*, ExceptionCodeWithMessage&amp;);
-
-    RefPtr&lt;IDBIndex&gt; createIndex(ScriptExecutionContext* context, const String&amp; name, const String&amp; keyPath, const Dictionary&amp; options, ExceptionCodeWithMessage&amp; ec) { return createIndex(context, name, IDBKeyPath(keyPath), options, ec); }
-    RefPtr&lt;IDBIndex&gt; createIndex(ScriptExecutionContext* context, const String&amp; name, const Vector&lt;String&gt;&amp; keyPath, const Dictionary&amp; options, ExceptionCodeWithMessage&amp; ec) { return createIndex(context, name, IDBKeyPath(keyPath), options, ec); }
-    RefPtr&lt;IDBIndex&gt; createIndex(ScriptExecutionContext*, const String&amp; name, const IDBKeyPath&amp;, const Dictionary&amp;, ExceptionCodeWithMessage&amp;);
-    RefPtr&lt;IDBIndex&gt; createIndex(ScriptExecutionContext*, const String&amp; name, const IDBKeyPath&amp;, bool unique, bool multiEntry, ExceptionCodeWithMessage&amp;);
-
-    RefPtr&lt;IDBIndex&gt; index(const String&amp; name, ExceptionCodeWithMessage&amp;);
-    void deleteIndex(const String&amp; name, ExceptionCodeWithMessage&amp;);
-
-    RefPtr&lt;IDBRequest&gt; count(ScriptExecutionContext* context, ExceptionCodeWithMessage&amp; ec) { return count(context, static_cast&lt;IDBKeyRange*&gt;(nullptr), ec); }
-    RefPtr&lt;IDBRequest&gt; count(ScriptExecutionContext*, IDBKeyRange*, ExceptionCodeWithMessage&amp;);
-    RefPtr&lt;IDBRequest&gt; count(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; key, ExceptionCodeWithMessage&amp;);
-
-    void markDeleted() { m_deleted = true; }
-    void transactionFinished();
-
-    IDBObjectStoreMetadata metadata() const { return m_metadata; }
-    void setMetadata(const IDBObjectStoreMetadata&amp; metadata) { m_metadata = metadata; }
-
-    typedef Vector&lt;RefPtr&lt;IDBKey&gt;&gt; IndexKeys;
-    typedef HashMap&lt;String, IndexKeys&gt; IndexKeyMap;
-
-    IDBDatabaseBackend* backendDB() const;
-
-private:
-    LegacyObjectStore(const IDBObjectStoreMetadata&amp;, LegacyTransaction*);
-
-    int64_t findIndexId(const String&amp; name) const;
-    bool containsIndex(const String&amp; name) const
-    {
-        return findIndexId(name) != IDBIndexMetadata::InvalidId;
-    }
-
-    IDBObjectStoreMetadata m_metadata;
-    RefPtr&lt;LegacyTransaction&gt; m_transaction;
-    bool m_deleted;
-
-    typedef HashMap&lt;String, RefPtr&lt;LegacyIndex&gt;&gt; IDBIndexMap;
-    IDBIndexMap m_indexMap;
-};
-
-} // namespace WebCore
-
-#endif
-
-#endif // LegacyObjectStore_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyOpenDBRequestcpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyOpenDBRequest.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyOpenDBRequest.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyOpenDBRequest.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,156 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;LegacyOpenDBRequest.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;IDBDatabaseCallbacksImpl.h&quot;
-#include &quot;IDBPendingTransactionMonitor.h&quot;
-#include &quot;IDBVersionChangeEvent.h&quot;
-#include &quot;LegacyDatabase.h&quot;
-#include &quot;LegacyVersionChangeEvent.h&quot;
-#include &quot;Logging.h&quot;
-#include &quot;ScriptExecutionContext.h&quot;
-
-namespace WebCore {
-
-Ref&lt;LegacyOpenDBRequest&gt; LegacyOpenDBRequest::create(ScriptExecutionContext* context, PassRefPtr&lt;IDBDatabaseCallbacks&gt; callbacks, int64_t transactionId, uint64_t version, IndexedDB::VersionNullness versionNullness)
-{
-    Ref&lt;LegacyOpenDBRequest&gt; request(adoptRef(*new LegacyOpenDBRequest(context, callbacks, transactionId, version, versionNullness)));
-    request-&gt;suspendIfNeeded();
-    return request;
-}
-
-LegacyOpenDBRequest::LegacyOpenDBRequest(ScriptExecutionContext* context, PassRefPtr&lt;IDBDatabaseCallbacks&gt; callbacks, int64_t transactionId, uint64_t version, IndexedDB::VersionNullness versionNullness)
-    : LegacyRequest(context, LegacyAny::createNull(), IDBDatabaseBackend::NormalTask, 0)
-    , m_databaseCallbacks(callbacks)
-    , m_transactionId(transactionId)
-    , m_version(version)
-    , m_versionNullness(versionNullness)
-{
-    ASSERT(!m_result);
-}
-
-LegacyOpenDBRequest::~LegacyOpenDBRequest()
-{
-}
-
-EventTargetInterface LegacyOpenDBRequest::eventTargetInterface() const
-{
-    return IDBOpenDBRequestEventTargetInterfaceType;
-}
-
-void LegacyOpenDBRequest::onBlocked(uint64_t oldVersion)
-{
-    LOG(StorageAPI, &quot;LegacyOpenDBRequest::onBlocked()&quot;);
-    if (!shouldEnqueueEvent())
-        return;
-    
-    enqueueEvent(LegacyVersionChangeEvent::create(oldVersion, m_version, eventNames().blockedEvent));
-}
-
-void LegacyOpenDBRequest::onUpgradeNeeded(uint64_t oldVersion, PassRefPtr&lt;IDBDatabaseBackend&gt; prpDatabaseBackend, const IDBDatabaseMetadata&amp; metadata)
-{
-    LOG(StorageAPI, &quot;LegacyOpenDBRequest::onUpgradeNeeded()&quot;);
-    if (m_contextStopped || !scriptExecutionContext()) {
-        RefPtr&lt;IDBDatabaseBackend&gt; db = prpDatabaseBackend;
-        db-&gt;abort(m_transactionId);
-        db-&gt;close(m_databaseCallbacks);
-        return;
-    }
-    if (!shouldEnqueueEvent())
-        return;
-
-    ASSERT(m_databaseCallbacks);
-
-    RefPtr&lt;IDBDatabaseBackend&gt; databaseBackend = prpDatabaseBackend;
-
-    RefPtr&lt;LegacyDatabase&gt; idbDatabase = LegacyDatabase::create(scriptExecutionContext(), databaseBackend, m_databaseCallbacks);
-    idbDatabase-&gt;setMetadata(metadata);
-    m_databaseCallbacks-&gt;connect(idbDatabase.get());
-    m_databaseCallbacks = nullptr;
-
-    IDBDatabaseMetadata oldMetadata(metadata);
-    oldMetadata.version = oldVersion;
-
-    m_transaction = LegacyTransaction::create(scriptExecutionContext(), m_transactionId, idbDatabase.get(), this, oldMetadata);
-    m_result = LegacyAny::create(idbDatabase.release());
-
-    if (m_versionNullness == IndexedDB::VersionNullness::Null)
-        m_version = 1;
-    enqueueEvent(LegacyVersionChangeEvent::create(oldVersion, m_version, eventNames().upgradeneededEvent));
-}
-
-void LegacyOpenDBRequest::onSuccess(PassRefPtr&lt;IDBDatabaseBackend&gt; prpBackend, const IDBDatabaseMetadata&amp; metadata)
-{
-    LOG(StorageAPI, &quot;LegacyOpenDBRequest::onSuccess()&quot;);
-    if (!shouldEnqueueEvent())
-        return;
-
-    RefPtr&lt;IDBDatabaseBackend&gt; backend = prpBackend;
-    RefPtr&lt;LegacyDatabase&gt; idbDatabase;
-    if (m_result) {
-        idbDatabase = m_result-&gt;legacyDatabase();
-        ASSERT(idbDatabase);
-        ASSERT(!m_databaseCallbacks);
-    } else {
-        ASSERT(m_databaseCallbacks);
-        idbDatabase = LegacyDatabase::create(scriptExecutionContext(), backend.release(), m_databaseCallbacks);
-        m_databaseCallbacks-&gt;connect(idbDatabase.get());
-        m_databaseCallbacks = nullptr;
-        m_result = LegacyAny::create(idbDatabase.get());
-    }
-    idbDatabase-&gt;setMetadata(metadata);
-    enqueueEvent(Event::create(eventNames().successEvent, false, false));
-}
-
-bool LegacyOpenDBRequest::shouldEnqueueEvent() const
-{
-    if (m_contextStopped || !scriptExecutionContext())
-        return false;
-    ASSERT(m_readyState == IDBRequestReadyState::Pending || m_readyState == IDBRequestReadyState::Done);
-    if (m_requestAborted)
-        return false;
-    return true;
-}
-
-bool LegacyOpenDBRequest::dispatchEvent(Event&amp; event)
-{
-    // If the connection closed between onUpgradeNeeded and the delivery of the &quot;success&quot; event,
-    // an &quot;error&quot; event should be fired instead.
-    if (event.type() == eventNames().successEvent &amp;&amp; m_result-&gt;type() == IDBAny::Type::IDBDatabase &amp;&amp; m_result-&gt;legacyDatabase()-&gt;isClosePending()) {
-        m_result = nullptr;
-        onError(IDBDatabaseError::create(IDBDatabaseException::AbortError, &quot;The connection was closed.&quot;));
-        return false;
-    }
-
-    return LegacyRequest::dispatchEvent(event);
-}
-
-} // namespace WebCore
-
-#endif
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyOpenDBRequesth"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyOpenDBRequest.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyOpenDBRequest.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyOpenDBRequest.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,69 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef LegacyOpenDBRequest_h
-#define LegacyOpenDBRequest_h
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;IDBDatabaseMetadata.h&quot;
-#include &quot;IDBOpenDBRequest.h&quot;
-#include &quot;IndexedDB.h&quot;
-#include &quot;LegacyRequest.h&quot;
-
-namespace WebCore {
-
-class IDBDatabaseCallbacks;
-
-class LegacyOpenDBRequest : public LegacyRequest {
-public:
-    static Ref&lt;LegacyOpenDBRequest&gt; create(ScriptExecutionContext*, PassRefPtr&lt;IDBDatabaseCallbacks&gt;, int64_t transactionId, uint64_t version, IndexedDB::VersionNullness);
-    virtual ~LegacyOpenDBRequest();
-
-    virtual void onBlocked(uint64_t existingVersion) override final;
-    virtual void onUpgradeNeeded(uint64_t oldVersion, PassRefPtr&lt;IDBDatabaseBackend&gt;, const IDBDatabaseMetadata&amp;) override final;
-    virtual void onSuccess(PassRefPtr&lt;IDBDatabaseBackend&gt;, const IDBDatabaseMetadata&amp;) override final;
-
-    // EventTarget
-    virtual EventTargetInterface eventTargetInterface() const override final;
-    virtual bool dispatchEvent(Event&amp;) override final;
-
-protected:
-    virtual bool shouldEnqueueEvent() const override;
-
-private:
-    LegacyOpenDBRequest(ScriptExecutionContext*, PassRefPtr&lt;IDBDatabaseCallbacks&gt;, int64_t transactionId, uint64_t version, IndexedDB::VersionNullness);
-
-    RefPtr&lt;IDBDatabaseCallbacks&gt; m_databaseCallbacks;
-    const int64_t m_transactionId;
-    uint64_t m_version;
-    IndexedDB::VersionNullness m_versionNullness;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-
-#endif // LegacyOpenDBRequest_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyRequestcpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyRequest.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyRequest.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyRequest.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,588 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- * 3.  Neither the name of Apple Inc. (&quot;Apple&quot;) nor the names of
- *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;LegacyRequest.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;EventListener.h&quot;
-#include &quot;EventNames.h&quot;
-#include &quot;EventQueue.h&quot;
-#include &quot;ExceptionCodePlaceholder.h&quot;
-#include &quot;IDBBindingUtilities.h&quot;
-#include &quot;IDBCursorBackend.h&quot;
-#include &quot;IDBCursorWithValue.h&quot;
-#include &quot;IDBDatabase.h&quot;
-#include &quot;IDBEventDispatcher.h&quot;
-#include &quot;IDBIndex.h&quot;
-#include &quot;LegacyCursor.h&quot;
-#include &quot;LegacyCursorWithValue.h&quot;
-#include &quot;LegacyTransaction.h&quot;
-#include &quot;Logging.h&quot;
-#include &quot;ScriptExecutionContext.h&quot;
-#include &quot;SharedBuffer.h&quot;
-#include &lt;wtf/NeverDestroyed.h&gt;
-
-namespace WebCore {
-
-Ref&lt;LegacyRequest&gt; LegacyRequest::create(ScriptExecutionContext* context, PassRefPtr&lt;LegacyAny&gt; source, LegacyTransaction* transaction)
-{
-    Ref&lt;LegacyRequest&gt; request(adoptRef(*new LegacyRequest(context, source, IDBDatabaseBackend::NormalTask, transaction)));
-    request-&gt;suspendIfNeeded();
-    // Requests associated with IDBFactory (open/deleteDatabase/getDatabaseNames) are not associated with transactions.
-    if (transaction)
-        transaction-&gt;registerRequest(request.ptr());
-    return request;
-}
-
-Ref&lt;LegacyRequest&gt; LegacyRequest::create(ScriptExecutionContext* context, PassRefPtr&lt;LegacyAny&gt; source, IDBDatabaseBackend::TaskType taskType, LegacyTransaction* transaction)
-{
-    Ref&lt;LegacyRequest&gt; request(adoptRef(*new LegacyRequest(context, source, taskType, transaction)));
-    request-&gt;suspendIfNeeded();
-    // Requests associated with IDBFactory (open/deleteDatabase/getDatabaseNames) are not associated with transactions.
-    if (transaction)
-        transaction-&gt;registerRequest(request.ptr());
-    return request;
-}
-
-LegacyRequest::LegacyRequest(ScriptExecutionContext* context, PassRefPtr&lt;LegacyAny&gt; source, IDBDatabaseBackend::TaskType taskType, LegacyTransaction* transaction)
-    : IDBOpenDBRequest(context)
-    , m_result(nullptr)
-    , m_errorCode(0)
-    , m_contextStopped(false)
-    , m_transaction(transaction)
-    , m_readyState(IDBRequestReadyState::Pending)
-    , m_requestAborted(false)
-    , m_source(source)
-    , m_taskType(taskType)
-    , m_hasPendingActivity(true)
-    , m_cursorType(IndexedDB::CursorType::KeyAndValue)
-    , m_cursorDirection(IndexedDB::CursorDirection::Next)
-    , m_cursorFinished(false)
-    , m_pendingCursor(nullptr)
-    , m_didFireUpgradeNeededEvent(false)
-    , m_preventPropagation(false)
-    , m_requestState(context)
-{
-}
-
-LegacyRequest::~LegacyRequest()
-{
-}
-
-RefPtr&lt;IDBAny&gt; LegacyRequest::result(ExceptionCodeWithMessage&amp; ec) const
-{
-    if (m_readyState != IDBRequestReadyState::Done) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-    return m_result;
-}
-
-RefPtr&lt;DOMError&gt; LegacyRequest::error(ExceptionCodeWithMessage&amp; ec) const
-{
-    if (m_readyState != IDBRequestReadyState::Done) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-    return m_error;
-}
-
-unsigned short LegacyRequest::errorCode(ExceptionCode&amp; ec) const
-{
-    if (m_readyState != IDBRequestReadyState::Done) {
-        ec = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-    return m_errorCode;
-}
-
-RefPtr&lt;IDBAny&gt; LegacyRequest::source() const
-{
-    return m_source;
-}
-
-RefPtr&lt;IDBTransaction&gt; LegacyRequest::transaction() const
-{
-    return m_transaction;
-}
-
-const String&amp; LegacyRequest::readyState() const
-{
-    ASSERT(m_readyState == IDBRequestReadyState::Pending || m_readyState == IDBRequestReadyState::Done);
-    static NeverDestroyed&lt;AtomicString&gt; pending(&quot;pending&quot;, AtomicString::ConstructFromLiteral);
-    static NeverDestroyed&lt;AtomicString&gt; done(&quot;done&quot;, AtomicString::ConstructFromLiteral);
-
-    if (m_readyState == IDBRequestReadyState::Pending)
-        return pending.get();
-
-    return done.get();
-}
-
-void LegacyRequest::markEarlyDeath()
-{
-    ASSERT(m_readyState == IDBRequestReadyState::Pending);
-    m_readyState = IDBRequestReadyState::DeprecatedEarlyDeath;
-    if (m_transaction)
-        m_transaction-&gt;unregisterRequest(this);
-}
-
-void LegacyRequest::abort()
-{
-    ASSERT(!m_requestAborted);
-    if (m_contextStopped || !scriptExecutionContext())
-        return;
-    ASSERT(m_readyState == IDBRequestReadyState::Pending || m_readyState == IDBRequestReadyState::Done);
-    if (m_readyState == IDBRequestReadyState::Done)
-        return;
-
-    // Enqueued events may be the only reference to this object.
-    RefPtr&lt;LegacyRequest&gt; self(this);
-
-    EventQueue&amp; eventQueue = scriptExecutionContext()-&gt;eventQueue();
-    for (auto&amp; event : m_enqueuedEvents) {
-        bool removed = eventQueue.cancelEvent(event);
-        ASSERT_UNUSED(removed, removed);
-    }
-    m_enqueuedEvents.clear();
-
-    m_errorCode = 0;
-    m_error = nullptr;
-    m_errorMessage = String();
-    m_result = nullptr;
-    onError(IDBDatabaseError::create(IDBDatabaseException::AbortError));
-    m_requestAborted = true;
-}
-
-void LegacyRequest::setCursorDetails(IndexedDB::CursorType cursorType, IndexedDB::CursorDirection direction)
-{
-    ASSERT(m_readyState == IDBRequestReadyState::Pending);
-    ASSERT(!m_pendingCursor);
-    m_cursorType = cursorType;
-    m_cursorDirection = direction;
-}
-
-void LegacyRequest::setPendingCursor(PassRefPtr&lt;LegacyCursor&gt; cursor)
-{
-    ASSERT(m_readyState == IDBRequestReadyState::Done);
-    ASSERT(scriptExecutionContext());
-    ASSERT(m_transaction);
-    ASSERT(!m_pendingCursor);
-    ASSERT(cursor == getResultCursor());
-
-    m_pendingCursor = cursor;
-    m_result = nullptr;
-    m_readyState = IDBRequestReadyState::Pending;
-    m_errorCode = 0;
-    m_error = nullptr;
-    m_errorMessage = String();
-    m_transaction-&gt;registerRequest(this);
-}
-
-RefPtr&lt;LegacyCursor&gt; LegacyRequest::getResultCursor()
-{
-    if (!m_result)
-        return nullptr;
-    if (m_result-&gt;type() == IDBAny::Type::IDBCursor)
-        return m_result-&gt;legacyCursor();
-    if (m_result-&gt;type() == IDBAny::Type::IDBCursorWithValue)
-        return m_result-&gt;legacyCursorWithValue();
-    return nullptr;
-}
-
-void LegacyRequest::setResultCursor(PassRefPtr&lt;LegacyCursor&gt; cursor, PassRefPtr&lt;IDBKey&gt; key, PassRefPtr&lt;IDBKey&gt; primaryKey, const Deprecated::ScriptValue&amp; value)
-{
-    ASSERT(m_readyState == IDBRequestReadyState::Pending);
-    m_cursorKey = key;
-    m_cursorPrimaryKey = primaryKey;
-    m_cursorValue = value;
-
-    if (m_cursorType == IndexedDB::CursorType::KeyOnly) {
-        m_result = LegacyAny::create(cursor);
-        return;
-    }
-
-    m_result = LegacyAny::create(LegacyCursorWithValue::fromCursor(cursor));
-}
-
-void LegacyRequest::finishCursor()
-{
-    m_cursorFinished = true;
-    if (m_readyState != IDBRequestReadyState::Pending)
-        m_hasPendingActivity = false;
-}
-
-bool LegacyRequest::shouldEnqueueEvent() const
-{
-    if (m_contextStopped || !scriptExecutionContext())
-        return false;
-    ASSERT(m_readyState == IDBRequestReadyState::Pending || m_readyState == IDBRequestReadyState::Done);
-    if (m_requestAborted)
-        return false;
-    ASSERT(m_readyState == IDBRequestReadyState::Pending);
-    ASSERT(!m_errorCode &amp;&amp; m_errorMessage.isNull() &amp;&amp; !m_error &amp;&amp; !m_result);
-    return true;
-}
-
-void LegacyRequest::onError(PassRefPtr&lt;IDBDatabaseError&gt; error)
-{
-    LOG(StorageAPI, &quot;LegacyRequest::onError() (%s) '%s'&quot;, error-&gt;name().utf8().data(), error-&gt;message().utf8().data());
-    if (!shouldEnqueueEvent())
-        return;
-
-    m_errorCode = error-&gt;code();
-    m_errorMessage = error-&gt;message();
-    m_error = DOMError::create(IDBDatabaseException::getErrorName(error-&gt;idbCode()));
-    m_pendingCursor = nullptr;
-    enqueueEvent(Event::create(eventNames().errorEvent, true, true));
-}
-
-static Ref&lt;Event&gt; createSuccessEvent()
-{
-    return Event::create(eventNames().successEvent, false, false);
-}
-
-void LegacyRequest::onSuccess(PassRefPtr&lt;DOMStringList&gt; domStringList)
-{
-    LOG(StorageAPI, &quot;LegacyRequest::onSuccess(DOMStringList)&quot;);
-    if (!shouldEnqueueEvent())
-        return;
-
-    m_result = LegacyAny::create(domStringList);
-    enqueueEvent(createSuccessEvent());
-}
-
-void LegacyRequest::onSuccess(PassRefPtr&lt;IDBCursorBackend&gt; prpBackend)
-{
-    LOG(StorageAPI, &quot;LegacyRequest::onSuccess(IDBCursor)&quot;);
-    if (!shouldEnqueueEvent())
-        return;
-
-    DOMRequestState::Scope scope(m_requestState);
-
-    RefPtr&lt;IDBCursorBackend&gt; backend = prpBackend;
-    RefPtr&lt;IDBKey&gt; key = backend-&gt;key();
-    RefPtr&lt;IDBKey&gt; primaryKey = backend-&gt;primaryKey();
-
-    Deprecated::ScriptValue value = deserializeIDBValueBuffer(requestState(), backend-&gt;valueBuffer(), !!key);
-
-    ASSERT(!m_pendingCursor);
-    RefPtr&lt;LegacyCursor&gt; cursor;
-    switch (m_cursorType) {
-    case IndexedDB::CursorType::KeyOnly:
-        cursor = LegacyCursor::create(backend.get(), m_cursorDirection, this, m_source.get(), m_transaction.get());
-        break;
-    case IndexedDB::CursorType::KeyAndValue:
-        cursor = LegacyCursorWithValue::create(backend.release(), m_cursorDirection, this, m_source.get(), m_transaction.get());
-        break;
-    default:
-        ASSERT_NOT_REACHED();
-    }
-    setResultCursor(cursor, key.release(), primaryKey.release(), value);
-
-    enqueueEvent(createSuccessEvent());
-}
-
-void LegacyRequest::onSuccess(PassRefPtr&lt;IDBKey&gt; idbKey)
-{
-    LOG(StorageAPI, &quot;LegacyRequest::onSuccess(IDBKey)&quot;);
-    if (!shouldEnqueueEvent())
-        return;
-
-    if (idbKey &amp;&amp; idbKey-&gt;isValid()) {
-        DOMRequestState::Scope scope(m_requestState);
-        m_result = LegacyAny::create(idbKeyToScriptValue(requestState(), idbKey));
-    } else
-        m_result = LegacyAny::createInvalid();
-    enqueueEvent(createSuccessEvent());
-}
-
-void LegacyRequest::onSuccess(PassRefPtr&lt;SharedBuffer&gt; valueBuffer)
-{
-    LOG(StorageAPI, &quot;LegacyRequest::onSuccess(SharedBuffer)&quot;);
-    if (!shouldEnqueueEvent())
-        return;
-
-    DOMRequestState::Scope scope(m_requestState);
-
-    // FIXME: By not knowing whether or not the key is defined here, we don't know
-    // if a null valueBuffer means the value is null or the value is undefined.
-    Deprecated::ScriptValue value = deserializeIDBValueBuffer(requestState(), valueBuffer, true);
-    onSuccessInternal(value);
-}
-
-#ifndef NDEBUG
-static PassRefPtr&lt;IDBObjectStore&gt; effectiveObjectStore(LegacyAny* source)
-{
-    if (source-&gt;type() == IDBAny::Type::IDBObjectStore)
-        return source-&gt;idbObjectStore();
-    if (source-&gt;type() == IDBAny::Type::IDBIndex)
-        return source-&gt;idbIndex()-&gt;objectStore();
-
-    ASSERT_NOT_REACHED();
-    return 0;
-}
-#endif
-
-void LegacyRequest::onSuccess(PassRefPtr&lt;SharedBuffer&gt; valueBuffer, PassRefPtr&lt;IDBKey&gt; prpPrimaryKey, const IDBKeyPath&amp; keyPath)
-{
-    LOG(StorageAPI, &quot;LegacyRequest::onSuccess(SharedBuffer, IDBKey, IDBKeyPath)&quot;);
-    if (!shouldEnqueueEvent())
-        return;
-
-#ifndef NDEBUG
-    ASSERT(keyPath == effectiveObjectStore(m_source.get())-&gt;keyPath());
-#endif
-    DOMRequestState::Scope scope(m_requestState);
-
-    // FIXME: By not knowing whether or not the key is defined here, we don't know
-    // if a null valueBuffer means the value is null or the value is undefined.
-    Deprecated::ScriptValue value = deserializeIDBValueBuffer(requestState(), valueBuffer, true);
-
-    RefPtr&lt;IDBKey&gt; primaryKey = prpPrimaryKey;
-
-    if (!keyPath.isNull()) {
-#ifndef NDEBUG
-        RefPtr&lt;IDBKey&gt; expectedKey = createIDBKeyFromScriptValueAndKeyPath(requestState()-&gt;exec(), value, keyPath);
-        ASSERT(!expectedKey || expectedKey-&gt;isEqual(primaryKey.get()));
-#endif
-        bool injected = injectIDBKeyIntoScriptValue(requestState(), primaryKey, value, keyPath);
-        ASSERT_UNUSED(injected, injected);
-    }
-
-    onSuccessInternal(value);
-}
-
-void LegacyRequest::onSuccess(int64_t value)
-{
-    LOG(StorageAPI, &quot;LegacyRequest::onSuccess(int64_t)&quot;);
-    if (!shouldEnqueueEvent())
-        return;
-    return onSuccessInternal(SerializedScriptValue::numberValue(value));
-}
-
-void LegacyRequest::onSuccess()
-{
-    LOG(StorageAPI, &quot;LegacyRequest::onSuccess()&quot;);
-    if (!shouldEnqueueEvent())
-        return;
-    return onSuccessInternal(SerializedScriptValue::undefinedValue());
-}
-
-void LegacyRequest::onSuccessInternal(PassRefPtr&lt;SerializedScriptValue&gt; value)
-{
-    ASSERT(!m_contextStopped);
-    DOMRequestState::Scope scope(m_requestState);
-    return onSuccessInternal(deserializeIDBValue(requestState(), value));
-}
-
-void LegacyRequest::onSuccessInternal(const Deprecated::ScriptValue&amp; value)
-{
-    m_result = LegacyAny::create(value);
-    if (m_pendingCursor) {
-        m_pendingCursor-&gt;close();
-        m_pendingCursor = nullptr;
-    }
-    enqueueEvent(createSuccessEvent());
-}
-
-void LegacyRequest::onSuccess(PassRefPtr&lt;IDBKey&gt; key, PassRefPtr&lt;IDBKey&gt; primaryKey, PassRefPtr&lt;SharedBuffer&gt; buffer)
-{
-    LOG(StorageAPI, &quot;LegacyRequest::onSuccess(key, primaryKey, valueBuffer)&quot;);
-    if (!shouldEnqueueEvent())
-        return;
-
-    DOMRequestState::Scope scope(m_requestState);
-
-    Deprecated::ScriptValue value = deserializeIDBValueBuffer(requestState(), buffer, !!key);
-
-    ASSERT(m_pendingCursor);
-    setResultCursor(m_pendingCursor.release(), key, primaryKey, value);
-    enqueueEvent(createSuccessEvent());
-}
-
-void LegacyRequest::onSuccess(PassRefPtr&lt;IDBDatabaseBackend&gt;, const IDBDatabaseMetadata&amp;)
-{
-    // Only the LegacyOpenDBRequest version of this should ever be called;
-    ASSERT_NOT_REACHED();
-}
-
-bool LegacyRequest::hasPendingActivity() const
-{
-    // FIXME: In an ideal world, we should return true as long as anyone has a or can
-    //        get a handle to us and we have event listeners. This is order to handle
-    //        user generated events properly.
-    return m_hasPendingActivity &amp;&amp; !m_contextStopped;
-}
-
-void LegacyRequest::stop()
-{
-    if (m_contextStopped)
-        return;
-
-    m_contextStopped = true;
-    m_requestState.clear();
-    if (m_readyState == IDBRequestReadyState::Pending)
-        markEarlyDeath();
-}
-
-bool LegacyRequest::canSuspendForDocumentSuspension() const
-{
-    return !m_hasPendingActivity;
-}
-
-const char* LegacyRequest::activeDOMObjectName() const
-{
-    return &quot;LegacyRequest&quot;;
-}
-
-EventTargetInterface LegacyRequest::eventTargetInterface() const
-{
-    return IDBRequestEventTargetInterfaceType;
-}
-
-bool LegacyRequest::dispatchEvent(Event&amp; event)
-{
-    LOG(StorageAPI, &quot;LegacyRequest::dispatchEvent&quot;);
-    ASSERT(m_readyState == IDBRequestReadyState::Pending);
-    ASSERT(!m_contextStopped);
-    ASSERT(m_hasPendingActivity);
-    ASSERT(m_enqueuedEvents.size());
-    ASSERT(scriptExecutionContext());
-    ASSERT(event.target() == this);
-    ASSERT_WITH_MESSAGE(m_readyState &lt; IDBRequestReadyState::Done, &quot;When dispatching event %s, m_readyState &lt; DONE(%d), was %d&quot;, event.type().string().utf8().data(), static_cast&lt;int&gt;(IDBRequestReadyState::Done), static_cast&lt;int&gt;(m_readyState));
-
-    DOMRequestState::Scope scope(m_requestState);
-
-    if (event.type() != eventNames().blockedEvent)
-        m_readyState = IDBRequestReadyState::Done;
-
-    for (size_t i = 0; i &lt; m_enqueuedEvents.size(); ++i) {
-        if (m_enqueuedEvents[i].ptr() == &amp;event)
-            m_enqueuedEvents.remove(i);
-    }
-
-    Vector&lt;RefPtr&lt;EventTarget&gt;&gt; targets;
-    targets.append(this);
-    if (m_transaction &amp;&amp; !m_preventPropagation) {
-        targets.append(m_transaction);
-        // If there ever are events that are associated with a database but
-        // that do not have a transaction, then this will not work and we need
-        // this object to actually hold a reference to the database (to ensure
-        // it stays alive).
-        targets.append(m_transaction-&gt;db());
-    }
-
-    // Cursor properties should not updated until the success event is being dispatched.
-    RefPtr&lt;LegacyCursor&gt; cursorToNotify;
-    if (event.type() == eventNames().successEvent) {
-        cursorToNotify = getResultCursor();
-        if (cursorToNotify) {
-            cursorToNotify-&gt;setValueReady(requestState(), m_cursorKey.release(), m_cursorPrimaryKey.release(), m_cursorValue);
-            m_cursorValue.clear();
-        }
-    }
-
-    if (event.type() == eventNames().upgradeneededEvent) {
-        ASSERT(!m_didFireUpgradeNeededEvent);
-        m_didFireUpgradeNeededEvent = true;
-    }
-
-    // FIXME: When we allow custom event dispatching, this will probably need to change.
-    ASSERT_WITH_MESSAGE(event.type() == eventNames().successEvent || event.type() == eventNames().errorEvent || event.type() == eventNames().blockedEvent || event.type() == eventNames().upgradeneededEvent, &quot;event type was %s&quot;, event.type().string().utf8().data());
-    const bool setTransactionActive = m_transaction &amp;&amp; (event.type() == eventNames().successEvent || event.type() == eventNames().upgradeneededEvent || (event.type() == eventNames().errorEvent &amp;&amp; m_errorCode != IDBDatabaseException::AbortError));
-
-    if (setTransactionActive)
-        m_transaction-&gt;setActive(true);
-
-    bool dontPreventDefault = IDBEventDispatcher::dispatch(event, targets);
-
-    if (m_transaction) {
-        if (m_readyState == IDBRequestReadyState::Done)
-            m_transaction-&gt;unregisterRequest(this);
-
-        // Possibly abort the transaction. This must occur after unregistering (so this request
-        // doesn't receive a second error) and before deactivating (which might trigger commit).
-        if (event.type() == eventNames().errorEvent &amp;&amp; dontPreventDefault &amp;&amp; !m_requestAborted) {
-            m_transaction-&gt;setError(m_error, m_errorMessage);
-            ExceptionCodeWithMessage ec;
-            m_transaction-&gt;abort(ec);
-        }
-
-        // If this was the last request in the transaction's list, it may commit here.
-        if (setTransactionActive)
-            m_transaction-&gt;setActive(false);
-    }
-
-    if (cursorToNotify)
-        cursorToNotify-&gt;postSuccessHandlerCallback();
-
-    if (m_readyState == IDBRequestReadyState::Done &amp;&amp; (!cursorToNotify || m_cursorFinished) &amp;&amp; event.type() != eventNames().upgradeneededEvent)
-        m_hasPendingActivity = false;
-
-    return dontPreventDefault;
-}
-
-void LegacyRequest::uncaughtExceptionInEventHandler()
-{
-    if (m_transaction &amp;&amp; !m_requestAborted) {
-        m_transaction-&gt;setError(DOMError::create(IDBDatabaseException::getErrorName(IDBDatabaseException::AbortError)), &quot;Uncaught exception in event handler.&quot;);
-        ExceptionCodeWithMessage ec;
-        m_transaction-&gt;abort(ec);
-    }
-}
-
-void LegacyRequest::transactionDidFinishAndDispatch()
-{
-    ASSERT(m_transaction);
-    ASSERT(m_transaction-&gt;isVersionChange());
-    ASSERT(m_readyState == IDBRequestReadyState::Done);
-    ASSERT(scriptExecutionContext());
-    m_transaction = nullptr;
-    m_readyState = IDBRequestReadyState::Pending;
-}
-
-void LegacyRequest::enqueueEvent(Ref&lt;Event&gt;&amp;&amp; event)
-{
-    ASSERT(m_readyState == IDBRequestReadyState::Pending || m_readyState == IDBRequestReadyState::Done);
-
-    if (m_contextStopped || !scriptExecutionContext())
-        return;
-
-    ASSERT_WITH_MESSAGE(m_readyState == IDBRequestReadyState::Pending || m_didFireUpgradeNeededEvent, &quot;When queueing event %s, m_readyState was %d&quot;, event-&gt;type().string().utf8().data(), static_cast&lt;int&gt;(m_readyState));
-
-    event-&gt;setTarget(this);
-
-    if (scriptExecutionContext()-&gt;eventQueue().enqueueEvent(event.copyRef()))
-        m_enqueuedEvents.append(WTFMove(event));
-}
-
-} // namespace WebCore
-
-#endif
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyRequesth"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyRequest.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyRequest.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyRequest.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,162 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- * 3.  Neither the name of Apple Inc. (&quot;Apple&quot;) nor the names of
- *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef LegacyRequest_h
-#define LegacyRequest_h
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;ActiveDOMObject.h&quot;
-#include &quot;DOMError.h&quot;
-#include &quot;DOMRequestState.h&quot;
-#include &quot;DOMStringList.h&quot;
-#include &quot;Event.h&quot;
-#include &quot;EventListener.h&quot;
-#include &quot;EventTarget.h&quot;
-#include &quot;IDBCallbacks.h&quot;
-#include &quot;IDBCursor.h&quot;
-#include &quot;IDBDatabaseBackend.h&quot;
-#include &quot;IDBDatabaseCallbacks.h&quot;
-#include &quot;IDBOpenDBRequest.h&quot;
-#include &quot;LegacyAny.h&quot;
-#include &quot;ScriptWrappable.h&quot;
-
-namespace WebCore {
-
-class LegacyTransaction;
-
-typedef int ExceptionCode;
-
-class LegacyRequest : public IDBOpenDBRequest, public IDBCallbacks {
-public:
-    static Ref&lt;LegacyRequest&gt; create(ScriptExecutionContext*, PassRefPtr&lt;LegacyAny&gt; source, LegacyTransaction*);
-    static Ref&lt;LegacyRequest&gt; create(ScriptExecutionContext*, PassRefPtr&lt;LegacyAny&gt; source, IDBDatabaseBackend::TaskType, LegacyTransaction*);
-    virtual ~LegacyRequest();
-
-    virtual RefPtr&lt;IDBAny&gt; result(ExceptionCodeWithMessage&amp;) const override final;
-    PassRefPtr&lt;LegacyAny&gt; legacyResult(ExceptionCode&amp;);
-    virtual unsigned short errorCode(ExceptionCode&amp;) const override final;
-    virtual RefPtr&lt;DOMError&gt; error(ExceptionCodeWithMessage&amp;) const override final;
-    virtual RefPtr&lt;IDBAny&gt; source() const override final;
-    virtual RefPtr&lt;IDBTransaction&gt; transaction() const override final;
-    virtual const String&amp; readyState() const override final;
-
-    void preventPropagation() { m_preventPropagation = true; }
-
-    void markEarlyDeath();
-    void setCursorDetails(IndexedDB::CursorType, IndexedDB::CursorDirection);
-    void setPendingCursor(PassRefPtr&lt;LegacyCursor&gt;);
-    void finishCursor();
-    void abort();
-
-    // IDBCallbacks
-    virtual void onError(PassRefPtr&lt;IDBDatabaseError&gt;) override final;
-    virtual void onSuccess(PassRefPtr&lt;DOMStringList&gt;) override final;
-    virtual void onSuccess(PassRefPtr&lt;IDBCursorBackend&gt;) override final;
-    virtual void onSuccess(PassRefPtr&lt;IDBKey&gt;) override final;
-    virtual void onSuccess(PassRefPtr&lt;SharedBuffer&gt;) override final;
-    virtual void onSuccess(PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBKey&gt;, const IDBKeyPath&amp;) override final;
-    virtual void onSuccess(int64_t) override final;
-    virtual void onSuccess() override final;
-    virtual void onSuccess(PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt; primaryKey, PassRefPtr&lt;SharedBuffer&gt;) override final;
-    virtual void onSuccess(PassRefPtr&lt;IDBDatabaseBackend&gt;, const IDBDatabaseMetadata&amp;) override;
-
-    // EventTarget
-    virtual EventTargetInterface eventTargetInterface() const override;
-    virtual ScriptExecutionContext* scriptExecutionContext() const override final { return ActiveDOMObject::scriptExecutionContext(); }
-    virtual void uncaughtExceptionInEventHandler() override final;
-
-    using EventTarget::dispatchEvent;
-    virtual bool dispatchEvent(Event&amp;) override;
-
-    void transactionDidFinishAndDispatch();
-
-    IDBDatabaseBackend::TaskType taskType() { return m_taskType; }
-
-    DOMRequestState* requestState() { return &amp;m_requestState; }
-
-    // ActiveDOMObject API.
-    bool hasPendingActivity() const override;
-
-    using IDBCallbacks::ref;
-    using IDBCallbacks::deref;
-
-protected:
-    LegacyRequest(ScriptExecutionContext*, PassRefPtr&lt;LegacyAny&gt; source, IDBDatabaseBackend::TaskType, LegacyTransaction*);
-    void enqueueEvent(Ref&lt;Event&gt;&amp;&amp;);
-    virtual bool shouldEnqueueEvent() const;
-    void onSuccessInternal(PassRefPtr&lt;SerializedScriptValue&gt;);
-    void onSuccessInternal(const Deprecated::ScriptValue&amp;);
-
-    RefPtr&lt;LegacyAny&gt; m_result;
-    unsigned short m_errorCode;
-    String m_errorMessage;
-    RefPtr&lt;DOMError&gt; m_error;
-    bool m_contextStopped;
-    RefPtr&lt;LegacyTransaction&gt; m_transaction;
-    IDBRequestReadyState m_readyState;
-    bool m_requestAborted; // May be aborted by transaction then receive async onsuccess; ignore vs. assert.
-
-private:
-    // ActiveDOMObject API.
-    void stop() override;
-    const char* activeDOMObjectName() const override;
-    bool canSuspendForDocumentSuspension() const override;
-
-    // EventTarget API.
-    virtual void refEventTarget() override final { ref(); }
-    virtual void derefEventTarget() override final { deref(); }
-
-    RefPtr&lt;LegacyCursor&gt; getResultCursor();
-    void setResultCursor(PassRefPtr&lt;LegacyCursor&gt;, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt; primaryKey, const Deprecated::ScriptValue&amp;);
-
-    RefPtr&lt;LegacyAny&gt; m_source;
-    const IDBDatabaseBackend::TaskType m_taskType;
-
-    bool m_hasPendingActivity;
-    Vector&lt;Ref&lt;Event&gt;&gt; m_enqueuedEvents;
-
-    // Only used if the result type will be a cursor.
-    IndexedDB::CursorType m_cursorType;
-    IndexedDB::CursorDirection m_cursorDirection;
-    bool m_cursorFinished;
-    RefPtr&lt;LegacyCursor&gt; m_pendingCursor;
-    RefPtr&lt;IDBKey&gt; m_cursorKey;
-    RefPtr&lt;IDBKey&gt; m_cursorPrimaryKey;
-    Deprecated::ScriptValue m_cursorValue;
-    bool m_didFireUpgradeNeededEvent;
-    bool m_preventPropagation;
-
-    DOMRequestState m_requestState;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-
-#endif // LegacyRequest_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyTransactioncpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyTransaction.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyTransaction.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyTransaction.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,379 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;LegacyTransaction.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;EventQueue.h&quot;
-#include &quot;ExceptionCodePlaceholder.h&quot;
-#include &quot;IDBDatabase.h&quot;
-#include &quot;IDBDatabaseException.h&quot;
-#include &quot;IDBEventDispatcher.h&quot;
-#include &quot;IDBIndex.h&quot;
-#include &quot;IDBObjectStore.h&quot;
-#include &quot;IDBPendingTransactionMonitor.h&quot;
-#include &quot;LegacyCursor.h&quot;
-#include &quot;LegacyObjectStore.h&quot;
-#include &quot;LegacyOpenDBRequest.h&quot;
-#include &quot;Logging.h&quot;
-#include &quot;ScriptExecutionContext.h&quot;
-
-namespace WebCore {
-
-Ref&lt;LegacyTransaction&gt; LegacyTransaction::create(ScriptExecutionContext* context, int64_t id, const Vector&lt;String&gt;&amp; objectStoreNames, IndexedDB::TransactionMode mode, LegacyDatabase* db)
-{
-    LegacyOpenDBRequest* openDBRequest = nullptr;
-    Ref&lt;LegacyTransaction&gt; transaction(adoptRef(*new LegacyTransaction(context, id, objectStoreNames, mode, db, openDBRequest, IDBDatabaseMetadata())));
-    transaction-&gt;suspendIfNeeded();
-    return transaction;
-}
-
-Ref&lt;LegacyTransaction&gt; LegacyTransaction::create(ScriptExecutionContext* context, int64_t id, LegacyDatabase* db, LegacyOpenDBRequest* openDBRequest, const IDBDatabaseMetadata&amp; previousMetadata)
-{
-    Ref&lt;LegacyTransaction&gt; transaction(adoptRef(*new LegacyTransaction(context, id, Vector&lt;String&gt;(), IndexedDB::TransactionMode::VersionChange, db, openDBRequest, previousMetadata)));
-    transaction-&gt;suspendIfNeeded();
-    return transaction;
-}
-
-LegacyTransaction::LegacyTransaction(ScriptExecutionContext* context, int64_t id, const Vector&lt;String&gt;&amp; objectStoreNames, IndexedDB::TransactionMode mode, LegacyDatabase* db, LegacyOpenDBRequest* openDBRequest, const IDBDatabaseMetadata&amp; previousMetadata)
-    : IDBTransaction(context)
-    , m_id(id)
-    , m_database(db)
-    , m_objectStoreNames(objectStoreNames)
-    , m_openDBRequest(openDBRequest)
-    , m_mode(mode)
-    , m_state(Active)
-    , m_hasPendingActivity(true)
-    , m_contextStopped(false)
-    , m_previousMetadata(previousMetadata)
-{
-    if (mode == IndexedDB::TransactionMode::VersionChange) {
-        // Not active until the callback.
-        m_state = Inactive;
-    }
-
-    // We pass a reference of this object before it can be adopted.
-    relaxAdoptionRequirement();
-    if (m_state == Active)
-        IDBPendingTransactionMonitor::addNewTransaction(this);
-    m_database-&gt;transactionCreated(this);
-}
-
-LegacyTransaction::~LegacyTransaction()
-{
-    ASSERT(m_state == Finished || m_contextStopped);
-    ASSERT(m_requestList.isEmpty() || m_contextStopped);
-}
-
-const String&amp; LegacyTransaction::mode() const
-{
-    return modeToString(m_mode);
-}
-
-IDBDatabase* LegacyTransaction::db()
-{
-    return m_database.get();
-}
-
-void LegacyTransaction::setError(PassRefPtr&lt;DOMError&gt; error, const String&amp; errorMessage)
-{
-    ASSERT(m_state != Finished);
-    ASSERT(error);
-
-    // The first error to be set is the true cause of the
-    // transaction abort.
-    if (!m_error) {
-        m_error = error;
-        m_errorMessage = errorMessage;
-    }
-}
-
-RefPtr&lt;IDBObjectStore&gt; LegacyTransaction::objectStore(const String&amp; name, ExceptionCodeWithMessage&amp; ec)
-{
-    if (m_state == Finished) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return 0;
-    }
-
-    IDBObjectStoreMap::iterator it = m_objectStoreMap.find(name);
-    if (it != m_objectStoreMap.end())
-        return it-&gt;value;
-
-    if (!isVersionChange() &amp;&amp; !m_objectStoreNames.contains(name)) {
-        ec.code = IDBDatabaseException::NotFoundError;
-        return 0;
-    }
-
-    int64_t objectStoreId = m_database-&gt;findObjectStoreId(name);
-    if (objectStoreId == IDBObjectStoreMetadata::InvalidId) {
-        ASSERT(isVersionChange());
-        ec.code = IDBDatabaseException::NotFoundError;
-        return 0;
-    }
-
-    const IDBDatabaseMetadata&amp; metadata = m_database-&gt;metadata();
-
-    RefPtr&lt;LegacyObjectStore&gt; objectStore = LegacyObjectStore::create(metadata.objectStores.get(objectStoreId), this);
-    objectStoreCreated(name, objectStore);
-    return objectStore.release();
-}
-
-void LegacyTransaction::objectStoreCreated(const String&amp; name, PassRefPtr&lt;LegacyObjectStore&gt; prpObjectStore)
-{
-    ASSERT(m_state != Finished);
-    RefPtr&lt;LegacyObjectStore&gt; objectStore = prpObjectStore;
-    m_objectStoreMap.set(name, objectStore);
-    if (isVersionChange())
-        m_objectStoreCleanupMap.set(objectStore, objectStore-&gt;metadata());
-}
-
-void LegacyTransaction::objectStoreDeleted(const String&amp; name)
-{
-    ASSERT(m_state != Finished);
-    ASSERT(isVersionChange());
-    IDBObjectStoreMap::iterator it = m_objectStoreMap.find(name);
-    if (it != m_objectStoreMap.end()) {
-        RefPtr&lt;LegacyObjectStore&gt; objectStore = it-&gt;value;
-        m_objectStoreMap.remove(name);
-        objectStore-&gt;markDeleted();
-        m_objectStoreCleanupMap.set(objectStore, objectStore-&gt;metadata());
-        m_deletedObjectStores.add(objectStore);
-    }
-}
-
-void LegacyTransaction::setActive(bool active)
-{
-    LOG(StorageAPI, &quot;LegacyTransaction::setActive(%s) for transaction id %lli&quot;, active ? &quot;true&quot; : &quot;false&quot;, static_cast&lt;long long&gt;(m_id));
-    ASSERT_WITH_MESSAGE(m_state != Finished, &quot;A finished transaction tried to setActive(%s)&quot;, active ? &quot;true&quot; : &quot;false&quot;);
-    if (m_state == Finishing)
-        return;
-    ASSERT(active != (m_state == Active));
-    m_state = active ? Active : Inactive;
-
-    if (!active &amp;&amp; m_requestList.isEmpty())
-        backendDB()-&gt;commit(m_id);
-}
-
-void LegacyTransaction::abort(ExceptionCodeWithMessage&amp; ec)
-{
-    if (m_state == Finishing || m_state == Finished) {
-        ec.code = IDBDatabaseException::InvalidStateError;
-        return;
-    }
-
-    m_state = Finishing;
-
-    while (!m_requestList.isEmpty()) {
-        RefPtr&lt;LegacyRequest&gt; request = *m_requestList.begin();
-        m_requestList.remove(request);
-        request-&gt;abort();
-    }
-
-    RefPtr&lt;LegacyTransaction&gt; selfRef = this;
-    backendDB()-&gt;abort(m_id);
-}
-
-LegacyTransaction::OpenCursorNotifier::OpenCursorNotifier(PassRefPtr&lt;LegacyTransaction&gt; transaction, LegacyCursor* cursor)
-    : m_transaction(transaction)
-    , m_cursor(cursor)
-{
-    m_transaction-&gt;registerOpenCursor(m_cursor);
-}
-
-LegacyTransaction::OpenCursorNotifier::~OpenCursorNotifier()
-{
-    if (m_cursor)
-        m_transaction-&gt;unregisterOpenCursor(m_cursor);
-}
-
-void LegacyTransaction::OpenCursorNotifier::cursorFinished()
-{
-    if (m_cursor) {
-        m_transaction-&gt;unregisterOpenCursor(m_cursor);
-        m_cursor = nullptr;
-        m_transaction = nullptr;
-    }
-}
-
-void LegacyTransaction::registerOpenCursor(LegacyCursor* cursor)
-{
-    m_openCursors.add(cursor);
-}
-
-void LegacyTransaction::unregisterOpenCursor(LegacyCursor* cursor)
-{
-    m_openCursors.remove(cursor);
-}
-
-void LegacyTransaction::closeOpenCursors()
-{
-    HashSet&lt;LegacyCursor*&gt; cursors;
-    cursors.swap(m_openCursors);
-    for (auto&amp; cursor : cursors)
-        cursor-&gt;close();
-}
-
-void LegacyTransaction::registerRequest(LegacyRequest* request)
-{
-    ASSERT(request);
-    ASSERT(m_state == Active);
-    m_requestList.add(request);
-}
-
-void LegacyTransaction::unregisterRequest(LegacyRequest* request)
-{
-    ASSERT(request);
-    // If we aborted the request, it will already have been removed.
-    m_requestList.remove(request);
-}
-
-void LegacyTransaction::onAbort(PassRefPtr&lt;IDBDatabaseError&gt; prpError)
-{
-    LOG(StorageAPI, &quot;LegacyTransaction::onAbort&quot;);
-    RefPtr&lt;IDBDatabaseError&gt; error = prpError;
-    ASSERT(m_state != Finished);
-
-    if (m_state != Finishing) {
-        ASSERT(error.get());
-        setError(DOMError::create(error-&gt;name()), error-&gt;message());
-
-        // Abort was not triggered by front-end, so outstanding requests must
-        // be aborted now.
-        while (!m_requestList.isEmpty()) {
-            RefPtr&lt;LegacyRequest&gt; request = *m_requestList.begin();
-            m_requestList.remove(request);
-            request-&gt;abort();
-        }
-        m_state = Finishing;
-    }
-
-    if (isVersionChange()) {
-        for (auto&amp; objectStore : m_objectStoreCleanupMap)
-            objectStore.key-&gt;setMetadata(objectStore.value);
-        m_database-&gt;setMetadata(m_previousMetadata);
-        m_database-&gt;close();
-    }
-    m_objectStoreCleanupMap.clear();
-    closeOpenCursors();
-
-    // Enqueue events before notifying database, as database may close which enqueues more events and order matters.
-    enqueueEvent(Event::create(eventNames().abortEvent, true, false));
-    m_database-&gt;transactionFinished(this);
-}
-
-void LegacyTransaction::onComplete()
-{
-    LOG(StorageAPI, &quot;LegacyTransaction::onComplete&quot;);
-    ASSERT(m_state != Finished);
-    m_state = Finishing;
-    m_objectStoreCleanupMap.clear();
-    closeOpenCursors();
-
-    // Enqueue events before notifying database, as database may close which enqueues more events and order matters.
-    enqueueEvent(Event::create(eventNames().completeEvent, false, false));
-    m_database-&gt;transactionFinished(this);
-}
-
-bool LegacyTransaction::hasPendingActivity() const
-{
-    // FIXME: In an ideal world, we should return true as long as anyone has a or can
-    //        get a handle to us or any child request object and any of those have
-    //        event listeners. This is  in order to handle user generated events properly.
-    return m_hasPendingActivity &amp;&amp; !m_contextStopped;
-}
-
-bool LegacyTransaction::dispatchEvent(Event&amp; event)
-{
-    LOG(StorageAPI, &quot;LegacyTransaction::dispatchEvent&quot;);
-    ASSERT(m_state != Finished);
-    ASSERT(m_hasPendingActivity);
-    ASSERT(scriptExecutionContext());
-    ASSERT(event.target() == this);
-    m_state = Finished;
-
-    // Break reference cycles.
-    for (auto&amp; objectStore : m_objectStoreMap)
-        objectStore.value-&gt;transactionFinished();
-    m_objectStoreMap.clear();
-    for (auto&amp; objectStore : m_deletedObjectStores)
-        objectStore-&gt;transactionFinished();
-    m_deletedObjectStores.clear();
-
-    Vector&lt;RefPtr&lt;EventTarget&gt;&gt; targets;
-    targets.append(this);
-    targets.append(db());
-
-    // FIXME: When we allow custom event dispatching, this will probably need to change.
-    ASSERT(event.type() == eventNames().completeEvent || event.type() == eventNames().abortEvent);
-    bool returnValue = IDBEventDispatcher::dispatch(event, targets);
-    // FIXME: Try to construct a test where |this| outlives openDBRequest and we
-    // get a crash.
-    if (m_openDBRequest) {
-        ASSERT(isVersionChange());
-        m_openDBRequest-&gt;transactionDidFinishAndDispatch();
-    }
-    m_hasPendingActivity = false;
-    return returnValue;
-}
-
-bool LegacyTransaction::canSuspendForDocumentSuspension() const
-{
-    // FIXME: Technically we can suspend before the first request is schedule
-    //        and after the complete/abort event is enqueued.
-    return m_state == Finished;
-}
-
-void LegacyTransaction::stop()
-{
-    m_contextStopped = true;
-    ExceptionCodeWithMessage ec;
-    abort(ec);
-}
-
-const char* LegacyTransaction::activeDOMObjectName() const
-{
-    return &quot;LegacyTransaction&quot;;
-}
-
-void LegacyTransaction::enqueueEvent(Ref&lt;Event&gt;&amp;&amp; event)
-{
-    ASSERT_WITH_MESSAGE(m_state != Finished, &quot;A finished transaction tried to enqueue an event of type %s.&quot;, event-&gt;type().string().utf8().data());
-    if (m_contextStopped || !scriptExecutionContext())
-        return;
-
-    event-&gt;setTarget(this);
-    scriptExecutionContext()-&gt;eventQueue().enqueueEvent(WTFMove(event));
-}
-
-IDBDatabaseBackend* LegacyTransaction::backendDB() const
-{
-    return m_database-&gt;backend();
-}
-
-}
-
-#endif // ENABLE(INDEXED_DATABASE)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyTransactionh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyTransaction.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyTransaction.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyTransaction.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,159 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef LegacyTransaction_h
-#define LegacyTransaction_h
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;ActiveDOMObject.h&quot;
-#include &quot;DOMError.h&quot;
-#include &quot;Event.h&quot;
-#include &quot;EventListener.h&quot;
-#include &quot;EventTarget.h&quot;
-#include &quot;IDBDatabaseMetadata.h&quot;
-#include &quot;IDBTransaction.h&quot;
-#include &quot;IndexedDB.h&quot;
-#include &quot;LegacyDatabase.h&quot;
-#include &quot;LegacyRequest.h&quot;
-#include &quot;ScriptWrappable.h&quot;
-#include &lt;wtf/HashSet.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-
-namespace WebCore {
-
-class IDBDatabaseBackend;
-class IDBDatabaseError;
-class LegacyCursor;
-class LegacyObjectStore;
-class LegacyOpenDBRequest;
-struct IDBObjectStoreMetadata;
-
-class LegacyTransaction final : public IDBTransaction {
-public:
-    static Ref&lt;LegacyTransaction&gt; create(ScriptExecutionContext*, int64_t, const Vector&lt;String&gt;&amp; objectStoreNames, IndexedDB::TransactionMode, LegacyDatabase*);
-    static Ref&lt;LegacyTransaction&gt; create(ScriptExecutionContext*, int64_t, LegacyDatabase*, LegacyOpenDBRequest*, const IDBDatabaseMetadata&amp; previousMetadata);
-    virtual ~LegacyTransaction();
-
-    IDBDatabaseBackend* backendDB() const;
-
-    int64_t id() const { return m_id; }
-    bool isActive() const { return m_state == Active; }
-    bool isFinished() const { return m_state == Finished; }
-    bool isReadOnly() const { return m_mode == IndexedDB::TransactionMode::ReadOnly; }
-    bool isVersionChange() const { return m_mode == IndexedDB::TransactionMode::VersionChange; }
-
-    virtual const String&amp; mode() const override final;
-    virtual IDBDatabase* db() override final;
-    virtual RefPtr&lt;DOMError&gt; error() const override final { return m_error; }
-    virtual RefPtr&lt;IDBObjectStore&gt; objectStore(const String&amp; name, ExceptionCodeWithMessage&amp;) override final;
-    virtual void abort(ExceptionCodeWithMessage&amp;) override final;
-
-    class OpenCursorNotifier {
-    public:
-        OpenCursorNotifier(PassRefPtr&lt;LegacyTransaction&gt;, LegacyCursor*);
-        ~OpenCursorNotifier();
-        void cursorFinished();
-    private:
-        RefPtr&lt;LegacyTransaction&gt; m_transaction;
-        LegacyCursor* m_cursor;
-    };
-
-    void registerRequest(LegacyRequest*);
-    void unregisterRequest(LegacyRequest*);
-    void objectStoreCreated(const String&amp;, PassRefPtr&lt;LegacyObjectStore&gt;);
-    void objectStoreDeleted(const String&amp;);
-    void setActive(bool);
-    void setError(PassRefPtr&lt;DOMError&gt;, const String&amp; errorMessage);
-
-    void onAbort(PassRefPtr&lt;IDBDatabaseError&gt;);
-    void onComplete();
-
-    // EventTarget
-    virtual EventTargetInterface eventTargetInterface() const override final { return IDBTransactionEventTargetInterfaceType; }
-    virtual ScriptExecutionContext* scriptExecutionContext() const override final { return ActiveDOMObject::scriptExecutionContext(); }
-
-    using EventTarget::dispatchEvent;
-    virtual bool dispatchEvent(Event&amp;) override final;
-
-    // ActiveDOMObject
-    virtual bool hasPendingActivity() const override final;
-
-private:
-    LegacyTransaction(ScriptExecutionContext*, int64_t, const Vector&lt;String&gt;&amp;, IndexedDB::TransactionMode, LegacyDatabase*, LegacyOpenDBRequest*, const IDBDatabaseMetadata&amp;);
-
-    void enqueueEvent(Ref&lt;Event&gt;&amp;&amp;);
-    void closeOpenCursors();
-
-    void registerOpenCursor(LegacyCursor*);
-    void unregisterOpenCursor(LegacyCursor*);
-
-    // ActiveDOMObject API.
-    bool canSuspendForDocumentSuspension() const override;
-    void stop() override;
-    const char* activeDOMObjectName() const override;
-
-    // EventTarget API.
-    virtual void refEventTarget() override { ref(); }
-    virtual void derefEventTarget() override { deref(); }
-
-    enum State {
-        Inactive, // Created or started, but not in an event callback
-        Active, // Created or started, in creation scope or an event callback
-        Finishing, // In the process of aborting or completing.
-        Finished, // No more events will fire and no new requests may be filed.
-    };
-
-    int64_t m_id;
-    RefPtr&lt;LegacyDatabase&gt; m_database;
-    const Vector&lt;String&gt; m_objectStoreNames;
-    LegacyOpenDBRequest* m_openDBRequest;
-    const IndexedDB::TransactionMode m_mode;
-    State m_state;
-    bool m_hasPendingActivity;
-    bool m_contextStopped;
-    RefPtr&lt;DOMError&gt; m_error;
-    String m_errorMessage;
-
-    ListHashSet&lt;RefPtr&lt;LegacyRequest&gt;&gt; m_requestList;
-
-    typedef HashMap&lt;String, RefPtr&lt;LegacyObjectStore&gt;&gt; IDBObjectStoreMap;
-    IDBObjectStoreMap m_objectStoreMap;
-
-    typedef HashSet&lt;RefPtr&lt;LegacyObjectStore&gt;&gt; IDBObjectStoreSet;
-    IDBObjectStoreSet m_deletedObjectStores;
-
-    typedef HashMap&lt;RefPtr&lt;LegacyObjectStore&gt;, IDBObjectStoreMetadata&gt; IDBObjectStoreMetadataMap;
-    IDBObjectStoreMetadataMap m_objectStoreCleanupMap;
-    IDBDatabaseMetadata m_previousMetadata;
-
-    HashSet&lt;LegacyCursor*&gt; m_openCursors;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-
-#endif // LegacyTransaction_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyVersionChangeEventcpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyVersionChangeEvent.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyVersionChangeEvent.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyVersionChangeEvent.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,52 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;LegacyVersionChangeEvent.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebCore {
-
-LegacyVersionChangeEvent::LegacyVersionChangeEvent(unsigned long long oldVersion, unsigned long long newVersion, const AtomicString&amp; eventType)
-    : IDBVersionChangeEvent(eventType)
-    , m_oldVersion(oldVersion)
-    , m_newVersion(newVersion)
-{
-}
-
-Optional&lt;uint64_t&gt; LegacyVersionChangeEvent::newVersion() const
-{
-    return m_newVersion;
-}
-
-EventInterface LegacyVersionChangeEvent::eventInterface() const
-{
-    return IDBVersionChangeEventInterfaceType;
-}
-
-} // namespace WebCore
-
-#endif
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddblegacyLegacyVersionChangeEventh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyVersionChangeEvent.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyVersionChangeEvent.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/legacy/LegacyVersionChangeEvent.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,58 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef LegacyVersionChangeEvent_h
-#define LegacyVersionChangeEvent_h
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;IDBVersionChangeEvent.h&quot;
-#include &quot;IndexedDB.h&quot;
-
-namespace WebCore {
-
-class LegacyVersionChangeEvent final : public IDBVersionChangeEvent {
-public:
-    static Ref&lt;LegacyVersionChangeEvent&gt; create(unsigned long long oldVersion, unsigned long long newVersion, const AtomicString&amp; eventType)
-    {
-        return adoptRef(*new LegacyVersionChangeEvent(oldVersion, newVersion, eventType));
-    }
-
-private:
-    LegacyVersionChangeEvent(unsigned long long oldVersion, unsigned long long newVersion, const AtomicString&amp; eventType);
-
-    virtual uint64_t oldVersion() const override { return m_oldVersion; }
-    virtual Optional&lt;uint64_t&gt; newVersion() const override;
-    virtual EventInterface eventInterface() const override;
-
-    uint64_t m_oldVersion;
-    uint64_t m_newVersion;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
-
-#endif // LegacyVersionChangeEvent_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbserverSQLiteIDBCursorcpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx">     : m_transaction(&amp;transaction)
</span><span class="cx">     , m_cursorIdentifier(info.identifier())
</span><span class="cx">     , m_objectStoreID(info.objectStoreIdentifier())
</span><del>-    , m_indexID(info.cursorSource() == IndexedDB::CursorSource::Index ? info.sourceIdentifier() : IDBIndexMetadata::InvalidId)
</del><ins>+    , m_indexID(info.cursorSource() == IndexedDB::CursorSource::Index ? info.sourceIdentifier() : IDBIndexInfo::InvalidId)
</ins><span class="cx">     , m_cursorDirection(info.cursorDirection())
</span><span class="cx">     , m_keyRange(info.range())
</span><span class="cx"> {
</span><span class="lines">@@ -80,7 +80,7 @@
</span><span class="cx">     : m_transaction(&amp;transaction)
</span><span class="cx">     , m_cursorIdentifier(transaction.transactionIdentifier())
</span><span class="cx">     , m_objectStoreID(objectStoreID)
</span><del>-    , m_indexID(indexID ? indexID : IDBIndexMetadata::InvalidId)
</del><ins>+    , m_indexID(indexID ? indexID : IDBIndexInfo::InvalidId)
</ins><span class="cx">     , m_cursorDirection(IndexedDB::CursorDirection::Next)
</span><span class="cx">     , m_keyRange(range)
</span><span class="cx">     , m_backingStoreCursor(true)
</span><span class="lines">@@ -167,7 +167,7 @@
</span><span class="cx">     ASSERT(!m_statement);
</span><span class="cx">     String sql;
</span><span class="cx"> 
</span><del>-    if (m_indexID != IDBIndexMetadata::InvalidId) {
</del><ins>+    if (m_indexID != IDBIndexInfo::InvalidId) {
</ins><span class="cx">         sql = buildIndexStatement(m_keyRange, m_cursorDirection);
</span><span class="cx">         m_boundID = m_indexID;
</span><span class="cx">     } else {
</span><span class="lines">@@ -370,7 +370,7 @@
</span><span class="cx">     m_currentValueBuffer = keyData;
</span><span class="cx"> 
</span><span class="cx">     // The primaryKey of an ObjectStore cursor is the same as its key.
</span><del>-    if (m_indexID == IDBIndexMetadata::InvalidId)
</del><ins>+    if (m_indexID == IDBIndexInfo::InvalidId)
</ins><span class="cx">         m_currentPrimaryKey = m_currentKey;
</span><span class="cx">     else {
</span><span class="cx">         if (!deserializeIDBKeyData(keyData.data(), keyData.size(), m_currentPrimaryKey)) {
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbserverSQLiteIDBCursorh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx"> 
</span><del>-#include &quot;IDBDatabaseBackend.h&quot;
</del><ins>+#include &quot;IDBIndexInfo.h&quot;
</ins><span class="cx"> #include &quot;IDBKeyData.h&quot;
</span><span class="cx"> #include &quot;IDBKeyRangeData.h&quot;
</span><span class="cx"> #include &quot;IDBResourceIdentifier.h&quot;
</span><span class="lines">@@ -93,7 +93,7 @@
</span><span class="cx">     SQLiteIDBTransaction* m_transaction;
</span><span class="cx">     IDBResourceIdentifier m_cursorIdentifier;
</span><span class="cx">     int64_t m_objectStoreID;
</span><del>-    int64_t m_indexID { IDBIndexMetadata::InvalidId };
</del><ins>+    int64_t m_indexID { IDBIndexInfo::InvalidId };
</ins><span class="cx">     IndexedDB::CursorDirection m_cursorDirection { IndexedDB::CursorDirection::Next };
</span><span class="cx">     IDBKeyRangeData m_keyRange;
</span><span class="cx"> 
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreModulesindexeddbsharedIDBIndexInfoh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -54,6 +54,9 @@
</span><span class="cx">     String loggingString(int indent = 0) const;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+    // FIXME: Remove the need for this.
+    static const int64_t InvalidId = -1;
+
</ins><span class="cx"> private:
</span><span class="cx">     uint64_t m_identifier { 0 };
</span><span class="cx">     uint64_t m_objectStoreIdentifier { 0 };
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/WebCore.xcodeproj/project.pbxproj (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1931,8 +1931,6 @@
</span><span class="cx">                 5103105B1BA8DB56003329C0 /* IDBOpenDBRequestImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 510310571BA8DB30003329C0 /* IDBOpenDBRequestImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 5103105C1BA8DB56003329C0 /* IDBRequestImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 510310581BA8DB30003329C0 /* IDBRequestImpl.cpp */; };
</span><span class="cx">                 5103105D1BA8DB56003329C0 /* IDBRequestImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 510310591BA8DB30003329C0 /* IDBRequestImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                5103C2B11BA22D1A00E26337 /* LegacyAny.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B6E1BA0A76100F789CE /* LegacyAny.cpp */; };
-                5103C2B91BA23A2600E26337 /* LegacyAny.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B6F1BA0A76100F789CE /* LegacyAny.h */; };
</del><span class="cx">                 5106D7BD18BDB76F000AB166 /* ContextMenuContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5106D7BB18BDB76F000AB166 /* ContextMenuContext.cpp */; };
</span><span class="cx">                 5106D7BE18BDB76F000AB166 /* ContextMenuContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 5106D7BC18BDB76F000AB166 /* ContextMenuContext.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 510A58E41BAA40B100C19282 /* InProcessIDBServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 510A58E21BAA40AE00C19282 /* InProcessIDBServer.cpp */; };
</span><span class="lines">@@ -2034,26 +2032,6 @@
</span><span class="cx">                 5160F4980B0AA75F00C1D2AF /* HistoryItemMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5160F4970B0AA75F00C1D2AF /* HistoryItemMac.mm */; };
</span><span class="cx">                 5162C7F411F77EFB00612EFE /* SchemeRegistry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5162C7F211F77EFA00612EFE /* SchemeRegistry.cpp */; };
</span><span class="cx">                 5162C7F511F77EFB00612EFE /* SchemeRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 5162C7F311F77EFB00612EFE /* SchemeRegistry.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                51645B5A1B9FA6C800F789CE /* LegacyCursor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B281B9F639100F789CE /* LegacyCursor.cpp */; };
-                51645B5B1B9FA6C800F789CE /* LegacyCursor.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B291B9F639100F789CE /* LegacyCursor.h */; };
-                51645B5C1B9FA6C800F789CE /* LegacyCursorWithValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B2A1B9F639100F789CE /* LegacyCursorWithValue.cpp */; };
-                51645B5D1B9FA6C800F789CE /* LegacyCursorWithValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B2B1B9F639100F789CE /* LegacyCursorWithValue.h */; };
-                51645B5E1B9FA6C800F789CE /* LegacyDatabase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B2C1B9F639100F789CE /* LegacyDatabase.cpp */; };
-                51645B5F1B9FA6C800F789CE /* LegacyDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B2D1B9F639100F789CE /* LegacyDatabase.h */; };
-                51645B601B9FA6C800F789CE /* LegacyFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B2E1B9F639100F789CE /* LegacyFactory.cpp */; };
-                51645B611B9FA6C800F789CE /* LegacyFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B2F1B9F639100F789CE /* LegacyFactory.h */; };
-                51645B621B9FA6C800F789CE /* LegacyIndex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B301B9F639100F789CE /* LegacyIndex.cpp */; };
-                51645B631B9FA6C800F789CE /* LegacyIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B311B9F639100F789CE /* LegacyIndex.h */; };
-                51645B641B9FA6C800F789CE /* LegacyObjectStore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B321B9F639100F789CE /* LegacyObjectStore.cpp */; };
-                51645B651B9FA6C800F789CE /* LegacyObjectStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B331B9F639100F789CE /* LegacyObjectStore.h */; };
-                51645B661B9FA6C800F789CE /* LegacyOpenDBRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B341B9F639100F789CE /* LegacyOpenDBRequest.cpp */; };
-                51645B671B9FA6C800F789CE /* LegacyOpenDBRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B351B9F639100F789CE /* LegacyOpenDBRequest.h */; };
-                51645B681B9FA6C800F789CE /* LegacyRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B361B9F639100F789CE /* LegacyRequest.cpp */; };
-                51645B691B9FA6C800F789CE /* LegacyRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B371B9F639100F789CE /* LegacyRequest.h */; };
-                51645B6A1B9FA6C800F789CE /* LegacyTransaction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B381B9F639100F789CE /* LegacyTransaction.cpp */; };
-                51645B6B1B9FA6C800F789CE /* LegacyTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B391B9F639100F789CE /* LegacyTransaction.h */; };
-                51645B6C1B9FA6C800F789CE /* LegacyVersionChangeEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B3A1B9F639100F789CE /* LegacyVersionChangeEvent.cpp */; };
-                51645B6D1B9FA6C800F789CE /* LegacyVersionChangeEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B3B1B9F639100F789CE /* LegacyVersionChangeEvent.h */; };
</del><span class="cx">                 516953971329A3C800B92D04 /* IconDatabaseBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 516953951329A3C800B92D04 /* IconDatabaseBase.cpp */; };
</span><span class="cx">                 516953981329A3C800B92D04 /* IconDatabaseBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 516953961329A3C800B92D04 /* IconDatabaseBase.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 516BB7940CE91E6800512F79 /* JSTreeWalkerCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 516BB7920CE91E6800512F79 /* JSTreeWalkerCustom.cpp */; };
</span><span class="lines">@@ -2106,8 +2084,6 @@
</span><span class="cx">                 5185FC851BB4C4E80012898F /* IDBDatabaseException.h in Headers */ = {isa = PBXBuildFile; fileRef = 51D71985181106DF0016DC51 /* IDBDatabaseException.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 5185FC861BB4C4E80012898F /* IDBDatabaseIdentifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5103105E1BA8E090003329C0 /* IDBDatabaseIdentifier.cpp */; };
</span><span class="cx">                 5185FC871BB4C4E80012898F /* IDBDatabaseIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 5103105F1BA8E090003329C0 /* IDBDatabaseIdentifier.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                5185FC881BB4C4E80012898F /* IDBDatabaseMetadata.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5163117C1851242B00534647 /* IDBDatabaseMetadata.cpp */; };
-                5185FC891BB4C4E80012898F /* IDBDatabaseMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 51C9611A183D2B8000D2002E /* IDBDatabaseMetadata.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 5185FC8A1BB4C4E80012898F /* IDBEventDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51D71986181106DF0016DC51 /* IDBEventDispatcher.cpp */; };
</span><span class="cx">                 5185FC8B1BB4C4E80012898F /* IDBEventDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 51D71987181106DF0016DC51 /* IDBEventDispatcher.h */; };
</span><span class="cx">                 5185FC8C1BB4C4E80012898F /* IDBFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B461B9F889B00F789CE /* IDBFactory.cpp */; };
</span><span class="lines">@@ -2115,7 +2091,6 @@
</span><span class="cx">                 5185FC8F1BB4C4E80012898F /* IDBGetResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 5123AF1C18918AE40031CDC9 /* IDBGetResult.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 5185FC901BB4C4E80012898F /* IDBIndex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B481B9F889B00F789CE /* IDBIndex.cpp */; };
</span><span class="cx">                 5185FC911BB4C4E80012898F /* IDBIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B491B9F889B00F789CE /* IDBIndex.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                5185FC931BB4C4E80012898F /* IDBIndexMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 51ABB5B6186D0ED1008391A1 /* IDBIndexMetadata.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 5185FC941BB4C4E80012898F /* IDBKey.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51D71991181106E00016DC51 /* IDBKey.cpp */; };
</span><span class="cx">                 5185FC951BB4C4E80012898F /* IDBKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 51D71992181106E00016DC51 /* IDBKey.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 5185FC961BB4C4E80012898F /* IDBKeyData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 511EC1A7188DAE7B00BA3EB6 /* IDBKeyData.cpp */; };
</span><span class="lines">@@ -2128,14 +2103,11 @@
</span><span class="cx">                 5185FC9E1BB4C4E80012898F /* IDBKeyRangeData.h in Headers */ = {isa = PBXBuildFile; fileRef = 5123AF171890A4CA0031CDC9 /* IDBKeyRangeData.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 5185FC9F1BB4C4E80012898F /* IDBObjectStore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B4A1B9F889B00F789CE /* IDBObjectStore.cpp */; };
</span><span class="cx">                 5185FCA01BB4C4E80012898F /* IDBObjectStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B4B1B9F889B00F789CE /* IDBObjectStore.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                5185FCA21BB4C4E80012898F /* IDBObjectStoreMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 51ABB5B7186D0ED1008391A1 /* IDBObjectStoreMetadata.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 5185FCA31BB4C4E80012898F /* IDBOpenDBRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B4C1B9F889B00F789CE /* IDBOpenDBRequest.cpp */; };
</span><span class="cx">                 5185FCA41BB4C4E80012898F /* IDBOpenDBRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B4D1B9F889B00F789CE /* IDBOpenDBRequest.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                5185FCA61BB4C4E80012898F /* IDBOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 512EA9BD18202857001D01E0 /* IDBOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 5185FCA71BB4C4E80012898F /* IDBRecordIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 51EAC5B018163F4E004F1BA4 /* IDBRecordIdentifier.h */; };
</span><span class="cx">                 5185FCA81BB4C4E80012898F /* IDBRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B4E1B9F889B00F789CE /* IDBRequest.cpp */; };
</span><span class="cx">                 5185FCA91BB4C4E80012898F /* IDBRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B4F1B9F889B00F789CE /* IDBRequest.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                5185FCAB1BB4C4E80012898F /* IDBServerConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 510A326E18318431003C5326 /* IDBServerConnection.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 5185FCAC1BB4C4E80012898F /* IDBTransaction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B501B9F889B00F789CE /* IDBTransaction.cpp */; };
</span><span class="cx">                 5185FCAD1BB4C4E80012898F /* IDBTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B511B9F889B00F789CE /* IDBTransaction.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 5185FCAF1BB4C4E80012898F /* IDBVersionChangeEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B521B9F889B00F789CE /* IDBVersionChangeEvent.cpp */; };
</span><span class="lines">@@ -2241,27 +2213,6 @@
</span><span class="cx">                 51EE7B3A1AA5123100F92B21 /* ResourceLoadInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51EE7B391AA5123100F92B21 /* ResourceLoadInfo.cpp */; };
</span><span class="cx">                 51EEAA731BEFFAB100218008 /* IndexValueEntry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51EEAA711BEFFA7900218008 /* IndexValueEntry.cpp */; };
</span><span class="cx">                 51EEAA741BEFFAB100218008 /* IndexValueEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = 51EEAA721BEFFA7900218008 /* IndexValueEntry.h */; };
</span><del>-                51F41A681BA73B5B002E053B /* IDBCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F41A481BA73B2C002E053B /* IDBCallbacks.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                51F41A691BA73B5B002E053B /* IDBCursorBackend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F41A491BA73B2C002E053B /* IDBCursorBackend.cpp */; };
-                51F41A6A1BA73B5B002E053B /* IDBCursorBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F41A4A1BA73B2C002E053B /* IDBCursorBackend.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                51F41A6B1BA73B5B002E053B /* IDBCursorBackendOperations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F41A4B1BA73B2C002E053B /* IDBCursorBackendOperations.cpp */; };
-                51F41A6C1BA73B5B002E053B /* IDBCursorBackendOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F41A4C1BA73B2C002E053B /* IDBCursorBackendOperations.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                51F41A6D1BA73B5B002E053B /* IDBDatabaseBackend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F41A4D1BA73B2C002E053B /* IDBDatabaseBackend.cpp */; };
-                51F41A6E1BA73B5B002E053B /* IDBDatabaseBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F41A4E1BA73B2C002E053B /* IDBDatabaseBackend.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                51F41A6F1BA73B5B002E053B /* IDBDatabaseCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B401B9F695E00F789CE /* IDBDatabaseCallbacks.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                51F41A701BA73B5B002E053B /* IDBDatabaseCallbacksImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B3E1B9F692300F789CE /* IDBDatabaseCallbacksImpl.cpp */; };
-                51F41A711BA73B5B002E053B /* IDBDatabaseCallbacksImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B3F1B9F692300F789CE /* IDBDatabaseCallbacksImpl.h */; };
-                51F41A721BA73B5B002E053B /* IDBFactoryBackendInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F41A4F1BA73B2C002E053B /* IDBFactoryBackendInterface.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                51F41A731BA73B5B002E053B /* IDBTransactionBackend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F41A521BA73B2C002E053B /* IDBTransactionBackend.cpp */; };
-                51F41A741BA73B5B002E053B /* IDBTransactionBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F41A531BA73B2C002E053B /* IDBTransactionBackend.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                51F41A751BA73B5B002E053B /* IDBTransactionBackendOperations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F41A541BA73B2C002E053B /* IDBTransactionBackendOperations.cpp */; };
-                51F41A761BA73B5B002E053B /* IDBTransactionBackendOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F41A551BA73B2C002E053B /* IDBTransactionBackendOperations.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                51F41A771BA73B5B002E053B /* IDBTransactionCoordinator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F41A561BA73B2C002E053B /* IDBTransactionCoordinator.cpp */; };
-                51F41A781BA73B5B002E053B /* IDBTransactionCoordinator.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F41A571BA73B2C002E053B /* IDBTransactionCoordinator.h */; };
-                51F41A791BA73B5B002E053B /* IDBPendingDeleteCall.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F41A501BA73B2C002E053B /* IDBPendingDeleteCall.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                51F41A7A1BA73B5B002E053B /* IDBPendingOpenCall.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F41A511BA73B2C002E053B /* IDBPendingOpenCall.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                51F41A7B1BA73B5B002E053B /* IDBPendingTransactionMonitor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B3C1B9F68CF00F789CE /* IDBPendingTransactionMonitor.cpp */; };
-                51F41A7C1BA73B5B002E053B /* IDBPendingTransactionMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 51645B3D1B9F68CF00F789CE /* IDBPendingTransactionMonitor.h */; };
</del><span class="cx">                 51F798E51BE88092008AE491 /* IDBCursorImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F798E11BE88084008AE491 /* IDBCursorImpl.cpp */; };
</span><span class="cx">                 51F798E61BE88092008AE491 /* IDBCursorImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F798E21BE88084008AE491 /* IDBCursorImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 51F798E71BE88092008AE491 /* IDBIndexImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F798E31BE88084008AE491 /* IDBIndexImpl.cpp */; };
</span><span class="lines">@@ -3516,6 +3467,8 @@
</span><span class="cx">                 8AF4E55C11DC5A63000ED3DE /* PerformanceTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AF4E55911DC5A63000ED3DE /* PerformanceTiming.h */; };
</span><span class="cx">                 8C6EA61911EF7E0400FD8EE3 /* RuntimeEnabledFeatures.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8C6EA61711EF7E0400FD8EE3 /* RuntimeEnabledFeatures.cpp */; };
</span><span class="cx">                 8C6EA61A11EF7E0400FD8EE3 /* RuntimeEnabledFeatures.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C6EA61811EF7E0400FD8EE3 /* RuntimeEnabledFeatures.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><ins>+                8E4C96DC1AD4483500365A50 /* JSFetchResponse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8E4C96D81AD4483500365A50 /* JSFetchResponse.cpp */; };
+                8E4C96DD1AD4483500365A50 /* JSFetchResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E4C96D91AD4483500365A50 /* JSFetchResponse.h */; };
</ins><span class="cx">                 8F67561B1288B17B0047ACA3 /* EventQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F6756191288B17B0047ACA3 /* EventQueue.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 8FAC774D119872CB0015AE94 /* JSMainThreadExecState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F934D841189F1EE00508D5D /* JSMainThreadExecState.cpp */; };
</span><span class="cx">                 9001774012E0347800648462 /* OESStandardDerivatives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9001773D12E0347800648462 /* OESStandardDerivatives.cpp */; };
</span><span class="lines">@@ -9467,7 +9420,6 @@
</span><span class="cx">                 5103105F1BA8E090003329C0 /* IDBDatabaseIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBDatabaseIdentifier.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 5106D7BB18BDB76F000AB166 /* ContextMenuContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ContextMenuContext.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 5106D7BC18BDB76F000AB166 /* ContextMenuContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContextMenuContext.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                510A326E18318431003C5326 /* IDBServerConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBServerConnection.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 510A58E21BAA40AE00C19282 /* InProcessIDBServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InProcessIDBServer.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 510A58E31BAA40AE00C19282 /* InProcessIDBServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InProcessIDBServer.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 510A58EF1BAB720F00C19282 /* IDBServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBServer.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -9524,7 +9476,6 @@
</span><span class="cx">                 512DD8F10D91E6AF000F89EE /* ArchiveResource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ArchiveResource.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 512DD8F20D91E6AF000F89EE /* ArchiveResource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArchiveResource.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 512DD8F30D91E6AF000F89EE /* ArchiveFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArchiveFactory.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                512EA9BD18202857001D01E0 /* IDBOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBOperation.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 512F1A771C07EA0D00908239 /* IDBGetResult.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBGetResult.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51327D5E11A33A2B004F9D65 /* SinkDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SinkDocument.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51327D5F11A33A2B004F9D65 /* SinkDocument.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SinkDocument.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -9580,32 +9531,6 @@
</span><span class="cx">                 5160F4970B0AA75F00C1D2AF /* HistoryItemMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = HistoryItemMac.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 5162C7F211F77EFA00612EFE /* SchemeRegistry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SchemeRegistry.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 5162C7F311F77EFB00612EFE /* SchemeRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SchemeRegistry.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                5163117C1851242B00534647 /* IDBDatabaseMetadata.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBDatabaseMetadata.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B281B9F639100F789CE /* LegacyCursor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LegacyCursor.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B291B9F639100F789CE /* LegacyCursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyCursor.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B2A1B9F639100F789CE /* LegacyCursorWithValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LegacyCursorWithValue.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B2B1B9F639100F789CE /* LegacyCursorWithValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyCursorWithValue.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B2C1B9F639100F789CE /* LegacyDatabase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LegacyDatabase.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B2D1B9F639100F789CE /* LegacyDatabase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyDatabase.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B2E1B9F639100F789CE /* LegacyFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LegacyFactory.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B2F1B9F639100F789CE /* LegacyFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyFactory.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B301B9F639100F789CE /* LegacyIndex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LegacyIndex.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B311B9F639100F789CE /* LegacyIndex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyIndex.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B321B9F639100F789CE /* LegacyObjectStore.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LegacyObjectStore.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B331B9F639100F789CE /* LegacyObjectStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyObjectStore.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B341B9F639100F789CE /* LegacyOpenDBRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LegacyOpenDBRequest.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B351B9F639100F789CE /* LegacyOpenDBRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyOpenDBRequest.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B361B9F639100F789CE /* LegacyRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LegacyRequest.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B371B9F639100F789CE /* LegacyRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyRequest.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B381B9F639100F789CE /* LegacyTransaction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LegacyTransaction.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B391B9F639100F789CE /* LegacyTransaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyTransaction.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B3A1B9F639100F789CE /* LegacyVersionChangeEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LegacyVersionChangeEvent.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B3B1B9F639100F789CE /* LegacyVersionChangeEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyVersionChangeEvent.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B3C1B9F68CF00F789CE /* IDBPendingTransactionMonitor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBPendingTransactionMonitor.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B3D1B9F68CF00F789CE /* IDBPendingTransactionMonitor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBPendingTransactionMonitor.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B3E1B9F692300F789CE /* IDBDatabaseCallbacksImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBDatabaseCallbacksImpl.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B3F1B9F692300F789CE /* IDBDatabaseCallbacksImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBDatabaseCallbacksImpl.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B401B9F695E00F789CE /* IDBDatabaseCallbacks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBDatabaseCallbacks.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 51645B411B9F889B00F789CE /* IDBCursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBCursor.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51645B421B9F889B00F789CE /* IDBCursorWithValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBCursorWithValue.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51645B431B9F889B00F789CE /* IDBCursorWithValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBCursorWithValue.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -9626,8 +9551,6 @@
</span><span class="cx">                 51645B521B9F889B00F789CE /* IDBVersionChangeEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBVersionChangeEvent.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51645B531B9F889B00F789CE /* IDBVersionChangeEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBVersionChangeEvent.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51645B541B9F88E800F789CE /* IDBCursor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBCursor.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                51645B6E1BA0A76100F789CE /* LegacyAny.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LegacyAny.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51645B6F1BA0A76100F789CE /* LegacyAny.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyAny.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 516953951329A3C800B92D04 /* IconDatabaseBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IconDatabaseBase.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 516953961329A3C800B92D04 /* IconDatabaseBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IconDatabaseBase.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 516BB7920CE91E6800512F79 /* JSTreeWalkerCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTreeWalkerCustom.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -9720,8 +9643,6 @@
</span><span class="cx">                 51ABAE1A103C18FF008C5260 /* SocketStreamError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SocketStreamError.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51ABAE1C103C1913008C5260 /* SocketStreamHandle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SocketStreamHandle.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51ABAE1D103C1913008C5260 /* SocketStreamHandleCFNet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SocketStreamHandleCFNet.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                51ABB5B6186D0ED1008391A1 /* IDBIndexMetadata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBIndexMetadata.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51ABB5B7186D0ED1008391A1 /* IDBObjectStoreMetadata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBObjectStoreMetadata.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 51ABF64C16392E2800132A7A /* LoaderStrategy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LoaderStrategy.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51AF503516F100F60095B2E8 /* ResourceLoaderTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceLoaderTypes.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51B2417A0D931F3F00E83F5C /* LegacyWebArchiveMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = LegacyWebArchiveMac.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -9738,7 +9659,6 @@
</span><span class="cx">                 51C0AA400F2AA15E001648C2 /* CachedFrame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = CachedFrame.cpp; sourceTree = &quot;&lt;group&gt;&quot;; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
</span><span class="cx">                 51C81B870C4422F70019ECE3 /* FTPDirectoryParser.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = FTPDirectoryParser.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51C81B880C4422F70019ECE3 /* FTPDirectoryParser.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTPDirectoryParser.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                51C9611A183D2B8000D2002E /* IDBDatabaseMetadata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBDatabaseMetadata.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 51CBFC980D10E483002DBF51 /* CachedFramePlatformData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedFramePlatformData.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51D0C5150DAA90B7003B3831 /* JSStorageCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSStorageCustom.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51D7196C181106DF0016DC51 /* DOMWindowIndexedDatabase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DOMWindowIndexedDatabase.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -9809,22 +9729,6 @@
</span><span class="cx">                 51EE7B391AA5123100F92B21 /* ResourceLoadInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceLoadInfo.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51EEAA711BEFFA7900218008 /* IndexValueEntry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IndexValueEntry.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51EEAA721BEFFA7900218008 /* IndexValueEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IndexValueEntry.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                51F41A481BA73B2C002E053B /* IDBCallbacks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBCallbacks.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51F41A491BA73B2C002E053B /* IDBCursorBackend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBCursorBackend.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51F41A4A1BA73B2C002E053B /* IDBCursorBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBCursorBackend.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51F41A4B1BA73B2C002E053B /* IDBCursorBackendOperations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBCursorBackendOperations.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51F41A4C1BA73B2C002E053B /* IDBCursorBackendOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBCursorBackendOperations.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51F41A4D1BA73B2C002E053B /* IDBDatabaseBackend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBDatabaseBackend.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51F41A4E1BA73B2C002E053B /* IDBDatabaseBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBDatabaseBackend.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51F41A4F1BA73B2C002E053B /* IDBFactoryBackendInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBFactoryBackendInterface.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51F41A501BA73B2C002E053B /* IDBPendingDeleteCall.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBPendingDeleteCall.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51F41A511BA73B2C002E053B /* IDBPendingOpenCall.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBPendingOpenCall.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51F41A521BA73B2C002E053B /* IDBTransactionBackend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBTransactionBackend.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51F41A531BA73B2C002E053B /* IDBTransactionBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBTransactionBackend.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51F41A541BA73B2C002E053B /* IDBTransactionBackendOperations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBTransactionBackendOperations.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51F41A551BA73B2C002E053B /* IDBTransactionBackendOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBTransactionBackendOperations.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51F41A561BA73B2C002E053B /* IDBTransactionCoordinator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBTransactionCoordinator.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                51F41A571BA73B2C002E053B /* IDBTransactionCoordinator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBTransactionCoordinator.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><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><span class="cx">                 51F798E11BE88084008AE491 /* IDBCursorImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBCursorImpl.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -11131,6 +11035,8 @@
</span><span class="cx">                 8AF4E55A11DC5A63000ED3DE /* PerformanceTiming.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PerformanceTiming.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 8C6EA61711EF7E0400FD8EE3 /* RuntimeEnabledFeatures.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RuntimeEnabledFeatures.cpp; path = generic/RuntimeEnabledFeatures.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 8C6EA61811EF7E0400FD8EE3 /* RuntimeEnabledFeatures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RuntimeEnabledFeatures.h; path = generic/RuntimeEnabledFeatures.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                8E4C96D81AD4483500365A50 /* JSFetchResponse.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSFetchResponse.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                8E4C96D91AD4483500365A50 /* JSFetchResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSFetchResponse.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 8F6756191288B17B0047ACA3 /* EventQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EventQueue.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 8F934D831189F1EE00508D5D /* JSMainThreadExecState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMainThreadExecState.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 8F934D841189F1EE00508D5D /* JSMainThreadExecState.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMainThreadExecState.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -17304,56 +17210,6 @@
</span><span class="cx">                         path = mac;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="cx">                 };
</span><del>-                51645B271B9F637E00F789CE /* legacy */ = {
-                        isa = PBXGroup;
-                        children = (
-                                51F41A481BA73B2C002E053B /* IDBCallbacks.h */,
-                                51F41A491BA73B2C002E053B /* IDBCursorBackend.cpp */,
-                                51F41A4A1BA73B2C002E053B /* IDBCursorBackend.h */,
-                                51F41A4B1BA73B2C002E053B /* IDBCursorBackendOperations.cpp */,
-                                51F41A4C1BA73B2C002E053B /* IDBCursorBackendOperations.h */,
-                                51F41A4D1BA73B2C002E053B /* IDBDatabaseBackend.cpp */,
-                                51F41A4E1BA73B2C002E053B /* IDBDatabaseBackend.h */,
-                                51645B401B9F695E00F789CE /* IDBDatabaseCallbacks.h */,
-                                51645B3E1B9F692300F789CE /* IDBDatabaseCallbacksImpl.cpp */,
-                                51645B3F1B9F692300F789CE /* IDBDatabaseCallbacksImpl.h */,
-                                51F41A4F1BA73B2C002E053B /* IDBFactoryBackendInterface.h */,
-                                51F41A501BA73B2C002E053B /* IDBPendingDeleteCall.h */,
-                                51F41A511BA73B2C002E053B /* IDBPendingOpenCall.h */,
-                                51645B3C1B9F68CF00F789CE /* IDBPendingTransactionMonitor.cpp */,
-                                51645B3D1B9F68CF00F789CE /* IDBPendingTransactionMonitor.h */,
-                                51F41A521BA73B2C002E053B /* IDBTransactionBackend.cpp */,
-                                51F41A531BA73B2C002E053B /* IDBTransactionBackend.h */,
-                                51F41A541BA73B2C002E053B /* IDBTransactionBackendOperations.cpp */,
-                                51F41A551BA73B2C002E053B /* IDBTransactionBackendOperations.h */,
-                                51F41A561BA73B2C002E053B /* IDBTransactionCoordinator.cpp */,
-                                51F41A571BA73B2C002E053B /* IDBTransactionCoordinator.h */,
-                                51645B6E1BA0A76100F789CE /* LegacyAny.cpp */,
-                                51645B6F1BA0A76100F789CE /* LegacyAny.h */,
-                                51645B281B9F639100F789CE /* LegacyCursor.cpp */,
-                                51645B291B9F639100F789CE /* LegacyCursor.h */,
-                                51645B2A1B9F639100F789CE /* LegacyCursorWithValue.cpp */,
-                                51645B2B1B9F639100F789CE /* LegacyCursorWithValue.h */,
-                                51645B2C1B9F639100F789CE /* LegacyDatabase.cpp */,
-                                51645B2D1B9F639100F789CE /* LegacyDatabase.h */,
-                                51645B2E1B9F639100F789CE /* LegacyFactory.cpp */,
-                                51645B2F1B9F639100F789CE /* LegacyFactory.h */,
-                                51645B301B9F639100F789CE /* LegacyIndex.cpp */,
-                                51645B311B9F639100F789CE /* LegacyIndex.h */,
-                                51645B321B9F639100F789CE /* LegacyObjectStore.cpp */,
-                                51645B331B9F639100F789CE /* LegacyObjectStore.h */,
-                                51645B341B9F639100F789CE /* LegacyOpenDBRequest.cpp */,
-                                51645B351B9F639100F789CE /* LegacyOpenDBRequest.h */,
-                                51645B361B9F639100F789CE /* LegacyRequest.cpp */,
-                                51645B371B9F639100F789CE /* LegacyRequest.h */,
-                                51645B381B9F639100F789CE /* LegacyTransaction.cpp */,
-                                51645B391B9F639100F789CE /* LegacyTransaction.h */,
-                                51645B3A1B9F639100F789CE /* LegacyVersionChangeEvent.cpp */,
-                                51645B3B1B9F639100F789CE /* LegacyVersionChangeEvent.h */,
-                        );
-                        path = legacy;
-                        sourceTree = &quot;&lt;group&gt;&quot;;
-                };
</del><span class="cx">                 51741D080B07257000ED442C /* history */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="lines">@@ -19531,7 +19387,6 @@
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="cx">                                 510310421BA8C64C003329C0 /* client */,
</span><del>-                                51645B271B9F637E00F789CE /* legacy */,
</del><span class="cx">                                 510A58EE1BAB71E000C19282 /* server */,
</span><span class="cx">                                 510A58E11BAA409800C19282 /* shared */,
</span><span class="cx">                                 51D7196C181106DF0016DC51 /* DOMWindowIndexedDatabase.cpp */,
</span><span class="lines">@@ -19554,8 +19409,6 @@
</span><span class="cx">                                 51D71985181106DF0016DC51 /* IDBDatabaseException.h */,
</span><span class="cx">                                 5103105E1BA8E090003329C0 /* IDBDatabaseIdentifier.cpp */,
</span><span class="cx">                                 5103105F1BA8E090003329C0 /* IDBDatabaseIdentifier.h */,
</span><del>-                                5163117C1851242B00534647 /* IDBDatabaseMetadata.cpp */,
-                                51C9611A183D2B8000D2002E /* IDBDatabaseMetadata.h */,
</del><span class="cx">                                 51D71986181106DF0016DC51 /* IDBEventDispatcher.cpp */,
</span><span class="cx">                                 51D71987181106DF0016DC51 /* IDBEventDispatcher.h */,
</span><span class="cx">                                 51645B461B9F889B00F789CE /* IDBFactory.cpp */,
</span><span class="lines">@@ -19566,7 +19419,6 @@
</span><span class="cx">                                 51645B481B9F889B00F789CE /* IDBIndex.cpp */,
</span><span class="cx">                                 51645B491B9F889B00F789CE /* IDBIndex.h */,
</span><span class="cx">                                 51D71990181106E00016DC51 /* IDBIndex.idl */,
</span><del>-                                51ABB5B6186D0ED1008391A1 /* IDBIndexMetadata.h */,
</del><span class="cx">                                 51D71991181106E00016DC51 /* IDBKey.cpp */,
</span><span class="cx">                                 51D71992181106E00016DC51 /* IDBKey.h */,
</span><span class="cx">                                 511EC1A7188DAE7B00BA3EB6 /* IDBKeyData.cpp */,
</span><span class="lines">@@ -19581,18 +19433,15 @@
</span><span class="cx">                                 51645B4A1B9F889B00F789CE /* IDBObjectStore.cpp */,
</span><span class="cx">                                 51645B4B1B9F889B00F789CE /* IDBObjectStore.h */,
</span><span class="cx">                                 51D7199B181106E00016DC51 /* IDBObjectStore.idl */,
</span><del>-                                51ABB5B7186D0ED1008391A1 /* IDBObjectStoreMetadata.h */,
</del><span class="cx">                                 51645B4C1B9F889B00F789CE /* IDBOpenDBRequest.cpp */,
</span><span class="cx">                                 51645B4D1B9F889B00F789CE /* IDBOpenDBRequest.h */,
</span><span class="cx">                                 51D7199E181106E00016DC51 /* IDBOpenDBRequest.idl */,
</span><del>-                                512EA9BD18202857001D01E0 /* IDBOperation.h */,
</del><span class="cx">                                 51EAC5B018163F4E004F1BA4 /* IDBRecordIdentifier.h */,
</span><span class="cx">                                 51645B4E1B9F889B00F789CE /* IDBRequest.cpp */,
</span><span class="cx">                                 51645B4F1B9F889B00F789CE /* IDBRequest.h */,
</span><span class="cx">                                 51D719A3181106E00016DC51 /* IDBRequest.idl */,
</span><span class="cx">                                 514129961C6976150059E714 /* IDBRequestCompletionEvent.cpp */,
</span><span class="cx">                                 514129971C6976150059E714 /* IDBRequestCompletionEvent.h */,
</span><del>-                                510A326E18318431003C5326 /* IDBServerConnection.h */,
</del><span class="cx">                                 51645B501B9F889B00F789CE /* IDBTransaction.cpp */,
</span><span class="cx">                                 51645B511B9F889B00F789CE /* IDBTransaction.h */,
</span><span class="cx">                                 51D719A6181106E00016DC51 /* IDBTransaction.idl */,
</span><span class="lines">@@ -26230,38 +26079,29 @@
</span><span class="cx">                                 5198F7BF1BC338AF00E2CC5F /* IDBAnyImpl.h in Headers */,
</span><span class="cx">                                 51BA4ACC1BBC5BDD00DF3D6D /* IDBBackingStore.h in Headers */,
</span><span class="cx">                                 C585A66311D4FAC5004C3E4B /* IDBBindingUtilities.h in Headers */,
</span><del>-                                51F41A681BA73B5B002E053B /* IDBCallbacks.h in Headers */,
</del><span class="cx">                                 5185FCB91BB4CBF80012898F /* IDBConnectionToClient.h in Headers */,
</span><span class="cx">                                 516D7D721BB5F0BD00AF7C77 /* IDBConnectionToClientDelegate.h in Headers */,
</span><span class="cx">                                 5198F7C11BC4856700E2CC5F /* IDBConnectionToServer.h in Headers */,
</span><span class="cx">                                 516D7D701BB5F0BD00AF7C77 /* IDBConnectionToServerDelegate.h in Headers */,
</span><span class="cx">                                 5185FC7B1BB4C4E80012898F /* IDBCursor.h in Headers */,
</span><del>-                                51F41A6A1BA73B5B002E053B /* IDBCursorBackend.h in Headers */,
-                                51F41A6C1BA73B5B002E053B /* IDBCursorBackendOperations.h in Headers */,
</del><span class="cx">                                 51F798E61BE88092008AE491 /* IDBCursorImpl.h in Headers */,
</span><span class="cx">                                 517138FC1BF3ADF4000D5F01 /* IDBCursorInfo.h in Headers */,
</span><span class="cx">                                 5185FC7E1BB4C4E80012898F /* IDBCursorWithValue.h in Headers */,
</span><span class="cx">                                 51F798F41BE88394008AE491 /* IDBCursorWithValueImpl.h in Headers */,
</span><span class="cx">                                 5185FC811BB4C4E80012898F /* IDBDatabase.h in Headers */,
</span><del>-                                51F41A6E1BA73B5B002E053B /* IDBDatabaseBackend.h in Headers */,
-                                51F41A6F1BA73B5B002E053B /* IDBDatabaseCallbacks.h in Headers */,
-                                51F41A711BA73B5B002E053B /* IDBDatabaseCallbacksImpl.h in Headers */,
</del><span class="cx">                                 5185FC831BB4C4E80012898F /* IDBDatabaseError.h in Headers */,
</span><span class="cx">                                 5185FC851BB4C4E80012898F /* IDBDatabaseException.h in Headers */,
</span><span class="cx">                                 5185FC871BB4C4E80012898F /* IDBDatabaseIdentifier.h in Headers */,
</span><span class="cx">                                 5198F7B11BBDF5C800E2CC5F /* IDBDatabaseImpl.h in Headers */,
</span><span class="cx">                                 51BA4AC41BBB5CD800DF3D6D /* IDBDatabaseInfo.h in Headers */,
</span><del>-                                5185FC891BB4C4E80012898F /* IDBDatabaseMetadata.h in Headers */,
</del><span class="cx">                                 5148453F1BB9D07E006A72ED /* IDBError.h in Headers */,
</span><span class="cx">                                 5185FC8B1BB4C4E80012898F /* IDBEventDispatcher.h in Headers */,
</span><span class="cx">                                 5185FC8D1BB4C4E80012898F /* IDBFactory.h in Headers */,
</span><del>-                                51F41A721BA73B5B002E053B /* IDBFactoryBackendInterface.h in Headers */,
</del><span class="cx">                                 510310501BA8CC03003329C0 /* IDBFactoryImpl.h in Headers */,
</span><span class="cx">                                 5185FC8F1BB4C4E80012898F /* IDBGetResult.h in Headers */,
</span><span class="cx">                                 5185FC911BB4C4E80012898F /* IDBIndex.h in Headers */,
</span><span class="cx">                                 51F798E81BE88092008AE491 /* IDBIndexImpl.h in Headers */,
</span><span class="cx">                                 51F798F01BE880E7008AE491 /* IDBIndexInfo.h in Headers */,
</span><del>-                                5185FC931BB4C4E80012898F /* IDBIndexMetadata.h in Headers */,
</del><span class="cx">                                 5185FC951BB4C4E80012898F /* IDBKey.h in Headers */,
</span><span class="cx">                                 5185FC971BB4C4E80012898F /* IDBKeyData.h in Headers */,
</span><span class="cx">                                 5185FC991BB4C4E80012898F /* IDBKeyPath.h in Headers */,
</span><span class="lines">@@ -26270,13 +26110,8 @@
</span><span class="cx">                                 5185FCA01BB4C4E80012898F /* IDBObjectStore.h in Headers */,
</span><span class="cx">                                 516071311BD8308600DBC4F2 /* IDBObjectStoreImpl.h in Headers */,
</span><span class="cx">                                 5160712F1BD8307800DBC4F2 /* IDBObjectStoreInfo.h in Headers */,
</span><del>-                                5185FCA21BB4C4E80012898F /* IDBObjectStoreMetadata.h in Headers */,
</del><span class="cx">                                 5185FCA41BB4C4E80012898F /* IDBOpenDBRequest.h in Headers */,
</span><span class="cx">                                 5103105B1BA8DB56003329C0 /* IDBOpenDBRequestImpl.h in Headers */,
</span><del>-                                5185FCA61BB4C4E80012898F /* IDBOperation.h in Headers */,
-                                51F41A791BA73B5B002E053B /* IDBPendingDeleteCall.h in Headers */,
-                                51F41A7A1BA73B5B002E053B /* IDBPendingOpenCall.h in Headers */,
-                                51F41A7C1BA73B5B002E053B /* IDBPendingTransactionMonitor.h in Headers */,
</del><span class="cx">                                 5185FCA71BB4C4E80012898F /* IDBRecordIdentifier.h in Headers */,
</span><span class="cx">                                 5185FCA91BB4C4E80012898F /* IDBRequest.h in Headers */,
</span><span class="cx">                                 510A58FA1BACC7F200C19282 /* IDBRequestData.h in Headers */,
</span><span class="lines">@@ -26284,11 +26119,7 @@
</span><span class="cx">                                 5145B10A1BC48E2E00E86219 /* IDBResourceIdentifier.h in Headers */,
</span><span class="cx">                                 51D7236D1BB6174900478CA3 /* IDBResultData.h in Headers */,
</span><span class="cx">                                 5185FCBB1BB4CBF80012898F /* IDBServer.h in Headers */,
</span><del>-                                5185FCAB1BB4C4E80012898F /* IDBServerConnection.h in Headers */,
</del><span class="cx">                                 5185FCAD1BB4C4E80012898F /* IDBTransaction.h in Headers */,
</span><del>-                                51F41A741BA73B5B002E053B /* IDBTransactionBackend.h in Headers */,
-                                51F41A761BA73B5B002E053B /* IDBTransactionBackendOperations.h in Headers */,
-                                51F41A781BA73B5B002E053B /* IDBTransactionCoordinator.h in Headers */,
</del><span class="cx">                                 5198F7B51BBE003C00E2CC5F /* IDBTransactionImpl.h in Headers */,
</span><span class="cx">                                 5198F7AD1BBDD3EB00E2CC5F /* IDBTransactionInfo.h in Headers */,
</span><span class="cx">                                 5185FCB01BB4C4E80012898F /* IDBVersionChangeEvent.h in Headers */,
</span><span class="lines">@@ -27017,22 +26848,11 @@
</span><span class="cx">                                 141DC054164834B900371E5A /* LayoutSize.h in Headers */,
</span><span class="cx">                                 2D9066070BE141D400956998 /* LayoutState.h in Headers */,
</span><span class="cx">                                 141DC0481648348F00371E5A /* LayoutUnit.h in Headers */,
</span><del>-                                5103C2B91BA23A2600E26337 /* LegacyAny.h in Headers */,
-                                51645B5B1B9FA6C800F789CE /* LegacyCursor.h in Headers */,
-                                51645B5D1B9FA6C800F789CE /* LegacyCursorWithValue.h in Headers */,
-                                51645B5F1B9FA6C800F789CE /* LegacyDatabase.h in Headers */,
-                                51645B611B9FA6C800F789CE /* LegacyFactory.h in Headers */,
-                                51645B631B9FA6C800F789CE /* LegacyIndex.h in Headers */,
-                                51645B651B9FA6C800F789CE /* LegacyObjectStore.h in Headers */,
-                                51645B671B9FA6C800F789CE /* LegacyOpenDBRequest.h in Headers */,
-                                51645B691B9FA6C800F789CE /* LegacyRequest.h in Headers */,
</del><span class="cx">                                 E4C3B1FA0F0E4161009693F6 /* LegacyTileCache.h in Headers */,
</span><span class="cx">                                 E4B65A58132FA8E70070E7BE /* LegacyTileGrid.h in Headers */,
</span><span class="cx">                                 E424A39E1330DF0100CF6DC9 /* LegacyTileGridTile.h in Headers */,
</span><span class="cx">                                 E4B65A5C132FACB00070E7BE /* LegacyTileLayer.h in Headers */,
</span><span class="cx">                                 E4E39AFB1330EFA8003AB274 /* LegacyTileLayerPool.h in Headers */,
</span><del>-                                51645B6B1B9FA6C800F789CE /* LegacyTransaction.h in Headers */,
-                                51645B6D1B9FA6C800F789CE /* LegacyVersionChangeEvent.h in Headers */,
</del><span class="cx">                                 512DD8F50D91E6AF000F89EE /* LegacyWebArchive.h in Headers */,
</span><span class="cx">                                 BCE65BEB0EACDF16007E4533 /* Length.h in Headers */,
</span><span class="cx">                                 BCFF64910EAD15C200C1D6F7 /* LengthBox.h in Headers */,
</span><span class="lines">@@ -29913,20 +29733,15 @@
</span><span class="cx">                                 5198F7C01BC4856700E2CC5F /* IDBConnectionToServer.cpp in Sources */,
</span><span class="cx">                                 41F54F8B1C50C50300338488 /* FetchBody.cpp in Sources */,
</span><span class="cx">                                 5185FC7A1BB4C4E80012898F /* IDBCursor.cpp in Sources */,
</span><del>-                                51F41A691BA73B5B002E053B /* IDBCursorBackend.cpp in Sources */,
-                                51F41A6B1BA73B5B002E053B /* IDBCursorBackendOperations.cpp in Sources */,
</del><span class="cx">                                 51F798E51BE88092008AE491 /* IDBCursorImpl.cpp in Sources */,
</span><span class="cx">                                 517138FB1BF3ADF4000D5F01 /* IDBCursorInfo.cpp in Sources */,
</span><span class="cx">                                 5185FC7D1BB4C4E80012898F /* IDBCursorWithValue.cpp in Sources */,
</span><span class="cx">                                 51F798F31BE88394008AE491 /* IDBCursorWithValueImpl.cpp in Sources */,
</span><span class="cx">                                 5185FC801BB4C4E80012898F /* IDBDatabase.cpp in Sources */,
</span><del>-                                51F41A6D1BA73B5B002E053B /* IDBDatabaseBackend.cpp in Sources */,
-                                51F41A701BA73B5B002E053B /* IDBDatabaseCallbacksImpl.cpp in Sources */,
</del><span class="cx">                                 5185FC841BB4C4E80012898F /* IDBDatabaseException.cpp in Sources */,
</span><span class="cx">                                 5185FC861BB4C4E80012898F /* IDBDatabaseIdentifier.cpp in Sources */,
</span><span class="cx">                                 5198F7B01BBDF5C800E2CC5F /* IDBDatabaseImpl.cpp in Sources */,
</span><span class="cx">                                 51BA4AC31BBB5CD800DF3D6D /* IDBDatabaseInfo.cpp in Sources */,
</span><del>-                                5185FC881BB4C4E80012898F /* IDBDatabaseMetadata.cpp in Sources */,
</del><span class="cx">                                 5148453E1BB9D07E006A72ED /* IDBError.cpp in Sources */,
</span><span class="cx">                                 5185FC8A1BB4C4E80012898F /* IDBEventDispatcher.cpp in Sources */,
</span><span class="cx">                                 5185FC8C1BB4C4E80012898F /* IDBFactory.cpp in Sources */,
</span><span class="lines">@@ -29945,7 +29760,6 @@
</span><span class="cx">                                 5160712E1BD8307800DBC4F2 /* IDBObjectStoreInfo.cpp in Sources */,
</span><span class="cx">                                 5185FCA31BB4C4E80012898F /* IDBOpenDBRequest.cpp in Sources */,
</span><span class="cx">                                 5103105A1BA8DB56003329C0 /* IDBOpenDBRequestImpl.cpp in Sources */,
</span><del>-                                51F41A7B1BA73B5B002E053B /* IDBPendingTransactionMonitor.cpp in Sources */,
</del><span class="cx">                                 5185FCA81BB4C4E80012898F /* IDBRequest.cpp in Sources */,
</span><span class="cx">                                 510A58F91BACC7F200C19282 /* IDBRequestData.cpp in Sources */,
</span><span class="cx">                                 5103105C1BA8DB56003329C0 /* IDBRequestImpl.cpp in Sources */,
</span><span class="lines">@@ -29953,9 +29767,6 @@
</span><span class="cx">                                 51D7236C1BB6174900478CA3 /* IDBResultData.cpp in Sources */,
</span><span class="cx">                                 5185FCBA1BB4CBF80012898F /* IDBServer.cpp in Sources */,
</span><span class="cx">                                 5185FCAC1BB4C4E80012898F /* IDBTransaction.cpp in Sources */,
</span><del>-                                51F41A731BA73B5B002E053B /* IDBTransactionBackend.cpp in Sources */,
-                                51F41A751BA73B5B002E053B /* IDBTransactionBackendOperations.cpp in Sources */,
-                                51F41A771BA73B5B002E053B /* IDBTransactionCoordinator.cpp in Sources */,
</del><span class="cx">                                 5198F7B41BBE003C00E2CC5F /* IDBTransactionImpl.cpp in Sources */,
</span><span class="cx">                                 5198F7AC1BBDD3EB00E2CC5F /* IDBTransactionInfo.cpp in Sources */,
</span><span class="cx">                                 5185FCAF1BB4C4E80012898F /* IDBVersionChangeEvent.cpp in Sources */,
</span><span class="lines">@@ -30786,22 +30597,11 @@
</span><span class="cx">                                 A120ACA413F998CA00FE4AC7 /* LayoutRepainter.cpp in Sources */,
</span><span class="cx">                                 0F36E7391BD184B9002DB891 /* LayoutSize.cpp in Sources */,
</span><span class="cx">                                 2D9066060BE141D400956998 /* LayoutState.cpp in Sources */,
</span><del>-                                5103C2B11BA22D1A00E26337 /* LegacyAny.cpp in Sources */,
-                                51645B5A1B9FA6C800F789CE /* LegacyCursor.cpp in Sources */,
-                                51645B5C1B9FA6C800F789CE /* LegacyCursorWithValue.cpp in Sources */,
-                                51645B5E1B9FA6C800F789CE /* LegacyDatabase.cpp in Sources */,
-                                51645B601B9FA6C800F789CE /* LegacyFactory.cpp in Sources */,
-                                51645B621B9FA6C800F789CE /* LegacyIndex.cpp in Sources */,
-                                51645B641B9FA6C800F789CE /* LegacyObjectStore.cpp in Sources */,
-                                51645B661B9FA6C800F789CE /* LegacyOpenDBRequest.cpp in Sources */,
-                                51645B681B9FA6C800F789CE /* LegacyRequest.cpp in Sources */,
</del><span class="cx">                                 E4C3B1FC0F0E4170009693F6 /* LegacyTileCache.mm in Sources */,
</span><span class="cx">                                 E4B65A5A132FAAF90070E7BE /* LegacyTileGrid.mm in Sources */,
</span><span class="cx">                                 E424A3A01330DF1E00CF6DC9 /* LegacyTileGridTile.mm in Sources */,
</span><span class="cx">                                 E4B65A5E132FADB60070E7BE /* LegacyTileLayer.mm in Sources */,
</span><span class="cx">                                 E4E39AFD1330EFC6003AB274 /* LegacyTileLayerPool.mm in Sources */,
</span><del>-                                51645B6A1B9FA6C800F789CE /* LegacyTransaction.cpp in Sources */,
-                                51645B6C1B9FA6C800F789CE /* LegacyVersionChangeEvent.cpp in Sources */,
</del><span class="cx">                                 512DD8F40D91E6AF000F89EE /* LegacyWebArchive.cpp in Sources */,
</span><span class="cx">                                 51B2417B0D931F3F00E83F5C /* LegacyWebArchiveMac.mm in Sources */,
</span><span class="cx">                                 BCE65BEA0EACDF16007E4533 /* Length.cpp in Sources */,
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCorebindingsjsIDBBindingUtilitiescpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/bindings/js/IDBBindingUtilities.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/bindings/js/IDBBindingUtilities.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/bindings/js/IDBBindingUtilities.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -31,7 +31,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;DOMRequestState.h&quot;
</span><span class="cx"> #include &quot;IDBIndexInfo.h&quot;
</span><del>-#include &quot;IDBIndexMetadata.h&quot;
</del><span class="cx"> #include &quot;IDBKey.h&quot;
</span><span class="cx"> #include &quot;IDBKeyData.h&quot;
</span><span class="cx"> #include &quot;IDBKeyPath.h&quot;
</span><span class="lines">@@ -529,31 +528,6 @@
</span><span class="cx">     return idbKeyToScriptValue(&amp;requestState, key.get());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void generateIndexKeysForValue(ExecState* exec, const IDBIndexMetadata&amp; indexMetadata, const Deprecated::ScriptValue&amp; objectValue, Vector&lt;IDBKeyData&gt;&amp; indexKeys)
-{
-    RefPtr&lt;IDBKey&gt; indexKey = createIDBKeyFromScriptValueAndKeyPath(exec, objectValue, indexMetadata.keyPath);
-
-    if (!indexKey)
-        return;
-
-    if (!indexMetadata.multiEntry || indexKey-&gt;type() != KeyType::Array) {
-        if (!indexKey-&gt;isValid())
-            return;
-
-        indexKeys.append(IDBKeyData(indexKey.get()));
-    } else {
-        ASSERT(indexMetadata.multiEntry);
-        ASSERT(indexKey-&gt;type() == KeyType::Array);
-        indexKey = IDBKey::createMultiEntryArray(indexKey-&gt;array());
-
-        if (!indexKey-&gt;isValid())
-            return;
-
-        for (auto&amp; i : indexKey-&gt;array())
-            indexKeys.append(IDBKeyData(i.get()));
-    }
-}
-
</del><span class="cx"> static Vector&lt;IDBKeyData&gt; createKeyPathArray(ExecState&amp; exec, JSValue value, const IDBIndexInfo&amp; info)
</span><span class="cx"> {
</span><span class="cx">     Vector&lt;IDBKeyData&gt; keys;
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCorebindingsjsIDBBindingUtilitiesh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/bindings/js/IDBBindingUtilities.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/bindings/js/IDBBindingUtilities.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/bindings/js/IDBBindingUtilities.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -37,14 +37,12 @@
</span><span class="cx"> class DOMRequestState;
</span><span class="cx"> class IDBIndexInfo;
</span><span class="cx"> class IDBKey;
</span><ins>+class IDBKeyData;
</ins><span class="cx"> class IDBKeyPath;
</span><span class="cx"> class IndexKey;
</span><span class="cx"> class SharedBuffer;
</span><span class="cx"> class ThreadSafeDataBuffer;
</span><span class="cx"> 
</span><del>-struct IDBIndexMetadata;
-class IDBKeyData;
-
</del><span class="cx"> IDBKeyPath idbKeyPathFromValue(JSC::ExecState*, JSC::JSValue);
</span><span class="cx"> 
</span><span class="cx"> bool injectIDBKeyIntoScriptValue(DOMRequestState*, PassRefPtr&lt;IDBKey&gt;, Deprecated::ScriptValue&amp;, const IDBKeyPath&amp;);
</span><span class="lines">@@ -67,7 +65,6 @@
</span><span class="cx"> Deprecated::ScriptValue idbKeyToScriptValue(DOMRequestState*, PassRefPtr&lt;IDBKey&gt;);
</span><span class="cx"> RefPtr&lt;IDBKey&gt; scriptValueToIDBKey(DOMRequestState*, const JSC::JSValue&amp;);
</span><span class="cx"> RefPtr&lt;IDBKey&gt; scriptValueToIDBKey(JSC::ExecState&amp;, const JSC::JSValue&amp;);
</span><del>-WEBCORE_EXPORT void generateIndexKeysForValue(JSC::ExecState*, const IDBIndexMetadata&amp;, const Deprecated::ScriptValue&amp; objectValue, Vector&lt;IDBKeyData&gt;&amp; indexKeys);
</del><span class="cx"> 
</span><span class="cx"> Deprecated::ScriptValue idbKeyDataToScriptValue(ScriptExecutionContext*, const IDBKeyData&amp;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCorebindingsjsJSMainThreadExecStatecpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/bindings/js/JSMainThreadExecState.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/bindings/js/JSMainThreadExecState.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/bindings/js/JSMainThreadExecState.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -29,22 +29,12 @@
</span><span class="cx"> #include &quot;Microtasks.h&quot;
</span><span class="cx"> #include &quot;MutationObserver.h&quot;
</span><span class="cx"> 
</span><del>-#if ENABLE(INDEXED_DATABASE)
-#include &quot;IDBPendingTransactionMonitor.h&quot;
-#endif
-
</del><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> JSC::ExecState* JSMainThreadExecState::s_mainThreadState = 0;
</span><span class="cx"> 
</span><span class="cx"> void JSMainThreadExecState::didLeaveScriptContext()
</span><span class="cx"> {
</span><del>-#if ENABLE(INDEXED_DATABASE)
-    // Indexed DB requires that transactions are created with an internal |active| flag
-    // set to true, but the flag becomes false when control returns to the event loop.
-    IDBPendingTransactionMonitor::deactivateNewTransactions();
-#endif
-
</del><span class="cx">     MicrotaskQueue::mainThreadQueue().performMicrotaskCheckpoint();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreinspectorInspectorIndexedDBAgentcpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -47,8 +47,6 @@
</span><span class="cx"> #include &quot;IDBCursor.h&quot;
</span><span class="cx"> #include &quot;IDBCursorWithValue.h&quot;
</span><span class="cx"> #include &quot;IDBDatabase.h&quot;
</span><del>-#include &quot;IDBDatabaseCallbacks.h&quot;
-#include &quot;IDBDatabaseMetadata.h&quot;
</del><span class="cx"> #include &quot;IDBFactory.h&quot;
</span><span class="cx"> #include &quot;IDBIndex.h&quot;
</span><span class="cx"> #include &quot;IDBKey.h&quot;
</span><span class="lines">@@ -56,12 +54,10 @@
</span><span class="cx"> #include &quot;IDBKeyRange.h&quot;
</span><span class="cx"> #include &quot;IDBObjectStore.h&quot;
</span><span class="cx"> #include &quot;IDBOpenDBRequest.h&quot;
</span><del>-#include &quot;IDBPendingTransactionMonitor.h&quot;
</del><span class="cx"> #include &quot;IDBRequest.h&quot;
</span><span class="cx"> #include &quot;IDBTransaction.h&quot;
</span><span class="cx"> #include &quot;InspectorPageAgent.h&quot;
</span><span class="cx"> #include &quot;InstrumentingAgents.h&quot;
</span><del>-#include &quot;LegacyDatabase.h&quot;
</del><span class="cx"> #include &quot;SecurityOrigin.h&quot;
</span><span class="cx"> #include &lt;inspector/InjectedScript.h&gt;
</span><span class="cx"> #include &lt;inspector/InjectedScriptManager.h&gt;
</span><span class="lines">@@ -150,7 +146,7 @@
</span><span class="cx">         : m_context(context) { }
</span><span class="cx">     virtual ~ExecutableWithDatabase() { };
</span><span class="cx">     void start(IDBFactory*, SecurityOrigin*, const String&amp; databaseName);
</span><del>-    virtual void execute(RefPtr&lt;LegacyDatabase&gt;&amp;&amp;) = 0;
</del><ins>+    virtual void execute() = 0;
</ins><span class="cx">     virtual RequestCallback&amp; requestCallback() = 0;
</span><span class="cx">     ScriptExecutionContext* context() { return m_context; };
</span><span class="cx"> private:
</span><span class="lines">@@ -194,10 +190,8 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        RefPtr&lt;LegacyDatabase&gt; idbDatabase = adoptRef(static_cast&lt;LegacyDatabase*&gt;(requestResult-&gt;idbDatabase().leakRef()));
-        m_executableWithDatabase-&gt;execute(WTFMove(idbDatabase));
-        IDBPendingTransactionMonitor::deactivateNewTransactions();
-        idbDatabase-&gt;close();
</del><ins>+        // FIXME (webkit.org/b/154686) - Reimplement this.
+        m_executableWithDatabase-&gt;execute();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="lines">@@ -219,66 +213,6 @@
</span><span class="cx">     idbOpenDBRequest-&gt;addEventListener(eventNames().successEvent, WTFMove(callback), false);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static RefPtr&lt;IDBTransaction&gt; transactionForDatabase(ScriptExecutionContext* scriptExecutionContext, IDBDatabase* idbDatabase, const String&amp; objectStoreName, const String&amp; mode = IDBTransaction::modeReadOnly())
-{
-    ExceptionCodeWithMessage ec;
-    RefPtr&lt;IDBTransaction&gt; idbTransaction = idbDatabase-&gt;transaction(scriptExecutionContext, objectStoreName, mode, ec);
-    if (ec.code)
-        return nullptr;
-    return idbTransaction;
-}
-
-static RefPtr&lt;IDBObjectStore&gt; objectStoreForTransaction(IDBTransaction* idbTransaction, const String&amp; objectStoreName)
-{
-    ExceptionCodeWithMessage ec;
-    RefPtr&lt;IDBObjectStore&gt; idbObjectStore = idbTransaction-&gt;objectStore(objectStoreName, ec);
-    if (ec.code)
-        return nullptr;
-    return idbObjectStore;
-}
-
-static RefPtr&lt;IDBIndex&gt; indexForObjectStore(IDBObjectStore* idbObjectStore, const String&amp; indexName)
-{
-    ExceptionCodeWithMessage ec;
-    RefPtr&lt;IDBIndex&gt; idbIndex = idbObjectStore-&gt;index(indexName, ec);
-    if (ec.code)
-        return nullptr;
-    return idbIndex;
-}
-
-static RefPtr&lt;KeyPath&gt; keyPathFromIDBKeyPath(const IDBKeyPath&amp; idbKeyPath)
-{
-    RefPtr&lt;KeyPath&gt; keyPath;
-    switch (idbKeyPath.type()) {
-    case IndexedDB::KeyPathType::Null:
-        keyPath = KeyPath::create()
-            .setType(KeyPath::Type::Null)
-            .release();
-        break;
-    case IndexedDB::KeyPathType::String:
-        keyPath = KeyPath::create()
-            .setType(KeyPath::Type::String)
-            .release();
-        keyPath-&gt;setString(idbKeyPath.string());
-
-        break;
-    case IndexedDB::KeyPathType::Array: {
-        auto array = Inspector::Protocol::Array&lt;String&gt;::create();
-        for (auto&amp; string : idbKeyPath.array())
-            array-&gt;addItem(string);
-        keyPath = KeyPath::create()
-            .setType(KeyPath::Type::Array)
-            .release();
-        keyPath-&gt;setArray(WTFMove(array));
-        break;
-    }
-    default:
-        ASSERT_NOT_REACHED();
-    }
-
-    return keyPath;
-}
-
</del><span class="cx"> class DatabaseLoader : public ExecutableWithDatabase {
</span><span class="cx"> public:
</span><span class="cx">     static Ref&lt;DatabaseLoader&gt; create(ScriptExecutionContext* context, Ref&lt;RequestDatabaseCallback&gt;&amp;&amp; requestCallback)
</span><span class="lines">@@ -288,45 +222,12 @@
</span><span class="cx"> 
</span><span class="cx">     virtual ~DatabaseLoader() { }
</span><span class="cx"> 
</span><del>-    virtual void execute(RefPtr&lt;LegacyDatabase&gt;&amp;&amp; database) override
</del><ins>+    virtual void execute() override
</ins><span class="cx">     {
</span><span class="cx">         if (!requestCallback().isActive())
</span><span class="cx">             return;
</span><span class="cx"> 
</span><del>-        const IDBDatabaseMetadata databaseMetadata = database-&gt;metadata();
-
-        auto objectStores = Inspector::Protocol::Array&lt;Inspector::Protocol::IndexedDB::ObjectStore&gt;::create();
-
-        for (const IDBObjectStoreMetadata&amp; objectStoreMetadata : databaseMetadata.objectStores.values()) {
-            auto indexes = Inspector::Protocol::Array&lt;Inspector::Protocol::IndexedDB::ObjectStoreIndex&gt;::create();
-
-            for (const IDBIndexMetadata&amp; indexMetadata : objectStoreMetadata.indexes.values()) {
-                Ref&lt;ObjectStoreIndex&gt; objectStoreIndex = ObjectStoreIndex::create()
-                    .setName(indexMetadata.name)
-                    .setKeyPath(keyPathFromIDBKeyPath(indexMetadata.keyPath))
-                    .setUnique(indexMetadata.unique)
-                    .setMultiEntry(indexMetadata.multiEntry)
-                    .release();
-                indexes-&gt;addItem(WTFMove(objectStoreIndex));
-            }
-
-            Ref&lt;ObjectStore&gt; objectStore = ObjectStore::create()
-                .setName(objectStoreMetadata.name)
-                .setKeyPath(keyPathFromIDBKeyPath(objectStoreMetadata.keyPath))
-                .setAutoIncrement(objectStoreMetadata.autoIncrement)
-                .setIndexes(WTFMove(indexes))
-                .release();
-
-            objectStores-&gt;addItem(WTFMove(objectStore));
-        }
-
-        Ref&lt;DatabaseWithObjectStores&gt; result = DatabaseWithObjectStores::create()
-            .setName(databaseMetadata.name)
-            .setVersion(databaseMetadata.version)
-            .setObjectStores(WTFMove(objectStores))
-            .release();
-
-        m_requestCallback-&gt;sendSuccess(WTFMove(result));
</del><ins>+        // FIXME (webkit.org/b/154686) - Reimplement this.
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     virtual RequestCallback&amp; requestCallback() override { return m_requestCallback.get(); }
</span><span class="lines">@@ -518,36 +419,12 @@
</span><span class="cx"> 
</span><span class="cx">     virtual ~DataLoader() { }
</span><span class="cx"> 
</span><del>-    virtual void execute(RefPtr&lt;LegacyDatabase&gt;&amp;&amp; database) override
</del><ins>+    virtual void execute() override
</ins><span class="cx">     {
</span><span class="cx">         if (!requestCallback().isActive())
</span><span class="cx">             return;
</span><del>-        RefPtr&lt;IDBTransaction&gt; idbTransaction = transactionForDatabase(context(), database.get(), m_objectStoreName);
-        if (!idbTransaction) {
-            m_requestCallback-&gt;sendFailure(&quot;Could not get transaction&quot;);
-            return;
-        }
-        RefPtr&lt;IDBObjectStore&gt; idbObjectStore = objectStoreForTransaction(idbTransaction.get(), m_objectStoreName);
-        if (!idbObjectStore) {
-            m_requestCallback-&gt;sendFailure(&quot;Could not get object store&quot;);
-            return;
-        }
</del><span class="cx"> 
</span><del>-        Ref&lt;OpenCursorCallback&gt; openCursorCallback = OpenCursorCallback::create(m_injectedScript, m_requestCallback.copyRef(), m_skipCount, m_pageSize);
-
-        ExceptionCodeWithMessage ec;
-        RefPtr&lt;IDBRequest&gt; idbRequest;
-        if (!m_indexName.isEmpty()) {
-            RefPtr&lt;IDBIndex&gt; idbIndex = indexForObjectStore(idbObjectStore.get(), m_indexName);
-            if (!idbIndex) {
-                m_requestCallback-&gt;sendFailure(&quot;Could not get index&quot;);
-                return;
-            }
-
-            idbRequest = idbIndex-&gt;openCursor(context(), m_idbKeyRange.get(), ec);
-        } else
-            idbRequest = idbObjectStore-&gt;openCursor(context(), m_idbKeyRange.get(), ec);
-        idbRequest-&gt;addEventListener(eventNames().successEvent, WTFMove(openCursorCallback), false);
</del><ins>+        // FIXME (webkit.org/b/154686) - Reimplement this.
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     virtual RequestCallback&amp; requestCallback() override { return m_requestCallback.get(); }
</span><span class="lines">@@ -734,29 +611,12 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    virtual void execute(RefPtr&lt;LegacyDatabase&gt;&amp;&amp; database) override
</del><ins>+    virtual void execute() override
</ins><span class="cx">     {
</span><span class="cx">         if (!requestCallback().isActive())
</span><span class="cx">             return;
</span><del>-        RefPtr&lt;IDBTransaction&gt; idbTransaction = transactionForDatabase(context(), database.get(), m_objectStoreName, IDBTransaction::modeReadWrite());
-        if (!idbTransaction) {
-            m_requestCallback-&gt;sendFailure(&quot;Could not get transaction&quot;);
-            return;
-        }
-        RefPtr&lt;IDBObjectStore&gt; idbObjectStore = objectStoreForTransaction(idbTransaction.get(), m_objectStoreName);
-        if (!idbObjectStore) {
-            m_requestCallback-&gt;sendFailure(&quot;Could not get object store&quot;);
-            return;
-        }
</del><span class="cx"> 
</span><del>-        ExceptionCodeWithMessage ec;
-        RefPtr&lt;IDBRequest&gt; idbRequest = idbObjectStore-&gt;clear(context(), ec);
-        ASSERT(!ec.code);
-        if (ec.code) {
-            m_requestCallback-&gt;sendFailure(String::format(&quot;Could not clear object store '%s': %d&quot;, m_objectStoreName.utf8().data(), ec.code));
-            return;
-        }
-        idbTransaction-&gt;addEventListener(eventNames().completeEvent, ClearObjectStoreListener::create(m_requestCallback.copyRef()), false);
</del><ins>+        // FIXME (webkit.org/b/154686) - Reimplement this.
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     virtual RequestCallback&amp; requestCallback() override { return m_requestCallback.get(); }
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreloaderEmptyClientscpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/loader/EmptyClients.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/loader/EmptyClients.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/loader/EmptyClients.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -36,7 +36,6 @@
</span><span class="cx"> #include &quot;Frame.h&quot;
</span><span class="cx"> #include &quot;FrameNetworkingContext.h&quot;
</span><span class="cx"> #include &quot;HTMLFormElement.h&quot;
</span><del>-#include &quot;IDBFactoryBackendInterface.h&quot;
</del><span class="cx"> #include &quot;InProcessIDBServer.h&quot;
</span><span class="cx"> #include &quot;PageConfiguration.h&quot;
</span><span class="cx"> #include &quot;StorageArea.h&quot;
</span><span class="lines">@@ -52,9 +51,6 @@
</span><span class="cx"> 
</span><span class="cx"> class EmptyDatabaseProvider final : public DatabaseProvider {
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><del>-    virtual RefPtr&lt;IDBFactoryBackendInterface&gt; createIDBFactoryBackend() { return nullptr; }
-    virtual bool supportsModernIDB() const { return false; }
-    
</del><span class="cx">     virtual IDBClient::IDBConnectionToServer&amp; idbConnectionToServerForSession(const SessionID&amp;)
</span><span class="cx">     {
</span><span class="cx">         static NeverDestroyed&lt;Ref&lt;InProcessIDBServer&gt;&gt; sharedConnection(InProcessIDBServer::create());
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCorepageDatabaseProvidercpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/page/DatabaseProvider.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/page/DatabaseProvider.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/page/DatabaseProvider.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -26,24 +26,10 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;DatabaseProvider.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;IDBFactoryBackendInterface.h&quot;
-
</del><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> DatabaseProvider::~DatabaseProvider()
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-#if ENABLE(INDEXED_DATABASE)
-IDBFactoryBackendInterface* DatabaseProvider::idbFactoryBackend()
-{
-    if (!m_didCreateIDBFactoryBackendInterface) {
-        m_backendInterface = createIDBFactoryBackend();
-        m_didCreateIDBFactoryBackendInterface = true;
-    }
-
-    return m_backendInterface.get();
</del><span class="cx"> }
</span><del>-#endif
-
-}
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCorepageDatabaseProviderh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/page/DatabaseProvider.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/page/DatabaseProvider.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/page/DatabaseProvider.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -32,7 +32,6 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class IDBConnectionManager;
</span><del>-class IDBFactoryBackendInterface;
</del><span class="cx"> class SessionID;
</span><span class="cx"> 
</span><span class="cx"> namespace IDBClient {
</span><span class="lines">@@ -44,19 +43,8 @@
</span><span class="cx">     virtual ~DatabaseProvider();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><del>-    IDBFactoryBackendInterface* idbFactoryBackend();
-
-    virtual bool supportsModernIDB() const = 0;
</del><span class="cx">     virtual IDBClient::IDBConnectionToServer&amp; idbConnectionToServerForSession(const SessionID&amp;) = 0;
</span><span class="cx"> #endif
</span><del>-
-private:
-#if ENABLE(INDEXED_DATABASE)
-    virtual RefPtr&lt;IDBFactoryBackendInterface&gt; createIDBFactoryBackend() = 0;
-
-    bool m_didCreateIDBFactoryBackendInterface { false };
-    RefPtr&lt;IDBFactoryBackendInterface&gt; m_backendInterface;
-#endif
</del><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreplatformCrossThreadCopiercpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/CrossThreadCopier.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/CrossThreadCopier.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/CrossThreadCopier.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -46,7 +46,6 @@
</span><span class="cx"> #include &quot;IDBCursorInfo.h&quot;
</span><span class="cx"> #include &quot;IDBDatabaseIdentifier.h&quot;
</span><span class="cx"> #include &quot;IDBDatabaseInfo.h&quot;
</span><del>-#include &quot;IDBDatabaseMetadata.h&quot;
</del><span class="cx"> #include &quot;IDBError.h&quot;
</span><span class="cx"> #include &quot;IDBGetResult.h&quot;
</span><span class="cx"> #include &quot;IDBIndexInfo.h&quot;
</span><span class="lines">@@ -111,21 +110,11 @@
</span><span class="cx">     return type;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-CrossThreadCopierBase&lt;false, false, IDBDatabaseMetadata&gt;::Type CrossThreadCopierBase&lt;false, false, IDBDatabaseMetadata&gt;::copy(const IDBDatabaseMetadata&amp; metadata)
-{
-    return metadata.isolatedCopy();
-}
-
</del><span class="cx"> CrossThreadCopierBase&lt;false, false, IDBGetResult&gt;::Type CrossThreadCopierBase&lt;false, false, IDBGetResult&gt;::copy(const IDBGetResult&amp; result)
</span><span class="cx"> {
</span><span class="cx">     return result.isolatedCopy();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-CrossThreadCopierBase&lt;false, false, IDBIndexMetadata&gt;::Type CrossThreadCopierBase&lt;false, false, IDBIndexMetadata&gt;::copy(const IDBIndexMetadata&amp; metadata)
-{
-    return metadata.isolatedCopy();
-}
-
</del><span class="cx"> CrossThreadCopierBase&lt;false, false, IDBKeyData&gt;::Type CrossThreadCopierBase&lt;false, false, IDBKeyData&gt;::copy(const IDBKeyData&amp; keyData)
</span><span class="cx"> {
</span><span class="cx">     return keyData.isolatedCopy();
</span><span class="lines">@@ -136,11 +125,6 @@
</span><span class="cx">     return keyRangeData.isolatedCopy();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-CrossThreadCopierBase&lt;false, false, IDBObjectStoreMetadata&gt;::Type CrossThreadCopierBase&lt;false, false, IDBObjectStoreMetadata&gt;::copy(const IDBObjectStoreMetadata&amp; metadata)
-{
-    return metadata.isolatedCopy();
-}
-
</del><span class="cx"> CrossThreadCopierBase&lt;false, false, IDBDatabaseInfo&gt;::Type CrossThreadCopierBase&lt;false, false, IDBDatabaseInfo&gt;::copy(const IDBDatabaseInfo&amp; info)
</span><span class="cx"> {
</span><span class="cx">     return info.isolatedCopy();
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreplatformCrossThreadCopierh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/CrossThreadCopier.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/CrossThreadCopier.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/CrossThreadCopier.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -161,24 +161,12 @@
</span><span class="cx">         WEBCORE_EXPORT static IndexedDB::CursorType copy(const IndexedDB::CursorType&amp;);
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    struct IDBDatabaseMetadata;
-    template&lt;&gt; struct WEBCORE_EXPORT CrossThreadCopierBase&lt;false, false, IDBDatabaseMetadata&gt; {
-        typedef IDBDatabaseMetadata Type;
-        static Type copy(const IDBDatabaseMetadata&amp;);
-    };
-
</del><span class="cx">     class IDBGetResult;
</span><span class="cx">     template&lt;&gt; struct WEBCORE_EXPORT CrossThreadCopierBase&lt;false, false, IDBGetResult&gt; {
</span><span class="cx">         typedef IDBGetResult Type;
</span><span class="cx">         static Type copy(const IDBGetResult&amp;);
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    struct IDBIndexMetadata;
-    template&lt;&gt; struct WEBCORE_EXPORT CrossThreadCopierBase&lt;false, false, IDBIndexMetadata&gt; {
-        typedef IDBIndexMetadata Type;
-        static Type copy(const IDBIndexMetadata&amp;);
-    };
-
</del><span class="cx">     class IDBKeyData;
</span><span class="cx">     template&lt;&gt; struct WEBCORE_EXPORT CrossThreadCopierBase&lt;false, false, IDBKeyData&gt; {
</span><span class="cx">         typedef IDBKeyData Type;
</span><span class="lines">@@ -191,12 +179,6 @@
</span><span class="cx">         static Type copy(const IDBKeyRangeData&amp;);
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    struct IDBObjectStoreMetadata;
-    template&lt;&gt; struct WEBCORE_EXPORT CrossThreadCopierBase&lt;false, false, IDBObjectStoreMetadata&gt; {
-        typedef IDBObjectStoreMetadata Type;
-        static Type copy(const IDBObjectStoreMetadata&amp;);
-    };
-
</del><span class="cx">     class IDBDatabaseInfo;
</span><span class="cx">     template&lt;&gt; struct WEBCORE_EXPORT CrossThreadCopierBase&lt;false, false, IDBDatabaseInfo&gt; {
</span><span class="cx">         typedef IDBDatabaseInfo Type;
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit/ChangeLog (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit/ChangeLog        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit/ChangeLog        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2016-02-25  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Remove LegacyIDB.
+        https://bugs.webkit.org/show_bug.cgi?id=150854
+
+        Reviewed by Alex Christensen.
+
+        * Storage/WebDatabaseProvider.cpp:
+        (WebDatabaseProvider::createIDBFactoryBackend): Deleted.
+        * Storage/WebDatabaseProvider.h:
+
</ins><span class="cx"> 2016-02-15  Alex Christensen  &lt;achristensen@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix internal Windows build of projects built after WebKit
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKitStorageWebDatabaseProvidercpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit/Storage/WebDatabaseProvider.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit/Storage/WebDatabaseProvider.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit/Storage/WebDatabaseProvider.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -25,7 +25,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;WebDatabaseProvider.h&quot;
</span><span class="cx"> 
</span><del>-#include &lt;WebCore/IDBFactoryBackendInterface.h&gt;
</del><span class="cx"> #include &lt;WebCore/SessionID.h&gt;
</span><span class="cx"> #include &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -45,11 +44,6 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><del>-RefPtr&lt;WebCore::IDBFactoryBackendInterface&gt; WebDatabaseProvider::createIDBFactoryBackend()
-{
-    return nullptr;
-}
-
</del><span class="cx"> WebCore::IDBClient::IDBConnectionToServer&amp; WebDatabaseProvider::idbConnectionToServerForSession(const WebCore::SessionID&amp; sessionID)
</span><span class="cx"> {
</span><span class="cx">     auto result = m_idbServerMap.add(sessionID.sessionID(), nullptr);
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKitStorageWebDatabaseProviderh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit/Storage/WebDatabaseProvider.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit/Storage/WebDatabaseProvider.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit/Storage/WebDatabaseProvider.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -42,7 +42,6 @@
</span><span class="cx">     virtual ~WebDatabaseProvider();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><del>-    virtual bool supportsModernIDB() const override { return true; }
</del><span class="cx">     virtual WebCore::IDBClient::IDBConnectionToServer&amp; idbConnectionToServerForSession(const WebCore::SessionID&amp;) override;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -52,7 +51,6 @@
</span><span class="cx">     static String indexedDatabaseDirectoryPath();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><del>-    virtual RefPtr&lt;WebCore::IDBFactoryBackendInterface&gt; createIDBFactoryBackend() override;
</del><span class="cx">     HashMap&lt;uint64_t, RefPtr&lt;WebCore::InProcessIDBServer&gt;&gt; m_idbServerMap;
</span><span class="cx"> #endif
</span><span class="cx"> };
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2CMakeListstxt"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit2/CMakeLists.txt (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/CMakeLists.txt        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/CMakeLists.txt        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -3,7 +3,6 @@
</span><span class="cx">     &quot;${WEBKIT2_DIR}&quot;
</span><span class="cx">     &quot;${WEBKIT2_DIR}/DatabaseProcess&quot;
</span><span class="cx">     &quot;${WEBKIT2_DIR}/DatabaseProcess/IndexedDB&quot;
</span><del>-    &quot;${WEBKIT2_DIR}/DatabaseProcess/IndexedDB/sqlite&quot;
</del><span class="cx">     &quot;${WEBKIT2_DIR}/NetworkProcess&quot;
</span><span class="cx">     &quot;${WEBKIT2_DIR}/NetworkProcess/CustomProtocols&quot;
</span><span class="cx">     &quot;${WEBKIT2_DIR}/NetworkProcess/Downloads&quot;
</span><span class="lines">@@ -71,7 +70,6 @@
</span><span class="cx">     &quot;${WEBCORE_DIR}/Modules/battery&quot;
</span><span class="cx">     &quot;${WEBCORE_DIR}/Modules/indexeddb&quot;
</span><span class="cx">     &quot;${WEBCORE_DIR}/Modules/indexeddb/client&quot;
</span><del>-    &quot;${WEBCORE_DIR}/Modules/indexeddb/legacy&quot;
</del><span class="cx">     &quot;${WEBCORE_DIR}/Modules/indexeddb/server&quot;
</span><span class="cx">     &quot;${WEBCORE_DIR}/Modules/indexeddb/shared&quot;
</span><span class="cx">     &quot;${WEBCORE_DIR}/Modules/mediastream&quot;
</span><span class="lines">@@ -194,16 +192,8 @@
</span><span class="cx">     DatabaseProcess/DatabaseProcess.cpp
</span><span class="cx">     DatabaseProcess/DatabaseToWebProcessConnection.cpp
</span><span class="cx"> 
</span><del>-    DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp
-    DatabaseProcess/IndexedDB/IDBSerialization.cpp
-    DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.cpp
-    DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.cpp
</del><span class="cx">     DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp
</span><span class="cx"> 
</span><del>-    DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp
-    DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.cpp
-    DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp
-
</del><span class="cx">     NetworkProcess/NetworkProcessCreationParameters.cpp
</span><span class="cx">     NetworkProcess/NetworkResourceLoadParameters.cpp
</span><span class="cx"> 
</span><span class="lines">@@ -511,8 +501,6 @@
</span><span class="cx">     WebProcess/Databases/WebToDatabaseProcessConnection.cpp
</span><span class="cx"> 
</span><span class="cx">     WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp
</span><del>-    WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp
-    WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp
</del><span class="cx"> 
</span><span class="cx">     WebProcess/FileAPI/BlobRegistryProxy.cpp
</span><span class="cx"> 
</span><span class="lines">@@ -642,7 +630,6 @@
</span><span class="cx">     DatabaseProcess/DatabaseProcess.messages.in
</span><span class="cx">     DatabaseProcess/DatabaseToWebProcessConnection.messages.in
</span><span class="cx"> 
</span><del>-    DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in
</del><span class="cx">     DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in
</span><span class="cx"> 
</span><span class="cx">     NetworkProcess/CustomProtocols/CustomProtocolManager.messages.in
</span><span class="lines">@@ -697,7 +684,6 @@
</span><span class="cx">     WebProcess/Cookies/WebCookieManager.messages.in
</span><span class="cx"> 
</span><span class="cx">     WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in
</span><del>-    WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in
</del><span class="cx"> 
</span><span class="cx">     WebProcess/FullScreen/WebFullScreenManager.messages.in
</span><span class="cx"> 
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit2/ChangeLog (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/ChangeLog        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/ChangeLog        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,5 +1,64 @@
</span><span class="cx"> 2016-02-25  Brady Eidson  &lt;beidson@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Remove LegacyIDB.
+        https://bugs.webkit.org/show_bug.cgi?id=150854
+
+        Reviewed by Alex Christensen.
+
+        * CMakeLists.txt:
+        * DatabaseProcess/DatabaseProcess.cpp:
+        (WebKit::DatabaseProcess::getOrCreateLegacyUniqueIDBDatabase): Deleted.
+        (WebKit::DatabaseProcess::removeLegacyUniqueIDBDatabase): Deleted.
+        * DatabaseProcess/DatabaseProcess.h:
+        * DatabaseProcess/DatabaseToWebProcessConnection.cpp:
+        (WebKit::DatabaseToWebProcessConnection::didClose):
+        (WebKit::DatabaseToWebProcessConnection::didReceiveMessage): Deleted.
+        (WebKit::DatabaseToWebProcessConnection::didReceiveSyncMessage): Deleted.
+        (WebKit::DatabaseToWebProcessConnection::establishIDBConnection): Deleted.
+        (WebKit::DatabaseToWebProcessConnection::removeDatabaseProcessIDBConnection): Deleted.
+        * DatabaseProcess/DatabaseToWebProcessConnection.h:
+        * DatabaseProcess/DatabaseToWebProcessConnection.messages.in:
+        * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp: Removed.
+        * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h: Removed.
+        * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in: Removed.
+        * DatabaseProcess/IndexedDB/IDBIdentifier.h: Removed.
+        * DatabaseProcess/IndexedDB/IDBSerialization.cpp: Removed.
+        * DatabaseProcess/IndexedDB/IDBSerialization.h: Removed.
+        * DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.cpp: Removed.
+        * DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.h: Removed.
+        * DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.cpp: Removed.
+        * DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.h: Removed.
+        * DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h: Removed.
+        * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
+        * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp: Removed.
+        * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.h: Removed.
+        * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.cpp: Removed.
+        * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.h: Removed.
+        * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp: Removed.
+        * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h: Removed.
+        * DerivedSources.make:
+        * Shared/WebCrossThreadCopier.cpp:
+        (WebCore::LegacyUniqueIDBDatabaseIdentifier&gt;::copy): Deleted.
+        (WebCore::IDBIdentifier&gt;::copy): Deleted.
+        * Shared/WebCrossThreadCopier.h:
+        * WebKit2.xcodeproj/project.pbxproj:
+        * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp: Removed.
+        * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h: Removed.
+        * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp: Removed.
+        * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h: Removed.
+        * WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in: Removed.
+        * WebProcess/Databases/WebDatabaseProvider.cpp:
+        (WebKit::WebDatabaseProvider::createIDBFactoryBackend): Deleted.
+        * WebProcess/Databases/WebDatabaseProvider.h:
+        * WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
+        (WebKit::WebToDatabaseProcessConnection::didReceiveMessage): Deleted.
+        (WebKit::WebToDatabaseProcessConnection::registerWebIDBServerConnection): Deleted.
+        (WebKit::WebToDatabaseProcessConnection::removeWebIDBServerConnection): Deleted.
+        * WebProcess/Databases/WebToDatabaseProcessConnection.h:
+        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
+
+2016-02-25  Brady Eidson  &lt;beidson@apple.com&gt;
+
</ins><span class="cx">         Modern IDB: WebKit 2 IPC layer.
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=153808
</span><span class="cx"> 
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessDatabaseProcesscpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -32,7 +32,6 @@
</span><span class="cx"> #include &quot;DatabaseProcessMessages.h&quot;
</span><span class="cx"> #include &quot;DatabaseProcessProxyMessages.h&quot;
</span><span class="cx"> #include &quot;DatabaseToWebProcessConnection.h&quot;
</span><del>-#include &quot;LegacyUniqueIDBDatabase.h&quot;
</del><span class="cx"> #include &quot;WebCrossThreadCopier.h&quot;
</span><span class="cx"> #include &quot;WebsiteData.h&quot;
</span><span class="cx"> #include &lt;WebCore/CrossThreadTask.h&gt;
</span><span class="lines">@@ -96,26 +95,6 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><del>-RefPtr&lt;LegacyUniqueIDBDatabase&gt; DatabaseProcess::getOrCreateLegacyUniqueIDBDatabase(const LegacyUniqueIDBDatabaseIdentifier&amp; identifier)
-{
-    auto addResult = m_idbDatabases.add(identifier, nullptr);
-
-    if (!addResult.isNewEntry)
-        return addResult.iterator-&gt;value;
-
-    RefPtr&lt;LegacyUniqueIDBDatabase&gt; database = LegacyUniqueIDBDatabase::create(identifier);
-    addResult.iterator-&gt;value = database.get();
-    return database;
-}
-
-void DatabaseProcess::removeLegacyUniqueIDBDatabase(const LegacyUniqueIDBDatabase&amp; database)
-{
-    const LegacyUniqueIDBDatabaseIdentifier&amp; identifier = database.identifier();
-    ASSERT(m_idbDatabases.contains(identifier));
-
-    m_idbDatabases.remove(identifier);
-}
-
</del><span class="cx"> IDBServer::IDBServer&amp; DatabaseProcess::idbServer()
</span><span class="cx"> {
</span><span class="cx">     if (!m_idbServer)
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessDatabaseProcessh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseProcess.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseProcess.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseProcess.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -29,8 +29,6 @@
</span><span class="cx"> #if ENABLE(DATABASE_PROCESS)
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ChildProcess.h&quot;
</span><del>-#include &quot;LegacyUniqueIDBDatabase.h&quot;
-#include &quot;LegacyUniqueIDBDatabaseIdentifier.h&quot;
</del><span class="cx"> #include &lt;WebCore/IDBServer.h&gt;
</span><span class="cx"> #include &lt;WebCore/UniqueIDBDatabase.h&gt;
</span><span class="cx"> #include &lt;wtf/NeverDestroyed.h&gt;
</span><span class="lines">@@ -57,9 +55,6 @@
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx">     const String&amp; indexedDatabaseDirectory() const { return m_indexedDatabaseDirectory; }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;LegacyUniqueIDBDatabase&gt; getOrCreateLegacyUniqueIDBDatabase(const LegacyUniqueIDBDatabaseIdentifier&amp;);
-    void removeLegacyUniqueIDBDatabase(const LegacyUniqueIDBDatabase&amp;);
-
</del><span class="cx">     void ensureIndexedDatabaseRelativePathExists(const String&amp;);
</span><span class="cx">     String absoluteIndexedDatabasePathFromDatabaseRelativePath(const String&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -113,8 +108,6 @@
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx">     String m_indexedDatabaseDirectory;
</span><span class="cx"> 
</span><del>-    HashMap&lt;LegacyUniqueIDBDatabaseIdentifier, RefPtr&lt;LegacyUniqueIDBDatabase&gt;&gt; m_idbDatabases;
-
</del><span class="cx">     RefPtr&lt;WebCore::IDBServer::IDBServer&gt; m_idbServer;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessDatabaseToWebProcessConnectioncpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -26,8 +26,6 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;DatabaseToWebProcessConnection.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;DatabaseProcessIDBConnection.h&quot;
-#include &quot;DatabaseProcessIDBConnectionMessages.h&quot;
</del><span class="cx"> #include &quot;DatabaseToWebProcessConnectionMessages.h&quot;
</span><span class="cx"> #include &quot;Logging.h&quot;
</span><span class="cx"> #include &quot;WebIDBConnectionToClient.h&quot;
</span><span class="lines">@@ -69,38 +67,15 @@
</span><span class="cx">             iterator-&gt;value-&gt;didReceiveMessage(connection, decoder);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    
-    if (decoder.messageReceiverName() == Messages::DatabaseProcessIDBConnection::messageReceiverName()) {
-        IDBConnectionMap::iterator backendIterator = m_idbConnections.find(decoder.destinationID());
-        if (backendIterator != m_idbConnections.end())
-            backendIterator-&gt;value-&gt;didReceiveDatabaseProcessIDBConnectionMessage(connection, decoder);
-        return;
-    }
</del><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void DatabaseToWebProcessConnection::didReceiveSyncMessage(IPC::Connection&amp; connection, IPC::MessageDecoder&amp; decoder, std::unique_ptr&lt;IPC::MessageEncoder&gt;&amp; reply)
-{
-#if ENABLE(INDEXED_DATABASE)
-    if (decoder.messageReceiverName() == Messages::DatabaseProcessIDBConnection::messageReceiverName()) {
-        IDBConnectionMap::iterator backendIterator = m_idbConnections.find(decoder.destinationID());
-        if (backendIterator != m_idbConnections.end())
-            backendIterator-&gt;value-&gt;didReceiveSyncDatabaseProcessIDBConnectionMessage(connection, decoder, reply);
-        return;
-    }
-#endif
-
-    ASSERT_NOT_REACHED();
-}
-
</del><span class="cx"> void DatabaseToWebProcessConnection::didClose(IPC::Connection&amp;)
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><del>-    // The WebProcess has disconnected, close all of the connections associated with it
-    while (!m_idbConnections.isEmpty())
-        removeDatabaseProcessIDBConnection(m_idbConnections.begin()-&gt;key);
</del><ins>+    // FIXME: (Modern IDB) The WebProcess has disconnected, close all of the connections associated with it
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -110,20 +85,6 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><del>-void DatabaseToWebProcessConnection::establishIDBConnection(uint64_t serverConnectionIdentifier)
-{
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; idbConnection = DatabaseProcessIDBConnection::create(*this, serverConnectionIdentifier);
-    m_idbConnections.set(serverConnectionIdentifier, idbConnection.release());
-}
-
-void DatabaseToWebProcessConnection::removeDatabaseProcessIDBConnection(uint64_t serverConnectionIdentifier)
-{
-    ASSERT(m_idbConnections.contains(serverConnectionIdentifier));
-
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; idbConnection = m_idbConnections.take(serverConnectionIdentifier);
-    idbConnection-&gt;disconnectedFromWebProcess();
-}
-
</del><span class="cx"> void DatabaseToWebProcessConnection::establishIDBConnectionToServer(uint64_t serverConnectionIdentifier)
</span><span class="cx"> {
</span><span class="cx">     LOG(IndexedDB, &quot;DatabaseToWebProcessConnection::establishIDBConnectionToServer - %&quot; PRIu64, serverConnectionIdentifier);
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessDatabaseToWebProcessConnectionh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -27,7 +27,6 @@
</span><span class="cx"> #define DatabaseToWebProcessConnection_h
</span><span class="cx"> 
</span><span class="cx"> #include &quot;Connection.h&quot;
</span><del>-#include &quot;DatabaseProcessIDBConnection.h&quot;
</del><span class="cx"> #include &quot;MessageSender.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><span class="lines">@@ -50,7 +49,6 @@
</span><span class="cx"> 
</span><span class="cx">     // IPC::Connection::Client
</span><span class="cx">     virtual void didReceiveMessage(IPC::Connection&amp;, IPC::MessageDecoder&amp;) override;
</span><del>-    virtual void didReceiveSyncMessage(IPC::Connection&amp;, IPC::MessageDecoder&amp;, std::unique_ptr&lt;IPC::MessageEncoder&gt;&amp;) override;
</del><span class="cx">     virtual void didClose(IPC::Connection&amp;) override;
</span><span class="cx">     virtual void didReceiveInvalidMessage(IPC::Connection&amp;, IPC::StringReference messageReceiverName, IPC::StringReference messageName) override;
</span><span class="cx">     virtual IPC::ProcessType localProcessType() override { return IPC::ProcessType::Database; }
</span><span class="lines">@@ -62,13 +60,6 @@
</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 (Legacy IDB)
-    void establishIDBConnection(uint64_t serverConnectionIdentifier);
-    void removeDatabaseProcessIDBConnection(uint64_t serverConnectionIdentifier);
-
-    typedef HashMap&lt;uint64_t, RefPtr&lt;DatabaseProcessIDBConnection&gt;&gt; IDBConnectionMap;
-    IDBConnectionMap m_idbConnections;
-
</del><span class="cx">     // Messages handlers (Modern IDB)
</span><span class="cx">     void establishIDBConnectionToServer(uint64_t serverConnectionIdentifier);
</span><span class="cx">     void removeIDBConnectionToServer(uint64_t serverConnectionIdentifier);
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessDatabaseToWebProcessConnectionmessagesin"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.messages.in (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.messages.in        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.messages.in        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -24,11 +24,7 @@
</span><span class="cx"> 
</span><span class="cx"> messages -&gt; DatabaseToWebProcessConnection LegacyReceiver {
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><del>-    # Creates a connection for communication with a WebProcess (Legacy IDB)
-    EstablishIDBConnection(uint64_t serverConnectionIdentifier)
-    RemoveDatabaseProcessIDBConnection(uint64_t serverConnectionIdentifier)
-
-    # Creates a connection for communication with a WebProcess (Modern IDB)
</del><ins>+    # Creates a connection for communication with a WebProcess
</ins><span class="cx">     EstablishIDBConnectionToServer(uint64_t serverConnectionIdentifier)
</span><span class="cx">     RemoveIDBConnectionToServer(uint64_t serverConnectionIdentifier)
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBDatabaseProcessIDBConnectioncpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,372 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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;DatabaseProcessIDBConnection.h&quot;
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-#include &quot;DataReference.h&quot;
-#include &quot;DatabaseProcess.h&quot;
-#include &quot;DatabaseToWebProcessConnection.h&quot;
-#include &quot;IDBIdentifier.h&quot;
-#include &quot;LegacyUniqueIDBDatabase.h&quot;
-#include &quot;Logging.h&quot;
-#include &quot;WebCoreArgumentCoders.h&quot;
-#include &quot;WebIDBServerConnectionMessages.h&quot;
-#include &lt;WebCore/IDBDatabaseMetadata.h&gt;
-#include &lt;WebCore/IDBIndexMetadata.h&gt;
-#include &lt;WebCore/IDBObjectStoreMetadata.h&gt;
-#include &lt;WebCore/IDBServerConnection.h&gt;
-#include &lt;WebCore/IndexedDB.h&gt;
-
-using namespace WebCore;
-
-namespace WebKit {
-
-DatabaseProcessIDBConnection::DatabaseProcessIDBConnection(DatabaseToWebProcessConnection&amp; connection, uint64_t serverConnectionIdentifier)
-    : m_connection(connection)
-    , m_serverConnectionIdentifier(serverConnectionIdentifier)
-{
-}
-
-DatabaseProcessIDBConnection::~DatabaseProcessIDBConnection()
-{
-    ASSERT(!m_uniqueIDBDatabase);
-}
-
-void DatabaseProcessIDBConnection::disconnectedFromWebProcess()
-{
-    // It's possible that the m_uniqueIDBDatabase pointer has already been cleared
-    // if the represented database was deleted, or if it was closed between delete
-    // and the delete callback
-    if (!m_uniqueIDBDatabase)
-        return;
-
-    m_uniqueIDBDatabase-&gt;unregisterConnection(*this);
-    m_uniqueIDBDatabase = nullptr;
-}
-
-void DatabaseProcessIDBConnection::establishConnection(const String&amp; databaseName, const SecurityOriginData&amp; openingOrigin, const SecurityOriginData&amp; mainFrameOrigin)
-{
-    m_uniqueIDBDatabase = DatabaseProcess::singleton().getOrCreateLegacyUniqueIDBDatabase(LegacyUniqueIDBDatabaseIdentifier(databaseName, openingOrigin, mainFrameOrigin));
-    m_uniqueIDBDatabase-&gt;registerConnection(*this);
-}
-
-void DatabaseProcessIDBConnection::getOrEstablishIDBDatabaseMetadata(uint64_t requestID)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess getOrEstablishIDBDatabaseMetadata request ID %&quot; PRIu64 &quot; (connection %p)&quot;, requestID, this);
-
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;getOrEstablishIDBDatabaseMetadata([connection, requestID](bool success, const IDBDatabaseMetadata&amp; metadata) {
-        connection-&gt;send(Messages::WebIDBServerConnection::DidGetOrEstablishIDBDatabaseMetadata(requestID, success, metadata));
-    });
-}
-
-void DatabaseProcessIDBConnection::deleteDatabase(uint64_t requestID, const String&amp; databaseName)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess deleteDatabase request ID %&quot; PRIu64 &quot; (connection %p)&quot;, requestID, this);
-
-    if (databaseName != m_uniqueIDBDatabase-&gt;identifier().databaseName()) {
-        LOG_ERROR(&quot;Request to delete database name that doesn't match with this database connection's database name&quot;);
-        send(Messages::WebIDBServerConnection::DidDeleteDatabase(requestID, false));
-    }
-
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;deleteDatabase([connection, this, requestID](bool success) {
-        if (success)
-            disconnectedFromWebProcess();
-
-        connection-&gt;send(Messages::WebIDBServerConnection::DidDeleteDatabase(requestID, success));
-    });
-}
-
-void DatabaseProcessIDBConnection::openTransaction(uint64_t requestID, int64_t transactionID, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, uint64_t intMode)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-#ifndef NDEBUG
-    const char* modeString = nullptr;
-    switch (static_cast&lt;IndexedDB::TransactionMode&gt;(intMode)) {
-    case IndexedDB::TransactionMode::ReadOnly:
-        modeString = &quot;readonly&quot;;
-        break;
-    case IndexedDB::TransactionMode::ReadWrite:
-        modeString = &quot;readwrite&quot;;
-        break;
-    case IndexedDB::TransactionMode::VersionChange:
-        modeString = &quot;versionchange&quot;;
-        break;
-    }
-
-    LOG(IDB, &quot;DatabaseProcess openTransaction id %&quot; PRIu64 &quot; in mode '%s', request ID %&quot; PRIu64, transactionID, modeString, requestID);
-#endif
-
-    if (intMode &gt; IndexedDB::TransactionModeMaximum) {
-        send(Messages::WebIDBServerConnection::DidOpenTransaction(requestID, false));
-        return;
-    }
-
-    IndexedDB::TransactionMode mode = static_cast&lt;IndexedDB::TransactionMode&gt;(intMode);
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;openTransaction(IDBIdentifier(*this, transactionID), objectStoreIDs, mode, [connection, requestID](bool success) {
-        connection-&gt;send(Messages::WebIDBServerConnection::DidOpenTransaction(requestID, success));
-    });
-}
-
-void DatabaseProcessIDBConnection::beginTransaction(uint64_t requestID, int64_t transactionID)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess beginTransaction request ID %&quot; PRIu64, requestID);
-
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;beginTransaction(IDBIdentifier(*this, transactionID), [connection, requestID](bool success) {
-        connection-&gt;send(Messages::WebIDBServerConnection::DidBeginTransaction(requestID, success));
-    });
-}
-
-void DatabaseProcessIDBConnection::commitTransaction(uint64_t requestID, int64_t transactionID)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess commitTransaction request ID %&quot; PRIu64, requestID);
-
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;commitTransaction(IDBIdentifier(*this, transactionID), [connection, requestID](bool success) {
-        connection-&gt;send(Messages::WebIDBServerConnection::DidCommitTransaction(requestID, success));
-    });
-}
-
-void DatabaseProcessIDBConnection::resetTransaction(uint64_t requestID, int64_t transactionID)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess resetTransaction request ID %&quot; PRIu64, requestID);
-
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;resetTransaction(IDBIdentifier(*this, transactionID), [connection, requestID](bool success) {
-        connection-&gt;send(Messages::WebIDBServerConnection::DidResetTransaction(requestID, success));
-    });
-}
-
-void DatabaseProcessIDBConnection::rollbackTransaction(uint64_t requestID, int64_t transactionID)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess rollbackTransaction request ID %&quot; PRIu64, requestID);
-
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;rollbackTransaction(IDBIdentifier(*this, transactionID), [connection, requestID](bool success) {
-        connection-&gt;send(Messages::WebIDBServerConnection::DidRollbackTransaction(requestID, success));
-    });
-}
-
-void DatabaseProcessIDBConnection::resetTransactionSync(int64_t transactionID, PassRefPtr&lt;Messages::DatabaseProcessIDBConnection::ResetTransactionSync::DelayedReply&gt; prpReply)
-{
-    RefPtr&lt;Messages::DatabaseProcessIDBConnection::ResetTransactionSync::DelayedReply&gt; reply(prpReply);
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;resetTransaction(IDBIdentifier(*this, transactionID), [connection, reply](bool success) {
-        reply-&gt;send(success);
-    });
-}
-
-void DatabaseProcessIDBConnection::rollbackTransactionSync(int64_t transactionID, PassRefPtr&lt;Messages::DatabaseProcessIDBConnection::RollbackTransactionSync::DelayedReply&gt; prpReply)
-{
-    RefPtr&lt;Messages::DatabaseProcessIDBConnection::RollbackTransactionSync::DelayedReply&gt; reply(prpReply);
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;rollbackTransaction(IDBIdentifier(*this, transactionID), [connection, reply](bool success) {
-        reply-&gt;send(success);
-    });
-}
-
-void DatabaseProcessIDBConnection::changeDatabaseVersion(uint64_t requestID, int64_t transactionID, uint64_t newVersion)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess changeDatabaseVersion request ID %&quot; PRIu64 &quot;, new version %&quot; PRIu64, requestID, newVersion);
-
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;changeDatabaseVersion(IDBIdentifier(*this, transactionID), newVersion, [connection, requestID](bool success) {
-        connection-&gt;send(Messages::WebIDBServerConnection::DidChangeDatabaseVersion(requestID, success));
-    });
-}
-
-void DatabaseProcessIDBConnection::createObjectStore(uint64_t requestID, int64_t transactionID, IDBObjectStoreMetadata metadata)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess createObjectStore request ID %&quot; PRIu64 &quot;, object store name '%s'&quot;, requestID, metadata.name.utf8().data());
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;createObjectStore(IDBIdentifier(*this, transactionID), metadata, [connection, requestID](bool success) {
-        connection-&gt;send(Messages::WebIDBServerConnection::DidCreateObjectStore(requestID, success));
-    });
-}
-
-void DatabaseProcessIDBConnection::deleteObjectStore(uint64_t requestID, int64_t transactionID, int64_t objectStoreID)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess deleteObjectStore request ID %&quot; PRIu64 &quot;, object store id %&quot; PRIi64, requestID, objectStoreID);
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;deleteObjectStore(IDBIdentifier(*this, transactionID), objectStoreID, [connection, requestID](bool success) {
-        connection-&gt;send(Messages::WebIDBServerConnection::DidDeleteObjectStore(requestID, success));
-    });
-}
-
-void DatabaseProcessIDBConnection::clearObjectStore(uint64_t requestID, int64_t transactionID, int64_t objectStoreID)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess clearObjectStore request ID %&quot; PRIu64 &quot;, object store id %&quot; PRIi64, requestID, objectStoreID);
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;clearObjectStore(IDBIdentifier(*this, transactionID), objectStoreID, [connection, requestID](bool success) {
-        connection-&gt;send(Messages::WebIDBServerConnection::DidClearObjectStore(requestID, success));
-    });
-}
-
-void DatabaseProcessIDBConnection::createIndex(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, const IDBIndexMetadata&amp; metadata)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess createIndex request ID %&quot; PRIu64 &quot;, object store id %&quot; PRIi64, requestID, objectStoreID);
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;createIndex(IDBIdentifier(*this, transactionID), objectStoreID, metadata, [connection, requestID](bool success) {
-        connection-&gt;send(Messages::WebIDBServerConnection::DidCreateIndex(requestID, success));
-    });
-}
-
-void DatabaseProcessIDBConnection::deleteIndex(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, int64_t indexID)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess deleteIndex request ID %&quot; PRIu64 &quot;, object store id %&quot; PRIi64, requestID, objectStoreID);
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;deleteIndex(IDBIdentifier(*this, transactionID), objectStoreID, indexID, [connection, requestID](bool success) {
-        connection-&gt;send(Messages::WebIDBServerConnection::DidDeleteIndex(requestID, success));
-    });
-}
-
-void DatabaseProcessIDBConnection::putRecord(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, const IDBKeyData&amp; key, const IPC::DataReference&amp; value, int64_t putMode, const Vector&lt;int64_t&gt;&amp; indexIDs, const Vector&lt;Vector&lt;IDBKeyData&gt;&gt;&amp; indexKeys)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess putRecord request ID %&quot; PRIu64 &quot;, object store id %&quot; PRIi64, requestID, objectStoreID);
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;putRecord(IDBIdentifier(*this, transactionID), objectStoreID, key, value, putMode, indexIDs, indexKeys, [connection, requestID](const IDBKeyData&amp; keyData, uint32_t errorCode, const String&amp; errorMessage) {
-        connection-&gt;send(Messages::WebIDBServerConnection::DidPutRecord(requestID, keyData, errorCode, errorMessage));
-    });
-}
-
-void DatabaseProcessIDBConnection::getRecord(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, int64_t indexID, const IDBKeyRangeData&amp; keyRange, int64_t cursorType)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess getRecord request ID %&quot; PRIu64 &quot;, object store id %&quot; PRIi64, requestID, objectStoreID);
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;getRecord(IDBIdentifier(*this, transactionID), objectStoreID, indexID, keyRange, static_cast&lt;IndexedDB::CursorType&gt;(cursorType), [connection, requestID](const IDBGetResult&amp; getResult, uint32_t errorCode, const String&amp; errorMessage) {
-        connection-&gt;send(Messages::WebIDBServerConnection::DidGetRecord(requestID, getResult, errorCode, errorMessage));
-    });
-}
-
-void DatabaseProcessIDBConnection::count(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, int64_t indexID, const IDBKeyRangeData&amp; keyRangeData)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess count request ID %&quot; PRIu64 &quot;, object store id %&quot; PRIi64, requestID, objectStoreID);
-
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;count(IDBIdentifier(*this, transactionID), objectStoreID, indexID, keyRangeData, [connection, requestID](int64_t count, uint32_t errorCode, const String&amp; errorMessage) {
-        connection-&gt;send(Messages::WebIDBServerConnection::DidCount(requestID, count, errorCode, errorMessage));
-    });
-}
-
-void DatabaseProcessIDBConnection::deleteRange(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, const IDBKeyRangeData&amp; keyRangeData)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess deleteRange request ID %&quot; PRIu64 &quot;, object store id %&quot; PRIi64, requestID, objectStoreID);
-
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;deleteRange(IDBIdentifier(*this, transactionID), objectStoreID, keyRangeData, [connection, requestID](uint32_t errorCode, const String&amp; errorMessage) {
-        connection-&gt;send(Messages::WebIDBServerConnection::DidDeleteRange(requestID, errorCode, errorMessage));
-    });
-}
-
-void DatabaseProcessIDBConnection::openCursor(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, int64_t indexID, int64_t cursorDirection, int64_t cursorType, int64_t taskType, const IDBKeyRangeData&amp; keyRangeData)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess openCursor request ID %&quot; PRIu64 &quot;, object store id %&quot; PRIi64, requestID, objectStoreID);
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;openCursor(IDBIdentifier(*this, transactionID), objectStoreID, indexID, static_cast&lt;IndexedDB::CursorDirection&gt;(cursorDirection), static_cast&lt;IndexedDB::CursorType&gt;(cursorType), static_cast&lt;IDBDatabaseBackend::TaskType&gt;(taskType), keyRangeData, [connection, requestID](int64_t cursorID, const IDBKeyData&amp; resultKey, const IDBKeyData&amp; primaryKey, PassRefPtr&lt;SharedBuffer&gt; value, uint32_t errorCode, const String&amp; errorMessage) {
-        IPC::DataReference data = value ? IPC::DataReference(reinterpret_cast&lt;const uint8_t*&gt;(value-&gt;data()), value-&gt;size()) : IPC::DataReference();
-        connection-&gt;send(Messages::WebIDBServerConnection::DidOpenCursor(requestID, cursorID, resultKey, primaryKey, data, errorCode, errorMessage));
-    });
-}
-
-void DatabaseProcessIDBConnection::cursorAdvance(uint64_t requestID, int64_t cursorID, uint64_t count)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess cursorAdvance request ID %&quot; PRIu64 &quot;, cursor id %&quot; PRIi64, requestID, cursorID);
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;cursorAdvance(IDBIdentifier(*this, cursorID), count, [connection, requestID](const IDBKeyData&amp; resultKey, const IDBKeyData&amp; primaryKey, PassRefPtr&lt;SharedBuffer&gt; value, uint32_t errorCode, const String&amp; errorMessage) {
-        IPC::DataReference data = value ? IPC::DataReference(reinterpret_cast&lt;const uint8_t*&gt;(value-&gt;data()), value-&gt;size()) : IPC::DataReference();
-        connection-&gt;send(Messages::WebIDBServerConnection::DidAdvanceCursor(requestID, resultKey, primaryKey, data, errorCode, errorMessage));
-    });
-}
-
-void DatabaseProcessIDBConnection::cursorIterate(uint64_t requestID, int64_t cursorID, const IDBKeyData&amp; key)
-{
-    ASSERT(m_uniqueIDBDatabase);
-
-    LOG(IDB, &quot;DatabaseProcess cursorIterate request ID %&quot; PRIu64 &quot;, cursor id %&quot; PRIi64, requestID, cursorID);
-    RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
-    m_uniqueIDBDatabase-&gt;cursorIterate(IDBIdentifier(*this, cursorID), key, [connection, requestID](const IDBKeyData&amp; resultKey, const IDBKeyData&amp; primaryKey, PassRefPtr&lt;SharedBuffer&gt; value, uint32_t errorCode, const String&amp; errorMessage) {
-        IPC::DataReference data = value ? IPC::DataReference(reinterpret_cast&lt;const uint8_t*&gt;(value-&gt;data()), value-&gt;size()) : IPC::DataReference();
-        connection-&gt;send(Messages::WebIDBServerConnection::DidIterateCursor(requestID, resultKey, primaryKey, data, errorCode, errorMessage));
-    });
-}
-
-void DatabaseProcessIDBConnection::close()
-{
-    LOG(IDB, &quot;DatabaseProcessIDBConnection close&quot;);
-
-    disconnectedFromWebProcess();
-}
-
-IPC::Connection* DatabaseProcessIDBConnection::messageSenderConnection()
-{
-    return m_connection-&gt;connection();
-}
-
-} // namespace WebKit
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBDatabaseProcessIDBConnectionh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,108 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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 DatabaseProcessIDBConnection_h
-#define DatabaseProcessIDBConnection_h
-
-#include &quot;MessageSender.h&quot;
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-#include &quot;DatabaseProcessIDBConnectionMessages.h&quot;
-#include &quot;LegacyUniqueIDBDatabase.h&quot;
-#include &quot;LegacyUniqueIDBDatabaseIdentifier.h&quot;
-#include &lt;WebCore/SecurityOriginData.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-namespace WebCore {
-class IDBKeyData;
-struct IDBKeyRangeData;
-}
-
-namespace WebKit {
-
-class DatabaseToWebProcessConnection;
-
-class DatabaseProcessIDBConnection : public RefCounted&lt;DatabaseProcessIDBConnection&gt;, public IPC::MessageSender {
-public:
-    static Ref&lt;DatabaseProcessIDBConnection&gt; create(DatabaseToWebProcessConnection&amp; connection, uint64_t serverConnectionIdentifier)
-    {
-        return adoptRef(*new DatabaseProcessIDBConnection(connection, serverConnectionIdentifier));
-    }
-
-    virtual ~DatabaseProcessIDBConnection();
-
-    // Message handlers.
-    void didReceiveDatabaseProcessIDBConnectionMessage(IPC::Connection&amp;, IPC::MessageDecoder&amp;);
-    void didReceiveSyncDatabaseProcessIDBConnectionMessage(IPC::Connection&amp;, IPC::MessageDecoder&amp;, std::unique_ptr&lt;IPC::MessageEncoder&gt;&amp;);
-
-    void disconnectedFromWebProcess();
-
-private:
-    DatabaseProcessIDBConnection(DatabaseToWebProcessConnection&amp;, uint64_t idbConnectionIdentifier);
-
-    // IPC::MessageSender
-    virtual IPC::Connection* messageSenderConnection() override;
-    virtual uint64_t messageSenderDestinationID() override { return m_serverConnectionIdentifier; }
-
-    // Message handlers.
-    void establishConnection(const String&amp; databaseName, const WebCore::SecurityOriginData&amp; openingOrigin, const WebCore::SecurityOriginData&amp; mainFrameOrigin);
-    void getOrEstablishIDBDatabaseMetadata(uint64_t requestID);
-    void deleteDatabase(uint64_t requestID, const String&amp; databaseName);
-    void openTransaction(uint64_t requestID, int64_t transactionID, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, uint64_t transactionMode);
-    void beginTransaction(uint64_t requestID, int64_t transactionID);
-    void commitTransaction(uint64_t requestID, int64_t transactionID);
-    void resetTransaction(uint64_t requestID, int64_t transactionID);
-    void rollbackTransaction(uint64_t requestID, int64_t transactionID);
-    void resetTransactionSync(int64_t transactionID, PassRefPtr&lt;Messages::DatabaseProcessIDBConnection::ResetTransactionSync::DelayedReply&gt;);
-    void rollbackTransactionSync(int64_t transactionID, PassRefPtr&lt;Messages::DatabaseProcessIDBConnection::RollbackTransactionSync::DelayedReply&gt;);
-    void changeDatabaseVersion(uint64_t requestID, int64_t transactionID, uint64_t newVersion);
-    void createObjectStore(uint64_t requestID, int64_t transactionID, WebCore::IDBObjectStoreMetadata);
-    void deleteObjectStore(uint64_t requestID, int64_t transactionID, int64_t objectStoreID);
-    void clearObjectStore(uint64_t requestID, int64_t transactionID, int64_t objectStoreID);
-    void createIndex(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp;);
-    void deleteIndex(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, int64_t indexID);
-    void putRecord(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, const WebCore::IDBKeyData&amp;, const IPC::DataReference&amp; value, int64_t putMode, const Vector&lt;int64_t&gt;&amp; indexIDs, const Vector&lt;Vector&lt;WebCore::IDBKeyData&gt;&gt;&amp; indexKeys);
-    void getRecord(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, int64_t indexID, const WebCore::IDBKeyRangeData&amp;, int64_t cursorType);
-
-    void openCursor(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, int64_t indexID, int64_t cursorDirection, int64_t cursorType, int64_t taskType, const WebCore::IDBKeyRangeData&amp;);
-    void cursorAdvance(uint64_t requestID, int64_t cursorID, uint64_t count);
-    void cursorIterate(uint64_t requestID, int64_t cursorID, const WebCore::IDBKeyData&amp;);
-
-    void count(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, int64_t indexID, const WebCore::IDBKeyRangeData&amp;);
-    void deleteRange(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, const WebCore::IDBKeyRangeData&amp; keyRange);
-
-    void close();
-
-    Ref&lt;DatabaseToWebProcessConnection&gt; m_connection;
-    uint64_t m_serverConnectionIdentifier;
-
-    RefPtr&lt;LegacyUniqueIDBDatabase&gt; m_uniqueIDBDatabase;
-};
-
-} // namespace WebKit
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-#endif // DatabaseProcessIDBConnection_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBDatabaseProcessIDBConnectionmessagesin"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,59 +0,0 @@
</span><del>-# Copyright (C) 2013 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.
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-messages -&gt; DatabaseProcessIDBConnection LegacyReceiver {
-    EstablishConnection(String databaseName, struct WebCore::SecurityOriginData openingOrigin, struct WebCore::SecurityOriginData mainFrameOrigin)
-    GetOrEstablishIDBDatabaseMetadata(uint64_t requestID)
-    DeleteDatabase(uint64_t requestID, String databaseName)
-
-    OpenTransaction(uint64_t requestID, int64_t transactionID, Vector&lt;int64_t&gt; objectStoreIDs, uint64_t transactionMode)
-    BeginTransaction(uint64_t requestID, int64_t transactionID)
-    CommitTransaction(uint64_t requestID, int64_t transactionID)
-    ResetTransaction(uint64_t requestID, int64_t transactionID)
-    RollbackTransaction(uint64_t requestID, int64_t transactionID)
-
-    ResetTransactionSync(int64_t transactionID) -&gt; (bool success) Delayed
-    RollbackTransactionSync(int64_t transactionID) -&gt; (bool success) Delayed
-    
-    ChangeDatabaseVersion(uint64_t requestID, int64_t transactionID, uint64_t newVersion)
-    CreateObjectStore(uint64_t requestID, int64_t transactionID, struct WebCore::IDBObjectStoreMetadata objectStoreMetadata)
-    DeleteObjectStore(uint64_t requestID, int64_t transactionID, int64_t objectStoreID)
-    ClearObjectStore(uint64_t requestID, int64_t transactionID, int64_t objectStoreID);
-    CreateIndex(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, struct WebCore::IDBIndexMetadata indexMetadata)
-    DeleteIndex(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, int64_t indexID)
-
-    PutRecord(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, WebCore::IDBKeyData key, IPC::DataReference value, int64_t putMode, Vector&lt;int64_t&gt; indexIDs, Vector&lt;Vector&lt;WebCore::IDBKeyData&gt;&gt; indexKeys)
-    GetRecord(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, int64_t indexID, struct WebCore::IDBKeyRangeData keyRange, int64_t cursorType)
-    
-    OpenCursor(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, int64_t indexID, int64_t cursorDirection, int64_t cursorType, int64_t taskType, struct WebCore::IDBKeyRangeData keyRange)
-    CursorAdvance(uint64_t requestID, int64_t cursorID, uint64_t count)
-    CursorIterate(uint64_t requestID, int64_t cursorID, WebCore::IDBKeyData key)
-    
-    Count(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, int64_t indexID, struct WebCore::IDBKeyRangeData keyRange)
-    DeleteRange(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, struct WebCore::IDBKeyRangeData keyRange)
-    
-    Close()
-}
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBIDBIdentifierh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/IDBIdentifier.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/IDBIdentifier.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/IDBIdentifier.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,121 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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 IDBIdentifier_h
-#define IDBIdentifier_h
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-#include &lt;wtf/HashTraits.h&gt;
-#include &lt;wtf/Hasher.h&gt;
-
-namespace WebKit {
-
-class DatabaseProcessIDBConnection;
-
-class IDBIdentifier {
-public:
-    IDBIdentifier()
-        : m_connection(nullptr)
-        , m_identifier(0)
-    {
-    }
-
-    IDBIdentifier(DatabaseProcessIDBConnection&amp; connection, int64_t identifier)
-        : m_connection(&amp;connection)
-        , m_identifier(identifier)
-    {
-    }
-
-    IDBIdentifier isolatedCopy() const
-    {
-        return *this;
-    }
-
-    bool isEmpty() const
-    {
-        return !m_connection &amp;&amp; !m_identifier;
-    }
-
-    unsigned hash() const
-    {
-        uint64_t hashCodes[2] = { reinterpret_cast&lt;uint64_t&gt;(m_connection), static_cast&lt;uint64_t&gt;(m_identifier) };
-        return StringHasher::hashMemory&lt;sizeof(hashCodes)&gt;(hashCodes);
-    }
-
-    bool operator==(const IDBIdentifier&amp; other) const
-    {
-        return m_connection == other.m_connection &amp;&amp; m_identifier == other.m_identifier;
-    }
-
-    IDBIdentifier(WTF::HashTableDeletedValueType)
-        : m_connection(nullptr)
-        , m_identifier(-1)
-    {
-    }
-
-    bool isHashTableDeletedValue() const
-    {
-        return !m_connection &amp;&amp; m_identifier == -1;
-    }
-
-    DatabaseProcessIDBConnection&amp; connection() const
-    {
-        ASSERT(m_connection);
-        return *m_connection;
-    }
-
-    int64_t id() const { return m_identifier; }
-
-private:
-    // If any members are added that cannot be safely copied across threads, isolatedCopy() must be updated.
-    DatabaseProcessIDBConnection* m_connection;
-    int64_t m_identifier;
-};
-
-struct IDBIdentifierHash {
-    static unsigned hash(const IDBIdentifier&amp; a) { return a.hash(); }
-    static bool equal(const IDBIdentifier&amp; a, const IDBIdentifier&amp; b) { return a == b; }
-    static const bool safeToCompareToEmptyOrDeleted = false;
-};
-
-struct IDBIdentifierHashTraits : WTF::SimpleClassHashTraits&lt;IDBIdentifier&gt; {
-    static const bool hasIsEmptyValueFunction = true;
-    static bool isEmptyValue(const IDBIdentifier&amp; info) { return info.isEmpty(); }
-};
-
-} // namespace WebKit
-
-namespace WTF {
-
-template&lt;&gt; struct HashTraits&lt;WebKit::IDBIdentifier&gt; : WebKit::IDBIdentifierHashTraits { };
-template&lt;&gt; struct DefaultHash&lt;WebKit::IDBIdentifier&gt; {
-    typedef WebKit::IDBIdentifierHash Hash;
-};
-
-} // namespace WTF
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-#endif // IDBIdentifier_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBIDBSerializationcpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/IDBSerialization.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/IDBSerialization.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/IDBSerialization.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-/*
- * Copyright (C) 2014 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;IDBSerialization.h&quot;
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &quot;ArgumentEncoder.h&quot;
-#include &lt;WebCore/IDBKeyData.h&gt;
-#include &lt;WebCore/IDBKeyPath.h&gt;
-#include &lt;WebCore/KeyedCoding.h&gt;
-
-using namespace WebCore;
-
-namespace WebKit {
-
-RefPtr&lt;SharedBuffer&gt; serializeIDBKeyPath(const IDBKeyPath&amp; keyPath)
-{
-    auto encoder = KeyedEncoder::encoder();
-    keyPath.encode(*encoder);
-    return encoder-&gt;finishEncoding();
-}
-
-bool deserializeIDBKeyPath(const uint8_t* data, size_t size, IDBKeyPath&amp; result)
-{
-    if (!data || !size)
-        return false;
-
-    auto decoder = KeyedDecoder::decoder(data, size);
-    return IDBKeyPath::decode(*decoder, result);
-}
-
-RefPtr&lt;SharedBuffer&gt; serializeIDBKeyData(const IDBKeyData&amp; key)
-{
-    auto encoder = KeyedEncoder::encoder();
-    key.encode(*encoder);
-    return encoder-&gt;finishEncoding();
-}
-
-bool deserializeIDBKeyData(const uint8_t* data, size_t size, IDBKeyData&amp; result)
-{
-    if (!data || !size)
-        return false;
-
-    auto decoder = KeyedDecoder::decoder(data, size);
-    return IDBKeyData::decode(*decoder, result);
-}
-
-} // namespace WebKit
-
-#endif // ENABLE(INDEXED_DATABASE)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBIDBSerializationh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/IDBSerialization.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/IDBSerialization.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/IDBSerialization.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,50 +0,0 @@
</span><del>-/*
- * Copyright (C) 2014 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 IDBSerialization_h
-#define IDBSerialization_h
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include &lt;WebCore/SharedBuffer.h&gt;
-#include &lt;wtf/Vector.h&gt;
-
-namespace WebCore {
-class IDBKeyData;
-class IDBKeyPath;
-}
-
-namespace WebKit {
-
-RefPtr&lt;WebCore::SharedBuffer&gt; serializeIDBKeyPath(const WebCore::IDBKeyPath&amp;);
-bool deserializeIDBKeyPath(const uint8_t* buffer, size_t bufferSize, WebCore::IDBKeyPath&amp;);
-
-RefPtr&lt;WebCore::SharedBuffer&gt; serializeIDBKeyData(const WebCore::IDBKeyData&amp;);
-bool deserializeIDBKeyData(const uint8_t* buffer, size_t bufferSize, WebCore::IDBKeyData&amp;);
-
-} // namespace WebKit
-
-#endif // ENABLE(INDEXED_DATABASE)
-#endif // IDBSerialization_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBLegacyUniqueIDBDatabasecpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,1203 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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;LegacyUniqueIDBDatabase.h&quot;
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-#include &quot;AsyncRequest.h&quot;
-#include &quot;DataReference.h&quot;
-#include &quot;DatabaseProcess.h&quot;
-#include &quot;DatabaseProcessIDBConnection.h&quot;
-#include &quot;Logging.h&quot;
-#include &quot;UniqueIDBDatabaseBackingStoreSQLite.h&quot;
-#include &quot;WebCrossThreadCopier.h&quot;
-#include &lt;WebCore/CrossThreadTask.h&gt;
-#include &lt;WebCore/FileSystem.h&gt;
-#include &lt;WebCore/IDBDatabaseMetadata.h&gt;
-#include &lt;WebCore/IDBGetResult.h&gt;
-#include &lt;WebCore/IDBKeyData.h&gt;
-#include &lt;WebCore/IDBKeyRangeData.h&gt;
-#include &lt;WebCore/SecurityOrigin.h&gt;
-#include &lt;wtf/MainThread.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-using namespace WebCore;
-
-namespace WebKit {
-
-String LegacyUniqueIDBDatabase::calculateAbsoluteDatabaseFilename(const String&amp; absoluteDatabaseDirectory)
-{
-    return pathByAppendingComponent(absoluteDatabaseDirectory, &quot;IndexedDB.sqlite3&quot;);
-}
-
-LegacyUniqueIDBDatabase::LegacyUniqueIDBDatabase(const LegacyUniqueIDBDatabaseIdentifier&amp; identifier)
-    : m_identifier(identifier)
-    , m_acceptingNewRequests(true)
-    , m_didGetMetadataFromBackingStore(false)
-{
-    m_inMemory = !canShareDatabases(identifier.openingOrigin(), identifier.mainFrameOrigin());
-    if (m_inMemory)
-        return;
-
-    // *********
-    // IMPORTANT: Do not change the directory structure for indexed databases on disk without first consulting a reviewer from Apple (&lt;rdar://problem/17454712&gt;)
-    // *********
-
-    // Each unique Indexed Database exists in a directory named for the database, which exists in a directory representing its opening origin.
-    m_databaseRelativeDirectory = pathByAppendingComponent(databaseFilenameIdentifier(identifier.openingOrigin()), filenameForDatabaseName());
-
-    DatabaseProcess::singleton().ensureIndexedDatabaseRelativePathExists(m_databaseRelativeDirectory);
-}
-
-LegacyUniqueIDBDatabase::~LegacyUniqueIDBDatabase()
-{
-    ASSERT(!m_acceptingNewRequests);
-    ASSERT(m_pendingMetadataRequests.isEmpty());
-}
-
-String LegacyUniqueIDBDatabase::filenameForDatabaseName() const
-{
-    ASSERT(!m_identifier.databaseName().isNull());
-
-    if (m_identifier.databaseName().isEmpty())
-        return &quot;%00&quot;;
-
-    String filename = encodeForFileName(m_identifier.databaseName());
-    filename.replace('.', &quot;%2E&quot;);
-
-    return filename;
-}
-
-String LegacyUniqueIDBDatabase::databaseFilenameIdentifier(const SecurityOriginData&amp; originData) const
-{
-    Ref&lt;SecurityOrigin&gt; securityOrigin(SecurityOrigin::create(originData.protocol, originData.host, originData.port));
-    return securityOrigin.get().databaseIdentifier();
-}
-
-bool LegacyUniqueIDBDatabase::canShareDatabases(const SecurityOriginData&amp; openingOrigin, const SecurityOriginData&amp; mainFrameOrigin) const
-{
-    // For now, an origin's database access is predicated on equality with the other origin.
-    // We might need to make this more nuanced later.
-    return openingOrigin == mainFrameOrigin;
-}
-
-void LegacyUniqueIDBDatabase::registerConnection(DatabaseProcessIDBConnection&amp; connection)
-{
-    ASSERT(!m_connections.contains(&amp;connection));
-    m_connections.add(&amp;connection);
-}
-
-void LegacyUniqueIDBDatabase::unregisterConnection(DatabaseProcessIDBConnection&amp; connection)
-{
-    ASSERT(m_connections.contains(&amp;connection));
-    resetAllTransactions(connection);
-    m_connections.remove(&amp;connection);
-
-    if (m_connections.isEmpty() &amp;&amp; m_pendingTransactionRollbacks.isEmpty()) {
-        shutdown(LegacyUniqueIDBDatabaseShutdownType::NormalShutdown);
-        DatabaseProcess::singleton().removeLegacyUniqueIDBDatabase(*this);
-    }
-}
-
-void LegacyUniqueIDBDatabase::shutdown(LegacyUniqueIDBDatabaseShutdownType type)
-{
-    ASSERT(RunLoop::isMain());
-
-    if (!m_acceptingNewRequests)
-        return;
-
-    m_acceptingNewRequests = false;
-
-    // Balanced by an adoptRef in ::didShutdownBackingStore()
-    ref();
-
-    {
-        LockHolder locker(m_databaseTaskMutex);
-        m_databaseTasks.clear();
-    }
-
-    postDatabaseTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::shutdownBackingStore, type, absoluteDatabaseDirectory()), DatabaseTaskType::Shutdown);
-}
-
-void LegacyUniqueIDBDatabase::shutdownBackingStore(LegacyUniqueIDBDatabaseShutdownType type, const String&amp; databaseDirectory)
-{
-    ASSERT(!RunLoop::isMain());
-
-    m_backingStore = nullptr;
-
-    if (type == LegacyUniqueIDBDatabaseShutdownType::DeleteShutdown) {
-        String dbFilename = LegacyUniqueIDBDatabase::calculateAbsoluteDatabaseFilename(databaseDirectory);
-        LOG(IDB, &quot;LegacyUniqueIDBDatabase::shutdownBackingStore deleting file '%s' on disk&quot;, dbFilename.utf8().data());
-        deleteFile(dbFilename);
-        deleteEmptyDirectory(databaseDirectory);
-    }
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didShutdownBackingStore, type), DatabaseTaskType::Shutdown);
-}
-
-void LegacyUniqueIDBDatabase::didShutdownBackingStore(LegacyUniqueIDBDatabaseShutdownType type)
-{
-    ASSERT(RunLoop::isMain());
-
-    // Balanced by a ref in ::shutdown()
-    RefPtr&lt;LegacyUniqueIDBDatabase&gt; protector(adoptRef(this));
-
-    // Empty out remaining main thread tasks.
-    while (performNextMainThreadTask()) {
-    }
-
-    // No more requests will be handled, so abort all outstanding requests.
-    for (const auto&amp; request : m_pendingMetadataRequests)
-        request-&gt;requestAborted();
-    for (const auto&amp; request : m_pendingTransactionRequests.values())
-        request-&gt;requestAborted();
-    for (const auto&amp; request : m_pendingDatabaseTasks.values())
-        request-&gt;requestAborted();
-
-    m_pendingMetadataRequests.clear();
-    m_pendingTransactionRequests.clear();
-    m_pendingDatabaseTasks.clear();
-
-    if (m_pendingShutdownTask)
-        m_pendingShutdownTask-&gt;completeRequest(type);
-
-    m_pendingShutdownTask = nullptr;
-}
-
-void LegacyUniqueIDBDatabase::deleteDatabase(std::function&lt;void (bool)&gt; successCallback)
-{
-    ASSERT(RunLoop::isMain());
-
-    if (!m_acceptingNewRequests) {
-        // Someone else has already shutdown this database, so we can't request a delete.
-        callOnMainThread([successCallback] {
-            successCallback(false);
-        });
-        return;
-    }
-
-    RefPtr&lt;LegacyUniqueIDBDatabase&gt; protector(this);
-    m_pendingShutdownTask = AsyncRequestImpl&lt;LegacyUniqueIDBDatabaseShutdownType&gt;::create([this, protector, successCallback](LegacyUniqueIDBDatabaseShutdownType type) {
-        // If the shutdown just completed was a Delete shutdown then we succeeded.
-        // If not report failure instead of trying again.
-        successCallback(type == LegacyUniqueIDBDatabaseShutdownType::DeleteShutdown);
-    }, [this, protector, successCallback] {
-        successCallback(false);
-    });
-
-    shutdown(LegacyUniqueIDBDatabaseShutdownType::DeleteShutdown);
-}
-
-void LegacyUniqueIDBDatabase::getOrEstablishIDBDatabaseMetadata(std::function&lt;void (bool, const IDBDatabaseMetadata&amp;)&gt; completionCallback)
-{
-    ASSERT(RunLoop::isMain());
-
-    if (!m_acceptingNewRequests) {
-        completionCallback(false, IDBDatabaseMetadata());
-        return;
-    }
-
-    // If we've already retrieved metadata from the backing store, return it now.
-    if (m_didGetMetadataFromBackingStore) {
-        if (m_metadata)
-            completionCallback(true, *m_metadata);
-        else
-            completionCallback(false, IDBDatabaseMetadata());
-
-        return;
-    }
-
-    // If this is the first unanswered metadata request, then later we need to
-    // post a task to open the backing store and get metadata.
-    bool shouldOpenBackingStore = m_pendingMetadataRequests.isEmpty();
-
-    // Then remember this metadata request to be answered later.
-    RefPtr&lt;AsyncRequest&gt; request = AsyncRequestImpl&lt;&gt;::create([completionCallback, this] {
-        completionCallback(!!m_metadata, m_metadata ? *m_metadata : IDBDatabaseMetadata());
-    }, [completionCallback] {
-        // The boolean flag to the completion callback represents whether the
-        // attempt to get/establish metadata succeeded or failed.
-        // Since we're aborting the attempt, it failed, so we always pass in false.
-        completionCallback(false, IDBDatabaseMetadata());
-    });
-
-    m_pendingMetadataRequests.append(request.release());
-
-    if (shouldOpenBackingStore)
-        postDatabaseTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::openBackingStoreAndReadMetadata, m_identifier, absoluteDatabaseDirectory()));
-}
-
-void LegacyUniqueIDBDatabase::openBackingStoreAndReadMetadata(const LegacyUniqueIDBDatabaseIdentifier&amp; identifier, const String&amp; databaseDirectory)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(!m_backingStore);
-
-    if (m_inMemory) {
-        LOG_ERROR(&quot;Support for in-memory databases not yet implemented&quot;);
-        return;
-    }
-
-    m_backingStore = UniqueIDBDatabaseBackingStoreSQLite::create(identifier, databaseDirectory);
-    std::unique_ptr&lt;IDBDatabaseMetadata&gt; metadata = m_backingStore-&gt;getOrEstablishMetadata();
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didOpenBackingStoreAndReadMetadata, metadata ? *metadata : IDBDatabaseMetadata(), !!metadata));
-}
-
-void LegacyUniqueIDBDatabase::didOpenBackingStoreAndReadMetadata(const IDBDatabaseMetadata&amp; metadata, bool success)
-{
-    ASSERT(RunLoop::isMain());
-    ASSERT(!m_metadata);
-
-    m_didGetMetadataFromBackingStore = true;
-
-    if (success)
-        m_metadata = std::make_unique&lt;IDBDatabaseMetadata&gt;(metadata);
-
-    while (!m_pendingMetadataRequests.isEmpty()) {
-        RefPtr&lt;AsyncRequest&gt; request = m_pendingMetadataRequests.takeFirst();
-        request-&gt;completeRequest();
-    }
-}
-
-void LegacyUniqueIDBDatabase::openTransaction(const IDBIdentifier&amp; transactionIdentifier, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, IndexedDB::TransactionMode mode, std::function&lt;void (bool)&gt; successCallback)
-{
-    postTransactionOperation(transactionIdentifier, createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::openBackingStoreTransaction, transactionIdentifier, objectStoreIDs, mode), successCallback);
-}
-
-void LegacyUniqueIDBDatabase::beginTransaction(const IDBIdentifier&amp; transactionIdentifier, std::function&lt;void (bool)&gt; successCallback)
-{
-    postTransactionOperation(transactionIdentifier, createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::beginBackingStoreTransaction, transactionIdentifier), successCallback);
-}
-
-void LegacyUniqueIDBDatabase::commitTransaction(const IDBIdentifier&amp; transactionIdentifier, std::function&lt;void (bool)&gt; successCallback)
-{
-    postTransactionOperation(transactionIdentifier, createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::commitBackingStoreTransaction, transactionIdentifier), successCallback);
-}
-
-void LegacyUniqueIDBDatabase::resetTransaction(const IDBIdentifier&amp; transactionIdentifier, std::function&lt;void (bool)&gt; successCallback)
-{
-    postTransactionOperation(transactionIdentifier, createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::resetBackingStoreTransaction, transactionIdentifier), successCallback);
-}
-
-void LegacyUniqueIDBDatabase::rollbackTransaction(const IDBIdentifier&amp; transactionIdentifier, std::function&lt;void (bool)&gt; successCallback)
-{
-    postTransactionOperation(transactionIdentifier, createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::rollbackBackingStoreTransaction, transactionIdentifier), successCallback);
-}
-
-void LegacyUniqueIDBDatabase::postTransactionOperation(const IDBIdentifier&amp; transactionIdentifier, std::unique_ptr&lt;CrossThreadTask&gt; task, std::function&lt;void (bool)&gt; successCallback)
-{
-    ASSERT(RunLoop::isMain());
-
-    if (!m_acceptingNewRequests) {
-        successCallback(false);
-        return;
-    }
-
-    if (m_pendingTransactionRequests.contains(transactionIdentifier)) {
-        LOG_ERROR(&quot;Attempting to queue an operation for a transaction that already has an operation pending. Each transaction should only have one operation pending at a time.&quot;);
-        successCallback(false);
-        return;
-    }
-
-    postDatabaseTask(WTFMove(task));
-
-    RefPtr&lt;AsyncRequest&gt; request = AsyncRequestImpl&lt;bool&gt;::create([successCallback](bool success) {
-        successCallback(success);
-    }, [successCallback] {
-        successCallback(false);
-    });
-
-    m_pendingTransactionRequests.add(transactionIdentifier, request.release());
-}
-
-void LegacyUniqueIDBDatabase::didCompleteTransactionOperation(const IDBIdentifier&amp; transactionIdentifier, bool success)
-{
-    ASSERT(RunLoop::isMain());
-
-    RefPtr&lt;AsyncRequest&gt; request = m_pendingTransactionRequests.take(transactionIdentifier);
-
-    if (request)
-        request-&gt;completeRequest(success);
-
-    if (m_pendingTransactionRollbacks.contains(transactionIdentifier))
-        finalizeRollback(transactionIdentifier);
-}
-
-void LegacyUniqueIDBDatabase::changeDatabaseVersion(const IDBIdentifier&amp; transactionIdentifier, uint64_t newVersion, std::function&lt;void (bool)&gt; successCallback)
-{
-    ASSERT(RunLoop::isMain());
-
-    if (!m_acceptingNewRequests) {
-        successCallback(false);
-        return;
-    }
-
-    uint64_t oldVersion = m_metadata-&gt;version;
-    m_metadata-&gt;version = newVersion;
-
-    RefPtr&lt;AsyncRequest&gt; request = AsyncRequestImpl&lt;bool&gt;::create([this, oldVersion, successCallback](bool success) {
-        if (!success)
-            m_metadata-&gt;version = oldVersion;
-        successCallback(success);
-    }, [this, oldVersion, successCallback] {
-        m_metadata-&gt;version = oldVersion;
-        successCallback(false);
-    });
-
-    uint64_t requestID = request-&gt;requestID();
-    m_pendingDatabaseTasks.add(requestID, request.release());
-
-    postDatabaseTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::changeDatabaseVersionInBackingStore, requestID, transactionIdentifier, newVersion));
-}
-
-void LegacyUniqueIDBDatabase::didChangeDatabaseVersion(uint64_t requestID, bool success)
-{
-    didCompleteBoolRequest(requestID, success);
-}
-
-void LegacyUniqueIDBDatabase::didCreateObjectStore(uint64_t requestID, bool success)
-{
-    didCompleteBoolRequest(requestID, success);
-}
-
-void LegacyUniqueIDBDatabase::didDeleteObjectStore(uint64_t requestID, bool success)
-{
-    didCompleteBoolRequest(requestID, success);
-}
-
-void LegacyUniqueIDBDatabase::didClearObjectStore(uint64_t requestID, bool success)
-{
-    didCompleteBoolRequest(requestID, success);
-}
-
-void LegacyUniqueIDBDatabase::didCreateIndex(uint64_t requestID, bool success)
-{
-    didCompleteBoolRequest(requestID, success);
-}
-
-void LegacyUniqueIDBDatabase::didDeleteIndex(uint64_t requestID, bool success)
-{
-    didCompleteBoolRequest(requestID, success);
-}
-
-void LegacyUniqueIDBDatabase::didCompleteBoolRequest(uint64_t requestID, bool success)
-{
-    m_pendingDatabaseTasks.take(requestID).get().completeRequest(success);
-}
-
-void LegacyUniqueIDBDatabase::createObjectStore(const IDBIdentifier&amp; transactionIdentifier, const IDBObjectStoreMetadata&amp; metadata, std::function&lt;void (bool)&gt; successCallback)
-{
-    ASSERT(RunLoop::isMain());
-
-    if (!m_acceptingNewRequests) {
-        successCallback(false);
-        return;
-    }
-
-    ASSERT(!m_metadata-&gt;objectStores.contains(metadata.id));
-    m_metadata-&gt;objectStores.set(metadata.id, metadata);
-    int64_t addedObjectStoreID = metadata.id;
-
-    RefPtr&lt;AsyncRequest&gt; request = AsyncRequestImpl&lt;bool&gt;::create([this, addedObjectStoreID, successCallback](bool success) {
-        if (!success)
-            m_metadata-&gt;objectStores.remove(addedObjectStoreID);
-        successCallback(success);
-    }, [this, addedObjectStoreID, successCallback] {
-        m_metadata-&gt;objectStores.remove(addedObjectStoreID);
-        successCallback(false);
-    });
-
-    uint64_t requestID = request-&gt;requestID();
-    m_pendingDatabaseTasks.add(requestID, request.release());
-
-    postDatabaseTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::createObjectStoreInBackingStore, requestID, transactionIdentifier, metadata));
-}
-
-void LegacyUniqueIDBDatabase::deleteObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, std::function&lt;void (bool)&gt; successCallback)
-{
-    ASSERT(RunLoop::isMain());
-
-    if (!m_acceptingNewRequests) {
-        successCallback(false);
-        return;
-    }
-
-    ASSERT(m_metadata-&gt;objectStores.contains(objectStoreID));
-    IDBObjectStoreMetadata metadata = m_metadata-&gt;objectStores.take(objectStoreID);
-
-    RefPtr&lt;AsyncRequest&gt; request = AsyncRequestImpl&lt;bool&gt;::create([this, metadata, successCallback](bool success) {
-        if (!success)
-            m_metadata-&gt;objectStores.set(metadata.id, metadata);
-        successCallback(success);
-    }, [this, metadata, successCallback] {
-        m_metadata-&gt;objectStores.set(metadata.id, metadata);
-        successCallback(false);
-    });
-
-    uint64_t requestID = request-&gt;requestID();
-    m_pendingDatabaseTasks.add(requestID, request.release());
-
-    postDatabaseTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::deleteObjectStoreInBackingStore, requestID, transactionIdentifier, objectStoreID));
-}
-
-void LegacyUniqueIDBDatabase::clearObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, std::function&lt;void (bool)&gt; successCallback)
-{
-    ASSERT(RunLoop::isMain());
-
-    if (!m_acceptingNewRequests) {
-        successCallback(false);
-        return;
-    }
-
-    ASSERT(m_metadata-&gt;objectStores.contains(objectStoreID));
-
-    RefPtr&lt;AsyncRequest&gt; request = AsyncRequestImpl&lt;bool&gt;::create([this, successCallback](bool success) {
-        successCallback(success);
-    }, [this, successCallback] {
-        successCallback(false);
-    });
-
-    uint64_t requestID = request-&gt;requestID();
-    m_pendingDatabaseTasks.add(requestID, request.release());
-
-    postDatabaseTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::clearObjectStoreInBackingStore, requestID, transactionIdentifier, objectStoreID));
-}
-
-void LegacyUniqueIDBDatabase::createIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const IDBIndexMetadata&amp; metadata, std::function&lt;void (bool)&gt; successCallback)
-{
-    ASSERT(RunLoop::isMain());
-
-    if (!m_acceptingNewRequests) {
-        successCallback(false);
-        return;
-    }
-
-    ASSERT(m_metadata-&gt;objectStores.contains(objectStoreID));
-    ASSERT(!m_metadata-&gt;objectStores.get(objectStoreID).indexes.contains(metadata.id));
-    m_metadata-&gt;objectStores.get(objectStoreID).indexes.set(metadata.id, metadata);
-    int64_t addedIndexID = metadata.id;
-
-    RefPtr&lt;AsyncRequest&gt; request = AsyncRequestImpl&lt;bool&gt;::create([this, objectStoreID, addedIndexID, successCallback](bool success) {
-        if (!success) {
-            auto objectStoreFind = m_metadata-&gt;objectStores.find(objectStoreID);
-            if (objectStoreFind != m_metadata-&gt;objectStores.end())
-                objectStoreFind-&gt;value.indexes.remove(addedIndexID);
-        }
-        successCallback(success);
-    }, [this, objectStoreID, addedIndexID, successCallback] {
-        auto objectStoreFind = m_metadata-&gt;objectStores.find(objectStoreID);
-        if (objectStoreFind != m_metadata-&gt;objectStores.end())
-            objectStoreFind-&gt;value.indexes.remove(addedIndexID);
-        successCallback(false);
-    });
-
-    uint64_t requestID = request-&gt;requestID();
-    m_pendingDatabaseTasks.add(requestID, request.release());
-
-    postDatabaseTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::createIndexInBackingStore, requestID, transactionIdentifier, objectStoreID, metadata));
-}
-
-void LegacyUniqueIDBDatabase::deleteIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, std::function&lt;void (bool)&gt; successCallback)
-{
-    ASSERT(RunLoop::isMain());
-
-    if (!m_acceptingNewRequests) {
-        successCallback(false);
-        return;
-    }
-
-    ASSERT(m_metadata-&gt;objectStores.contains(objectStoreID));
-    ASSERT(m_metadata-&gt;objectStores.get(objectStoreID).indexes.contains(indexID));
-
-    IDBIndexMetadata metadata = m_metadata-&gt;objectStores.get(objectStoreID).indexes.take(indexID);
-
-    RefPtr&lt;AsyncRequest&gt; request = AsyncRequestImpl&lt;bool&gt;::create([this, objectStoreID, metadata, successCallback](bool success) {
-        if (!success) {
-            auto objectStoreFind = m_metadata-&gt;objectStores.find(objectStoreID);
-            if (objectStoreFind != m_metadata-&gt;objectStores.end())
-                objectStoreFind-&gt;value.indexes.set(metadata.id, metadata);
-        }
-        successCallback(success);
-    }, [this, objectStoreID, metadata, successCallback] {
-        auto objectStoreFind = m_metadata-&gt;objectStores.find(objectStoreID);
-        if (objectStoreFind != m_metadata-&gt;objectStores.end())
-            objectStoreFind-&gt;value.indexes.set(metadata.id, metadata);
-        successCallback(false);
-    });
-
-    uint64_t requestID = request-&gt;requestID();
-    m_pendingDatabaseTasks.add(requestID, request.release());
-
-    postDatabaseTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::deleteIndexInBackingStore, requestID, transactionIdentifier, objectStoreID, indexID));
-}
-
-void LegacyUniqueIDBDatabase::putRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const IDBKeyData&amp; keyData, const IPC::DataReference&amp; value, int64_t putMode, const Vector&lt;int64_t&gt;&amp; indexIDs, const Vector&lt;Vector&lt;IDBKeyData&gt;&gt;&amp; indexKeys, std::function&lt;void (const IDBKeyData&amp;, uint32_t, const String&amp;)&gt; callback)
-{
-    ASSERT(RunLoop::isMain());
-
-    if (!m_acceptingNewRequests) {
-        callback(IDBKeyData(), INVALID_STATE_ERR, &quot;Unable to put record into database because it has shut down&quot;);
-        return;
-    }
-
-    ASSERT(m_metadata-&gt;objectStores.contains(objectStoreID));
-
-    RefPtr&lt;AsyncRequest&gt; request = AsyncRequestImpl&lt;IDBKeyData, uint32_t, String&gt;::create([this, callback](const IDBKeyData&amp; keyData, uint32_t errorCode, const String&amp; errorMessage) {
-        callback(keyData, errorCode, errorMessage);
-    }, [this, callback] {
-        callback(IDBKeyData(), INVALID_STATE_ERR, &quot;Unable to put record into database&quot;);
-    });
-
-    uint64_t requestID = request-&gt;requestID();
-    m_pendingDatabaseTasks.add(requestID, request.release());
-
-    postDatabaseTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::putRecordInBackingStore, requestID, transactionIdentifier, m_metadata-&gt;objectStores.get(objectStoreID), keyData, value.vector(), putMode, indexIDs, indexKeys));
-}
-
-void LegacyUniqueIDBDatabase::getRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, const IDBKeyRangeData&amp; keyRangeData, IndexedDB::CursorType cursorType, std::function&lt;void (const IDBGetResult&amp;, uint32_t, const String&amp;)&gt; callback)
-{
-    ASSERT(RunLoop::isMain());
-
-    if (!m_acceptingNewRequests) {
-        callback(IDBGetResult(), INVALID_STATE_ERR, &quot;Unable to get record from database because it has shut down&quot;);
-        return;
-    }
-
-    ASSERT(m_metadata-&gt;objectStores.contains(objectStoreID));
-
-    RefPtr&lt;AsyncRequest&gt; request = AsyncRequestImpl&lt;IDBGetResult, uint32_t, String&gt;::create([this, callback](const IDBGetResult&amp; result, uint32_t errorCode, const String&amp; errorMessage) {
-        callback(result, errorCode, errorMessage);
-    }, [this, callback] {
-        callback(IDBGetResult(), INVALID_STATE_ERR, &quot;Unable to get record from database&quot;);
-    });
-
-    uint64_t requestID = request-&gt;requestID();
-    m_pendingDatabaseTasks.add(requestID, request.release());
-
-    postDatabaseTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::getRecordFromBackingStore, requestID, transactionIdentifier, m_metadata-&gt;objectStores.get(objectStoreID), indexID, keyRangeData, cursorType));
-}
-
-void LegacyUniqueIDBDatabase::openCursor(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, IndexedDB::CursorDirection cursorDirection, IndexedDB::CursorType cursorType, IDBDatabaseBackend::TaskType taskType, const IDBKeyRangeData&amp; keyRangeData, std::function&lt;void (int64_t, const IDBKeyData&amp;, const IDBKeyData&amp;, PassRefPtr&lt;SharedBuffer&gt;, uint32_t, const String&amp;)&gt; callback)
-{
-    ASSERT(RunLoop::isMain());
-
-    if (!m_acceptingNewRequests) {
-        callback(0, nullptr, nullptr, nullptr, INVALID_STATE_ERR, &quot;Unable to open cursor in database because it has shut down&quot;);
-        return;
-    }
-
-    ASSERT(m_metadata-&gt;objectStores.contains(objectStoreID));
-
-    RefPtr&lt;AsyncRequest&gt; request = AsyncRequestImpl&lt;int64_t, IDBKeyData, IDBKeyData, PassRefPtr&lt;SharedBuffer&gt;, uint32_t, String&gt;::create([this, callback](int64_t cursorID, const IDBKeyData&amp; key, const IDBKeyData&amp; primaryKey, PassRefPtr&lt;SharedBuffer&gt; value, uint32_t errorCode, const String&amp; errorMessage) {
-        callback(cursorID, key, primaryKey, value, errorCode, errorMessage);
-    }, [this, callback] {
-        callback(0, nullptr, nullptr, nullptr, INVALID_STATE_ERR, &quot;Unable to get record from database&quot;);
-    });
-
-    uint64_t requestID = request-&gt;requestID();
-    m_pendingDatabaseTasks.add(requestID, request.release());
-
-    postDatabaseTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::openCursorInBackingStore, requestID, transactionIdentifier, objectStoreID, indexID, cursorDirection, cursorType, taskType, keyRangeData));
-}
-
-void LegacyUniqueIDBDatabase::cursorAdvance(const IDBIdentifier&amp; cursorIdentifier, uint64_t count, std::function&lt;void (const IDBKeyData&amp;, const IDBKeyData&amp;, PassRefPtr&lt;SharedBuffer&gt;, uint32_t, const String&amp;)&gt; callback)
-{
-    ASSERT(RunLoop::isMain());
-
-    if (!m_acceptingNewRequests) {
-        callback(nullptr, nullptr, nullptr, INVALID_STATE_ERR, &quot;Unable to advance cursor in database because it has shut down&quot;);
-        return;
-    }
-
-    RefPtr&lt;AsyncRequest&gt; request = AsyncRequestImpl&lt;IDBKeyData, IDBKeyData, PassRefPtr&lt;SharedBuffer&gt;, uint32_t, String&gt;::create([this, callback](const IDBKeyData&amp; key, const IDBKeyData&amp; primaryKey, PassRefPtr&lt;SharedBuffer&gt; value, uint32_t errorCode, const String&amp; errorMessage) {
-        callback(key, primaryKey, value, errorCode, errorMessage);
-    }, [this, callback] {
-        callback(nullptr, nullptr, nullptr, INVALID_STATE_ERR, &quot;Unable to advance cursor in database&quot;);
-    });
-
-    uint64_t requestID = request-&gt;requestID();
-    m_pendingDatabaseTasks.add(requestID, request.release());
-
-    postDatabaseTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::advanceCursorInBackingStore, requestID, cursorIdentifier, count));
-}
-
-void LegacyUniqueIDBDatabase::cursorIterate(const IDBIdentifier&amp; cursorIdentifier, const IDBKeyData&amp; key, std::function&lt;void (const IDBKeyData&amp;, const IDBKeyData&amp;, PassRefPtr&lt;SharedBuffer&gt;, uint32_t, const String&amp;)&gt; callback)
-{
-    ASSERT(RunLoop::isMain());
-
-    if (!m_acceptingNewRequests) {
-        callback(nullptr, nullptr, nullptr, INVALID_STATE_ERR, &quot;Unable to iterate cursor in database because it has shut down&quot;);
-        return;
-    }
-
-    RefPtr&lt;AsyncRequest&gt; request = AsyncRequestImpl&lt;IDBKeyData, IDBKeyData, PassRefPtr&lt;SharedBuffer&gt;, uint32_t, String&gt;::create([this, callback](const IDBKeyData&amp; key, const IDBKeyData&amp; primaryKey, PassRefPtr&lt;SharedBuffer&gt; value, uint32_t errorCode, const String&amp; errorMessage) {
-        callback(key, primaryKey, value, errorCode, errorMessage);
-    }, [this, callback] {
-        callback(nullptr, nullptr, nullptr, INVALID_STATE_ERR, &quot;Unable to iterate cursor in database&quot;);
-    });
-
-    uint64_t requestID = request-&gt;requestID();
-    m_pendingDatabaseTasks.add(requestID, request.release());
-
-    postDatabaseTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::iterateCursorInBackingStore, requestID, cursorIdentifier, key));
-}
-
-void LegacyUniqueIDBDatabase::count(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, const IDBKeyRangeData&amp; keyRangeData, std::function&lt;void (int64_t, uint32_t, const String&amp;)&gt; callback)
-{
-    ASSERT(RunLoop::isMain());
-
-    if (!m_acceptingNewRequests) {
-        callback(0, INVALID_STATE_ERR, &quot;Unable to get count from database because it has shut down&quot;);
-        return;
-    }
-
-    RefPtr&lt;AsyncRequest&gt; request = AsyncRequestImpl&lt;int64_t, uint32_t, String&gt;::create([this, callback](int64_t count, uint32_t errorCode, const String&amp; errorMessage) {
-        callback(count, errorCode, errorMessage);
-    }, [this, callback] {
-        callback(0, INVALID_STATE_ERR, &quot;Unable to get count from database&quot;);
-    });
-
-    uint64_t requestID = request-&gt;requestID();
-    m_pendingDatabaseTasks.add(requestID, request.release());
-
-    postDatabaseTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::countInBackingStore, requestID, transactionIdentifier, objectStoreID, indexID, keyRangeData));
-}
-
-void LegacyUniqueIDBDatabase::deleteRange(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const IDBKeyRangeData&amp; keyRangeData, std::function&lt;void (uint32_t, const String&amp;)&gt; callback)
-{
-    ASSERT(RunLoop::isMain());
-
-    if (!m_acceptingNewRequests) {
-        callback(INVALID_STATE_ERR, &quot;Unable to deleteRange from database because it has shut down&quot;);
-        return;
-    }
-
-    RefPtr&lt;AsyncRequest&gt; request = AsyncRequestImpl&lt;uint32_t, String&gt;::create([callback](uint32_t errorCode, const String&amp; errorMessage) {
-        callback(errorCode, errorMessage);
-    }, [callback] {
-        callback(INVALID_STATE_ERR, &quot;Unable to deleteRange from database&quot;);
-    });
-
-    uint64_t requestID = request-&gt;requestID();
-    m_pendingDatabaseTasks.add(requestID, request.release());
-
-    postDatabaseTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::deleteRangeInBackingStore, requestID, transactionIdentifier, objectStoreID, keyRangeData));
-}
-
-void LegacyUniqueIDBDatabase::openBackingStoreTransaction(const IDBIdentifier&amp; transactionIdentifier, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, IndexedDB::TransactionMode mode)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_backingStore);
-
-    bool success = m_backingStore-&gt;establishTransaction(transactionIdentifier, objectStoreIDs, mode);
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didEstablishTransaction, transactionIdentifier, success));
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didCompleteTransactionOperation, transactionIdentifier, success));
-}
-
-void LegacyUniqueIDBDatabase::beginBackingStoreTransaction(const IDBIdentifier&amp; transactionIdentifier)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_backingStore);
-
-    bool success = m_backingStore-&gt;beginTransaction(transactionIdentifier);
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didCompleteTransactionOperation, transactionIdentifier, success));
-}
-
-void LegacyUniqueIDBDatabase::commitBackingStoreTransaction(const IDBIdentifier&amp; transactionIdentifier)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_backingStore);
-
-    bool success = m_backingStore-&gt;commitTransaction(transactionIdentifier);
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didCompleteTransactionOperation, transactionIdentifier, success));
-}
-
-void LegacyUniqueIDBDatabase::resetBackingStoreTransaction(const IDBIdentifier&amp; transactionIdentifier)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_backingStore);
-
-    bool success = m_backingStore-&gt;resetTransaction(transactionIdentifier);
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didResetTransaction, transactionIdentifier, success));
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didCompleteTransactionOperation, transactionIdentifier, success));
-}
-
-void LegacyUniqueIDBDatabase::rollbackBackingStoreTransaction(const IDBIdentifier&amp; transactionIdentifier)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_backingStore);
-
-    bool success = m_backingStore-&gt;rollbackTransaction(transactionIdentifier);
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didCompleteTransactionOperation, transactionIdentifier, success));
-}
-
-void LegacyUniqueIDBDatabase::changeDatabaseVersionInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, uint64_t newVersion)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_backingStore);
-
-    bool success = m_backingStore-&gt;changeDatabaseVersion(transactionIdentifier, newVersion);
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didChangeDatabaseVersion, requestID, success));
-}
-
-void LegacyUniqueIDBDatabase::createObjectStoreInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, const IDBObjectStoreMetadata&amp; metadata)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_backingStore);
-
-    bool success = m_backingStore-&gt;createObjectStore(transactionIdentifier, metadata);
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didCreateObjectStore, requestID, success));
-}
-
-void LegacyUniqueIDBDatabase::deleteObjectStoreInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_backingStore);
-
-    bool success = m_backingStore-&gt;deleteObjectStore(transactionIdentifier, objectStoreID);
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didDeleteObjectStore, requestID, success));
-}
-
-void LegacyUniqueIDBDatabase::clearObjectStoreInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_backingStore);
-
-    bool success = m_backingStore-&gt;clearObjectStore(transactionIdentifier, objectStoreID);
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didClearObjectStore, requestID, success));
-}
-
-void LegacyUniqueIDBDatabase::createIndexInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const IDBIndexMetadata&amp; metadata)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_backingStore);
-
-    bool success = m_backingStore-&gt;createIndex(transactionIdentifier, objectStoreID, metadata);
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didCreateIndex, requestID, success));
-}
-
-void LegacyUniqueIDBDatabase::deleteIndexInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_backingStore);
-
-    bool success = m_backingStore-&gt;deleteIndex(transactionIdentifier, objectStoreID, indexID);
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didDeleteIndex, requestID, success));
-}
-
-void LegacyUniqueIDBDatabase::putRecordInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transaction, const IDBObjectStoreMetadata&amp; objectStoreMetadata, const IDBKeyData&amp; inputKeyData, const Vector&lt;uint8_t&gt;&amp; value, int64_t putMode, const Vector&lt;int64_t&gt;&amp; indexIDs, const Vector&lt;Vector&lt;IDBKeyData&gt;&gt;&amp; indexKeys)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_backingStore);
-
-    bool keyWasGenerated = false;
-    IDBKeyData key;
-    int64_t keyNumber = 0;
-
-    if (putMode != IDBDatabaseBackend::CursorUpdate &amp;&amp; objectStoreMetadata.autoIncrement &amp;&amp; inputKeyData.isNull()) {
-        if (!m_backingStore-&gt;generateKeyNumber(transaction, objectStoreMetadata.id, keyNumber)) {
-            postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didPutRecordInBackingStore, requestID, IDBKeyData(), IDBDatabaseException::UnknownError, ASCIILiteral(&quot;Internal backing store error checking for key existence&quot;)));
-            return;
-        }
-        key.setNumberValue(keyNumber);
-        keyWasGenerated = true;
-    } else
-        key = inputKeyData;
-
-    if (putMode == IDBDatabaseBackend::AddOnly) {
-        bool keyExists;
-        if (!m_backingStore-&gt;keyExistsInObjectStore(transaction, objectStoreMetadata.id, key, keyExists)) {
-            postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didPutRecordInBackingStore, requestID, IDBKeyData(), IDBDatabaseException::UnknownError, ASCIILiteral(&quot;Internal backing store error checking for key existence&quot;)));
-            return;
-        }
-        if (keyExists) {
-            postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didPutRecordInBackingStore, requestID, IDBKeyData(), IDBDatabaseException::ConstraintError, ASCIILiteral(&quot;Key already exists in the object store&quot;)));
-            return;
-        }
-    }
-
-    // The spec says that even if we're about to overwrite the record, perform the steps to delete it first.
-    // This is important because formally deleting it from from the object store also removes it from the appropriate indexes.
-    if (!m_backingStore-&gt;deleteRecord(transaction, objectStoreMetadata.id, key)) {
-        postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didPutRecordInBackingStore, requestID, IDBKeyData(), IDBDatabaseException::UnknownError, ASCIILiteral(&quot;Replacing an existing key in backing store, unable to delete previous record.&quot;)));
-        return;
-    }
-
-    if (!m_backingStore-&gt;putRecord(transaction, objectStoreMetadata.id, key, value.data(), value.size())) {
-        postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didPutRecordInBackingStore, requestID, IDBKeyData(), IDBDatabaseException::UnknownError, ASCIILiteral(&quot;Internal backing store error putting a record&quot;)));
-        return;
-    }
-
-    ASSERT(indexIDs.size() == indexKeys.size());
-    for (size_t i = 0; i &lt; indexIDs.size(); ++i) {
-        for (size_t j = 0; j &lt; indexKeys[i].size(); ++j) {
-            if (!m_backingStore-&gt;putIndexRecord(transaction, objectStoreMetadata.id, indexIDs[i], key, indexKeys[i][j])) {
-                postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didPutRecordInBackingStore, requestID, IDBKeyData(), IDBDatabaseException::UnknownError, ASCIILiteral(&quot;Internal backing store error writing index key&quot;)));
-                return;
-            }
-        }
-    }
-
-    m_backingStore-&gt;notifyCursorsOfChanges(transaction, objectStoreMetadata.id);
-
-    if (putMode != IDBDatabaseBackend::CursorUpdate &amp;&amp; objectStoreMetadata.autoIncrement &amp;&amp; key.type() == KeyType::Number) {
-        if (!m_backingStore-&gt;updateKeyGeneratorNumber(transaction, objectStoreMetadata.id, keyNumber, keyWasGenerated)) {
-            postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didPutRecordInBackingStore, requestID, IDBKeyData(), IDBDatabaseException::UnknownError, ASCIILiteral(&quot;Internal backing store error updating key generator&quot;)));
-            return;
-        }
-    }
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didPutRecordInBackingStore, requestID, key, 0, String(StringImpl::empty())));
-}
-
-void LegacyUniqueIDBDatabase::didPutRecordInBackingStore(uint64_t requestID, const IDBKeyData&amp; keyData, uint32_t errorCode, const String&amp; errorMessage)
-{
-    m_pendingDatabaseTasks.take(requestID).get().completeRequest(keyData, errorCode, errorMessage);
-}
-
-void LegacyUniqueIDBDatabase::getRecordFromBackingStore(uint64_t requestID, const IDBIdentifier&amp; transaction, const IDBObjectStoreMetadata&amp; objectStoreMetadata, int64_t indexID, const IDBKeyRangeData&amp; keyRangeData, IndexedDB::CursorType cursorType)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_backingStore);
-
-    RefPtr&lt;IDBKeyRange&gt; keyRange = keyRangeData.maybeCreateIDBKeyRange();
-    ASSERT(keyRange);
-    if (!keyRange) {
-        postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didGetRecordFromBackingStore, requestID, IDBGetResult(), IDBDatabaseException::UnknownError, ASCIILiteral(&quot;Invalid IDBKeyRange requested from backing store&quot;)));
-        return;
-    }
-
-    if (indexID == IDBIndexMetadata::InvalidId) {
-        // IDBObjectStore get record
-        RefPtr&lt;SharedBuffer&gt; result;
-
-        if (keyRange-&gt;isOnlyKey()) {
-            if (!m_backingStore-&gt;getKeyRecordFromObjectStore(transaction, objectStoreMetadata.id, *keyRange-&gt;lower(), result))
-                postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didGetRecordFromBackingStore, requestID, IDBGetResult(), IDBDatabaseException::UnknownError, ASCIILiteral(&quot;Failed to get key record from object store in backing store&quot;)));
-            else {
-                IDBGetResult getResult = result ? IDBGetResult(result.release(), keyRange-&gt;lower(), objectStoreMetadata.keyPath) : IDBGetResult();
-                postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didGetRecordFromBackingStore, requestID, getResult, 0, String(StringImpl::empty())));
-            }
-
-            return;
-        }
-
-        RefPtr&lt;IDBKey&gt; resultKey;
-
-        if (!m_backingStore-&gt;getKeyRangeRecordFromObjectStore(transaction, objectStoreMetadata.id, *keyRange, result, resultKey))
-            postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didGetRecordFromBackingStore, requestID, IDBGetResult(), IDBDatabaseException::UnknownError, ASCIILiteral(&quot;Failed to get key range record from object store in backing store&quot;)));
-        else {
-            IDBGetResult getResult = result ? IDBGetResult(result.release(), resultKey.release(), objectStoreMetadata.keyPath) : IDBGetResult();
-            postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didGetRecordFromBackingStore, requestID, getResult, 0, String(StringImpl::empty())));
-        }
-
-        return;
-    }
-
-    // IDBIndex get record
-
-    IDBGetResult result;
-    if (!m_backingStore-&gt;getIndexRecord(transaction, objectStoreMetadata.id, indexID, keyRangeData, cursorType, result)) {
-        postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didGetRecordFromBackingStore, requestID, IDBGetResult(), IDBDatabaseException::UnknownError, ASCIILiteral(&quot;Failed to get index record from backing store&quot;)));
-        return;
-    }
-
-    // We must return a key path to know how to inject the result key into the result value object.
-    result.setKeyPath(objectStoreMetadata.keyPath);
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didGetRecordFromBackingStore, requestID, result, 0, String(StringImpl::empty())));
-}
-
-void LegacyUniqueIDBDatabase::didGetRecordFromBackingStore(uint64_t requestID, const IDBGetResult&amp; result, uint32_t errorCode, const String&amp; errorMessage)
-{
-    m_pendingDatabaseTasks.take(requestID).get().completeRequest(result, errorCode, errorMessage);
-}
-
-void LegacyUniqueIDBDatabase::openCursorInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, IndexedDB::CursorDirection cursorDirection, IndexedDB::CursorType cursorType, IDBDatabaseBackend::TaskType taskType, const IDBKeyRangeData&amp; keyRange)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_backingStore);
-
-    int64_t cursorID = 0;
-    IDBKeyData key;
-    IDBKeyData primaryKey;
-    Vector&lt;uint8_t&gt; valueBuffer;
-    int32_t errorCode = 0;
-    String errorMessage;
-    bool success = m_backingStore-&gt;openCursor(transactionIdentifier, objectStoreID, indexID, cursorDirection, cursorType, taskType, keyRange, cursorID, key, primaryKey, valueBuffer);
-
-    if (!success) {
-        errorCode = IDBDatabaseException::UnknownError;
-        errorMessage = ASCIILiteral(&quot;Unknown error opening cursor in backing store&quot;);
-    }
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didOpenCursorInBackingStore, requestID, cursorID, key, primaryKey, valueBuffer, errorCode, errorMessage));
-}
-
-void LegacyUniqueIDBDatabase::didOpenCursorInBackingStore(uint64_t requestID, int64_t cursorID, const IDBKeyData&amp; key, const IDBKeyData&amp; primaryKey, const Vector&lt;uint8_t&gt;&amp; valueBuffer, uint32_t errorCode, const String&amp; errorMessage)
-{
-    m_pendingDatabaseTasks.take(requestID).get().completeRequest(cursorID, key, primaryKey, SharedBuffer::create(valueBuffer.data(), valueBuffer.size()), errorCode, errorMessage);
-}
-
-void LegacyUniqueIDBDatabase::advanceCursorInBackingStore(uint64_t requestID, const IDBIdentifier&amp; cursorIdentifier, uint64_t count)
-{
-    IDBKeyData key;
-    IDBKeyData primaryKey;
-    Vector&lt;uint8_t&gt; valueBuffer;
-    int32_t errorCode = 0;
-    String errorMessage;
-    bool success = m_backingStore-&gt;advanceCursor(cursorIdentifier, count, key, primaryKey, valueBuffer);
-
-    if (!success) {
-        errorCode = IDBDatabaseException::UnknownError;
-        errorMessage = ASCIILiteral(&quot;Unknown error advancing cursor in backing store&quot;);
-    }
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didAdvanceCursorInBackingStore, requestID, key, primaryKey, valueBuffer, errorCode, errorMessage));
-}
-
-void LegacyUniqueIDBDatabase::didAdvanceCursorInBackingStore(uint64_t requestID, const IDBKeyData&amp; key, const IDBKeyData&amp; primaryKey, const Vector&lt;uint8_t&gt;&amp; valueBuffer, uint32_t errorCode, const String&amp; errorMessage)
-{
-    m_pendingDatabaseTasks.take(requestID).get().completeRequest(key, primaryKey, SharedBuffer::create(valueBuffer.data(), valueBuffer.size()), errorCode, errorMessage);
-}
-
-void LegacyUniqueIDBDatabase::iterateCursorInBackingStore(uint64_t requestID, const IDBIdentifier&amp; cursorIdentifier, const IDBKeyData&amp; iterateKey)
-{
-    IDBKeyData key;
-    IDBKeyData primaryKey;
-    Vector&lt;uint8_t&gt; valueBuffer;
-    int32_t errorCode = 0;
-    String errorMessage;
-    bool success = m_backingStore-&gt;iterateCursor(cursorIdentifier, iterateKey, key, primaryKey, valueBuffer);
-
-    if (!success) {
-        errorCode = IDBDatabaseException::UnknownError;
-        errorMessage = ASCIILiteral(&quot;Unknown error iterating cursor in backing store&quot;);
-    }
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didIterateCursorInBackingStore, requestID, key, primaryKey, valueBuffer, errorCode, errorMessage));
-}
-
-void LegacyUniqueIDBDatabase::didIterateCursorInBackingStore(uint64_t requestID, const IDBKeyData&amp; key, const IDBKeyData&amp; primaryKey, const Vector&lt;uint8_t&gt;&amp; valueBuffer, uint32_t errorCode, const String&amp; errorMessage)
-{
-    m_pendingDatabaseTasks.take(requestID).get().completeRequest(key, primaryKey, SharedBuffer::create(valueBuffer.data(), valueBuffer.size()), errorCode, errorMessage);
-}
-
-void LegacyUniqueIDBDatabase::countInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, const IDBKeyRangeData&amp; keyRangeData)
-{
-    int64_t count;
-
-    if (!m_backingStore-&gt;count(transactionIdentifier, objectStoreID, indexID, keyRangeData, count)) {
-        LOG_ERROR(&quot;Failed to get count from backing store.&quot;);
-        postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didCountInBackingStore, requestID, 0, IDBDatabaseException::UnknownError, ASCIILiteral(&quot;Failed to get count from backing store&quot;)));
-
-        return;
-    }
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didCountInBackingStore, requestID, count, 0, String(StringImpl::empty())));
-}
-
-void LegacyUniqueIDBDatabase::didCountInBackingStore(uint64_t requestID, int64_t count, uint32_t errorCode, const String&amp; errorMessage)
-{
-    m_pendingDatabaseTasks.take(requestID).get().completeRequest(count, errorCode, errorMessage);
-}
-
-void LegacyUniqueIDBDatabase::deleteRangeInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const IDBKeyRangeData&amp; keyRangeData)
-{
-    if (!m_backingStore-&gt;deleteRange(transactionIdentifier, objectStoreID, keyRangeData)) {
-        LOG_ERROR(&quot;Failed to delete range from backing store.&quot;);
-        postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didDeleteRangeInBackingStore, requestID, IDBDatabaseException::UnknownError, ASCIILiteral(&quot;Failed to get count from backing store&quot;)));
-
-        return;
-    }
-
-    m_backingStore-&gt;notifyCursorsOfChanges(transactionIdentifier, objectStoreID);
-
-    postMainThreadTask(createCrossThreadTask(*this, &amp;LegacyUniqueIDBDatabase::didDeleteRangeInBackingStore, requestID, 0, String(StringImpl::empty())));
-}
-
-void LegacyUniqueIDBDatabase::didDeleteRangeInBackingStore(uint64_t requestID, uint32_t errorCode, const String&amp; errorMessage)
-{
-    m_pendingDatabaseTasks.take(requestID).get().completeRequest(errorCode, errorMessage);
-}
-
-void LegacyUniqueIDBDatabase::didEstablishTransaction(const IDBIdentifier&amp; transactionIdentifier, bool success)
-{
-    ASSERT(RunLoop::isMain());
-    if (!success)
-        return;
-
-    auto transactions = m_establishedTransactions.add(&amp;transactionIdentifier.connection(), HashSet&lt;IDBIdentifier&gt;());
-    transactions.iterator-&gt;value.add(transactionIdentifier);
-}
-
-void LegacyUniqueIDBDatabase::didResetTransaction(const IDBIdentifier&amp; transactionIdentifier, bool success)
-{
-    ASSERT(RunLoop::isMain());
-    if (!success)
-        return;
-
-    auto transactions = m_establishedTransactions.find(&amp;transactionIdentifier.connection());
-    if (transactions != m_establishedTransactions.end())
-        transactions.get()-&gt;value.remove(transactionIdentifier);
-}
-
-void LegacyUniqueIDBDatabase::resetAllTransactions(const DatabaseProcessIDBConnection&amp; connection)
-{
-    ASSERT(RunLoop::isMain());
-    auto transactions = m_establishedTransactions.find(&amp;connection);
-    if (transactions == m_establishedTransactions.end() || !m_acceptingNewRequests)
-        return;
-
-    for (auto&amp; transactionIdentifier : transactions.get()-&gt;value) {
-        m_pendingTransactionRollbacks.add(transactionIdentifier);
-        if (!m_pendingTransactionRequests.contains(transactionIdentifier))
-            finalizeRollback(transactionIdentifier);
-    }
-}
-
-void LegacyUniqueIDBDatabase::finalizeRollback(const WebKit::IDBIdentifier&amp; transactionId)
-{
-    ASSERT(RunLoop::isMain());
-    ASSERT(m_pendingTransactionRollbacks.contains(transactionId));
-    ASSERT(!m_pendingTransactionRequests.contains(transactionId));
-    rollbackTransaction(transactionId, [this, transactionId](bool) {
-        ASSERT(RunLoop::isMain());
-        if (m_pendingTransactionRequests.contains(transactionId))
-            return;
-
-        ASSERT(m_pendingTransactionRollbacks.contains(transactionId));
-        m_pendingTransactionRollbacks.remove(transactionId);
-        resetTransaction(transactionId, [this, transactionId](bool) {
-            if (m_acceptingNewRequests &amp;&amp; m_connections.isEmpty() &amp;&amp; m_pendingTransactionRollbacks.isEmpty()) {
-                shutdown(LegacyUniqueIDBDatabaseShutdownType::NormalShutdown);
-                DatabaseProcess::singleton().removeLegacyUniqueIDBDatabase(*this);
-            }
-        });
-    });
-}
-
-String LegacyUniqueIDBDatabase::absoluteDatabaseDirectory() const
-{
-    ASSERT(RunLoop::isMain());
-    return DatabaseProcess::singleton().absoluteIndexedDatabasePathFromDatabaseRelativePath(m_databaseRelativeDirectory);
-}
-
-void LegacyUniqueIDBDatabase::postMainThreadTask(std::unique_ptr&lt;CrossThreadTask&gt; task, DatabaseTaskType taskType)
-{
-    ASSERT(!RunLoop::isMain());
-
-    if (!m_acceptingNewRequests &amp;&amp; taskType == DatabaseTaskType::Normal)
-        return;
-
-    LockHolder locker(m_mainThreadTaskMutex);
-
-    m_mainThreadTasks.append(WTFMove(task));
-
-    RefPtr&lt;LegacyUniqueIDBDatabase&gt; database(this);
-    RunLoop::main().dispatch([database] {
-        database-&gt;performNextMainThreadTask();
-    });
-}
-
-bool LegacyUniqueIDBDatabase::performNextMainThreadTask()
-{
-    ASSERT(RunLoop::isMain());
-
-    bool moreTasks;
-
-    std::unique_ptr&lt;CrossThreadTask&gt; task;
-    {
-        LockHolder locker(m_mainThreadTaskMutex);
-
-        // This database might be shutting down, in which case the task queue might be empty.
-        if (m_mainThreadTasks.isEmpty())
-            return false;
-
-        task = m_mainThreadTasks.takeFirst();
-        moreTasks = !m_mainThreadTasks.isEmpty();
-    }
-
-    task-&gt;performTask();
-
-    return moreTasks;
-}
-
-void LegacyUniqueIDBDatabase::postDatabaseTask(std::unique_ptr&lt;CrossThreadTask&gt; task, DatabaseTaskType taskType)
-{
-    ASSERT(RunLoop::isMain());
-
-    if (!m_acceptingNewRequests &amp;&amp; taskType == DatabaseTaskType::Normal)
-        return;
-
-    LockHolder locker(m_databaseTaskMutex);
-
-    m_databaseTasks.append(WTFMove(task));
-
-    RefPtr&lt;LegacyUniqueIDBDatabase&gt; database(this);
-    DatabaseProcess::singleton().queue().dispatch([database] {
-        database-&gt;performNextDatabaseTask();
-    });
-}
-
-void LegacyUniqueIDBDatabase::performNextDatabaseTask()
-{
-    ASSERT(!RunLoop::isMain());
-
-    // It is possible that this database might be shutting down on the main thread.
-    // In this case, immediately after releasing m_databaseTaskMutex, this database might get deleted.
-    // We take a ref() to make sure the database is still live while this last task is performed.
-    RefPtr&lt;LegacyUniqueIDBDatabase&gt; protector(this);
-
-    std::unique_ptr&lt;CrossThreadTask&gt; task;
-    {
-        LockHolder locker(m_databaseTaskMutex);
-
-        // This database might be shutting down on the main thread, in which case the task queue might be empty.
-        if (m_databaseTasks.isEmpty())
-            return;
-
-        task = m_databaseTasks.takeFirst();
-    }
-
-    task-&gt;performTask();
-}
-
-} // namespace WebKit
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBLegacyUniqueIDBDatabaseh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,221 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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 LegacyUniqueIDBDatabase_h
-#define LegacyUniqueIDBDatabase_h
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-#include &quot;AsyncRequest.h&quot;
-#include &quot;IDBIdentifier.h&quot;
-#include &quot;LegacyUniqueIDBDatabaseIdentifier.h&quot;
-#include &lt;WebCore/IDBDatabaseBackend.h&gt;
-#include &lt;WebCore/IndexedDB.h&gt;
-#include &lt;functional&gt;
-#include &lt;wtf/Deque.h&gt;
-#include &lt;wtf/HashSet.h&gt;
-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-namespace IPC {
-class DataReference;
-}
-
-namespace WebCore {
-class CrossThreadTask;
-class IDBGetResult;
-class IDBKeyData;
-class SharedBuffer;
-
-struct IDBDatabaseMetadata;
-struct IDBKeyRangeData;
-struct SecurityOriginData;
-}
-
-namespace WebKit {
-
-class DatabaseProcessIDBConnection;
-class UniqueIDBDatabaseBackingStore;
-
-enum class LegacyUniqueIDBDatabaseShutdownType {
-    NormalShutdown,
-    DeleteShutdown
-};
-
-class LegacyUniqueIDBDatabase : public ThreadSafeRefCounted&lt;LegacyUniqueIDBDatabase&gt; {
-public:
-    static Ref&lt;LegacyUniqueIDBDatabase&gt; create(const LegacyUniqueIDBDatabaseIdentifier&amp; identifier)
-    {
-        return adoptRef(*new LegacyUniqueIDBDatabase(identifier));
-    }
-
-    ~LegacyUniqueIDBDatabase();
-
-    static String calculateAbsoluteDatabaseFilename(const String&amp; absoluteDatabaseDirectory);
-
-    const LegacyUniqueIDBDatabaseIdentifier&amp; identifier() const { return m_identifier; }
-
-    void registerConnection(DatabaseProcessIDBConnection&amp;);
-    void unregisterConnection(DatabaseProcessIDBConnection&amp;);
-
-    void deleteDatabase(std::function&lt;void (bool)&gt; successCallback);
-
-    void getOrEstablishIDBDatabaseMetadata(std::function&lt;void (bool, const WebCore::IDBDatabaseMetadata&amp;)&gt; completionCallback);
-
-    void openTransaction(const IDBIdentifier&amp; transactionIdentifier, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, WebCore::IndexedDB::TransactionMode, std::function&lt;void (bool)&gt; successCallback);
-    void beginTransaction(const IDBIdentifier&amp; transactionIdentifier, std::function&lt;void (bool)&gt; successCallback);
-    void commitTransaction(const IDBIdentifier&amp; transactionIdentifier, std::function&lt;void (bool)&gt; successCallback);
-    void resetTransaction(const IDBIdentifier&amp; transactionIdentifier, std::function&lt;void (bool)&gt; successCallback);
-    void rollbackTransaction(const IDBIdentifier&amp; transactionIdentifier, std::function&lt;void (bool)&gt; successCallback);
-
-    void changeDatabaseVersion(const IDBIdentifier&amp; transactionIdentifier, uint64_t newVersion, std::function&lt;void (bool)&gt; successCallback);
-    void createObjectStore(const IDBIdentifier&amp; transactionIdentifier, const WebCore::IDBObjectStoreMetadata&amp;, std::function&lt;void (bool)&gt; successCallback);
-    void deleteObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, std::function&lt;void (bool)&gt; successCallback);
-    void clearObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, std::function&lt;void (bool)&gt; successCallback);
-    void createIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp;, std::function&lt;void (bool)&gt; successCallback);
-    void deleteIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, std::function&lt;void (bool)&gt; successCallback);
-
-    void putRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKeyData&amp;, const IPC::DataReference&amp; value, int64_t putMode, const Vector&lt;int64_t&gt;&amp; indexIDs, const Vector&lt;Vector&lt;WebCore::IDBKeyData&gt;&gt;&amp; indexKeys, std::function&lt;void (const WebCore::IDBKeyData&amp;, uint32_t, const String&amp;)&gt; callback);
-    void getRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, const WebCore::IDBKeyRangeData&amp;, WebCore::IndexedDB::CursorType, std::function&lt;void (const WebCore::IDBGetResult&amp;, uint32_t, const String&amp;)&gt; callback);
-
-    void openCursor(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, WebCore::IndexedDB::CursorDirection, WebCore::IndexedDB::CursorType, WebCore::IDBDatabaseBackend::TaskType, const WebCore::IDBKeyRangeData&amp;, std::function&lt;void (int64_t, const WebCore::IDBKeyData&amp;, const WebCore::IDBKeyData&amp;, PassRefPtr&lt;WebCore::SharedBuffer&gt;, uint32_t, const String&amp;)&gt; callback);
-    void cursorAdvance(const IDBIdentifier&amp; cursorIdentifier, uint64_t count, std::function&lt;void (const WebCore::IDBKeyData&amp;, const WebCore::IDBKeyData&amp;, PassRefPtr&lt;WebCore::SharedBuffer&gt;, uint32_t, const String&amp;)&gt; callback);
-    void cursorIterate(const IDBIdentifier&amp; cursorIdentifier, const WebCore::IDBKeyData&amp;, std::function&lt;void (const WebCore::IDBKeyData&amp;, const WebCore::IDBKeyData&amp;, PassRefPtr&lt;WebCore::SharedBuffer&gt;, uint32_t, const String&amp;)&gt; callback);
-
-    void count(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, const WebCore::IDBKeyRangeData&amp;, std::function&lt;void (int64_t, uint32_t, const String&amp;)&gt; callback);
-    void deleteRange(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKeyRangeData&amp;, std::function&lt;void (uint32_t, const String&amp;)&gt; callback);
-
-private:
-    LegacyUniqueIDBDatabase(const LegacyUniqueIDBDatabaseIdentifier&amp;);
-
-    LegacyUniqueIDBDatabaseIdentifier m_identifier;
-
-    bool m_inMemory;
-    String m_databaseRelativeDirectory;
-
-    HashSet&lt;RefPtr&lt;DatabaseProcessIDBConnection&gt;&gt; m_connections;
-    HashMap&lt;uint64_t, RefPtr&lt;AsyncRequest&gt;&gt; m_databaseRequests;
-
-    String absoluteDatabaseDirectory() const;
-
-    enum class DatabaseTaskType {
-        Normal,
-        Shutdown
-    };
-    void postDatabaseTask(std::unique_ptr&lt;WebCore::CrossThreadTask&gt;, DatabaseTaskType = DatabaseTaskType::Normal);
-
-    void shutdown(LegacyUniqueIDBDatabaseShutdownType);
-
-    // Method that attempts to make legal filenames from all legal database names
-    String filenameForDatabaseName() const;
-
-    // Returns a string that is appropriate for use as a unique filename
-    String databaseFilenameIdentifier(const WebCore::SecurityOriginData&amp;) const;
-
-    // Returns true if this origin can use the same databases as the given origin.
-    bool canShareDatabases(const WebCore::SecurityOriginData&amp;, const WebCore::SecurityOriginData&amp;) const;
-
-    void postTransactionOperation(const IDBIdentifier&amp; transactionIdentifier, std::unique_ptr&lt;WebCore::CrossThreadTask&gt;, std::function&lt;void (bool)&gt; successCallback);
-    
-    // To be called from the database workqueue thread only
-    void performNextDatabaseTask();
-    void postMainThreadTask(std::unique_ptr&lt;WebCore::CrossThreadTask&gt;, DatabaseTaskType = DatabaseTaskType::Normal);
-    void openBackingStoreAndReadMetadata(const LegacyUniqueIDBDatabaseIdentifier&amp;, const String&amp; databaseDirectory);
-    void openBackingStoreTransaction(const IDBIdentifier&amp; transactionIdentifier, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, WebCore::IndexedDB::TransactionMode);
-    void beginBackingStoreTransaction(const IDBIdentifier&amp;);
-    void commitBackingStoreTransaction(const IDBIdentifier&amp;);
-    void resetBackingStoreTransaction(const IDBIdentifier&amp;);
-    void rollbackBackingStoreTransaction(const IDBIdentifier&amp;);
-
-    void changeDatabaseVersionInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, uint64_t newVersion);
-    void createObjectStoreInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, const WebCore::IDBObjectStoreMetadata&amp;);
-    void deleteObjectStoreInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID);
-    void clearObjectStoreInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID);
-
-    void createIndexInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp;);
-    void deleteIndexInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID);
-
-    void putRecordInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, const WebCore::IDBObjectStoreMetadata&amp;, const WebCore::IDBKeyData&amp;, const Vector&lt;uint8_t&gt;&amp; value, int64_t putMode, const Vector&lt;int64_t&gt;&amp; indexIDs, const Vector&lt;Vector&lt;WebCore::IDBKeyData&gt;&gt;&amp; indexKeys);
-    void getRecordFromBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, const WebCore::IDBObjectStoreMetadata&amp;, int64_t indexID, const WebCore::IDBKeyRangeData&amp;, WebCore::IndexedDB::CursorType);
-    void openCursorInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, WebCore::IndexedDB::CursorDirection, WebCore::IndexedDB::CursorType, WebCore::IDBDatabaseBackend::TaskType, const WebCore::IDBKeyRangeData&amp;);
-    void advanceCursorInBackingStore(uint64_t requestID, const IDBIdentifier&amp; cursorIdentifier, uint64_t count);
-    void iterateCursorInBackingStore(uint64_t requestID, const IDBIdentifier&amp; cursorIdentifier, const WebCore::IDBKeyData&amp;);
-    void countInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, const WebCore::IDBKeyRangeData&amp;);
-    void deleteRangeInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKeyRangeData&amp;);
-
-    void shutdownBackingStore(LegacyUniqueIDBDatabaseShutdownType, const String&amp; databaseDirectory);
-
-    // Callbacks from the database workqueue thread, to be performed on the main thread only
-    bool performNextMainThreadTask();
-    void didOpenBackingStoreAndReadMetadata(const WebCore::IDBDatabaseMetadata&amp;, bool success);
-    void didCompleteTransactionOperation(const IDBIdentifier&amp; transactionIdentifier, bool success);
-    void didChangeDatabaseVersion(uint64_t requestID, bool success);
-    void didCreateObjectStore(uint64_t requestID, bool success);
-    void didDeleteObjectStore(uint64_t requestID, bool success);
-    void didClearObjectStore(uint64_t requestID, bool success);
-    void didCreateIndex(uint64_t requestID, bool success);
-    void didDeleteIndex(uint64_t requestID, bool success);
-    void didPutRecordInBackingStore(uint64_t requestID, const WebCore::IDBKeyData&amp;, uint32_t errorCode, const String&amp; errorMessage);
-    void didGetRecordFromBackingStore(uint64_t requestID, const WebCore::IDBGetResult&amp;, uint32_t errorCode, const String&amp; errorMessage);
-    void didOpenCursorInBackingStore(uint64_t requestID, int64_t cursorID, const WebCore::IDBKeyData&amp;, const WebCore::IDBKeyData&amp;, const Vector&lt;uint8_t&gt;&amp;, uint32_t errorCode, const String&amp; errorMessage);
-    void didAdvanceCursorInBackingStore(uint64_t requestID, const WebCore::IDBKeyData&amp;, const WebCore::IDBKeyData&amp;, const Vector&lt;uint8_t&gt;&amp;, uint32_t errorCode, const String&amp; errorMessage);
-    void didIterateCursorInBackingStore(uint64_t requestID, const WebCore::IDBKeyData&amp;, const WebCore::IDBKeyData&amp;, const Vector&lt;uint8_t&gt;&amp;, uint32_t errorCode, const String&amp; errorMessage);
-    void didCountInBackingStore(uint64_t requestID, int64_t count, uint32_t errorCode, const String&amp; errorMessage);
-    void didDeleteRangeInBackingStore(uint64_t requestID, uint32_t errorCode, const String&amp; errorMessage);
-
-    void didShutdownBackingStore(LegacyUniqueIDBDatabaseShutdownType);
-    void didCompleteBoolRequest(uint64_t requestID, bool success);
-
-    void didEstablishTransaction(const IDBIdentifier&amp; transactionIdentifier, bool success);
-    void didResetTransaction(const IDBIdentifier&amp; transactionIdentifier, bool success);
-    void resetAllTransactions(const DatabaseProcessIDBConnection&amp;);
-    void finalizeRollback(const IDBIdentifier&amp; transactionId);
-
-    bool m_acceptingNewRequests;
-
-    HashMap&lt;const DatabaseProcessIDBConnection*, HashSet&lt;IDBIdentifier&gt;&gt; m_establishedTransactions;
-    Deque&lt;RefPtr&lt;AsyncRequest&gt;&gt; m_pendingMetadataRequests;
-    HashMap&lt;IDBIdentifier, RefPtr&lt;AsyncRequest&gt;&gt; m_pendingTransactionRequests;
-    HashSet&lt;IDBIdentifier&gt; m_pendingTransactionRollbacks;
-    AsyncRequestMap m_pendingDatabaseTasks;
-    RefPtr&lt;AsyncRequest&gt; m_pendingShutdownTask;
-
-    std::unique_ptr&lt;WebCore::IDBDatabaseMetadata&gt; m_metadata;
-    bool m_didGetMetadataFromBackingStore;
-
-    RefPtr&lt;UniqueIDBDatabaseBackingStore&gt; m_backingStore;
-
-    Deque&lt;std::unique_ptr&lt;WebCore::CrossThreadTask&gt;&gt; m_databaseTasks;
-    Lock m_databaseTaskMutex;
-
-    Deque&lt;std::unique_ptr&lt;WebCore::CrossThreadTask&gt;&gt; m_mainThreadTasks;
-    Lock m_mainThreadTaskMutex;
-};
-
-} // namespace WebKit
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-#endif // LegacyUniqueIDBDatabase_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBLegacyUniqueIDBDatabaseIdentifiercpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,101 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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;LegacyUniqueIDBDatabaseIdentifier.h&quot;
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-#include &lt;wtf/text/StringBuilder.h&gt;
-
-namespace WebKit {
-
-LegacyUniqueIDBDatabaseIdentifier::LegacyUniqueIDBDatabaseIdentifier()
-{
-}
-
-LegacyUniqueIDBDatabaseIdentifier::LegacyUniqueIDBDatabaseIdentifier(const String&amp; databaseName, const WebCore::SecurityOriginData&amp; openingOrigin, const WebCore::SecurityOriginData&amp; mainFrameOrigin)
-    : m_databaseName(databaseName)
-    , m_openingOrigin(openingOrigin)
-    , m_mainFrameOrigin(mainFrameOrigin)
-{
-    // While it is valid to have an empty database name, it is not valid to have a null one.
-    ASSERT(!m_databaseName.isNull());
-}
-
-LegacyUniqueIDBDatabaseIdentifier::LegacyUniqueIDBDatabaseIdentifier(WTF::HashTableDeletedValueType)
-    : m_databaseName(WTF::HashTableDeletedValue)
-{
-}
-
-bool LegacyUniqueIDBDatabaseIdentifier::isHashTableDeletedValue() const
-{
-    return m_databaseName.isHashTableDeletedValue();
-}
-
-unsigned LegacyUniqueIDBDatabaseIdentifier::hash() const
-{
-    unsigned hashCodes[7] = {
-        m_databaseName.impl() ? m_databaseName.impl()-&gt;hash() : 0,
-        m_openingOrigin.protocol.impl() ? m_openingOrigin.protocol.impl()-&gt;hash() : 0,
-        m_openingOrigin.host.impl() ? m_openingOrigin.host.impl()-&gt;hash() : 0,
-        static_cast&lt;unsigned&gt;(m_openingOrigin.port),
-        m_mainFrameOrigin.protocol.impl() ? m_mainFrameOrigin.protocol.impl()-&gt;hash() : 0,
-        m_mainFrameOrigin.host.impl() ? m_mainFrameOrigin.host.impl()-&gt;hash() : 0,
-        static_cast&lt;unsigned&gt;(m_mainFrameOrigin.port)
-    };
-    return StringHasher::hashMemory&lt;sizeof(hashCodes)&gt;(hashCodes);
-}
-
-bool LegacyUniqueIDBDatabaseIdentifier::isNull() const
-{
-    // Only a default constructed LegacyUniqueIDBDatabaseIdentifier can have a null database name.
-    return m_databaseName.isNull();
-}
-
-LegacyUniqueIDBDatabaseIdentifier LegacyUniqueIDBDatabaseIdentifier::isolatedCopy() const
-{
-    LegacyUniqueIDBDatabaseIdentifier result;
-
-    result.m_databaseName = m_databaseName.isolatedCopy();
-    result.m_openingOrigin = m_openingOrigin.isolatedCopy();
-    result.m_mainFrameOrigin = m_mainFrameOrigin.isolatedCopy();
-
-    return result;
-}
-
-bool operator==(const LegacyUniqueIDBDatabaseIdentifier&amp; a, const LegacyUniqueIDBDatabaseIdentifier&amp; b)
-{
-    if (&amp;a == &amp;b)
-        return true;
-
-    return a.databaseName() == b.databaseName()
-        &amp;&amp; a.openingOrigin() == b.openingOrigin()
-        &amp;&amp; a.mainFrameOrigin() == b.mainFrameOrigin();
-}
-
-} // namespace WebKit
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBLegacyUniqueIDBDatabaseIdentifierh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,86 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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 LegacyUniqueIDBDatabaseIdentifier_h
-#define LegacyUniqueIDBDatabaseIdentifier_h
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-#include &lt;WebCore/SecurityOriginData.h&gt;
-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-namespace WebKit {
-
-class LegacyUniqueIDBDatabaseIdentifier {
-public:
-    LegacyUniqueIDBDatabaseIdentifier();
-    LegacyUniqueIDBDatabaseIdentifier(const String&amp; databaseName, const WebCore::SecurityOriginData&amp; openingOrigin, const WebCore::SecurityOriginData&amp; mainFrameOrigin);
-
-    bool isNull() const;
-
-    const String&amp; databaseName() const { return m_databaseName; }
-    const WebCore::SecurityOriginData&amp; openingOrigin() const { return m_openingOrigin; }
-    const WebCore::SecurityOriginData&amp; mainFrameOrigin() const { return m_mainFrameOrigin; }
-
-    LegacyUniqueIDBDatabaseIdentifier(WTF::HashTableDeletedValueType);
-    bool isHashTableDeletedValue() const;
-    unsigned hash() const;
-
-    LegacyUniqueIDBDatabaseIdentifier isolatedCopy() const;
-
-private:
-    String m_databaseName;
-    WebCore::SecurityOriginData m_openingOrigin;
-    WebCore::SecurityOriginData m_mainFrameOrigin;
-};
-
-bool operator==(const LegacyUniqueIDBDatabaseIdentifier&amp;, const LegacyUniqueIDBDatabaseIdentifier&amp;);
-
-struct LegacyUniqueIDBDatabaseIdentifierHash {
-    static unsigned hash(const LegacyUniqueIDBDatabaseIdentifier&amp; identifier) { return identifier.hash(); }
-    static bool equal(const LegacyUniqueIDBDatabaseIdentifier&amp; a, const LegacyUniqueIDBDatabaseIdentifier&amp; b) { return a == b; }
-    static const bool safeToCompareToEmptyOrDeleted = false;
-};
-
-struct LegacyUniqueIDBDatabaseIdentifierHashTraits : WTF::SimpleClassHashTraits&lt;LegacyUniqueIDBDatabaseIdentifier&gt; {
-    static const bool hasIsEmptyValueFunction = true;
-    static bool isEmptyValue(const LegacyUniqueIDBDatabaseIdentifier&amp; info) { return info.isNull(); }
-};
-
-} // namespace WebKit
-
-namespace WTF {
-
-template&lt;&gt; struct HashTraits&lt;WebKit::LegacyUniqueIDBDatabaseIdentifier&gt; : WebKit::LegacyUniqueIDBDatabaseIdentifierHashTraits { };
-template&lt;&gt; struct DefaultHash&lt;WebKit::LegacyUniqueIDBDatabaseIdentifier&gt; {
-    typedef WebKit::LegacyUniqueIDBDatabaseIdentifierHash Hash;
-};
-
-} // namespaec WTF
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-#endif // LegacyUniqueIDBDatabaseIdentifier_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBUniqueIDBDatabaseBackingStoreh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,91 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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 UniqueIDBDatabaseBackingStore_h
-#define UniqueIDBDatabaseBackingStore_h
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-#include &lt;WebCore/IndexedDB.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-
-namespace WebCore {
-class IDBGetResult;
-class IDBKey;
-class IDBKeyData;
-class IDBKeyRange;
-class SharedBuffer;
-
-struct IDBDatabaseMetadata;
-struct IDBObjectStoreMetadata;
-}
-
-namespace WebKit {
-
-class IDBIdentifier;
-
-class UniqueIDBDatabaseBackingStore : public RefCounted&lt;UniqueIDBDatabaseBackingStore&gt; {
-public:
-    virtual ~UniqueIDBDatabaseBackingStore() { }
-
-    virtual std::unique_ptr&lt;WebCore::IDBDatabaseMetadata&gt; getOrEstablishMetadata() = 0;
-
-    virtual bool establishTransaction(const IDBIdentifier&amp; transactionIdentifier, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, WebCore::IndexedDB::TransactionMode) = 0;
-    virtual bool beginTransaction(const IDBIdentifier&amp;) = 0;
-    virtual bool commitTransaction(const IDBIdentifier&amp;) = 0;
-    virtual bool resetTransaction(const IDBIdentifier&amp;) = 0;
-    virtual bool rollbackTransaction(const IDBIdentifier&amp;) = 0;
-
-    virtual bool changeDatabaseVersion(const IDBIdentifier&amp; transactionIdentifier, uint64_t newVersion) = 0;
-    virtual bool createObjectStore(const IDBIdentifier&amp; transactionIdentifier, const WebCore::IDBObjectStoreMetadata&amp;) = 0;
-    virtual bool deleteObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID) = 0;
-    virtual bool clearObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID) = 0;
-    virtual bool createIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp;) = 0;
-    virtual bool deleteIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID) = 0;
-
-    virtual bool generateKeyNumber(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t&amp; generatedKey) = 0;
-    virtual bool updateKeyGeneratorNumber(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreId, int64_t keyNumber, bool checkCurrent) = 0;
-
-    virtual bool keyExistsInObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKeyData&amp;, bool&amp; keyExists) = 0;
-    virtual bool putRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKeyData&amp;, const uint8_t* valueBuffer, size_t valueSize) = 0;
-    virtual bool putIndexRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, const WebCore::IDBKeyData&amp;, const WebCore::IDBKeyData&amp; indexKey) = 0;
-    virtual bool getIndexRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, const WebCore::IDBKeyRangeData&amp;, WebCore::IndexedDB::CursorType, WebCore::IDBGetResult&amp;) = 0;
-    virtual bool deleteRange(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKeyRangeData&amp;) = 0;
-    virtual bool deleteRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKeyData&amp;) = 0;
-
-    virtual bool getKeyRecordFromObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKey&amp;, RefPtr&lt;WebCore::SharedBuffer&gt;&amp; result) = 0;
-    virtual bool getKeyRangeRecordFromObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKeyRange&amp;, RefPtr&lt;WebCore::SharedBuffer&gt;&amp; result, RefPtr&lt;WebCore::IDBKey&gt;&amp; resultKey) = 0;
-    virtual bool count(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, const WebCore::IDBKeyRangeData&amp;, int64_t&amp; count) = 0;
-
-    virtual bool openCursor(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, WebCore::IndexedDB::CursorDirection, WebCore::IndexedDB::CursorType, WebCore::IDBDatabaseBackend::TaskType, const WebCore::IDBKeyRangeData&amp;, int64_t&amp; cursorID, WebCore::IDBKeyData&amp;, WebCore::IDBKeyData&amp;, Vector&lt;uint8_t&gt;&amp;) = 0;
-    virtual bool advanceCursor(const IDBIdentifier&amp; cursorIdentifier, uint64_t count, WebCore::IDBKeyData&amp;, WebCore::IDBKeyData&amp;, Vector&lt;uint8_t&gt;&amp;) = 0;
-    virtual bool iterateCursor(const IDBIdentifier&amp; cursorIdentifier, const WebCore::IDBKeyData&amp;, WebCore::IDBKeyData&amp;, WebCore::IDBKeyData&amp;, Vector&lt;uint8_t&gt;&amp;) = 0;
-    virtual void notifyCursorsOfChanges(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID) = 0;
-};
-
-} // namespace WebKit
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-#endif // UniqueIDBDatabaseBackingStore_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBWebIDBConnectionToClienth"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -35,10 +35,12 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> class IDBCursorInfo;
</span><span class="cx"> class IDBIndexInfo;
</span><ins>+class IDBKeyData;
</ins><span class="cx"> class IDBObjectStoreInfo;
</span><span class="cx"> class IDBRequestData;
</span><span class="cx"> class IDBTransactionInfo;
</span><span class="cx"> class SerializedScriptValue;
</span><ins>+struct IDBKeyRangeData;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBsqliteSQLiteIDBCursorcpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,393 +0,0 @@
</span><del>-/*
- * Copyright (C) 2014 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;SQLiteIDBCursor.h&quot;
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-#include &quot;IDBSerialization.h&quot;
-#include &quot;Logging.h&quot;
-#include &quot;SQLiteIDBTransaction.h&quot;
-#include &lt;WebCore/SQLiteStatement.h&gt;
-#include &lt;WebCore/SQLiteTransaction.h&gt;
-#include &lt;sqlite3.h&gt;
-
-using namespace WebCore;
-
-namespace WebKit {
-
-std::unique_ptr&lt;SQLiteIDBCursor&gt; SQLiteIDBCursor::maybeCreate(SQLiteIDBTransaction* transaction, const IDBIdentifier&amp; cursorIdentifier, int64_t objectStoreID, int64_t indexID, IndexedDB::CursorDirection cursorDirection, IndexedDB::CursorType cursorType, IDBDatabaseBackend::TaskType taskType, const IDBKeyRangeData&amp; keyRange)
-{
-    auto cursor = std::unique_ptr&lt;SQLiteIDBCursor&gt;(new SQLiteIDBCursor(transaction, cursorIdentifier, objectStoreID, indexID, cursorDirection, cursorType, taskType, keyRange));
-
-    if (!cursor-&gt;establishStatement())
-        return nullptr;
-
-    if (!cursor-&gt;advance(1))
-        return nullptr;
-
-    return cursor;
-}
-
-SQLiteIDBCursor::SQLiteIDBCursor(SQLiteIDBTransaction* transaction, const IDBIdentifier&amp; cursorIdentifier, int64_t objectStoreID, int64_t indexID, IndexedDB::CursorDirection cursorDirection, IndexedDB::CursorType, IDBDatabaseBackend::TaskType, const IDBKeyRangeData&amp; keyRange)
-    : m_transaction(transaction)
-    , m_cursorIdentifier(cursorIdentifier)
-    , m_objectStoreID(objectStoreID)
-    , m_indexID(indexID)
-    , m_cursorDirection(cursorDirection)
-    , m_keyRange(keyRange)
-    , m_currentRecordID(-1)
-    , m_statementNeedsReset(false)
-    , m_boundID(0)
-    , m_completed(false)
-    , m_errored(false)
-{
-    ASSERT(m_objectStoreID);
-}
-
-static String buildIndexStatement(const IDBKeyRangeData&amp; keyRange, IndexedDB::CursorDirection cursorDirection)
-{
-    StringBuilder builder;
-
-    builder.appendLiteral(&quot;SELECT rowid, key, value FROM IndexRecords WHERE indexID = ? AND key &quot;);
-    if (!keyRange.lowerKey.isNull() &amp;&amp; !keyRange.lowerOpen)
-        builder.appendLiteral(&quot;&gt;=&quot;);
-    else
-        builder.append('&gt;');
-
-    builder.appendLiteral(&quot; CAST(? AS TEXT) AND key &quot;);
-    if (!keyRange.upperKey.isNull() &amp;&amp; !keyRange.upperOpen)
-        builder.appendLiteral(&quot;&lt;=&quot;);
-    else
-        builder.append('&lt;');
-
-    builder.appendLiteral(&quot; CAST(? AS TEXT) ORDER BY key&quot;);
-    if (cursorDirection == IndexedDB::CursorDirection::Prev || cursorDirection == IndexedDB::CursorDirection::PrevNoDuplicate)
-        builder.appendLiteral(&quot; DESC&quot;);
-
-    builder.appendLiteral(&quot;, value&quot;);
-    if (cursorDirection == IndexedDB::CursorDirection::Prev)
-        builder.appendLiteral(&quot; DESC&quot;);
-
-    builder.append(';');
-
-    return builder.toString();
-}
-
-static String buildObjectStoreStatement(const IDBKeyRangeData&amp; keyRange, IndexedDB::CursorDirection cursorDirection)
-{
-    StringBuilder builder;
-
-    builder.appendLiteral(&quot;SELECT rowid, key, value FROM Records WHERE objectStoreID = ? AND key &quot;);
-
-    if (!keyRange.lowerKey.isNull() &amp;&amp; !keyRange.lowerOpen)
-        builder.appendLiteral(&quot;&gt;=&quot;);
-    else
-        builder.append('&gt;');
-
-    builder.appendLiteral(&quot; CAST(? AS TEXT) AND key &quot;);
-
-    if (!keyRange.upperKey.isNull() &amp;&amp; !keyRange.upperOpen)
-        builder.appendLiteral(&quot;&lt;=&quot;);
-    else
-        builder.append('&lt;');
-
-    builder.appendLiteral(&quot; CAST(? AS TEXT) ORDER BY key&quot;);
-
-    if (cursorDirection == IndexedDB::CursorDirection::Prev || cursorDirection == IndexedDB::CursorDirection::PrevNoDuplicate)
-        builder.appendLiteral(&quot; DESC&quot;);
-
-    builder.append(';');
-
-    return builder.toString();
-}
-
-bool SQLiteIDBCursor::establishStatement()
-{
-    ASSERT(!m_statement);
-    String sql;
-
-    if (m_indexID != IDBIndexMetadata::InvalidId) {
-        sql = buildIndexStatement(m_keyRange, m_cursorDirection);
-        m_boundID = m_indexID;
-    } else {
-        sql = buildObjectStoreStatement(m_keyRange, m_cursorDirection);
-        m_boundID = m_objectStoreID;
-    }
-
-    m_currentLowerKey = m_keyRange.lowerKey.isNull() ? IDBKeyData::minimum() : m_keyRange.lowerKey;
-    m_currentUpperKey = m_keyRange.upperKey.isNull() ? IDBKeyData::maximum() : m_keyRange.upperKey;
-
-    return createSQLiteStatement(sql);
-}
-
-bool SQLiteIDBCursor::createSQLiteStatement(const String&amp; sql)
-{
-    LOG(IDB, &quot;Creating cursor with SQL query: \&quot;%s\&quot;&quot;, sql.utf8().data());
-
-    ASSERT(!m_currentLowerKey.isNull());
-    ASSERT(!m_currentUpperKey.isNull());
-    ASSERT(m_transaction-&gt;sqliteTransaction());
-
-    m_statement = std::make_unique&lt;SQLiteStatement&gt;(m_transaction-&gt;sqliteTransaction()-&gt;database(), sql);
-
-    if (m_statement-&gt;prepare() != SQLITE_OK) {
-        LOG_ERROR(&quot;Could not create cursor statement (prepare/id) - '%s'&quot;, m_transaction-&gt;sqliteTransaction()-&gt;database().lastErrorMsg());
-        return false;
-    }
-
-    return bindArguments();
-}
-
-void SQLiteIDBCursor::objectStoreRecordsChanged()
-{
-    // If ObjectStore or Index contents changed, we need to reset the statement and bind new parameters to it.
-    // This is to pick up any changes that might exist.
-
-    m_statementNeedsReset = true;
-}
-
-void SQLiteIDBCursor::resetAndRebindStatement()
-{
-    ASSERT(!m_currentLowerKey.isNull());
-    ASSERT(!m_currentUpperKey.isNull());
-    ASSERT(m_transaction-&gt;sqliteTransaction());
-    ASSERT(m_statement);
-    ASSERT(m_statementNeedsReset);
-
-    m_statementNeedsReset = false;
-
-    // If this cursor never fetched any records, we don't need to reset the statement.
-    if (m_currentKey.isNull())
-        return;
-
-    // Otherwise update the lower key or upper key used for the cursor range.
-    // This is so the cursor can pick up where we left off.
-    if (m_cursorDirection == IndexedDB::CursorDirection::Next || m_cursorDirection == IndexedDB::CursorDirection::NextNoDuplicate)
-        m_currentLowerKey = m_currentKey;
-    else
-        m_currentUpperKey = m_currentKey;
-
-    if (m_statement-&gt;reset() != SQLITE_OK) {
-        LOG_ERROR(&quot;Could not reset cursor statement to respond to object store changes&quot;);
-        return;
-    }
-
-    bindArguments();
-}
-
-bool SQLiteIDBCursor::bindArguments()
-{
-    if (m_statement-&gt;bindInt64(1, m_boundID) != SQLITE_OK) {
-        LOG_ERROR(&quot;Could not bind id argument (bound ID)&quot;);
-        return false;
-    }
-
-    RefPtr&lt;SharedBuffer&gt; buffer = serializeIDBKeyData(m_currentLowerKey);
-    if (m_statement-&gt;bindBlob(2, buffer-&gt;data(), buffer-&gt;size()) != SQLITE_OK) {
-        LOG_ERROR(&quot;Could not create cursor statement (lower key)&quot;);
-        return false;
-    }
-
-    buffer = serializeIDBKeyData(m_currentUpperKey);
-    if (m_statement-&gt;bindBlob(3, buffer-&gt;data(), buffer-&gt;size()) != SQLITE_OK) {
-        LOG_ERROR(&quot;Could not create cursor statement (upper key)&quot;);
-        return false;
-    }
-
-    return true;
-}
-
-bool SQLiteIDBCursor::advance(uint64_t count)
-{
-    bool isUnique = m_cursorDirection == IndexedDB::CursorDirection::NextNoDuplicate || m_cursorDirection == IndexedDB::CursorDirection::PrevNoDuplicate;
-
-    for (uint64_t i = 0; i &lt; count; ++i) {
-        if (!isUnique) {
-            if (!advanceOnce())
-                return false;
-        } else {
-            if (!advanceUnique())
-                return false;
-        }
-    }
-
-    return true;
-}
-
-bool SQLiteIDBCursor::advanceUnique()
-{
-    IDBKeyData currentKey = m_currentKey;
-
-    while (!m_completed) {
-        if (!advanceOnce())
-            return false;
-
-        // If the new current key is different from the old current key, we're done.
-        if (currentKey.compare(m_currentKey))
-            return true;
-    }
-
-    return false;
-}
-
-bool SQLiteIDBCursor::advanceOnce()
-{
-    if (m_statementNeedsReset)
-        resetAndRebindStatement();
-
-    AdvanceResult result;
-    do {
-        result = internalAdvanceOnce();
-    } while (result == AdvanceResult::ShouldAdvanceAgain);
-
-    return result == AdvanceResult::Success;
-}
-
-SQLiteIDBCursor::AdvanceResult SQLiteIDBCursor::internalAdvanceOnce()
-{
-    ASSERT(m_transaction-&gt;sqliteTransaction());
-    ASSERT(m_statement);
-
-    if (m_completed) {
-        LOG_ERROR(&quot;Attempt to advance a completed cursor&quot;);
-        return AdvanceResult::Failure;
-    }
-
-    int result = m_statement-&gt;step();
-    if (result == SQLITE_DONE) {
-        m_completed = true;
-
-        // When a cursor reaches its end, that is indicated by having undefined keys/values
-        m_currentKey = IDBKeyData();
-        m_currentPrimaryKey = IDBKeyData();
-        m_currentValueBuffer.clear();
-
-        return AdvanceResult::Success;
-    }
-
-    if (result != SQLITE_ROW) {
-        LOG_ERROR(&quot;Error advancing cursor - (%i) %s&quot;, result, m_transaction-&gt;sqliteTransaction()-&gt;database().lastErrorMsg());
-        m_completed = true;
-        m_errored = true;
-        return AdvanceResult::Failure;
-    }
-
-    int64_t recordID = m_statement-&gt;getColumnInt64(0);
-
-    // If the recordID of the record just fetched is the same as the current record ID
-    // then this statement must have been re-prepared in response to an object store change.
-    // We don't want to re-use the current record so we'll move on to the next one.
-    if (recordID == m_currentRecordID)
-        return AdvanceResult::ShouldAdvanceAgain;
-
-    m_currentRecordID = recordID;
-
-    Vector&lt;uint8_t&gt; keyData;
-    m_statement-&gt;getColumnBlobAsVector(1, keyData);
-
-    if (!deserializeIDBKeyData(keyData.data(), keyData.size(), m_currentKey)) {
-        LOG_ERROR(&quot;Unable to deserialize key data from database while advancing cursor&quot;);
-        m_completed = true;
-        m_errored = true;
-        return AdvanceResult::Failure;
-    }
-
-    m_statement-&gt;getColumnBlobAsVector(2, keyData);
-    m_currentValueBuffer = keyData;
-
-    // The primaryKey of an ObjectStore cursor is the same as its key.
-    if (m_indexID == IDBIndexMetadata::InvalidId)
-        m_currentPrimaryKey = m_currentKey;
-    else {
-        if (!deserializeIDBKeyData(keyData.data(), keyData.size(), m_currentPrimaryKey)) {
-            LOG_ERROR(&quot;Unable to deserialize value data from database while advancing index cursor&quot;);
-            m_completed = true;
-            m_errored = true;
-            return AdvanceResult::Failure;
-        }
-
-        SQLiteStatement objectStoreStatement(m_statement-&gt;database(), &quot;SELECT value FROM Records WHERE key = CAST(? AS TEXT) and objectStoreID = ?;&quot;);
-
-        if (objectStoreStatement.prepare() != SQLITE_OK
-            || objectStoreStatement.bindBlob(1, m_currentValueBuffer.data(), m_currentValueBuffer.size()) != SQLITE_OK
-            || objectStoreStatement.bindInt64(2, m_objectStoreID) != SQLITE_OK) {
-            LOG_ERROR(&quot;Could not create index cursor statement into object store records (%i) '%s'&quot;, m_statement-&gt;database().lastError(), m_statement-&gt;database().lastErrorMsg());
-            m_completed = true;
-            m_errored = true;
-            return AdvanceResult::Failure;
-        }
-
-        int result = objectStoreStatement.step();
-
-        if (result == SQLITE_ROW)
-            objectStoreStatement.getColumnBlobAsVector(0, m_currentValueBuffer);
-        else if (result == SQLITE_DONE) {
-            // This indicates that the record we're trying to retrieve has been removed from the object store.
-            // Skip over it.
-            return AdvanceResult::ShouldAdvanceAgain;
-        } else {
-            LOG_ERROR(&quot;Could not step index cursor statement into object store records (%i) '%s'&quot;, m_statement-&gt;database().lastError(), m_statement-&gt;database().lastErrorMsg());
-            m_completed = true;
-            m_errored = true;
-            return AdvanceResult::Failure;
-
-        }
-    }
-
-    return AdvanceResult::Success;
-}
-
-bool SQLiteIDBCursor::iterate(const WebCore::IDBKeyData&amp; targetKey)
-{
-    ASSERT(m_transaction-&gt;sqliteTransaction());
-    ASSERT(m_statement);
-
-    bool result = advance(1);
-
-    // Iterating with no key is equivalent to advancing 1 step.
-    if (targetKey.isNull() || !result)
-        return result;
-
-    while (!m_completed) {
-        if (!result)
-            return false;
-
-        // Search for the next key &gt;= the target if the cursor is a Next cursor, or the next key &lt;= if the cursor is a Previous cursor.
-        if (m_cursorDirection == IndexedDB::CursorDirection::Next || m_cursorDirection == IndexedDB::CursorDirection::NextNoDuplicate) {
-            if (m_currentKey.compare(targetKey) &gt;= 0)
-                break;
-        } else if (m_currentKey.compare(targetKey) &lt;= 0)
-            break;
-
-        result = advance(1);
-    }
-
-    return result;
-}
-
-} // namespace WebKit
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBsqliteSQLiteIDBCursorh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,117 +0,0 @@
</span><del>-/*
- * Copyright (C) 2014 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 SQLiteIDBCursor_h
-#define SQLiteIDBCursor_h
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-#include &quot;IDBIdentifier.h&quot;
-#include &lt;WebCore/IDBDatabaseBackend.h&gt;
-#include &lt;WebCore/IDBKeyData.h&gt;
-#include &lt;WebCore/IDBKeyRangeData.h&gt;
-#include &lt;WebCore/SQLiteStatement.h&gt;
-#include &lt;wtf/Noncopyable.h&gt;
-
-namespace WebCore {
-
-namespace IndexedDB {
-enum class CursorDirection;
-enum class CursorType;
-}
-
-}
-
-namespace WebKit {
-
-class SQLiteIDBTransaction;
-
-class SQLiteIDBCursor {
-    WTF_MAKE_NONCOPYABLE(SQLiteIDBCursor);
-
-public:
-    static std::unique_ptr&lt;SQLiteIDBCursor&gt; maybeCreate(SQLiteIDBTransaction*, const IDBIdentifier&amp; cursorIdentifier, int64_t objectStoreID, int64_t indexID, WebCore::IndexedDB::CursorDirection, WebCore::IndexedDB::CursorType, WebCore::IDBDatabaseBackend::TaskType, const WebCore::IDBKeyRangeData&amp;);
-
-    const IDBIdentifier&amp; identifier() const { return m_cursorIdentifier; }
-    SQLiteIDBTransaction* transaction() const { return m_transaction; }
-
-    int64_t objectStoreID() const { return m_objectStoreID; }
-
-    const WebCore::IDBKeyData&amp; currentKey() const { return m_currentKey; }
-    const WebCore::IDBKeyData&amp; currentPrimaryKey() const { return m_currentPrimaryKey; }
-    const Vector&lt;uint8_t&gt;&amp; currentValueBuffer() const { return m_currentValueBuffer; }
-
-    bool advance(uint64_t count);
-    bool iterate(const WebCore::IDBKeyData&amp; targetKey);
-
-    bool didError() const { return m_errored; }
-
-    void objectStoreRecordsChanged();
-
-private:
-    SQLiteIDBCursor(SQLiteIDBTransaction*, const IDBIdentifier&amp; cursorIdentifier, int64_t objectStoreID, int64_t indexID, WebCore::IndexedDB::CursorDirection, WebCore::IndexedDB::CursorType, WebCore::IDBDatabaseBackend::TaskType, const WebCore::IDBKeyRangeData&amp;);
-
-    bool establishStatement();
-    bool createSQLiteStatement(const String&amp; sql);
-    bool bindArguments();
-
-    void resetAndRebindStatement();
-
-    enum class AdvanceResult {
-        Success,
-        Failure,
-        ShouldAdvanceAgain
-    };
-
-    AdvanceResult internalAdvanceOnce();
-    bool advanceOnce();
-    bool advanceUnique();
-
-    SQLiteIDBTransaction* m_transaction;
-    IDBIdentifier m_cursorIdentifier;
-    int64_t m_objectStoreID;
-    int64_t m_indexID;
-    WebCore::IndexedDB::CursorDirection m_cursorDirection;
-    WebCore::IDBKeyRangeData m_keyRange;
-
-    WebCore::IDBKeyData m_currentLowerKey;
-    WebCore::IDBKeyData m_currentUpperKey;
-
-    int64_t m_currentRecordID;
-    WebCore::IDBKeyData m_currentKey;
-    WebCore::IDBKeyData m_currentPrimaryKey;
-    Vector&lt;uint8_t&gt; m_currentValueBuffer;
-
-    std::unique_ptr&lt;WebCore::SQLiteStatement&gt; m_statement;
-    bool m_statementNeedsReset;
-    int64_t m_boundID;
-
-    bool m_completed;
-    bool m_errored;
-};
-
-} // namespace WebKit
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-#endif // SQLiteIDBCursor_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBsqliteSQLiteIDBTransactioncpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,149 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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;SQLiteIDBTransaction.h&quot;
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-#include &quot;SQLiteIDBCursor.h&quot;
-#include &quot;UniqueIDBDatabaseBackingStoreSQLite.h&quot;
-#include &lt;WebCore/IndexedDB.h&gt;
-#include &lt;WebCore/SQLiteTransaction.h&gt;
-
-using namespace WebCore;
-
-static int64_t nextCursorID = 1;
-
-namespace WebKit {
-
-SQLiteIDBTransaction::SQLiteIDBTransaction(UniqueIDBDatabaseBackingStoreSQLite&amp; backingStore, const IDBIdentifier&amp; transactionIdentifier, IndexedDB::TransactionMode mode)
-    : m_identifier(transactionIdentifier)
-    , m_mode(mode)
-    , m_backingStore(backingStore)
-{
-}
-
-SQLiteIDBTransaction::~SQLiteIDBTransaction()
-{
-    if (inProgress())
-        m_sqliteTransaction-&gt;rollback();
-
-    // Explicitly clear cursors, as that also unregisters them from the backing store.
-    clearCursors();
-}
-
-
-bool SQLiteIDBTransaction::begin(SQLiteDatabase&amp; database)
-{
-    ASSERT(!m_sqliteTransaction);
-    m_sqliteTransaction = std::make_unique&lt;SQLiteTransaction&gt;(database, m_mode == IndexedDB::TransactionMode::ReadOnly);
-
-    m_sqliteTransaction-&gt;begin();
-
-    return m_sqliteTransaction-&gt;inProgress();
-}
-
-bool SQLiteIDBTransaction::commit()
-{
-    // It's okay to not have a SQLite transaction or not have started it yet because it's okay for a WebProcess
-    // to request the commit of a transaction immediately after creating it before it has even been used.
-    if (!m_sqliteTransaction || !m_sqliteTransaction-&gt;inProgress())
-        return false;
-
-    m_sqliteTransaction-&gt;commit();
-
-    return !m_sqliteTransaction-&gt;inProgress();
-}
-
-bool SQLiteIDBTransaction::reset()
-{
-    m_sqliteTransaction = nullptr;
-    clearCursors();
-
-    return true;
-}
-
-bool SQLiteIDBTransaction::rollback()
-{
-    ASSERT(m_sqliteTransaction);
-    if (m_sqliteTransaction-&gt;inProgress())
-        m_sqliteTransaction-&gt;rollback();
-
-    return true;
-}
-
-SQLiteIDBCursor* SQLiteIDBTransaction::openCursor(int64_t objectStoreID, int64_t indexID, IndexedDB::CursorDirection cursorDirection, IndexedDB::CursorType cursorType, IDBDatabaseBackend::TaskType taskType, const IDBKeyRangeData&amp; keyRange)
-{
-    ASSERT(m_sqliteTransaction);
-    if (!m_sqliteTransaction-&gt;inProgress())
-        return nullptr;
-
-    IDBIdentifier cursorIdentifier(m_identifier.connection(), nextCursorID++);
-
-    auto addResult = m_cursors.add(cursorIdentifier, SQLiteIDBCursor::maybeCreate(this, cursorIdentifier, objectStoreID, indexID, cursorDirection, cursorType, taskType, keyRange));
-
-    ASSERT(addResult.isNewEntry);
-
-    // It is possible the cursor failed to create and we just stored a null value.
-    if (!addResult.iterator-&gt;value) {
-        m_cursors.remove(addResult.iterator);
-        return nullptr;
-    }
-
-    return addResult.iterator-&gt;value.get();
-}
-
-void SQLiteIDBTransaction::closeCursor(SQLiteIDBCursor&amp; cursor)
-{
-    ASSERT(m_cursors.contains(cursor.identifier()));
-
-    m_backingStore.unregisterCursor(&amp;cursor);
-    m_cursors.remove(cursor.identifier());
-}
-
-void SQLiteIDBTransaction::notifyCursorsOfChanges(int64_t objectStoreID)
-{
-    for (auto&amp; i : m_cursors) {
-        if (i.value-&gt;objectStoreID() == objectStoreID)
-            i.value-&gt;objectStoreRecordsChanged();
-    }
-}
-
-void SQLiteIDBTransaction::clearCursors()
-{
-    for (auto&amp; cursor : m_cursors.values())
-        m_backingStore.unregisterCursor(cursor.get());
-
-    m_cursors.clear();
-}
-
-bool SQLiteIDBTransaction::inProgress() const
-{
-    return m_sqliteTransaction &amp;&amp; m_sqliteTransaction-&gt;inProgress();
-}
-
-} // namespace WebKit
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBsqliteSQLiteIDBTransactionh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,93 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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 SQLiteIDBTransaction_h
-#define SQLiteIDBTransaction_h
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-#include &quot;IDBIdentifier.h&quot;
-#include &lt;WebCore/IDBDatabaseBackend.h&gt;
-#include &lt;wtf/HashMap.h&gt;
-#include &lt;wtf/Noncopyable.h&gt;
-
-namespace WebCore {
-
-class SQLiteDatabase;
-class SQLiteTransaction;
-
-namespace IndexedDB {
-enum class CursorDirection;
-enum class CursorType;
-enum class TransactionMode;
-}
-
-struct IDBKeyRangeData;
-
-}
-
-namespace WebKit {
-
-class SQLiteIDBCursor;
-class UniqueIDBDatabaseBackingStoreSQLite;
-
-class SQLiteIDBTransaction {
-    WTF_MAKE_NONCOPYABLE(SQLiteIDBTransaction);
-public:
-    SQLiteIDBTransaction(UniqueIDBDatabaseBackingStoreSQLite&amp;, const IDBIdentifier&amp; transactionIdentifier, WebCore::IndexedDB::TransactionMode);
-    ~SQLiteIDBTransaction();
-
-    const IDBIdentifier&amp; transactionIdentifier() const { return m_identifier; }
-
-    bool begin(WebCore::SQLiteDatabase&amp;);
-    bool commit();
-    bool reset();
-    bool rollback();
-
-    SQLiteIDBCursor* openCursor(int64_t objectStoreID, int64_t indexID, WebCore::IndexedDB::CursorDirection, WebCore::IndexedDB::CursorType, WebCore::IDBDatabaseBackend::TaskType, const WebCore::IDBKeyRangeData&amp;);
-
-    void closeCursor(SQLiteIDBCursor&amp;);
-    void notifyCursorsOfChanges(int64_t objectStoreID);
-
-    WebCore::IndexedDB::TransactionMode mode() const { return m_mode; }
-    bool inProgress() const;
-
-    WebCore::SQLiteTransaction* sqliteTransaction() const { return m_sqliteTransaction.get(); }
-
-private:
-    void clearCursors();
-
-    IDBIdentifier m_identifier;
-    WebCore::IndexedDB::TransactionMode m_mode;
-
-    UniqueIDBDatabaseBackingStoreSQLite&amp; m_backingStore;
-    std::unique_ptr&lt;WebCore::SQLiteTransaction&gt; m_sqliteTransaction;
-    HashMap&lt;IDBIdentifier, std::unique_ptr&lt;SQLiteIDBCursor&gt;&gt; m_cursors;
-};
-
-} // namespace WebKit
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-#endif // SQLiteIDBTransaction_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBsqliteUniqueIDBDatabaseBackingStoreSQLitecpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,1455 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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;UniqueIDBDatabaseBackingStoreSQLite.h&quot;
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-#include &quot;ArgumentDecoder.h&quot;
-#include &quot;IDBSerialization.h&quot;
-#include &quot;Logging.h&quot;
-#include &quot;SQLiteIDBCursor.h&quot;
-#include &quot;SQLiteIDBTransaction.h&quot;
-#include &lt;WebCore/FileSystem.h&gt;
-#include &lt;WebCore/IDBBindingUtilities.h&gt;
-#include &lt;WebCore/IDBDatabaseMetadata.h&gt;
-#include &lt;WebCore/IDBGetResult.h&gt;
-#include &lt;WebCore/IDBKeyData.h&gt;
-#include &lt;WebCore/IDBKeyRange.h&gt;
-#include &lt;WebCore/SQLiteDatabase.h&gt;
-#include &lt;WebCore/SQLiteStatement.h&gt;
-#include &lt;WebCore/SQLiteTransaction.h&gt;
-#include &lt;WebCore/SharedBuffer.h&gt;
-#include &lt;wtf/NeverDestroyed.h&gt;
-#include &lt;wtf/RunLoop.h&gt;
-
-using namespace JSC;
-using namespace WebCore;
-
-namespace WebKit {
-
-// Current version of the metadata schema being used in the metadata database.
-static const int currentMetadataVersion = 1;
-
-static const String v1RecordsTableSchema(const String&amp; tableName)
-{
-    return makeString(&quot;CREATE TABLE &quot;, tableName, &quot; (objectStoreID INTEGER NOT NULL ON CONFLICT FAIL, key TEXT COLLATE IDBKEY NOT NULL ON CONFLICT FAIL UNIQUE ON CONFLICT REPLACE, value NOT NULL ON CONFLICT FAIL)&quot;);
-}
-
-static const String&amp; v1RecordsTableSchema()
-{
-    static NeverDestroyed&lt;WTF::String&gt; v1RecordsTableSchemaString(v1RecordsTableSchema(&quot;Records&quot;));
-    return v1RecordsTableSchemaString;
-}
-
-static const String&amp; v1RecordsTableSchemaAlternate()
-{
-    static NeverDestroyed&lt;WTF::String&gt; v1RecordsTableSchemaString(v1RecordsTableSchema(&quot;\&quot;Records\&quot;&quot;));
-    return v1RecordsTableSchemaString;
-}
-
-static const String v2RecordsTableSchema(const String&amp; tableName)
-{
-    return makeString(&quot;CREATE TABLE &quot;, tableName, &quot; (objectStoreID INTEGER NOT NULL ON CONFLICT FAIL, key TEXT COLLATE IDBKEY NOT NULL ON CONFLICT FAIL, value NOT NULL ON CONFLICT FAIL)&quot;);
-}
-
-static const String&amp; v2RecordsTableSchema()
-{
-    static NeverDestroyed&lt;WTF::String&gt; v2RecordsTableSchemaString(v2RecordsTableSchema(&quot;Records&quot;));
-    return v2RecordsTableSchemaString;
-}
-
-static const String&amp; v2RecordsTableSchemaAlternate()
-{
-    static NeverDestroyed&lt;WTF::String&gt; v2RecordsTableSchemaString(v2RecordsTableSchema(&quot;\&quot;Records\&quot;&quot;));
-    return v2RecordsTableSchemaString;
-}
-
-static int64_t generateDatabaseId()
-{
-    static int64_t databaseID = 0;
-
-    ASSERT(!RunLoop::isMain());
-    return ++databaseID;
-}
-
-UniqueIDBDatabaseBackingStoreSQLite::UniqueIDBDatabaseBackingStoreSQLite(const LegacyUniqueIDBDatabaseIdentifier&amp; identifier, const String&amp; databaseDirectory)
-    : m_identifier(identifier)
-    , m_absoluteDatabaseDirectory(databaseDirectory)
-{
-    // The backing store is meant to be created and used entirely on a background thread.
-    ASSERT(!RunLoop::isMain());
-}
-
-UniqueIDBDatabaseBackingStoreSQLite::~UniqueIDBDatabaseBackingStoreSQLite()
-{
-    ASSERT(!RunLoop::isMain());
-
-    m_transactions.clear();
-    m_sqliteDB = nullptr;
-
-    if (m_vm) {
-        JSLockHolder locker(m_vm.get());
-        m_globalObject.clear();
-        m_vm = nullptr;
-    }
-}
-
-static bool createOrMigrateRecordsTableIfNecessary(SQLiteDatabase&amp; database)
-{
-    String currentSchema;
-    {
-        // Fetch the schema for an existing records table.
-        SQLiteStatement statement(database, &quot;SELECT type, sql FROM sqlite_master WHERE tbl_name='Records'&quot;);
-        if (statement.prepare() != SQLITE_OK) {
-            LOG_ERROR(&quot;Unable to prepare statement to fetch schema for the Records table.&quot;);
-            return false;
-        }
-
-        int sqliteResult = statement.step();
-
-        // If there is no Records table at all, create it and then bail.
-        if (sqliteResult == SQLITE_DONE) {
-            if (!database.executeCommand(v2RecordsTableSchema())) {
-                LOG_ERROR(&quot;Could not create Records table in database (%i) - %s&quot;, database.lastError(), database.lastErrorMsg());
-                return false;
-            }
-
-            return true;
-        }
-
-        if (sqliteResult != SQLITE_ROW) {
-            LOG_ERROR(&quot;Error executing statement to fetch schema for the Records table.&quot;);
-            return false;
-        }
-
-        currentSchema = statement.getColumnText(1);
-    }
-
-    ASSERT(!currentSchema.isEmpty());
-
-    // If the schema in the backing store is the current schema, we're done.
-    if (currentSchema == v2RecordsTableSchema() || currentSchema == v2RecordsTableSchemaAlternate())
-        return true;
-
-    // If the record table is not the current schema then it must be one of the previous schemas.
-    // If it is not then the database is in an unrecoverable state and this should be considered a fatal error.
-    if (currentSchema != v1RecordsTableSchema() &amp;&amp; currentSchema != v1RecordsTableSchemaAlternate())
-        RELEASE_ASSERT_NOT_REACHED();
-
-    SQLiteTransaction transaction(database);
-    transaction.begin();
-
-    // Create a temporary table with the correct schema and migrate all existing content over.
-    if (!database.executeCommand(v2RecordsTableSchema(&quot;_Temp_Records&quot;))) {
-        LOG_ERROR(&quot;Could not create temporary records table in database (%i) - %s&quot;, database.lastError(), database.lastErrorMsg());
-        return false;
-    }
-
-    if (!database.executeCommand(&quot;INSERT INTO _Temp_Records SELECT * FROM Records&quot;)) {
-        LOG_ERROR(&quot;Could not migrate existing Records content (%i) - %s&quot;, database.lastError(), database.lastErrorMsg());
-        return false;
-    }
-
-    if (!database.executeCommand(&quot;DROP TABLE Records&quot;)) {
-        LOG_ERROR(&quot;Could not drop existing Records table (%i) - %s&quot;, database.lastError(), database.lastErrorMsg());
-        return false;
-    }
-
-    if (!database.executeCommand(&quot;ALTER TABLE _Temp_Records RENAME TO Records&quot;)) {
-        LOG_ERROR(&quot;Could not rename temporary Records table (%i) - %s&quot;, database.lastError(), database.lastErrorMsg());
-        return false;
-    }
-
-    transaction.commit();
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::ensureValidRecordsTable()
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    if (!createOrMigrateRecordsTableIfNecessary(*m_sqliteDB))
-        return false;
-
-    // Whether the updated records table already existed or if it was just created and the data migrated over,
-    // make sure the uniqueness index exists.
-    if (!m_sqliteDB-&gt;executeCommand(&quot;CREATE UNIQUE INDEX IF NOT EXISTS RecordsIndex ON Records (objectStoreID, key);&quot;)) {
-        LOG_ERROR(&quot;Could not create RecordsIndex on Records table in database (%i) - %s&quot;, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-        return false;
-    }
-
-    return true;
-}
-
-std::unique_ptr&lt;IDBDatabaseMetadata&gt; UniqueIDBDatabaseBackingStoreSQLite::createAndPopulateInitialMetadata()
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    if (!m_sqliteDB-&gt;executeCommand(&quot;CREATE TABLE IDBDatabaseInfo (key TEXT NOT NULL ON CONFLICT FAIL UNIQUE ON CONFLICT REPLACE, value TEXT NOT NULL ON CONFLICT FAIL);&quot;)) {
-        LOG_ERROR(&quot;Could not create IDBDatabaseInfo table in database (%i) - %s&quot;, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-        m_sqliteDB = nullptr;
-        return nullptr;
-    }
-
-    if (!m_sqliteDB-&gt;executeCommand(&quot;CREATE TABLE ObjectStoreInfo (id INTEGER PRIMARY KEY NOT NULL ON CONFLICT FAIL UNIQUE ON CONFLICT FAIL, name TEXT NOT NULL ON CONFLICT FAIL UNIQUE ON CONFLICT FAIL, keyPath BLOB NOT NULL ON CONFLICT FAIL, autoInc INTEGER NOT NULL ON CONFLICT FAIL, maxIndexID INTEGER NOT NULL ON CONFLICT FAIL);&quot;)) {
-        LOG_ERROR(&quot;Could not create ObjectStoreInfo table in database (%i) - %s&quot;, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-        m_sqliteDB = nullptr;
-        return nullptr;
-    }
-
-    if (!m_sqliteDB-&gt;executeCommand(&quot;CREATE TABLE IndexInfo (id INTEGER NOT NULL ON CONFLICT FAIL, name TEXT NOT NULL ON CONFLICT FAIL, objectStoreID INTEGER NOT NULL ON CONFLICT FAIL, keyPath BLOB NOT NULL ON CONFLICT FAIL, isUnique INTEGER NOT NULL ON CONFLICT FAIL, multiEntry INTEGER NOT NULL ON CONFLICT FAIL);&quot;)) {
-        LOG_ERROR(&quot;Could not create IndexInfo table in database (%i) - %s&quot;, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-        m_sqliteDB = nullptr;
-        return nullptr;
-    }
-
-    if (!m_sqliteDB-&gt;executeCommand(&quot;CREATE TABLE IndexRecords (indexID INTEGER NOT NULL ON CONFLICT FAIL, objectStoreID INTEGER NOT NULL ON CONFLICT FAIL, key TEXT COLLATE IDBKEY NOT NULL ON CONFLICT FAIL, value NOT NULL ON CONFLICT FAIL);&quot;)) {
-        LOG_ERROR(&quot;Could not create IndexRecords table in database (%i) - %s&quot;, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-        m_sqliteDB = nullptr;
-        return nullptr;
-    }
-
-    if (!m_sqliteDB-&gt;executeCommand(&quot;CREATE TABLE KeyGenerators (objectStoreID INTEGER NOT NULL ON CONFLICT FAIL UNIQUE ON CONFLICT REPLACE, currentKey INTEGER NOT NULL ON CONFLICT FAIL);&quot;)) {
-        LOG_ERROR(&quot;Could not create KeyGenerators table in database (%i) - %s&quot;, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-        m_sqliteDB = nullptr;
-        return nullptr;
-    }
-
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;INSERT INTO IDBDatabaseInfo VALUES ('MetadataVersion', ?);&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt(1, currentMetadataVersion) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not insert database metadata version into IDBDatabaseInfo table (%i) - %s&quot;, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            m_sqliteDB = nullptr;
-            return nullptr;
-        }
-    }
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;INSERT INTO IDBDatabaseInfo VALUES ('DatabaseName', ?);&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindText(1, m_identifier.databaseName()) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not insert database name into IDBDatabaseInfo table (%i) - %s&quot;, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            m_sqliteDB = nullptr;
-            return nullptr;
-        }
-    }
-    {
-        // Database versions are defined to be a uin64_t in the spec but sqlite3 doesn't support native binding of unsigned integers.
-        // Therefore we'll store the version as a String.
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;INSERT INTO IDBDatabaseInfo VALUES ('DatabaseVersion', ?);&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindText(1, String::number(IDBDatabaseMetadata::NoIntVersion)) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not insert default version into IDBDatabaseInfo table (%i) - %s&quot;, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            m_sqliteDB = nullptr;
-            return nullptr;
-        }
-    }
-
-    if (!m_sqliteDB-&gt;executeCommand(ASCIILiteral(&quot;INSERT INTO IDBDatabaseInfo VALUES ('MaxObjectStoreID', 1);&quot;))) {
-        LOG_ERROR(&quot;Could not insert default version into IDBDatabaseInfo table (%i) - %s&quot;, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-        m_sqliteDB = nullptr;
-        return nullptr;
-    }
-
-    // This initial metadata matches the default values we just put into the metadata database.
-    auto metadata = std::make_unique&lt;IDBDatabaseMetadata&gt;();
-    metadata-&gt;name = m_identifier.databaseName();
-    metadata-&gt;version = IDBDatabaseMetadata::NoIntVersion;
-    metadata-&gt;maxObjectStoreId = 1;
-
-    return metadata;
-}
-
-std::unique_ptr&lt;IDBDatabaseMetadata&gt; UniqueIDBDatabaseBackingStoreSQLite::extractExistingMetadata()
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-
-    if (!m_sqliteDB-&gt;tableExists(ASCIILiteral(&quot;IDBDatabaseInfo&quot;)))
-        return nullptr;
-
-    auto metadata = std::make_unique&lt;IDBDatabaseMetadata&gt;();
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;SELECT value FROM IDBDatabaseInfo WHERE key = 'MetadataVersion';&quot;));
-        if (sql.isColumnNull(0))
-            return nullptr;
-        metadata-&gt;version = sql.getColumnInt(0);
-    }
-    {
-        SQLiteStatement sql(*m_sqliteDB, &quot;SELECT value FROM IDBDatabaseInfo WHERE key = 'DatabaseName';&quot;);
-        if (sql.isColumnNull(0))
-            return nullptr;
-        metadata-&gt;name = sql.getColumnText(0);
-        if (metadata-&gt;name != m_identifier.databaseName()) {
-            LOG_ERROR(&quot;Database name in the metadata database ('%s') does not match the expected name ('%s')&quot;, metadata-&gt;name.utf8().data(), m_identifier.databaseName().utf8().data());
-            return nullptr;
-        }
-    }
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;SELECT value FROM IDBDatabaseInfo WHERE key = 'DatabaseVersion';&quot;));
-        if (sql.isColumnNull(0))
-            return nullptr;
-        String stringVersion = sql.getColumnText(0);
-        bool ok;
-        metadata-&gt;version = stringVersion.toUInt64Strict(&amp;ok);
-        if (!ok) {
-            LOG_ERROR(&quot;Database version on disk ('%s') does not cleanly convert to an unsigned 64-bit integer version&quot;, stringVersion.utf8().data());
-            return nullptr;
-        }
-    }
-
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;SELECT id, name, keyPath, autoInc, maxIndexID FROM ObjectStoreInfo;&quot;));
-        if (sql.prepare() != SQLITE_OK)
-            return nullptr;
-
-        int result = sql.step();
-        while (result == SQLITE_ROW) {
-            IDBObjectStoreMetadata osMetadata;
-            osMetadata.id = sql.getColumnInt64(0);
-            osMetadata.name = sql.getColumnText(1);
-
-            Vector&lt;char&gt; keyPathBuffer;
-            sql.getColumnBlobAsVector(2, keyPathBuffer);
-
-            if (!deserializeIDBKeyPath(reinterpret_cast&lt;const uint8_t*&gt;(keyPathBuffer.data()), keyPathBuffer.size(), osMetadata.keyPath)) {
-                LOG_ERROR(&quot;Unable to extract key path metadata from database&quot;);
-                return nullptr;
-            }
-
-            osMetadata.autoIncrement = sql.getColumnInt(3);
-            osMetadata.maxIndexId = sql.getColumnInt64(4);
-
-            metadata-&gt;objectStores.set(osMetadata.id, osMetadata);
-            result = sql.step();
-        }
-
-        if (result != SQLITE_DONE) {
-            LOG_ERROR(&quot;Error fetching object store metadata from database on disk&quot;);
-            return nullptr;
-        }
-    }
-
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;SELECT id, name, objectStoreID, keyPath, isUnique, multiEntry FROM IndexInfo;&quot;));
-        if (sql.prepare() != SQLITE_OK)
-            return nullptr;
-
-        int result = sql.step();
-        while (result == SQLITE_ROW) {
-            IDBIndexMetadata indexMetadata;
-
-            indexMetadata.id = sql.getColumnInt64(0);
-            indexMetadata.name = sql.getColumnText(1);
-            int64_t objectStoreID = sql.getColumnInt64(2);
-
-            Vector&lt;char&gt; keyPathBuffer;
-            sql.getColumnBlobAsVector(3, keyPathBuffer);
-
-            if (!deserializeIDBKeyPath(reinterpret_cast&lt;const uint8_t*&gt;(keyPathBuffer.data()), keyPathBuffer.size(), indexMetadata.keyPath)) {
-                LOG_ERROR(&quot;Unable to extract key path metadata from database&quot;);
-                return nullptr;
-            }
-
-            indexMetadata.unique = sql.getColumnInt(4);
-            indexMetadata.multiEntry = sql.getColumnInt(5);
-
-            auto objectStoreMetadataIt = metadata-&gt;objectStores.find(objectStoreID);
-            if (objectStoreMetadataIt == metadata-&gt;objectStores.end()) {
-                LOG_ERROR(&quot;Found index referring to a non-existant object store&quot;);
-                return nullptr;
-            }
-
-            objectStoreMetadataIt-&gt;value.indexes.set(indexMetadata.id, indexMetadata);
-
-            result = sql.step();
-        }
-
-        if (result != SQLITE_DONE) {
-            LOG_ERROR(&quot;Error fetching index metadata from database on disk&quot;);
-            return nullptr;
-        }
-    }
-
-    return metadata;
-}
-
-std::unique_ptr&lt;SQLiteDatabase&gt; UniqueIDBDatabaseBackingStoreSQLite::openSQLiteDatabaseAtPath(const String&amp; path)
-{
-    ASSERT(!RunLoop::isMain());
-
-    auto sqliteDatabase = std::make_unique&lt;SQLiteDatabase&gt;();
-    if (!sqliteDatabase-&gt;open(path)) {
-        LOG_ERROR(&quot;Failed to open SQLite database at path '%s'&quot;, path.utf8().data());
-        return nullptr;
-    }
-
-    // Since a WorkQueue isn't bound to a specific thread, we have to disable threading checks
-    // even though we never access the database from different threads simultaneously.
-    sqliteDatabase-&gt;disableThreadingChecks();
-
-    return sqliteDatabase;
-}
-
-std::unique_ptr&lt;IDBDatabaseMetadata&gt; UniqueIDBDatabaseBackingStoreSQLite::getOrEstablishMetadata()
-{
-    ASSERT(!RunLoop::isMain());
-
-    String dbFilename = LegacyUniqueIDBDatabase::calculateAbsoluteDatabaseFilename(m_absoluteDatabaseDirectory);
-
-    m_sqliteDB = openSQLiteDatabaseAtPath(dbFilename);
-    if (!m_sqliteDB)
-        return nullptr;
-
-    m_sqliteDB-&gt;setCollationFunction(&quot;IDBKEY&quot;, [this](int aLength, const void* a, int bLength, const void* b) {
-        return idbKeyCollate(aLength, a, bLength, b);
-    });
-
-    if (!ensureValidRecordsTable()) {
-        LOG_ERROR(&quot;Error creating or migrating Records table in database&quot;);
-        m_sqliteDB = nullptr;
-        return nullptr;
-    }
-
-    std::unique_ptr&lt;IDBDatabaseMetadata&gt; metadata = extractExistingMetadata();
-    if (!metadata)
-        metadata = createAndPopulateInitialMetadata();
-
-    if (!metadata)
-        LOG_ERROR(&quot;Unable to establish IDB database at path '%s'&quot;, dbFilename.utf8().data());
-
-    // The database id is a runtime concept and doesn't need to be stored in the metadata database.
-    metadata-&gt;id = generateDatabaseId();
-
-    return metadata;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::establishTransaction(const IDBIdentifier&amp; transactionIdentifier, const Vector&lt;int64_t&gt;&amp;, IndexedDB::TransactionMode mode)
-{
-    ASSERT(!RunLoop::isMain());
-
-    if (!m_transactions.add(transactionIdentifier, std::make_unique&lt;SQLiteIDBTransaction&gt;(*this, transactionIdentifier, mode)).isNewEntry) {
-        LOG_ERROR(&quot;Attempt to establish transaction identifier that already exists&quot;);
-        return false;
-    }
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::beginTransaction(const IDBIdentifier&amp; transactionIdentifier)
-{
-    ASSERT(!RunLoop::isMain());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction) {
-        LOG_ERROR(&quot;Attempt to begin a transaction that hasn't been established&quot;);
-        return false;
-    }
-
-    return transaction-&gt;begin(*m_sqliteDB);
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::commitTransaction(const IDBIdentifier&amp; transactionIdentifier)
-{
-    ASSERT(!RunLoop::isMain());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction) {
-        LOG_ERROR(&quot;Attempt to commit a transaction that hasn't been established&quot;);
-        return false;
-    }
-
-    return transaction-&gt;commit();
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::resetTransaction(const IDBIdentifier&amp; transactionIdentifier)
-{
-    ASSERT(!RunLoop::isMain());
-
-    std::unique_ptr&lt;SQLiteIDBTransaction&gt; transaction = m_transactions.take(transactionIdentifier);
-    if (!transaction) {
-        LOG_ERROR(&quot;Attempt to reset a transaction that hasn't been established&quot;);
-        return false;
-    }
-
-    return transaction-&gt;reset();
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::rollbackTransaction(const IDBIdentifier&amp; transactionIdentifier)
-{
-    ASSERT(!RunLoop::isMain());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction) {
-        LOG_ERROR(&quot;Attempt to rollback a transaction that hasn't been established&quot;);
-        return false;
-    }
-
-    if (!transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to rollback a transaction that hasn't begun&quot;);
-        return false;
-    }
-
-    return transaction-&gt;rollback();
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::changeDatabaseVersion(const IDBIdentifier&amp; transactionIdentifier, uint64_t newVersion)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to change database version with an established, in-progress transaction&quot;);
-        return false;
-    }
-    if (transaction-&gt;mode() != IndexedDB::TransactionMode::VersionChange) {
-        LOG_ERROR(&quot;Attempt to change database version during a non version-change transaction&quot;);
-        return false;
-    }
-
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;UPDATE IDBDatabaseInfo SET value = ? where key = 'DatabaseVersion';&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindText(1, String::number(newVersion)) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not update database version in IDBDatabaseInfo table (%i) - %s&quot;, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-    }
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::createObjectStore(const IDBIdentifier&amp; transactionIdentifier, const IDBObjectStoreMetadata&amp; metadata)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to change database version with an established, in-progress transaction&quot;);
-        return false;
-    }
-    if (transaction-&gt;mode() != IndexedDB::TransactionMode::VersionChange) {
-        LOG_ERROR(&quot;Attempt to change database version during a non version-change transaction&quot;);
-        return false;
-    }
-
-    RefPtr&lt;SharedBuffer&gt; keyPathBlob = serializeIDBKeyPath(metadata.keyPath);
-    if (!keyPathBlob) {
-        LOG_ERROR(&quot;Unable to serialize IDBKeyPath to save in database&quot;);
-        return false;
-    }
-
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;INSERT INTO ObjectStoreInfo VALUES (?, ?, ?, ?, ?);&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, metadata.id) != SQLITE_OK
-            || sql.bindText(2, metadata.name) != SQLITE_OK
-            || sql.bindBlob(3, keyPathBlob-&gt;data(), keyPathBlob-&gt;size()) != SQLITE_OK
-            || sql.bindInt(4, metadata.autoIncrement) != SQLITE_OK
-            || sql.bindInt64(5, metadata.maxIndexId) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not add object store '%s' to ObjectStoreInfo table (%i) - %s&quot;, metadata.name.utf8().data(), m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-    }
-
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;INSERT INTO KeyGenerators VALUES (?, 0);&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, metadata.id) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not seed initial key generator value for ObjectStoreInfo table (%i) - %s&quot;, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-    }
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::deleteObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to change database version with an established, in-progress transaction&quot;);
-        return false;
-    }
-    if (transaction-&gt;mode() != IndexedDB::TransactionMode::VersionChange) {
-        LOG_ERROR(&quot;Attempt to change database version during a non version-change transaction&quot;);
-        return false;
-    }
-
-    // Delete the ObjectStore record
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;DELETE FROM ObjectStoreInfo WHERE id = ?;&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, objectStoreID) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not delete object store id %&quot; PRIi64 &quot; from ObjectStoreInfo table (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-    }
-
-    // Delete the ObjectStore's key generator record if there is one.
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;DELETE FROM KeyGenerators WHERE objectStoreID = ?;&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, objectStoreID) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not delete object store from KeyGenerators table (%i) - %s&quot;, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-    }
-
-    // Delete all associated records
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;DELETE FROM Records WHERE objectStoreID = ?;&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, objectStoreID) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not delete records for object store %&quot; PRIi64 &quot; (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-    }
-
-    // Delete all associated Indexes
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;DELETE FROM IndexInfo WHERE objectStoreID = ?;&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, objectStoreID) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not delete index from IndexInfo table (%i) - %s&quot;, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-    }
-
-    // Delete all associated Index records
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;DELETE FROM IndexRecords WHERE objectStoreID = ?;&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, objectStoreID) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not delete index records(%i) - %s&quot;, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-    }
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::clearObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to change database version with an establish, in-progress transaction&quot;);
-        return false;
-    }
-    if (transaction-&gt;mode() == IndexedDB::TransactionMode::ReadOnly) {
-        LOG_ERROR(&quot;Attempt to change database version during a read-only transaction&quot;);
-        return false;
-    }
-
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;DELETE FROM Records WHERE objectStoreID = ?;&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, objectStoreID) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not delete records from object store id %&quot; PRIi64 &quot; (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-    }
-
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;DELETE FROM IndexRecords WHERE objectStoreID = ?;&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, objectStoreID) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not delete records from index record store id %&quot; PRIi64 &quot; (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-    }
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::createIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const IDBIndexMetadata&amp; metadata)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to create index without an established, in-progress transaction&quot;);
-        return false;
-    }
-    if (transaction-&gt;mode() != IndexedDB::TransactionMode::VersionChange) {
-        LOG_ERROR(&quot;Attempt to create index during a non-version-change transaction&quot;);
-        return false;
-    }
-
-    RefPtr&lt;SharedBuffer&gt; keyPathBlob = serializeIDBKeyPath(metadata.keyPath);
-    if (!keyPathBlob) {
-        LOG_ERROR(&quot;Unable to serialize IDBKeyPath to save in database&quot;);
-        return false;
-    }
-
-    SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;INSERT INTO IndexInfo VALUES (?, ?, ?, ?, ?, ?);&quot;));
-    if (sql.prepare() != SQLITE_OK
-        || sql.bindInt64(1, metadata.id) != SQLITE_OK
-        || sql.bindText(2, metadata.name) != SQLITE_OK
-        || sql.bindInt64(3, objectStoreID) != SQLITE_OK
-        || sql.bindBlob(4, keyPathBlob-&gt;data(), keyPathBlob-&gt;size()) != SQLITE_OK
-        || sql.bindInt(5, metadata.unique) != SQLITE_OK
-        || sql.bindInt(6, metadata.multiEntry) != SQLITE_OK
-        || sql.step() != SQLITE_DONE) {
-        LOG_ERROR(&quot;Could not add index '%s' to IndexInfo table (%i) - %s&quot;, metadata.name.utf8().data(), m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-        return false;
-    }
-
-    // Write index records for any records that already exist in this object store.
-    SQLiteIDBCursor* cursor = transaction-&gt;openCursor(objectStoreID, IDBIndexMetadata::InvalidId, IndexedDB::CursorDirection::Next, IndexedDB::CursorType::KeyAndValue, IDBDatabaseBackend::NormalTask, IDBKeyRangeData());
-
-    if (!cursor) {
-        LOG_ERROR(&quot;Cannot open cursor to populate indexes in database&quot;);
-        return false;
-    }
-
-    m_cursors.set(cursor-&gt;identifier(), cursor);
-
-    std::unique_ptr&lt;JSLockHolder&gt; locker;
-    while (!cursor-&gt;currentKey().isNull()) {
-        const IDBKeyData&amp; key = cursor-&gt;currentKey();
-        const Vector&lt;uint8_t&gt;&amp; valueBuffer = cursor-&gt;currentValueBuffer();
-
-        if (!m_globalObject) {
-            ASSERT(!m_vm);
-            m_vm = VM::create();
-            locker = std::make_unique&lt;JSLockHolder&gt;(m_vm.get());
-            m_globalObject.set(*m_vm, JSGlobalObject::create(*m_vm, JSGlobalObject::createStructure(*m_vm, jsNull())));
-        }
-
-        if (!locker)
-            locker = std::make_unique&lt;JSLockHolder&gt;(m_vm.get());
-
-        Deprecated::ScriptValue value = deserializeIDBValueBuffer(m_globalObject-&gt;globalExec(), Vector&lt;uint8_t&gt;(valueBuffer), true);
-        Vector&lt;IDBKeyData&gt; indexKeys;
-        generateIndexKeysForValue(m_globalObject-&gt;globalExec(), metadata, value, indexKeys);
-
-        for (auto&amp; indexKey : indexKeys) {
-            if (!uncheckedPutIndexRecord(objectStoreID, metadata.id, key, indexKey)) {
-                LOG_ERROR(&quot;Unable to put index record for newly created index&quot;);
-                return false;
-            }
-        }
-
-        if (!cursor-&gt;advance(1)) {
-            LOG_ERROR(&quot;Error advancing cursor while indexing existing records for new index.&quot;);
-            return false;
-        }
-    }
-
-    transaction-&gt;closeCursor(*cursor);
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::deleteIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to delete index without an established, in-progress transaction&quot;);
-        return false;
-    }
-    if (transaction-&gt;mode() != IndexedDB::TransactionMode::VersionChange) {
-        LOG_ERROR(&quot;Attempt to delete index during a non-version-change transaction&quot;);
-        return false;
-    }
-
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;DELETE FROM IndexInfo WHERE id = ? AND objectStoreID = ?;&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, indexID) != SQLITE_OK
-            || sql.bindInt64(2, objectStoreID) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not delete index id %&quot; PRIi64 &quot; from IndexInfo table (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-    }
-
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;DELETE FROM IndexRecords WHERE indexID = ? AND objectStoreID = ?;&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, indexID) != SQLITE_OK
-            || sql.bindInt64(2, objectStoreID) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not delete index records for index id %&quot; PRIi64 &quot; from IndexRecords table (%i) - %s&quot;, indexID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-    }
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::generateKeyNumber(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t&amp; generatedKey)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    // The IndexedDatabase spec defines the max key generator value as 2^53;
-    static const int64_t maxGeneratorValue = 9007199254740992LL;
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to generate key in database without an established, in-progress transaction&quot;);
-        return false;
-    }
-    if (transaction-&gt;mode() == IndexedDB::TransactionMode::ReadOnly) {
-        LOG_ERROR(&quot;Attempt to generate key in database during read-only transaction&quot;);
-        return false;
-    }
-
-    int64_t currentValue;
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;SELECT currentKey FROM KeyGenerators WHERE objectStoreID = ?;&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, objectStoreID) != SQLITE_OK) {
-            LOG_ERROR(&quot;Could not delete index id %&quot; PRIi64 &quot; from IndexInfo table (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-        int result = sql.step();
-        if (result != SQLITE_ROW) {
-            LOG_ERROR(&quot;Could not retreive key generator value for object store, but it should be there.&quot;);
-            return false;
-        }
-
-        currentValue = sql.getColumnInt64(0);
-    }
-
-    if (currentValue &lt; 0 || currentValue &gt; maxGeneratorValue)
-        return false;
-
-    generatedKey = currentValue + 1;
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::updateKeyGeneratorNumber(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t keyNumber, bool)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to update key generator in database without an established, in-progress transaction&quot;);
-        return false;
-    }
-    if (transaction-&gt;mode() == IndexedDB::TransactionMode::ReadOnly) {
-        LOG_ERROR(&quot;Attempt to update key generator in database during read-only transaction&quot;);
-        return false;
-    }
-
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;INSERT INTO KeyGenerators VALUES (?, ?);&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, objectStoreID) != SQLITE_OK
-            || sql.bindInt64(2, keyNumber) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not update key generator value (%i) - %s&quot;, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-    }
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::keyExistsInObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const IDBKeyData&amp; keyData, bool&amp; keyExists)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    keyExists = false;
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to see if key exists in objectstore without established, in-progress transaction&quot;);
-        return false;
-    }
-
-    RefPtr&lt;SharedBuffer&gt; keyBuffer = serializeIDBKeyData(keyData);
-    if (!keyBuffer) {
-        LOG_ERROR(&quot;Unable to serialize IDBKey to check for existence&quot;);
-        return false;
-    }
-
-    SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;SELECT key FROM Records WHERE objectStoreID = ? AND key = CAST(? AS TEXT) LIMIT 1;&quot;));
-    if (sql.prepare() != SQLITE_OK
-        || sql.bindInt64(1, objectStoreID) != SQLITE_OK
-        || sql.bindBlob(2, keyBuffer-&gt;data(), keyBuffer-&gt;size()) != SQLITE_OK) {
-        LOG_ERROR(&quot;Could not get record from object store %&quot; PRIi64 &quot; from Records table (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-        return false;
-    }
-
-    int sqlResult = sql.step();
-    if (sqlResult == SQLITE_OK || sqlResult == SQLITE_DONE) {
-        keyExists = false;
-        return true;
-    }
-
-    if (sqlResult != SQLITE_ROW) {
-        // There was an error fetching the record from the database.
-        LOG_ERROR(&quot;Could not check if key exists in object store (%i) - %s&quot;, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-        return false;
-    }
-
-    keyExists = true;
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::putRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const IDBKeyData&amp; keyData, const uint8_t* valueBuffer, size_t valueSize)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to put a record into database without an established, in-progress transaction&quot;);
-        return false;
-    }
-    if (transaction-&gt;mode() == IndexedDB::TransactionMode::ReadOnly) {
-        LOG_ERROR(&quot;Attempt to put a record into database during read-only transaction&quot;);
-        return false;
-    }
-
-    RefPtr&lt;SharedBuffer&gt; keyBuffer = serializeIDBKeyData(keyData);
-    if (!keyBuffer) {
-        LOG_ERROR(&quot;Unable to serialize IDBKey to be stored in the database&quot;);
-        return false;
-    }
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;INSERT INTO Records VALUES (?, CAST(? AS TEXT), ?);&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, objectStoreID) != SQLITE_OK
-            || sql.bindBlob(2, keyBuffer-&gt;data(), keyBuffer-&gt;size()) != SQLITE_OK
-            || sql.bindBlob(3, valueBuffer, valueSize) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not put record for object store %&quot; PRIi64 &quot; in Records table (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-    }
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::putIndexRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, const IDBKeyData&amp; keyValue, const IDBKeyData&amp; indexKey)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to put index record into database without an established, in-progress transaction&quot;);
-        return false;
-    }
-    if (transaction-&gt;mode() == IndexedDB::TransactionMode::ReadOnly) {
-        LOG_ERROR(&quot;Attempt to put index record into database during read-only transaction&quot;);
-        return false;
-    }
-
-    return uncheckedPutIndexRecord(objectStoreID, indexID, keyValue, indexKey);
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::uncheckedPutIndexRecord(int64_t objectStoreID, int64_t indexID, const WebCore::IDBKeyData&amp; keyValue, const WebCore::IDBKeyData&amp; indexKey)
-{
-    RefPtr&lt;SharedBuffer&gt; indexKeyBuffer = serializeIDBKeyData(indexKey);
-    if (!indexKeyBuffer) {
-        LOG_ERROR(&quot;Unable to serialize index key to be stored in the database&quot;);
-        return false;
-    }
-
-    RefPtr&lt;SharedBuffer&gt; valueBuffer = serializeIDBKeyData(keyValue);
-    if (!valueBuffer) {
-        LOG_ERROR(&quot;Unable to serialize the value to be stored in the database&quot;);
-        return false;
-    }
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;INSERT INTO IndexRecords VALUES (?, ?, CAST(? AS TEXT), CAST(? AS TEXT));&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, indexID) != SQLITE_OK
-            || sql.bindInt64(2, objectStoreID) != SQLITE_OK
-            || sql.bindBlob(3, indexKeyBuffer-&gt;data(), indexKeyBuffer-&gt;size()) != SQLITE_OK
-            || sql.bindBlob(4, valueBuffer-&gt;data(), valueBuffer-&gt;size()) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not put index record for index %&quot; PRIi64 &quot; in object store %&quot; PRIi64 &quot; in Records table (%i) - %s&quot;, indexID, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-    }
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::getIndexRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, const IDBKeyRangeData&amp; keyRangeData, IndexedDB::CursorType cursorType, IDBGetResult&amp; result)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to get count from database without an established, in-progress transaction&quot;);
-        return false;
-    }
-
-    SQLiteIDBCursor* cursor = transaction-&gt;openCursor(objectStoreID, indexID, IndexedDB::CursorDirection::Next, cursorType, IDBDatabaseBackend::NormalTask, keyRangeData);
-
-    if (!cursor) {
-        LOG_ERROR(&quot;Cannot open cursor to perform index get in database&quot;);
-        return false;
-    }
-
-    // Even though we're only using this cursor locally, add it to our cursor set.
-    m_cursors.set(cursor-&gt;identifier(), cursor);
-
-    if (cursorType == IndexedDB::CursorType::KeyOnly)
-        result = IDBGetResult(cursor-&gt;currentPrimaryKey());
-    else {
-        result = IDBGetResult(SharedBuffer::create(cursor-&gt;currentValueBuffer().data(), cursor-&gt;currentValueBuffer().size()));
-        result.setKeyData(cursor-&gt;currentPrimaryKey());
-    }
-
-    // Closing the cursor will destroy the cursor object and remove it from our cursor set.
-    transaction-&gt;closeCursor(*cursor);
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::deleteRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKeyData&amp; keyData)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to get count from database without an established, in-progress transaction&quot;);
-        return false;
-    }
-
-    if (transaction-&gt;mode() == IndexedDB::TransactionMode::ReadOnly) {
-        LOG_ERROR(&quot;Attempt to delete range from a read-only transaction&quot;);
-        return false;
-    }
-
-    return deleteRecord(*transaction, objectStoreID, keyData);
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::deleteRange(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const IDBKeyRangeData&amp; keyRangeData)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to get count from database without an established, in-progress transaction&quot;);
-        return false;
-    }
-
-    if (transaction-&gt;mode() == IndexedDB::TransactionMode::ReadOnly) {
-        LOG_ERROR(&quot;Attempt to delete range from a read-only transaction&quot;);
-        return false;
-    }
-
-    // If the range to delete is exactly one key we can delete it right now.
-    if (keyRangeData.isExactlyOneKey()) {
-        if (!deleteRecord(*transaction, objectStoreID, keyRangeData.lowerKey)) {
-            LOG_ERROR(&quot;Failed to delete record for key '%s'&quot;, keyRangeData.lowerKey.loggingString().utf8().data());
-            return false;
-        }
-        return true;
-    }
-
-    // Otherwise the range might span multiple keys so we collect them with a cursor.
-    SQLiteIDBCursor* cursor = transaction-&gt;openCursor(objectStoreID, IDBIndexMetadata::InvalidId, IndexedDB::CursorDirection::Next, IndexedDB::CursorType::KeyAndValue, IDBDatabaseBackend::NormalTask, keyRangeData);
-
-    if (!cursor) {
-        LOG_ERROR(&quot;Cannot open cursor to perform index get in database&quot;);
-        return false;
-    }
-
-    m_cursors.set(cursor-&gt;identifier(), cursor);
-
-    Vector&lt;IDBKeyData&gt; keys;
-    do
-        keys.append(cursor-&gt;currentKey());
-    while (cursor-&gt;advance(1));
-
-    bool cursorDidError = cursor-&gt;didError();
-
-    // closeCursor() will remove the cursor from m_cursors and delete the cursor object
-    transaction-&gt;closeCursor(*cursor);
-
-    if (cursorDidError) {
-        LOG_ERROR(&quot;Unable to iterate over object store to deleteRange in database&quot;);
-        return false;
-    }
-
-    for (auto&amp; key : keys) {
-        if (!deleteRecord(*transaction, objectStoreID, key)) {
-            LOG_ERROR(&quot;Failed to delete record for key '%s'&quot;, key.loggingString().utf8().data());
-            return false;
-        }
-    }
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::deleteRecord(SQLiteIDBTransaction&amp; transaction, int64_t objectStoreID, const WebCore::IDBKeyData&amp; key)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    RefPtr&lt;SharedBuffer&gt; keyBuffer = serializeIDBKeyData(key);
-    if (!keyBuffer) {
-        LOG_ERROR(&quot;Unable to serialize IDBKeyData to be removed from the database&quot;);
-        return false;
-    }
-
-    // Delete record from object store
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;DELETE FROM Records WHERE objectStoreID = ? AND key = CAST(? AS TEXT);&quot;));
-
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, objectStoreID) != SQLITE_OK
-            || sql.bindBlob(2, keyBuffer-&gt;data(), keyBuffer-&gt;size()) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not delete record from object store %&quot; PRIi64 &quot; (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-    }
-
-    // Delete record from indexes store
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;DELETE FROM IndexRecords WHERE objectStoreID = ? AND value = CAST(? AS TEXT);&quot;));
-
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, objectStoreID) != SQLITE_OK
-            || sql.bindBlob(2, keyBuffer-&gt;data(), keyBuffer-&gt;size()) != SQLITE_OK
-            || sql.step() != SQLITE_DONE) {
-            LOG_ERROR(&quot;Could not delete record from indexes for object store %&quot; PRIi64 &quot; (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-    }
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::getKeyRecordFromObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const IDBKey&amp; key, RefPtr&lt;SharedBuffer&gt;&amp; result)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to put a record into database without an established, in-progress transaction&quot;);
-        return false;
-    }
-
-    RefPtr&lt;SharedBuffer&gt; keyBuffer = serializeIDBKeyData(IDBKeyData(&amp;key));
-    if (!keyBuffer) {
-        LOG_ERROR(&quot;Unable to serialize IDBKey to be stored in the database&quot;);
-        return false;
-    }
-
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;SELECT value FROM Records WHERE objectStoreID = ? AND key = CAST(? AS TEXT);&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, objectStoreID) != SQLITE_OK
-            || sql.bindBlob(2, keyBuffer-&gt;data(), keyBuffer-&gt;size()) != SQLITE_OK) {
-            LOG_ERROR(&quot;Could not get record from object store %&quot; PRIi64 &quot; from Records table (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-
-        int sqlResult = sql.step();
-        if (sqlResult == SQLITE_OK || sqlResult == SQLITE_DONE) {
-            // There was no record for the key in the database.
-            return true;
-        }
-        if (sqlResult != SQLITE_ROW) {
-            // There was an error fetching the record from the database.
-            LOG_ERROR(&quot;Could not get record from object store %&quot; PRIi64 &quot; from Records table (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-
-        Vector&lt;char&gt; buffer;
-        sql.getColumnBlobAsVector(0, buffer);
-        result = SharedBuffer::create(static_cast&lt;const char*&gt;(buffer.data()), buffer.size());
-    }
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::getKeyRangeRecordFromObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const IDBKeyRange&amp; keyRange, RefPtr&lt;SharedBuffer&gt;&amp; result, RefPtr&lt;IDBKey&gt;&amp; resultKey)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to put a record into database without an established, in-progress transaction&quot;);
-        return false;
-    }
-
-    RefPtr&lt;SharedBuffer&gt; lowerBuffer = serializeIDBKeyData(IDBKeyData(keyRange.lower().get()));
-    if (!lowerBuffer) {
-        LOG_ERROR(&quot;Unable to serialize IDBKey to be stored in the database&quot;);
-        return false;
-    }
-
-    RefPtr&lt;SharedBuffer&gt; upperBuffer = serializeIDBKeyData(IDBKeyData(keyRange.upper().get()));
-    if (!upperBuffer) {
-        LOG_ERROR(&quot;Unable to serialize IDBKey to be stored in the database&quot;);
-        return false;
-    }
-
-    {
-        SQLiteStatement sql(*m_sqliteDB, ASCIILiteral(&quot;SELECT value FROM Records WHERE objectStoreID = ? AND key &gt;= CAST(? AS TEXT) AND key &lt;= CAST(? AS TEXT) ORDER BY key;&quot;));
-        if (sql.prepare() != SQLITE_OK
-            || sql.bindInt64(1, objectStoreID) != SQLITE_OK
-            || sql.bindBlob(2, lowerBuffer-&gt;data(), lowerBuffer-&gt;size()) != SQLITE_OK
-            || sql.bindBlob(3, upperBuffer-&gt;data(), upperBuffer-&gt;size()) != SQLITE_OK) {
-            LOG_ERROR(&quot;Could not get key range record from object store %&quot; PRIi64 &quot; from Records table (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-
-        int sqlResult = sql.step();
-
-        if (sqlResult == SQLITE_OK || sqlResult == SQLITE_DONE) {
-            // There was no record for the key in the database.
-            return true;
-        }
-        if (sqlResult != SQLITE_ROW) {
-            // There was an error fetching the record from the database.
-            LOG_ERROR(&quot;Could not get record from object store %&quot; PRIi64 &quot; from Records table (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
-            return false;
-        }
-
-        Vector&lt;char&gt; buffer;
-        sql.getColumnBlobAsVector(0, buffer);
-        result = SharedBuffer::create(static_cast&lt;const char*&gt;(buffer.data()), buffer.size());
-    }
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::count(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, const IDBKeyRangeData&amp; keyRangeData, int64_t&amp; count)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to get count from database without an established, in-progress transaction&quot;);
-        return false;
-    }
-
-    SQLiteIDBCursor* cursor = transaction-&gt;openCursor(objectStoreID, indexID, IndexedDB::CursorDirection::Next, IndexedDB::CursorType::KeyOnly, IDBDatabaseBackend::NormalTask, keyRangeData);
-
-    if (!cursor) {
-        LOG_ERROR(&quot;Cannot open cursor to get count in database&quot;);
-        return false;
-    }
-
-    m_cursors.set(cursor-&gt;identifier(), cursor);
-
-    count = 0;
-    while (cursor-&gt;advance(1))
-        ++count;
-
-    transaction-&gt;closeCursor(*cursor);
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::openCursor(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, IndexedDB::CursorDirection cursorDirection, IndexedDB::CursorType cursorType, IDBDatabaseBackend::TaskType taskType, const IDBKeyRangeData&amp; keyRange, int64_t&amp; cursorID, IDBKeyData&amp; key, IDBKeyData&amp; primaryKey, Vector&lt;uint8_t&gt;&amp; valueBuffer)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to open a cursor in database without an established, in-progress transaction&quot;);
-        return false;
-    }
-
-    SQLiteIDBCursor* cursor = transaction-&gt;openCursor(objectStoreID, indexID, cursorDirection, cursorType, taskType, keyRange);
-    if (!cursor)
-        return false;
-
-    m_cursors.set(cursor-&gt;identifier(), cursor);
-    cursorID = cursor-&gt;identifier().id();
-    key = cursor-&gt;currentKey();
-    primaryKey = cursor-&gt;currentPrimaryKey();
-    valueBuffer = cursor-&gt;currentValueBuffer();
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::advanceCursor(const IDBIdentifier&amp; cursorIdentifier, uint64_t count, IDBKeyData&amp; key, IDBKeyData&amp; primaryKey, Vector&lt;uint8_t&gt;&amp; valueBuffer)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBCursor* cursor = m_cursors.get(cursorIdentifier);
-    if (!cursor) {
-        LOG_ERROR(&quot;Attempt to advance a cursor that doesn't exist&quot;);
-        return false;
-    }
-    if (!cursor-&gt;transaction() || !cursor-&gt;transaction()-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to advance a cursor without an established, in-progress transaction&quot;);
-        return false;
-    }
-
-    if (!cursor-&gt;advance(count)) {
-        LOG_ERROR(&quot;Attempt to advance cursor %&quot; PRIi64 &quot; steps failed&quot;, count);
-        return false;
-    }
-
-    key = cursor-&gt;currentKey();
-    primaryKey = cursor-&gt;currentPrimaryKey();
-    valueBuffer = cursor-&gt;currentValueBuffer();
-
-    return true;
-}
-
-bool UniqueIDBDatabaseBackingStoreSQLite::iterateCursor(const IDBIdentifier&amp; cursorIdentifier, const IDBKeyData&amp; targetKey, IDBKeyData&amp; key, IDBKeyData&amp; primaryKey, Vector&lt;uint8_t&gt;&amp; valueBuffer)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBCursor* cursor = m_cursors.get(cursorIdentifier);
-    if (!cursor) {
-        LOG_ERROR(&quot;Attempt to iterate a cursor that doesn't exist&quot;);
-        return false;
-    }
-    if (!cursor-&gt;transaction() || !cursor-&gt;transaction()-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to iterate a cursor without an established, in-progress transaction&quot;);
-        return false;
-    }
-
-    if (!cursor-&gt;iterate(targetKey)) {
-        LOG_ERROR(&quot;Attempt to iterate cursor failed&quot;);
-        return false;
-    }
-
-    key = cursor-&gt;currentKey();
-    primaryKey = cursor-&gt;currentPrimaryKey();
-    valueBuffer = cursor-&gt;currentValueBuffer();
-
-    return true;
-}
-
-void UniqueIDBDatabaseBackingStoreSQLite::notifyCursorsOfChanges(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID)
-{
-    ASSERT(!RunLoop::isMain());
-    ASSERT(m_sqliteDB);
-    ASSERT(m_sqliteDB-&gt;isOpen());
-
-    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
-    if (!transaction || !transaction-&gt;inProgress()) {
-        LOG_ERROR(&quot;Attempt to notify cursors of changes in database without an established, in-progress transaction&quot;);
-        return;
-    }
-
-    transaction-&gt;notifyCursorsOfChanges(objectStoreID);
-}
-
-int UniqueIDBDatabaseBackingStoreSQLite::idbKeyCollate(int aLength, const void* aBuffer, int bLength, const void* bBuffer)
-{
-    IDBKeyData a, b;
-    if (!deserializeIDBKeyData(static_cast&lt;const uint8_t*&gt;(aBuffer), aLength, a)) {
-        LOG_ERROR(&quot;Unable to deserialize key A in collation function.&quot;);
-
-        // There's no way to indicate an error to SQLite - we have to return a sorting decision.
-        // We arbitrarily choose &quot;A &gt; B&quot;
-        return 1;
-    }
-    if (!deserializeIDBKeyData(static_cast&lt;const uint8_t*&gt;(bBuffer), bLength, b)) {
-        LOG_ERROR(&quot;Unable to deserialize key B in collation function.&quot;);
-
-        // There's no way to indicate an error to SQLite - we have to return a sorting decision.
-        // We arbitrarily choose &quot;A &gt; B&quot;
-        return 1;
-    }
-
-    return a.compare(b);
-}
-
-void UniqueIDBDatabaseBackingStoreSQLite::unregisterCursor(SQLiteIDBCursor* cursor)
-{
-    ASSERT(m_cursors.contains(cursor-&gt;identifier()));
-    m_cursors.remove(cursor-&gt;identifier());
-}
-
-} // namespace WebKit
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DatabaseProcessIndexedDBsqliteUniqueIDBDatabaseBackingStoreSQLiteh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,126 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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 UniqueIDBDatabaseBackingStoreSQLite_h
-#define UniqueIDBDatabaseBackingStoreSQLite_h
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-#include &quot;LegacyUniqueIDBDatabase.h&quot; 
-#include &quot;UniqueIDBDatabaseBackingStore.h&quot;
-#include &lt;JavaScriptCore/Strong.h&gt;
-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-namespace JSC {
-class JSGlobalObject;
-class VM;
-}
-
-namespace WebCore {
-class SQLiteDatabase;
-struct IDBDatabaseMetadata;
-}
-
-namespace WebKit {
-
-class SQLiteIDBCursor;
-class SQLiteIDBTransaction;
-
-class UniqueIDBDatabaseBackingStoreSQLite final : public UniqueIDBDatabaseBackingStore {
-public:
-    static Ref&lt;UniqueIDBDatabaseBackingStore&gt; create(const LegacyUniqueIDBDatabaseIdentifier&amp; identifier, const String&amp; databaseDirectory)
-    {
-        return adoptRef(*new UniqueIDBDatabaseBackingStoreSQLite(identifier, databaseDirectory));
-    }
-
-    virtual ~UniqueIDBDatabaseBackingStoreSQLite();
-
-    virtual std::unique_ptr&lt;WebCore::IDBDatabaseMetadata&gt; getOrEstablishMetadata() override;
-
-    virtual bool establishTransaction(const IDBIdentifier&amp; transactionIdentifier, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, WebCore::IndexedDB::TransactionMode) override;
-    virtual bool beginTransaction(const IDBIdentifier&amp;) override;
-    virtual bool commitTransaction(const IDBIdentifier&amp;) override;
-    virtual bool resetTransaction(const IDBIdentifier&amp;) override;
-    virtual bool rollbackTransaction(const IDBIdentifier&amp;) override;
-
-    virtual bool changeDatabaseVersion(const IDBIdentifier&amp; transactionIdentifier, uint64_t newVersion) override;
-    virtual bool createObjectStore(const IDBIdentifier&amp; transactionIdentifier, const WebCore::IDBObjectStoreMetadata&amp;) override;
-    virtual bool deleteObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID) override;
-    virtual bool clearObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID) override;
-    virtual bool createIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp;) override;
-    virtual bool deleteIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID) override;
-
-    virtual bool generateKeyNumber(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t&amp; generatedKey) override;
-    virtual bool updateKeyGeneratorNumber(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreId, int64_t keyNumber, bool checkCurrent) override;
-
-    virtual bool keyExistsInObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKeyData&amp;, bool&amp; keyExists) override;
-    virtual bool putRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKeyData&amp;, const uint8_t* valueBuffer, size_t valueSize) override;
-    virtual bool putIndexRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, const WebCore::IDBKeyData&amp; keyValue, const WebCore::IDBKeyData&amp; indexKey) override;
-    virtual bool getIndexRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, const WebCore::IDBKeyRangeData&amp;, WebCore::IndexedDB::CursorType, WebCore::IDBGetResult&amp;) override;
-    virtual bool deleteRange(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKeyRangeData&amp;) override;
-    virtual bool deleteRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKeyData&amp;) override;
-
-    virtual bool getKeyRecordFromObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKey&amp;, RefPtr&lt;WebCore::SharedBuffer&gt;&amp; result) override;
-    virtual bool getKeyRangeRecordFromObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKeyRange&amp;, RefPtr&lt;WebCore::SharedBuffer&gt;&amp; result, RefPtr&lt;WebCore::IDBKey&gt;&amp; resultKey) override;
-    virtual bool count(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, const WebCore::IDBKeyRangeData&amp;, int64_t&amp; count) override;
-
-    virtual bool openCursor(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, WebCore::IndexedDB::CursorDirection, WebCore::IndexedDB::CursorType, WebCore::IDBDatabaseBackend::TaskType, const WebCore::IDBKeyRangeData&amp;, int64_t&amp; cursorID, WebCore::IDBKeyData&amp;, WebCore::IDBKeyData&amp;, Vector&lt;uint8_t&gt;&amp;) override;
-    virtual bool advanceCursor(const IDBIdentifier&amp; cursorIdentifier, uint64_t count, WebCore::IDBKeyData&amp;, WebCore::IDBKeyData&amp;, Vector&lt;uint8_t&gt;&amp;) override;
-    virtual bool iterateCursor(const IDBIdentifier&amp; cursorIdentifier, const WebCore::IDBKeyData&amp;, WebCore::IDBKeyData&amp;, WebCore::IDBKeyData&amp;, Vector&lt;uint8_t&gt;&amp;) override;
-    virtual void notifyCursorsOfChanges(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID) override;
-
-    void unregisterCursor(SQLiteIDBCursor*);
-
-private:
-    UniqueIDBDatabaseBackingStoreSQLite(const LegacyUniqueIDBDatabaseIdentifier&amp;, const String&amp; databaseDirectory);
-
-    std::unique_ptr&lt;WebCore::SQLiteDatabase&gt; openSQLiteDatabaseAtPath(const String&amp;);
-    std::unique_ptr&lt;WebCore::IDBDatabaseMetadata&gt; extractExistingMetadata();
-    std::unique_ptr&lt;WebCore::IDBDatabaseMetadata&gt; createAndPopulateInitialMetadata();
-
-    bool ensureValidRecordsTable();
-
-    bool deleteRecord(SQLiteIDBTransaction&amp;, int64_t objectStoreID, const WebCore::IDBKeyData&amp;);
-    bool uncheckedPutIndexRecord(int64_t objectStoreID, int64_t indexID, const WebCore::IDBKeyData&amp; keyValue, const WebCore::IDBKeyData&amp; indexKey);
-
-    int idbKeyCollate(int aLength, const void* a, int bLength, const void* b);
-
-    LegacyUniqueIDBDatabaseIdentifier m_identifier;
-    String m_absoluteDatabaseDirectory;
-
-    std::unique_ptr&lt;WebCore::SQLiteDatabase&gt; m_sqliteDB;
-
-    HashMap&lt;IDBIdentifier, std::unique_ptr&lt;SQLiteIDBTransaction&gt;&gt; m_transactions;
-    HashMap&lt;IDBIdentifier, SQLiteIDBCursor*&gt; m_cursors;
-
-    RefPtr&lt;JSC::VM&gt; m_vm;
-    JSC::Strong&lt;JSC::JSGlobalObject&gt; m_globalObject;
-};
-
-} // namespace WebKit
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-#endif // UniqueIDBDatabaseBackingStoreSQLite_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2DerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit2/DerivedSources.make (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/DerivedSources.make        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/DerivedSources.make        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -76,7 +76,6 @@
</span><span class="cx">     CustomProtocolManager \
</span><span class="cx">     CustomProtocolManagerProxy \
</span><span class="cx">     DatabaseProcess \
</span><del>-    DatabaseProcessIDBConnection \
</del><span class="cx">     DatabaseProcessProxy \
</span><span class="cx">     DatabaseToWebProcessConnection \
</span><span class="cx">     DownloadProxy \
</span><span class="lines">@@ -117,7 +116,6 @@
</span><span class="cx">     WebGeolocationManagerProxy \
</span><span class="cx">     WebIDBConnectionToClient \
</span><span class="cx">     WebIDBConnectionToServer \
</span><del>-    WebIDBServerConnection \
</del><span class="cx">     WebIconDatabase \
</span><span class="cx">     WebIconDatabaseProxy \
</span><span class="cx">     WebInspector \
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2SharedWebCrossThreadCopiercpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit2/Shared/WebCrossThreadCopier.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/Shared/WebCrossThreadCopier.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/Shared/WebCrossThreadCopier.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -27,8 +27,6 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx"> 
</span><del>-#include &quot;IDBIdentifier.h&quot;
-#include &quot;LegacyUniqueIDBDatabaseIdentifier.h&quot;
</del><span class="cx"> #include &lt;WebCore/IDBKeyData.h&gt;
</span><span class="cx"> #include &lt;WebCore/SecurityOriginData.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -36,16 +34,6 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-LegacyUniqueIDBDatabaseIdentifier CrossThreadCopierBase&lt;false, false, LegacyUniqueIDBDatabaseIdentifier&gt;::copy(const LegacyUniqueIDBDatabaseIdentifier&amp; identifier)
-{
-    return identifier.isolatedCopy();
-}
-
-IDBIdentifier CrossThreadCopierBase&lt;false, false, IDBIdentifier&gt;::copy(const IDBIdentifier&amp; transactionIdentifier)
-{
-    return transactionIdentifier.isolatedCopy();
-}
-
</del><span class="cx"> Vector&lt;char&gt; CrossThreadCopierBase&lt;false, false, Vector&lt;char&gt;&gt;::copy(const Vector&lt;char&gt;&amp; vector)
</span><span class="cx"> {
</span><span class="cx">     Vector&lt;char&gt; result;
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2SharedWebCrossThreadCopierh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit2/Shared/WebCrossThreadCopier.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/Shared/WebCrossThreadCopier.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/Shared/WebCrossThreadCopier.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -36,9 +36,6 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><del>-class IDBIdentifier;
-class LegacyUniqueIDBDatabaseIdentifier;
-
</del><span class="cx"> enum class LegacyUniqueIDBDatabaseShutdownType;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -48,15 +45,6 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-template&lt;&gt; struct CrossThreadCopierBase&lt;false, false, WebKit::LegacyUniqueIDBDatabaseIdentifier&gt; {
-    static WebKit::LegacyUniqueIDBDatabaseIdentifier copy(const WebKit::LegacyUniqueIDBDatabaseIdentifier&amp;);
-};
-
-template&lt;&gt; struct CrossThreadCopierBase&lt;false, false, WebKit::IDBIdentifier&gt; {
-    static WebKit::IDBIdentifier copy(const WebKit::IDBIdentifier&amp;);
-};
-
-
</del><span class="cx"> template&lt;&gt; struct CrossThreadCopierBase&lt;false, false, WebKit::LegacyUniqueIDBDatabaseShutdownType&gt; {
</span><span class="cx">     static WebKit::LegacyUniqueIDBDatabaseShutdownType copy(const WebKit::LegacyUniqueIDBDatabaseShutdownType&amp; type)
</span><span class="cx">     {
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2WebProcessDatabasesIndexedDBWebIDBFactoryBackendcpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,192 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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. ``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
- * 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;WebIDBFactoryBackend.h&quot;
-
-#include &quot;IDBUtilities.h&quot;
-#include &quot;Logging.h&quot;
-#include &quot;WebIDBServerConnection.h&quot;
-#include &quot;WebProcess.h&quot;
-#include &quot;WebToDatabaseProcessConnection.h&quot;
-#include &lt;WebCore/DOMStringList.h&gt;
-#include &lt;WebCore/IDBCallbacks.h&gt;
-#include &lt;WebCore/IDBCursorBackend.h&gt;
-#include &lt;WebCore/IDBDatabaseCallbacks.h&gt;
-#include &lt;WebCore/IDBTransactionBackend.h&gt;
-#include &lt;WebCore/SecurityOrigin.h&gt;
-#include &lt;wtf/MainThread.h&gt;
-#include &lt;wtf/NeverDestroyed.h&gt;
-
-#if ENABLE(INDEXED_DATABASE)
-#if ENABLE(DATABASE_PROCESS)
-
-using namespace WebCore;
-
-namespace WebKit {
-
-typedef HashMap&lt;String, IDBDatabaseBackend*&gt; IDBDatabaseBackendMap;
-
-static IDBDatabaseBackendMap&amp; sharedDatabaseBackendMap()
-{
-    static NeverDestroyed&lt;IDBDatabaseBackendMap&gt; databaseBackendMap;
-    return databaseBackendMap;
-}
-
-static HashMap&lt;String, HashSet&lt;String&gt;&gt;&amp; sharedRecentDatabaseNameMap()
-{
-    static NeverDestroyed&lt;HashMap&lt;String, HashSet&lt;String&gt;&gt;&gt; recentDatabaseNameMap;
-    return recentDatabaseNameMap;
-}
-
-static String combinedSecurityOriginIdentifier(const WebCore::SecurityOrigin&amp; openingOrigin, const WebCore::SecurityOrigin&amp; mainFrameOrigin)
-{
-    StringBuilder stringBuilder;
-
-    String originString = openingOrigin.toString();
-    if (originString == &quot;null&quot;)
-        return String();
-    stringBuilder.append(originString);
-    stringBuilder.append('_');
-
-    originString = mainFrameOrigin.toString();
-    if (originString == &quot;null&quot;)
-        return String();
-    stringBuilder.append(originString);
-
-    return stringBuilder.toString();
-}
-
-WebIDBFactoryBackend::WebIDBFactoryBackend()
-{
-}
-
-WebIDBFactoryBackend::~WebIDBFactoryBackend()
-{
-}
-
-void WebIDBFactoryBackend::getDatabaseNames(PassRefPtr&lt;IDBCallbacks&gt; callbacks, const SecurityOrigin&amp; openingOrigin, const SecurityOrigin&amp; mainFrameOrigin, ScriptExecutionContext* context)
-{
-    LOG(IDB, &quot;WebIDBFactoryBackend::getDatabaseNames&quot;);
-
-    String securityOriginIdentifier = combinedSecurityOriginIdentifier(openingOrigin, mainFrameOrigin);
-    if (securityOriginIdentifier.isEmpty()) {
-        callbacks-&gt;onError(IDBDatabaseError::create(IDBDatabaseException::InvalidAccessError, ASCIILiteral(&quot;Document is not allowed to use Indexed Databases&quot;)));
-        return;
-    }
-
-    RefPtr&lt;DOMStringList&gt; databaseNames = DOMStringList::create();
-
-    auto recentNameIterator = sharedRecentDatabaseNameMap().find(securityOriginIdentifier);
-    if (recentNameIterator != sharedRecentDatabaseNameMap().end()) {
-        HashSet&lt;String&gt;&amp; foundNames = recentNameIterator-&gt;value;
-        for (const String&amp; name : foundNames)
-            databaseNames-&gt;append(name);
-    }
-
-    callbacks-&gt;onSuccess(databaseNames.release());
-}
-
-void WebIDBFactoryBackend::open(const String&amp; databaseName, uint64_t version, int64_t transactionId, PassRefPtr&lt;IDBCallbacks&gt; callbacks, PassRefPtr&lt;IDBDatabaseCallbacks&gt; databaseCallbacks, const SecurityOrigin&amp; openingOrigin, const SecurityOrigin&amp; mainFrameOrigin)
-{
-    ASSERT(RunLoop::isMain());
-    LOG(IDB, &quot;WebIDBFactoryBackend::open&quot;);
-
-    String databaseIdentifier = uniqueDatabaseIdentifier(databaseName, openingOrigin, mainFrameOrigin);
-    if (databaseIdentifier.isNull()) {
-        callbacks-&gt;onError(IDBDatabaseError::create(IDBDatabaseException::InvalidAccessError, &quot;Document is not allowed to use Indexed Databases&quot;));
-        return;
-    }
-
-    String securityOriginIdentifier = combinedSecurityOriginIdentifier(openingOrigin, mainFrameOrigin);
-    ASSERT(!securityOriginIdentifier.isEmpty());
-
-    auto recentNameIterator = sharedRecentDatabaseNameMap().find(securityOriginIdentifier);
-    if (recentNameIterator == sharedRecentDatabaseNameMap().end()) {
-        HashSet&lt;String&gt; names;
-        names.add(databaseName);
-        sharedRecentDatabaseNameMap().set(securityOriginIdentifier, names);
-    } else
-        recentNameIterator-&gt;value.add(databaseName);
-
-    IDBDatabaseBackendMap::iterator it = sharedDatabaseBackendMap().find(databaseIdentifier);
-
-    RefPtr&lt;IDBDatabaseBackend&gt; databaseBackend;
-    if (it == sharedDatabaseBackendMap().end()) {
-        RefPtr&lt;IDBServerConnection&gt; serverConnection = WebIDBServerConnection::create(databaseName, openingOrigin, mainFrameOrigin);
-        databaseBackend = IDBDatabaseBackend::create(databaseName, databaseIdentifier, this, *serverConnection);
-        sharedDatabaseBackendMap().set(databaseIdentifier, databaseBackend.get());
-    } else
-        databaseBackend = it-&gt;value;
-
-    databaseBackend-&gt;openConnection(callbacks, databaseCallbacks, transactionId, version);
-}
-
-void WebIDBFactoryBackend::deleteDatabase(const String&amp; databaseName, const SecurityOrigin&amp; openingOrigin, const SecurityOrigin&amp; mainFrameOrigin, PassRefPtr&lt;IDBCallbacks&gt; callbacks, ScriptExecutionContext*)
-{
-    ASSERT(RunLoop::isMain());
-    LOG(IDB, &quot;WebIDBFactoryBackend::deleteDatabase&quot;);
-
-    String databaseIdentifier = uniqueDatabaseIdentifier(databaseName, openingOrigin, mainFrameOrigin);
-    if (databaseIdentifier.isNull()) {
-        callbacks-&gt;onError(IDBDatabaseError::create(IDBDatabaseException::InvalidAccessError, &quot;Document is not allowed to use Indexed Databases&quot;));
-        return;
-    }
-
-    String securityOriginIdentifier = combinedSecurityOriginIdentifier(openingOrigin, mainFrameOrigin);
-    ASSERT(!securityOriginIdentifier.isEmpty());
-
-    auto recentNameIterator = sharedRecentDatabaseNameMap().find(securityOriginIdentifier);
-    if (recentNameIterator != sharedRecentDatabaseNameMap().end()) {
-        recentNameIterator-&gt;value.remove(databaseName);
-        if (recentNameIterator-&gt;value.isEmpty())
-            sharedRecentDatabaseNameMap().remove(recentNameIterator);
-    }
-
-    // If there's already a connection to the database, delete it directly.
-    IDBDatabaseBackendMap::iterator it = sharedDatabaseBackendMap().find(databaseIdentifier);
-    if (it != sharedDatabaseBackendMap().end()) {
-        it-&gt;value-&gt;deleteDatabase(callbacks);
-        return;
-    }
-
-    RefPtr&lt;IDBServerConnection&gt; serverConnection = WebIDBServerConnection::create(databaseName, openingOrigin, mainFrameOrigin);
-    RefPtr&lt;IDBDatabaseBackend&gt; databaseBackend = IDBDatabaseBackend::create(databaseName, databaseIdentifier, this, *serverConnection);
-
-    sharedDatabaseBackendMap().set(databaseIdentifier, databaseBackend.get());
-    databaseBackend-&gt;deleteDatabase(callbacks);
-    sharedDatabaseBackendMap().remove(databaseIdentifier);
-}
-
-void WebIDBFactoryBackend::removeIDBDatabaseBackend(const String&amp; identifier)
-{
-    sharedDatabaseBackendMap().remove(identifier);
-}
-
-} // namespace WebKit
-
-#endif // ENABLE(DATABASE_PROCESS)
-#endif // ENABLE(INDEXED_DATABASE)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2WebProcessDatabasesIndexedDBWebIDBFactoryBackendh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,55 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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. ``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
- * 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 WebIDBFactoryBackend_h
-#define WebIDBFactoryBackend_h
-
-#include &lt;WebCore/IDBFactoryBackendInterface.h&gt;
-
-#if ENABLE(INDEXED_DATABASE)
-
-namespace WebKit {
-
-class WebIDBFactoryBackend final : public WebCore::IDBFactoryBackendInterface {
-public:
-    static Ref&lt;WebIDBFactoryBackend&gt; create() { return adoptRef(*new WebIDBFactoryBackend); }
-
-    virtual ~WebIDBFactoryBackend();
-
-    virtual void getDatabaseNames(PassRefPtr&lt;WebCore::IDBCallbacks&gt;, const WebCore::SecurityOrigin&amp; openingOrigin, const WebCore::SecurityOrigin&amp; mainFrameOrigin, WebCore::ScriptExecutionContext*) override;
-    virtual void open(const String&amp; name, uint64_t version, int64_t transactionId, PassRefPtr&lt;WebCore::IDBCallbacks&gt;, PassRefPtr&lt;WebCore::IDBDatabaseCallbacks&gt;, const WebCore::SecurityOrigin&amp; openingOrigin, const WebCore::SecurityOrigin&amp; mainFrameOrigin) override;
-    virtual void deleteDatabase(const String&amp; name, const WebCore::SecurityOrigin&amp; openingOrigin, const WebCore::SecurityOrigin&amp; mainFrameOrigin, PassRefPtr&lt;WebCore::IDBCallbacks&gt;, WebCore::ScriptExecutionContext*) override;
-
-    virtual void removeIDBDatabaseBackend(const String&amp; uniqueIdentifier) override;
-
-private:
-    explicit WebIDBFactoryBackend();
-};
-
-} // namespace WebKit
-
-#endif // ENABLE(INDEXED_DATABASE)
-#endif // WebIDBFactoryBackend_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2WebProcessDatabasesIndexedDBWebIDBServerConnectioncpp"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,715 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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. ``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
- * 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;WebIDBServerConnection.h&quot;
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-#include &quot;AsyncRequest.h&quot;
-#include &quot;DataReference.h&quot;
-#include &quot;DatabaseProcessIDBConnectionMessages.h&quot;
-#include &quot;DatabaseToWebProcessConnectionMessages.h&quot;
-#include &quot;Logging.h&quot;
-#include &quot;WebCoreArgumentCoders.h&quot;
-#include &quot;WebProcess.h&quot;
-#include &quot;WebToDatabaseProcessConnection.h&quot;
-#include &lt;WebCore/IDBDatabaseMetadata.h&gt;
-#include &lt;WebCore/IDBKeyRangeData.h&gt;
-#include &lt;WebCore/SecurityOrigin.h&gt;
-#include &lt;WebCore/SecurityOriginData.h&gt;
-
-using namespace WebCore;
-
-namespace WebKit {
-
-static uint64_t generateServerConnectionIdentifier()
-{
-    ASSERT(RunLoop::isMain());
-    static uint64_t identifier = 0;
-    return ++identifier;
-}
-
-PassRefPtr&lt;WebIDBServerConnection&gt; WebIDBServerConnection::create(const String&amp; databaseName, const SecurityOrigin&amp; openingOrigin, const SecurityOrigin&amp; mainFrameOrigin)
-{
-    RefPtr&lt;WebIDBServerConnection&gt; result = adoptRef(new WebIDBServerConnection(databaseName, openingOrigin, mainFrameOrigin));
-    WebProcess::singleton().webToDatabaseProcessConnection()-&gt;registerWebIDBServerConnection(*result);
-    return result.release();
-}
-
-WebIDBServerConnection::WebIDBServerConnection(const String&amp; databaseName, const SecurityOrigin&amp; openingOrigin, const SecurityOrigin&amp; mainFrameOrigin)
-    : m_serverConnectionIdentifier(generateServerConnectionIdentifier())
-    , m_databaseName(databaseName)
-    , m_openingOrigin(openingOrigin.isolatedCopy())
-    , m_mainFrameOrigin(mainFrameOrigin.isolatedCopy())
-{
-    send(Messages::DatabaseToWebProcessConnection::EstablishIDBConnection(m_serverConnectionIdentifier));
-    send(Messages::DatabaseProcessIDBConnection::EstablishConnection(databaseName, SecurityOriginData::fromSecurityOrigin(openingOrigin), SecurityOriginData::fromSecurityOrigin(mainFrameOrigin)));
-}
-
-WebIDBServerConnection::~WebIDBServerConnection()
-{
-    WebProcess::singleton().webToDatabaseProcessConnection()-&gt;removeWebIDBServerConnection(*this);
-
-    for (const auto&amp; it : m_serverRequests)
-        it.value-&gt;requestAborted();
-}
-
-bool WebIDBServerConnection::isClosed()
-{
-    // FIXME: Return real value here.
-    return true;
-}
-
-void WebIDBServerConnection::deleteDatabase(const String&amp; name, BoolCallbackFunction successCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;bool&gt;::create(successCallback);
-
-    serverRequest-&gt;setAbortHandler([successCallback] {
-        successCallback(false);
-    });
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess deleteDatabase request ID %&quot; PRIu64, requestID);
-
-    send(Messages::DatabaseProcessIDBConnection::DeleteDatabase(requestID, name));
-}
-
-void WebIDBServerConnection::didDeleteDatabase(uint64_t requestID, bool success)
-{
-    LOG(IDB, &quot;WebProcess didDeleteDatabase request ID %&quot; PRIu64, requestID);
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    serverRequest-&gt;completeRequest(success);
-}
-
-void WebIDBServerConnection::getOrEstablishIDBDatabaseMetadata(GetIDBDatabaseMetadataFunction completionCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;IDBDatabaseMetadata, bool&gt;::create(completionCallback);
-
-    serverRequest-&gt;setAbortHandler([completionCallback] {
-        IDBDatabaseMetadata metadata;
-        completionCallback(metadata, false);
-    });
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess getOrEstablishIDBDatabaseMetadata request ID %&quot; PRIu64, requestID);
-
-    send(Messages::DatabaseProcessIDBConnection::GetOrEstablishIDBDatabaseMetadata(requestID));
-}
-
-void WebIDBServerConnection::didGetOrEstablishIDBDatabaseMetadata(uint64_t requestID, bool success, const IDBDatabaseMetadata&amp; metadata)
-{
-    LOG(IDB, &quot;WebProcess didGetOrEstablishIDBDatabaseMetadata request ID %&quot; PRIu64, requestID);
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    serverRequest-&gt;completeRequest(metadata, success);
-}
-
-void WebIDBServerConnection::close()
-{
-    LOG(IDB, &quot;WebProcess close&quot;);
-
-    RefPtr&lt;WebIDBServerConnection&gt; protector(this);
-
-    for (auto&amp; request : m_serverRequests)
-        request.value-&gt;requestAborted();
-
-    m_serverRequests.clear();
-
-    send(Messages::DatabaseProcessIDBConnection::Close());
-}
-
-void WebIDBServerConnection::openTransaction(int64_t transactionID, const HashSet&lt;int64_t&gt;&amp; objectStoreIDs, IndexedDB::TransactionMode mode, BoolCallbackFunction successCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;bool&gt;::create(successCallback);
-
-    serverRequest-&gt;setAbortHandler([successCallback] {
-        successCallback(false);
-    });
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess openTransaction ID %&quot; PRIi64 &quot; (request ID %&quot; PRIu64 &quot;)&quot;, transactionID, requestID);
-
-    Vector&lt;int64_t&gt; objectStoreIDVector;
-    copyToVector(objectStoreIDs, objectStoreIDVector);
-    send(Messages::DatabaseProcessIDBConnection::OpenTransaction(requestID, transactionID, objectStoreIDVector, static_cast&lt;uint64_t&gt;(mode)));
-}
-
-void WebIDBServerConnection::didOpenTransaction(uint64_t requestID, bool success)
-{
-    LOG(IDB, &quot;WebProcess didOpenTransaction request ID %&quot; PRIu64, requestID);
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    serverRequest-&gt;completeRequest(success);
-}
-
-void WebIDBServerConnection::beginTransaction(int64_t transactionID, std::function&lt;void ()&gt; completionCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;&gt;::create(completionCallback, completionCallback);
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess beginTransaction ID %&quot; PRIi64 &quot; (request ID %&quot; PRIu64 &quot;)&quot;, transactionID, requestID);
-
-    send(Messages::DatabaseProcessIDBConnection::BeginTransaction(requestID, transactionID));
-}
-
-void WebIDBServerConnection::didBeginTransaction(uint64_t requestID, bool)
-{
-    LOG(IDB, &quot;WebProcess didBeginTransaction request ID %&quot; PRIu64, requestID);
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    serverRequest-&gt;completeRequest();
-}
-
-void WebIDBServerConnection::commitTransaction(int64_t transactionID, BoolCallbackFunction successCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;bool&gt;::create(successCallback);
-
-    serverRequest-&gt;setAbortHandler([successCallback] {
-        successCallback(false);
-    });
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess commitTransaction ID %&quot; PRIi64 &quot; (request ID %&quot; PRIu64 &quot;)&quot;, transactionID, requestID);
-
-    send(Messages::DatabaseProcessIDBConnection::CommitTransaction(requestID, transactionID));
-}
-
-void WebIDBServerConnection::didCommitTransaction(uint64_t requestID, bool success)
-{
-    LOG(IDB, &quot;WebProcess didCommitTransaction request ID %&quot; PRIu64, requestID);
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    serverRequest-&gt;completeRequest(success);
-}
-
-void WebIDBServerConnection::resetTransaction(int64_t transactionID, std::function&lt;void ()&gt; completionCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;&gt;::create(completionCallback, completionCallback);
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess resetTransaction ID %&quot; PRIi64 &quot; (request ID %&quot; PRIu64 &quot;)&quot;, transactionID, requestID);
-
-    send(Messages::DatabaseProcessIDBConnection::ResetTransaction(requestID, transactionID));
-}
-
-void WebIDBServerConnection::didResetTransaction(uint64_t requestID, bool)
-{
-    LOG(IDB, &quot;WebProcess didResetTransaction request ID %&quot; PRIu64, requestID);
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    serverRequest-&gt;completeRequest();
-}
-
-bool WebIDBServerConnection::resetTransactionSync(int64_t transactionID)
-{
-    bool success;
-    sendSync(Messages::DatabaseProcessIDBConnection::ResetTransactionSync(transactionID), Messages::DatabaseProcessIDBConnection::ResetTransactionSync::Reply(success));
-    return success;
-}
-
-void WebIDBServerConnection::rollbackTransaction(int64_t transactionID, std::function&lt;void ()&gt; completionCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;&gt;::create(completionCallback, completionCallback);
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess rollbackTransaction ID %&quot; PRIi64 &quot; (request ID %&quot; PRIu64 &quot;)&quot;, transactionID, requestID);
-
-    send(Messages::DatabaseProcessIDBConnection::RollbackTransaction(requestID, transactionID));
-}
-
-void WebIDBServerConnection::didRollbackTransaction(uint64_t requestID, bool)
-{
-    LOG(IDB, &quot;WebProcess didRollbackTransaction request ID %&quot; PRIu64, requestID);
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    serverRequest-&gt;completeRequest();
-}
-
-bool WebIDBServerConnection::rollbackTransactionSync(int64_t transactionID)
-{
-    bool success;
-    sendSync(Messages::DatabaseProcessIDBConnection::RollbackTransactionSync(transactionID), Messages::DatabaseProcessIDBConnection::RollbackTransactionSync::Reply(success));
-    return success;
-}
-
-void WebIDBServerConnection::setIndexKeys(int64_t transactionID, int64_t databaseID, int64_t objectStoreID, const IDBObjectStoreMetadata&amp;, IDBKey&amp; primaryKey, const Vector&lt;int64_t, 1&gt;&amp; indexIDs, const Vector&lt;Vector&lt;RefPtr&lt;WebCore::IDBKey&gt;&gt;, 1&gt;&amp; indexKeys, std::function&lt;void (PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
-{
-}
-
-void WebIDBServerConnection::createObjectStore(IDBTransactionBackend&amp; transaction, const CreateObjectStoreOperation&amp; operation, std::function&lt;void (PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;PassRefPtr&lt;IDBDatabaseError&gt;&gt;::create(completionCallback);
-
-    String objectStoreName = operation.objectStoreMetadata().name;
-    serverRequest-&gt;setAbortHandler([objectStoreName, completionCallback] {
-        completionCallback(IDBDatabaseError::create(IDBDatabaseException::UnknownError, String::format(&quot;Unknown error occured creating object store '%s'&quot;, objectStoreName.utf8().data())));
-    });
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess createObjectStore '%s' in transaction ID %&quot; PRIi64 &quot; (request ID %&quot; PRIu64 &quot;)&quot;, operation.objectStoreMetadata().name.utf8().data(), transaction.id(), requestID);
-
-    send(Messages::DatabaseProcessIDBConnection::CreateObjectStore(requestID, transaction.id(), operation.objectStoreMetadata()));
-}
-
-void WebIDBServerConnection::didCreateObjectStore(uint64_t requestID, bool success)
-{
-    LOG(IDB, &quot;WebProcess didCreateObjectStore request ID %&quot; PRIu64, requestID);
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    serverRequest-&gt;completeRequest(success ? nullptr : IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured creating object store&quot;));
-}
-
-void WebIDBServerConnection::createIndex(IDBTransactionBackend&amp;transaction, const CreateIndexOperation&amp; operation, std::function&lt;void (PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;PassRefPtr&lt;IDBDatabaseError&gt;&gt;::create(completionCallback);
-
-    serverRequest-&gt;setAbortHandler([completionCallback] {
-        completionCallback(IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured creating index&quot;));
-    });
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess create index request ID %&quot; PRIu64, requestID);
-
-    send(Messages::DatabaseProcessIDBConnection::CreateIndex(requestID, transaction.id(), operation.objectStoreID(), operation.idbIndexMetadata()));
-}
-
-void WebIDBServerConnection::didCreateIndex(uint64_t requestID, bool success)
-{
-    LOG(IDB, &quot;WebProcess didCreateIndex request ID %&quot; PRIu64, requestID);
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    serverRequest-&gt;completeRequest(success ? nullptr : IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured creating index&quot;));
-}
-
-void WebIDBServerConnection::deleteIndex(IDBTransactionBackend&amp;transaction, const DeleteIndexOperation&amp; operation, std::function&lt;void (PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;PassRefPtr&lt;IDBDatabaseError&gt;&gt;::create(completionCallback);
-
-    serverRequest-&gt;setAbortHandler([completionCallback] {
-        completionCallback(IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured deleting index&quot;));
-    });
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess delete index request ID %&quot; PRIu64, requestID);
-
-    send(Messages::DatabaseProcessIDBConnection::DeleteIndex(requestID, transaction.id(), operation.objectStoreID(), operation.idbIndexMetadata().id));
-}
-
-void WebIDBServerConnection::didDeleteIndex(uint64_t requestID, bool success)
-{
-    LOG(IDB, &quot;WebProcess didDeleteIndex request ID %&quot; PRIu64, requestID);
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    serverRequest-&gt;completeRequest(success ? nullptr : IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured deleting index&quot;));
-}
-
-void WebIDBServerConnection::get(IDBTransactionBackend&amp; transaction, const GetOperation&amp; operation, std::function&lt;void (const IDBGetResult&amp;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;IDBGetResult, PassRefPtr&lt;IDBDatabaseError&gt;&gt;::create(completionCallback);
-
-    serverRequest-&gt;setAbortHandler([completionCallback] {
-        completionCallback(IDBGetResult(), IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured getting record&quot;));
-    });
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess get request ID %&quot; PRIu64, requestID);
-
-    ASSERT(operation.keyRange());
-
-    send(Messages::DatabaseProcessIDBConnection::GetRecord(requestID, transaction.id(), operation.objectStoreID(), operation.indexID(), operation.keyRange(), static_cast&lt;int64_t&gt;(operation.cursorType())));
-}
-
-void WebIDBServerConnection::put(IDBTransactionBackend&amp; transaction, const PutOperation&amp; operation, std::function&lt;void (PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBDatabaseError&gt;&gt;::create(completionCallback);
-
-    serverRequest-&gt;setAbortHandler([completionCallback] {
-        completionCallback(nullptr, IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured putting record&quot;));
-    });
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess put request ID %&quot; PRIu64, requestID);
-
-    ASSERT(operation.value());
-
-    IPC::DataReference value(reinterpret_cast&lt;const uint8_t*&gt;(operation.value()-&gt;data()), operation.value()-&gt;size());
-
-    Vector&lt;Vector&lt;IDBKeyData&gt;&gt; indexKeys;
-    for (const auto&amp; keys : operation.indexKeys()) {
-        indexKeys.append(Vector&lt;IDBKeyData&gt;());
-        for (const auto&amp; key : keys)
-            indexKeys.last().append(IDBKeyData(key.get()));
-    }
-
-    send(Messages::DatabaseProcessIDBConnection::PutRecord(requestID, transaction.id(), operation.objectStore().id, IDBKeyData(operation.key()), value, operation.putMode(), operation.indexIDs(), indexKeys));
-}
-
-void WebIDBServerConnection::didPutRecord(uint64_t requestID, const WebCore::IDBKeyData&amp; resultKey, uint32_t errorCode, const String&amp; errorMessage)
-{
-    LOG(IDB, &quot;WebProcess didPutRecord request ID %&quot; PRIu64 &quot; (error - %s)&quot;, requestID, errorMessage.utf8().data());
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    serverRequest-&gt;completeRequest(resultKey.isNull() ? nullptr : resultKey.maybeCreateIDBKey(), errorCode ? IDBDatabaseError::create(errorCode, errorMessage) : nullptr);
-}
-
-void WebIDBServerConnection::didGetRecord(uint64_t requestID, const WebCore::IDBGetResult&amp; getResult, uint32_t errorCode, const String&amp; errorMessage)
-{
-    LOG(IDB, &quot;WebProcess didGetRecord request ID %&quot; PRIu64 &quot; (error - %s)&quot;, requestID, errorMessage.utf8().data());
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    serverRequest-&gt;completeRequest(getResult, errorCode ? IDBDatabaseError::create(errorCode, errorMessage) : nullptr);
-}
-
-void WebIDBServerConnection::didOpenCursor(uint64_t requestID, int64_t cursorID, const IDBKeyData&amp; key, const IDBKeyData&amp; primaryKey, const IPC::DataReference&amp; valueData, uint32_t errorCode, const String&amp; errorMessage)
-{
-    LOG(IDB, &quot;WebProcess didOpenCursor request ID %&quot; PRIu64 &quot; (error - %s)&quot;, requestID, errorMessage.utf8().data());
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    RefPtr&lt;SharedBuffer&gt; value = SharedBuffer::create(valueData.data(), valueData.size());
-    serverRequest-&gt;completeRequest(cursorID, key.maybeCreateIDBKey(), primaryKey.maybeCreateIDBKey(), value.release(), errorCode ? IDBDatabaseError::create(errorCode, errorMessage) : nullptr);
-}
-
-void WebIDBServerConnection::didAdvanceCursor(uint64_t requestID, const IDBKeyData&amp; key, const IDBKeyData&amp; primaryKey, const IPC::DataReference&amp; valueData, uint32_t errorCode, const String&amp; errorMessage)
-{
-    LOG(IDB, &quot;WebProcess didAdvanceCursor request ID %&quot; PRIu64 &quot; (error - %s)&quot;, requestID, errorMessage.utf8().data());
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    RefPtr&lt;SharedBuffer&gt; value = SharedBuffer::create(valueData.data(), valueData.size());
-    serverRequest-&gt;completeRequest(key.maybeCreateIDBKey(), primaryKey.maybeCreateIDBKey(), value.release(), errorCode ? IDBDatabaseError::create(errorCode, errorMessage) : nullptr);
-}
-
-void WebIDBServerConnection::didIterateCursor(uint64_t requestID, const IDBKeyData&amp; key, const IDBKeyData&amp; primaryKey, const IPC::DataReference&amp; valueData, uint32_t errorCode, const String&amp; errorMessage)
-{
-    LOG(IDB, &quot;WebProcess didIterateCursor request ID %&quot; PRIu64 &quot; (error - %s)&quot;, requestID, errorMessage.utf8().data());
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    RefPtr&lt;SharedBuffer&gt; value = SharedBuffer::create(valueData.data(), valueData.size());
-    serverRequest-&gt;completeRequest(key.maybeCreateIDBKey(), primaryKey.maybeCreateIDBKey(), value.release(), errorCode ? IDBDatabaseError::create(errorCode, errorMessage) : nullptr);
-}
-
-void WebIDBServerConnection::count(IDBTransactionBackend&amp; transaction, const CountOperation&amp; operation, std::function&lt;void (int64_t, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;int64_t, PassRefPtr&lt;IDBDatabaseError&gt;&gt;::create(completionCallback);
-
-    serverRequest-&gt;setAbortHandler([completionCallback] {
-        completionCallback(0, IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured getting count&quot;));
-    });
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess count request ID %&quot; PRIu64, requestID);
-
-    send(Messages::DatabaseProcessIDBConnection::Count(requestID, transaction.id(), operation.objectStoreID(), operation.indexID(), IDBKeyRangeData(operation.keyRange())));
-}
-
-void WebIDBServerConnection::didCount(uint64_t requestID, int64_t count, uint32_t errorCode, const String&amp; errorMessage)
-{
-    LOG(IDB, &quot;WebProcess didCount %&quot; PRIi64 &quot; request ID %&quot; PRIu64 &quot; (error - %s)&quot;, count, requestID, errorMessage.utf8().data());
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    serverRequest-&gt;completeRequest(count, errorCode ? IDBDatabaseError::create(errorCode, errorMessage) : nullptr);
-}
-
-void WebIDBServerConnection::deleteRange(IDBTransactionBackend&amp; transaction, const DeleteRangeOperation&amp; operation, std::function&lt;void (PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;PassRefPtr&lt;IDBDatabaseError&gt;&gt;::create(completionCallback);
-
-    serverRequest-&gt;setAbortHandler([completionCallback] {
-        completionCallback(IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured getting count&quot;));
-    });
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess deleteRange request ID %&quot; PRIu64, requestID);
-
-    send(Messages::DatabaseProcessIDBConnection::DeleteRange(requestID, transaction.id(), operation.objectStoreID(), IDBKeyRangeData(operation.keyRange())));
-}
-
-void WebIDBServerConnection::didDeleteRange(uint64_t requestID, uint32_t errorCode, const String&amp; errorMessage)
-{
-    LOG(IDB, &quot;WebProcess didDeleteRange request ID %&quot; PRIu64, requestID);
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    serverRequest-&gt;completeRequest(errorCode ? IDBDatabaseError::create(errorCode, errorMessage) : nullptr);
-}
-
-void WebIDBServerConnection::clearObjectStore(IDBTransactionBackend&amp;, const ClearObjectStoreOperation&amp; operation, std::function&lt;void (PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;PassRefPtr&lt;IDBDatabaseError&gt;&gt;::create(completionCallback);
-
-    serverRequest-&gt;setAbortHandler([completionCallback] {
-        completionCallback(IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured clearing object store&quot;));
-    });
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess clearObjectStore request ID %&quot; PRIu64, requestID);
-
-    send(Messages::DatabaseProcessIDBConnection::ClearObjectStore(requestID, operation.transaction()-&gt;id(), operation.objectStoreID()));
-}
-
-void WebIDBServerConnection::didClearObjectStore(uint64_t requestID, bool success)
-{
-    LOG(IDB, &quot;WebProcess didClearObjectStore request ID %&quot; PRIu64, requestID);
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    serverRequest-&gt;completeRequest(success ? nullptr : IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured clearing object store&quot;));
-}
-
-void WebIDBServerConnection::deleteObjectStore(IDBTransactionBackend&amp;, const DeleteObjectStoreOperation&amp; operation, std::function&lt;void (PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;PassRefPtr&lt;IDBDatabaseError&gt;&gt;::create(completionCallback);
-
-    serverRequest-&gt;setAbortHandler([completionCallback] {
-        completionCallback(IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured deleting object store&quot;));
-    });
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess deleteObjectStore request ID %&quot; PRIu64, requestID);
-
-    send(Messages::DatabaseProcessIDBConnection::DeleteObjectStore(requestID, operation.transaction()-&gt;id(), operation.objectStoreMetadata().id));
-}
-
-void WebIDBServerConnection::didDeleteObjectStore(uint64_t requestID, bool success)
-{
-    LOG(IDB, &quot;WebProcess didDeleteObjectStore request ID %&quot; PRIu64, requestID);
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    serverRequest-&gt;completeRequest(success ? nullptr : IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured deleting object store&quot;));
-}
-
-void WebIDBServerConnection::changeDatabaseVersion(IDBTransactionBackend&amp;, const IDBDatabaseBackend::VersionChangeOperation&amp; operation, std::function&lt;void (PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;PassRefPtr&lt;IDBDatabaseError&gt;&gt;::create(completionCallback);
-
-    serverRequest-&gt;setAbortHandler([completionCallback] {
-        completionCallback(IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured changing database version&quot;));
-    });
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess changeDatabaseVersion request ID %&quot; PRIu64, requestID);
-
-    send(Messages::DatabaseProcessIDBConnection::ChangeDatabaseVersion(requestID, operation.transaction()-&gt;id(), static_cast&lt;uint64_t&gt;(operation.version())));
-}
-
-void WebIDBServerConnection::didChangeDatabaseVersion(uint64_t requestID, bool success)
-{
-    LOG(IDB, &quot;WebProcess didChangeDatabaseVersion request ID %&quot; PRIu64, requestID);
-
-    RefPtr&lt;AsyncRequest&gt; serverRequest = m_serverRequests.take(requestID);
-
-    if (!serverRequest)
-        return;
-
-    serverRequest-&gt;completeRequest(success ? nullptr : IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured changing database version&quot;));
-}
-
-void WebIDBServerConnection::openCursor(IDBTransactionBackend&amp;, const OpenCursorOperation&amp; operation, std::function&lt;void (int64_t, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;int64_t, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBDatabaseError&gt;&gt;::create(completionCallback);
-
-    serverRequest-&gt;setAbortHandler([completionCallback] {
-        completionCallback(0, nullptr, nullptr, nullptr, IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured opening database cursor&quot;));
-    });
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess openCursor request ID %&quot; PRIu64, requestID);
-
-    send(Messages::DatabaseProcessIDBConnection::OpenCursor(requestID, operation.transactionID(), operation.objectStoreID(), operation.indexID(), static_cast&lt;int64_t&gt;(operation.direction()), static_cast&lt;int64_t&gt;(operation.cursorType()), static_cast&lt;int64_t&gt;(operation.taskType()), operation.keyRange()));
-}
-
-void WebIDBServerConnection::cursorAdvance(IDBCursorBackend&amp;, const CursorAdvanceOperation&amp; operation, std::function&lt;void (PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBDatabaseError&gt;&gt;::create(completionCallback);
-
-    serverRequest-&gt;setAbortHandler([completionCallback] {
-        completionCallback(nullptr, nullptr, nullptr, IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured advancing database cursor&quot;));
-    });
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess cursorAdvance request ID %&quot; PRIu64, requestID);
-
-    send(Messages::DatabaseProcessIDBConnection::CursorAdvance(requestID, operation.cursorID(), operation.count()));
-}
-
-void WebIDBServerConnection::cursorIterate(IDBCursorBackend&amp;, const CursorIterationOperation&amp; operation, std::function&lt;void (PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
-{
-    RefPtr&lt;AsyncRequest&gt; serverRequest = AsyncRequestImpl&lt;PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBDatabaseError&gt;&gt;::create(completionCallback);
-
-    serverRequest-&gt;setAbortHandler([completionCallback] {
-        completionCallback(nullptr, nullptr, nullptr, IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured iterating database cursor&quot;));
-    });
-
-    uint64_t requestID = serverRequest-&gt;requestID();
-    ASSERT(!m_serverRequests.contains(requestID));
-    m_serverRequests.add(requestID, serverRequest.release());
-
-    LOG(IDB, &quot;WebProcess cursorIterate request ID %&quot; PRIu64, requestID);
-
-    send(Messages::DatabaseProcessIDBConnection::CursorIterate(requestID, operation.cursorID(), operation.key()));
-}
-
-IPC::Connection* WebIDBServerConnection::messageSenderConnection()
-{
-    return WebProcess::singleton().webToDatabaseProcessConnection()-&gt;connection();
-}
-
-} // namespace WebKit
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2WebProcessDatabasesIndexedDBWebIDBServerConnectionh"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,134 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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. ``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
- * 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 WebIDBServerConnection_h
-#define WebIDBServerConnection_h
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-#include &quot;MessageSender.h&quot;
-#include &lt;WebCore/IDBDatabaseMetadata.h&gt;
-#include &lt;WebCore/IDBServerConnection.h&gt;
-
-namespace WebCore {
-class IDBKeyData;
-class SecurityOrigin;
-}
-
-namespace WebKit {
-
-class AsyncRequest;
-
-class WebIDBServerConnection final : public WebCore::IDBServerConnection, public IPC::MessageSender {
-public:
-    static PassRefPtr&lt;WebIDBServerConnection&gt; create(const String&amp; databaseName, const WebCore::SecurityOrigin&amp; openingOrigin, const WebCore::SecurityOrigin&amp; mainFrameOrigin);
-
-    virtual ~WebIDBServerConnection();
-
-    virtual bool isClosed() override;
-
-    typedef std::function&lt;void (bool success)&gt; BoolCallbackFunction;
-
-    // Factory-level operations
-    virtual void deleteDatabase(const String&amp; name, BoolCallbackFunction successCallback) override;
-
-    // Database-level operations
-    virtual void getOrEstablishIDBDatabaseMetadata(GetIDBDatabaseMetadataFunction) override;
-    virtual void close() override;
-
-    // Transaction-level operations
-    virtual void openTransaction(int64_t transactionID, const HashSet&lt;int64_t&gt;&amp; objectStoreIds, WebCore::IndexedDB::TransactionMode, BoolCallbackFunction successCallback) override;
-    virtual void beginTransaction(int64_t transactionID, std::function&lt;void ()&gt; completionCallback) override;
-    virtual void commitTransaction(int64_t transactionID, BoolCallbackFunction successCallback) override;
-    virtual void resetTransaction(int64_t transactionID, std::function&lt;void ()&gt; completionCallback) override;
-    virtual bool resetTransactionSync(int64_t transactionID) override;
-    virtual void rollbackTransaction(int64_t transactionID, std::function&lt;void ()&gt; completionCallback) override;
-    virtual bool rollbackTransactionSync(int64_t transactionID) override;
-
-    virtual void setIndexKeys(int64_t transactionID, int64_t databaseID, int64_t objectStoreID, const WebCore::IDBObjectStoreMetadata&amp;, WebCore::IDBKey&amp; primaryKey, const Vector&lt;int64_t, 1&gt;&amp; indexIDs, const Vector&lt;Vector&lt;RefPtr&lt;WebCore::IDBKey&gt;&gt;, 1&gt;&amp; indexKeys, std::function&lt;void (PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
-
-    virtual void createObjectStore(WebCore::IDBTransactionBackend&amp;, const WebCore::CreateObjectStoreOperation&amp;, std::function&lt;void (PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
-    virtual void createIndex(WebCore::IDBTransactionBackend&amp;, const WebCore::CreateIndexOperation&amp;, std::function&lt;void (PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
-    virtual void deleteIndex(WebCore::IDBTransactionBackend&amp;, const WebCore::DeleteIndexOperation&amp;, std::function&lt;void (PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
-    virtual void get(WebCore::IDBTransactionBackend&amp;, const WebCore::GetOperation&amp;, std::function&lt;void (const WebCore::IDBGetResult&amp;, PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
-    virtual void put(WebCore::IDBTransactionBackend&amp;, const WebCore::PutOperation&amp;, std::function&lt;void (PassRefPtr&lt;WebCore::IDBKey&gt;, PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
-    virtual void openCursor(WebCore::IDBTransactionBackend&amp;, const WebCore::OpenCursorOperation&amp;, std::function&lt;void (int64_t, PassRefPtr&lt;WebCore::IDBKey&gt;, PassRefPtr&lt;WebCore::IDBKey&gt;, PassRefPtr&lt;WebCore::SharedBuffer&gt;, PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
-    virtual void count(WebCore::IDBTransactionBackend&amp;, const WebCore::CountOperation&amp;, std::function&lt;void (int64_t, PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
-    virtual void deleteRange(WebCore::IDBTransactionBackend&amp;, const WebCore::DeleteRangeOperation&amp;, std::function&lt;void (PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
-    virtual void clearObjectStore(WebCore::IDBTransactionBackend&amp;, const WebCore::ClearObjectStoreOperation&amp;, std::function&lt;void (PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
-    virtual void deleteObjectStore(WebCore::IDBTransactionBackend&amp;, const WebCore::DeleteObjectStoreOperation&amp;, std::function&lt;void (PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
-    virtual void changeDatabaseVersion(WebCore::IDBTransactionBackend&amp;, const WebCore::IDBDatabaseBackend::VersionChangeOperation&amp;, std::function&lt;void (PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
-
-    // Cursor-level operations
-    virtual void cursorAdvance(WebCore::IDBCursorBackend&amp;, const WebCore::CursorAdvanceOperation&amp;, std::function&lt;void (PassRefPtr&lt;WebCore::IDBKey&gt;, PassRefPtr&lt;WebCore::IDBKey&gt;, PassRefPtr&lt;WebCore::SharedBuffer&gt;, PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
-    virtual void cursorIterate(WebCore::IDBCursorBackend&amp;, const WebCore::CursorIterationOperation&amp;, std::function&lt;void (PassRefPtr&lt;WebCore::IDBKey&gt;, PassRefPtr&lt;WebCore::IDBKey&gt;, PassRefPtr&lt;WebCore::SharedBuffer&gt;, PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
-
-    // Message handlers.
-    void didReceiveWebIDBServerConnectionMessage(IPC::Connection&amp;, IPC::MessageDecoder&amp;);
-
-    // IPC::MessageSender
-    virtual uint64_t messageSenderDestinationID() override { return m_serverConnectionIdentifier; }
-
-private:
-    WebIDBServerConnection(const String&amp; databaseName, const WebCore::SecurityOrigin&amp; openingOrigin, const WebCore::SecurityOrigin&amp; mainFrameOrigin);
-
-    // IPC::MessageSender
-    virtual IPC::Connection* messageSenderConnection() override;
-
-    void didGetOrEstablishIDBDatabaseMetadata(uint64_t requestID, bool success, const WebCore::IDBDatabaseMetadata&amp;);
-    void didDeleteDatabase(uint64_t requestID, bool success);
-    void didOpenTransaction(uint64_t requestID, bool success);
-    void didBeginTransaction(uint64_t requestID, bool success);
-    void didCommitTransaction(uint64_t requestID, bool success);
-    void didResetTransaction(uint64_t requestID, bool success);
-    void didRollbackTransaction(uint64_t requestID, bool success);
-    void didChangeDatabaseVersion(uint64_t requestID, bool success);
-    void didCreateObjectStore(uint64_t requestID, bool success);
-    void didDeleteObjectStore(uint64_t requestID, bool success);
-    void didClearObjectStore(uint64_t requestID, bool success);
-    void didCreateIndex(uint64_t requestID, bool success);
-    void didDeleteIndex(uint64_t requestID, bool success);
-    void didPutRecord(uint64_t requestID, const WebCore::IDBKeyData&amp;, uint32_t errorCode, const String&amp; errorMessage);
-    void didGetRecord(uint64_t requestID, const WebCore::IDBGetResult&amp;, uint32_t errorCode, const String&amp; errorMessage);
-    void didOpenCursor(uint64_t requestID, int64_t cursorID, const WebCore::IDBKeyData&amp;, const WebCore::IDBKeyData&amp;, const IPC::DataReference&amp;, uint32_t errorCode, const String&amp; errorMessage);
-    void didAdvanceCursor(uint64_t requestID, const WebCore::IDBKeyData&amp;, const WebCore::IDBKeyData&amp;, const IPC::DataReference&amp;, uint32_t errorCode, const String&amp; errorMessage);
-    void didIterateCursor(uint64_t requestID, const WebCore::IDBKeyData&amp;, const WebCore::IDBKeyData&amp;, const IPC::DataReference&amp;, uint32_t errorCode, const String&amp; errorMessage);
-    void didCount(uint64_t requestID, int64_t count, uint32_t errorCode, const String&amp; errorMessage);
-    void didDeleteRange(uint64_t requestID, uint32_t errorCode, const String&amp; errorMessage);
-
-    uint64_t m_serverConnectionIdentifier;
-
-    String m_databaseName;
-    Ref&lt;WebCore::SecurityOrigin&gt; m_openingOrigin;
-    Ref&lt;WebCore::SecurityOrigin&gt; m_mainFrameOrigin;
-
-    HashMap&lt;uint64_t, RefPtr&lt;AsyncRequest&gt;&gt; m_serverRequests;
-};
-
-} // namespace WebKit
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-#endif // WebIDBServerConnection_h
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2WebProcessDatabasesIndexedDBWebIDBServerConnectionmessagesin"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -1,52 +0,0 @@
</span><del>-# Copyright (C) 2013 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.
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-messages -&gt; WebIDBServerConnection LegacyReceiver {
-    DidGetOrEstablishIDBDatabaseMetadata(uint64_t requestID, bool success, struct WebCore::IDBDatabaseMetadata metadata)
-    DidDeleteDatabase(uint64_t requestID, bool success)
-
-    DidOpenTransaction(uint64_t requestID, bool success)
-    DidBeginTransaction(uint64_t requestID, bool success)
-    DidCommitTransaction(uint64_t requestID, bool success)
-    DidResetTransaction(uint64_t requestID, bool success)
-    DidRollbackTransaction(uint64_t requestID, bool success)
-
-    DidChangeDatabaseVersion(uint64_t requestID, bool success)
-    DidCreateObjectStore(uint64_t requestID, bool success)
-    DidDeleteObjectStore(uint64_t requestID, bool success)
-    DidClearObjectStore(uint64_t requestID, bool success)
-    
-    DidCreateIndex(uint64_t requestID, bool success)
-    DidDeleteIndex(uint64_t requestID, bool success)
-
-    DidPutRecord(uint64_t requestID, WebCore::IDBKeyData resultKey, uint32_t errorCode, String errorMessage)
-    DidGetRecord(uint64_t requestID, WebCore::IDBGetResult getResult, uint32_t errorCode, String errorMessage)
-    DidOpenCursor(uint64_t requestID, int64_t cursorID, WebCore::IDBKeyData key, WebCore::IDBKeyData primaryKey, IPC::DataReference value, uint32_t errorCode, String errorMessage)
-    DidAdvanceCursor(uint64_t requestID, WebCore::IDBKeyData key, WebCore::IDBKeyData primaryKey, IPC::DataReference value, uint32_t errorCode, String errorMessage)
-    DidIterateCursor(uint64_t requestID, WebCore::IDBKeyData key, WebCore::IDBKeyData primaryKey, IPC::DataReference value, uint32_t errorCode, String errorMessage)
-    DidCount(uint64_t requestID, int64_t count, uint32_t errorCode, String errorMessage)
-    DidDeleteRange(uint64_t requestID, uint32_t errorCode, String errorMessage)
-}
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2WebProcessDatabasesWebDatabaseProvidercpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;WebDatabaseProvider.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;WebIDBFactoryBackend.h&quot;
</del><span class="cx"> #include &quot;WebProcess.h&quot;
</span><span class="cx"> #include &quot;WebToDatabaseProcessConnection.h&quot;
</span><span class="cx"> #include &lt;WebCore/SessionID.h&gt;
</span><span class="lines">@@ -84,14 +83,6 @@
</span><span class="cx">     return WebProcess::singleton().webToDatabaseProcessConnection()-&gt;idbConnectionToServerForSession(sessionID).coreConnectionToServer();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;WebCore::IDBFactoryBackendInterface&gt; WebDatabaseProvider::createIDBFactoryBackend()
-{
-#if ENABLE(DATABASE_PROCESS)
-    return WebIDBFactoryBackend::create();
-#else
-    return nullptr;
</del><span class="cx"> #endif
</span><del>-}
-#endif
</del><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2WebProcessDatabasesWebDatabaseProviderh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -38,7 +38,6 @@
</span><span class="cx">     virtual ~WebDatabaseProvider();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><del>-    virtual bool supportsModernIDB() const override { return true; }
</del><span class="cx">     virtual WebCore::IDBClient::IDBConnectionToServer&amp; idbConnectionToServerForSession(const WebCore::SessionID&amp;) override final;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -46,7 +45,6 @@
</span><span class="cx">     explicit WebDatabaseProvider(uint64_t identifier);
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><del>-    virtual RefPtr&lt;WebCore::IDBFactoryBackendInterface&gt; createIDBFactoryBackend() override;
</del><span class="cx">     HashMap&lt;uint64_t, RefPtr&lt;WebCore::InProcessIDBServer&gt;&gt; m_idbEphemeralConnectionMap;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2WebProcessDatabasesWebToDatabaseProcessConnectioncpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -29,8 +29,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;DatabaseToWebProcessConnectionMessages.h&quot;
</span><span class="cx"> #include &quot;WebIDBConnectionToServerMessages.h&quot;
</span><del>-#include &quot;WebIDBServerConnection.h&quot;
-#include &quot;WebIDBServerConnectionMessages.h&quot;
</del><span class="cx"> #include &quot;WebProcess.h&quot;
</span><span class="cx"> #include &lt;wtf/RunLoop.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -59,13 +57,6 @@
</span><span class="cx">             iterator-&gt;value-&gt;didReceiveMessage(connection, decoder);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-
-    if (decoder.messageReceiverName() == Messages::WebIDBServerConnection::messageReceiverName()) {
-        HashMap&lt;uint64_t, WebIDBServerConnection*&gt;::iterator connectionIterator = m_webIDBServerConnections.find(decoder.destinationID());
-        if (connectionIterator != m_webIDBServerConnections.end())
-            connectionIterator-&gt;value-&gt;didReceiveWebIDBServerConnectionMessage(connection, decoder);
-        return;
-    }
</del><span class="cx"> #endif
</span><span class="cx">     
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="lines">@@ -81,22 +72,6 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><del>-void WebToDatabaseProcessConnection::registerWebIDBServerConnection(WebIDBServerConnection&amp; connection)
-{
-    ASSERT(!m_webIDBServerConnections.contains(connection.messageSenderDestinationID()));
-    m_webIDBServerConnections.set(connection.messageSenderDestinationID(), &amp;connection);
-
-}
-
-void WebToDatabaseProcessConnection::removeWebIDBServerConnection(WebIDBServerConnection&amp; connection)
-{
-    ASSERT(m_webIDBServerConnections.contains(connection.messageSenderDestinationID()));
-
-    send(Messages::DatabaseToWebProcessConnection::RemoveDatabaseProcessIDBConnection(connection.messageSenderDestinationID()));
-
-    m_webIDBServerConnections.remove(connection.messageSenderDestinationID());
-}
-
</del><span class="cx"> WebIDBConnectionToServer&amp; WebToDatabaseProcessConnection::idbConnectionToServerForSession(const SessionID&amp; sessionID)
</span><span class="cx"> {
</span><span class="cx">     auto result = m_webIDBConnections.add(sessionID.sessionID(), nullptr);
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2WebProcessDatabasesWebToDatabaseProcessConnectionh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.h (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.h        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.h        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -40,9 +40,6 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-class WebIDBServerConnection;
-class WebProcessIDBDatabaseBackend;
-
</del><span class="cx"> class WebToDatabaseProcessConnection : public RefCounted&lt;WebToDatabaseProcessConnection&gt;, public IPC::Connection::Client, public IPC::MessageSender {
</span><span class="cx"> public:
</span><span class="cx">     static Ref&lt;WebToDatabaseProcessConnection&gt; create(IPC::Connection::Identifier connectionIdentifier)
</span><span class="lines">@@ -54,9 +51,6 @@
</span><span class="cx">     IPC::Connection* connection() const { return m_connection.get(); }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><del>-    void registerWebIDBServerConnection(WebIDBServerConnection&amp;);
-    void removeWebIDBServerConnection(WebIDBServerConnection&amp;);
-
</del><span class="cx">     WebIDBConnectionToServer&amp; idbConnectionToServerForSession(const WebCore::SessionID&amp;);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -77,8 +71,6 @@
</span><span class="cx">     RefPtr&lt;IPC::Connection&gt; m_connection;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><del>-    HashMap&lt;uint64_t, WebIDBServerConnection*&gt; m_webIDBServerConnections;
-
</del><span class="cx">     HashMap&lt;uint64_t, RefPtr&lt;WebIDBConnectionToServer&gt;&gt; m_webIDBConnections;
</span><span class="cx"> #endif
</span><span class="cx"> };
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebKit2WebProcessWebCoreSupportWebPlatformStrategiescpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp (197310 => 197311)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp        2016-02-29 07:33:18 UTC (rev 197310)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp        2016-02-29 07:35:05 UTC (rev 197311)
</span><span class="lines">@@ -40,7 +40,6 @@
</span><span class="cx"> #include &quot;WebErrors.h&quot;
</span><span class="cx"> #include &quot;WebFrame.h&quot;
</span><span class="cx"> #include &quot;WebFrameLoaderClient.h&quot;
</span><del>-#include &quot;WebIDBFactoryBackend.h&quot;
</del><span class="cx"> #include &quot;WebLoaderStrategy.h&quot;
</span><span class="cx"> #include &quot;WebPage.h&quot;
</span><span class="cx"> #include &quot;WebPasteboardOverrides.h&quot;
</span><span class="lines">@@ -50,7 +49,6 @@
</span><span class="cx"> #include &lt;WebCore/Color.h&gt;
</span><span class="cx"> #include &lt;WebCore/Document.h&gt;
</span><span class="cx"> #include &lt;WebCore/DocumentLoader.h&gt;
</span><del>-#include &lt;WebCore/IDBFactoryBackendInterface.h&gt;
</del><span class="cx"> #include &lt;WebCore/LoaderStrategy.h&gt;
</span><span class="cx"> #include &lt;WebCore/MainFrame.h&gt;
</span><span class="cx"> #include &lt;WebCore/NetworkStorageSession.h&gt;
</span></span></pre>
</div>
</div>

</body>
</html>