<!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>[189879] trunk</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/189879">189879</a></dd>
<dt>Author</dt> <dd>beidson@apple.com</dd>
<dt>Date</dt> <dd>2015-09-16 13:45:01 -0700 (Wed, 16 Sep 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>Have window.indexedDB.deleteDatabase return an IDBOpenDBRequest.
https://bugs.webkit.org/show_bug.cgi?id=149229
Reviewed by Alex Christensen.
Source/WebCore:
Test: storage/indexeddb/modern/deletedatabase-request.html
storage/indexeddb/modern/deletedatabase-null-name-exception.html
* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/IDBDatabaseIdentifier.cpp: Added.
(WebCore::IDBDatabaseIdentifier::IDBDatabaseIdentifier):
* Modules/indexeddb/IDBDatabaseIdentifier.h: Added.
(WebCore::IDBDatabaseIdentifier::IDBDatabaseIdentifier):
(WebCore::IDBDatabaseIdentifier::isHashTableDeletedValue):
(WebCore::IDBDatabaseIdentifier::hash):
(WebCore::IDBDatabaseIdentifier::isValid):
(WebCore::IDBDatabaseIdentifier::operator==):
(WebCore::IDBDatabaseIdentifier::databaseName):
(WebCore::IDBDatabaseIdentifierHash::hash):
(WebCore::IDBDatabaseIdentifierHash::equal):
(WebCore::IDBDatabaseIdentifierHashTraits::isEmptyValue):
* Modules/indexeddb/client/IDBFactoryImpl.cpp:
(WebCore::IDBClient::shouldThrowSecurityException):
(WebCore::IDBClient::IDBFactory::getDatabaseNames):
(WebCore::IDBClient::IDBFactory::open):
(WebCore::IDBClient::IDBFactory::deleteDatabase):
* Modules/indexeddb/client/IDBFactoryImpl.h:
* Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp: Copied from Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.cpp.
(WebCore::IDBClient::IDBOpenDBRequest::IDBOpenDBRequest):
* Modules/indexeddb/client/IDBOpenDBRequestImpl.h: Copied from Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.cpp.
(WebCore::IDBClient::IDBOpenDBRequest::create):
* Modules/indexeddb/client/IDBRequestImpl.cpp: Copied from Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.cpp.
(WebCore::IDBClient::IDBRequest::IDBRequest):
(WebCore::IDBClient::IDBRequest::result):
(WebCore::IDBClient::IDBRequest::errorCode):
(WebCore::IDBClient::IDBRequest::error):
(WebCore::IDBClient::IDBRequest::source):
(WebCore::IDBClient::IDBRequest::transaction):
(WebCore::IDBClient::IDBRequest::readyState):
(WebCore::IDBClient::IDBRequest::eventTargetInterface):
(WebCore::IDBClient::IDBRequest::activeDOMObjectName):
(WebCore::IDBClient::IDBRequest::canSuspendForPageCache):
* Modules/indexeddb/client/IDBRequestImpl.h: Copied from Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.h.
* platform/Logging.h:
Source/WebKit/mac:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]): Enable IDB in WK1.
LayoutTests:
* platform/mac-wk1/TestExpectations:
* platform/wk2/TestExpectations:
* storage/indexeddb/modern/deletedatabase-null-name-exception-expected.txt: Added.
* storage/indexeddb/modern/deletedatabase-null-name-exception.html: Added.
* storage/indexeddb/modern/deletedatabase-request-expected.txt: Added.
* storage/indexeddb/modern/deletedatabase-request.html: Added.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk1TestExpectations">trunk/LayoutTests/platform/mac-wk1/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformwk2TestExpectations">trunk/LayoutTests/platform/wk2/TestExpectations</a></li>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbclientIDBFactoryImplcpp">trunk/Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbclientIDBFactoryImplh">trunk/Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.h</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoreplatformLoggingh">trunk/Source/WebCore/platform/Logging.h</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebViewmm">trunk/Source/WebKit/mac/WebView/WebView.mm</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li>trunk/LayoutTests/storage/indexeddb/modern/</li>
<li><a href="#trunkLayoutTestsstorageindexeddbmoderndeletedatabasenullnameexceptionexpectedtxt">trunk/LayoutTests/storage/indexeddb/modern/deletedatabase-null-name-exception-expected.txt</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbmoderndeletedatabasenullnameexceptionhtml">trunk/LayoutTests/storage/indexeddb/modern/deletedatabase-null-name-exception.html</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbmoderndeletedatabaserequestexpectedtxt">trunk/LayoutTests/storage/indexeddb/modern/deletedatabase-request-expected.txt</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbmoderndeletedatabaserequesthtml">trunk/LayoutTests/storage/indexeddb/modern/deletedatabase-request.html</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBDatabaseIdentifiercpp">trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBDatabaseIdentifierh">trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseIdentifier.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbclientIDBOpenDBRequestImplcpp">trunk/Source/WebCore/Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbclientIDBOpenDBRequestImplh">trunk/Source/WebCore/Modules/indexeddb/client/IDBOpenDBRequestImpl.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbclientIDBRequestImplcpp">trunk/Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbclientIDBRequestImplh">trunk/Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (189878 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-09-16 19:55:15 UTC (rev 189878)
+++ trunk/LayoutTests/ChangeLog        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2015-09-16 Brady Eidson <beidson@apple.com>
+
+ Have window.indexedDB.deleteDatabase return an IDBOpenDBRequest.
+ https://bugs.webkit.org/show_bug.cgi?id=149229
+
+ Reviewed by Alex Christensen.
+
+ * platform/mac-wk1/TestExpectations:
+ * platform/wk2/TestExpectations:
+ * storage/indexeddb/modern/deletedatabase-null-name-exception-expected.txt: Added.
+ * storage/indexeddb/modern/deletedatabase-null-name-exception.html: Added.
+ * storage/indexeddb/modern/deletedatabase-request-expected.txt: Added.
+ * storage/indexeddb/modern/deletedatabase-request.html: Added.
+
</ins><span class="cx"> 2015-09-16 Chris Dumez <cdumez@apple.com>
</span><span class="cx">
</span><span class="cx"> Unreviewed, drop dom/xhtml/level3/core/nodegetbaseuri03.xhtml test.
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk1TestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (189878 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk1/TestExpectations        2015-09-16 19:55:15 UTC (rev 189878)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> ########################################
</span><span class="cx"> ### START OF (2) Failures without bug reports
</span><span class="cx">
</span><del>-# IndexedDB is not yet enabled in Mac WK1
</del><ins>+# Legacy IndexedDB will never be enabled in Mac WK1.
</ins><span class="cx"> storage/indexeddb
</span><span class="cx"> imported/w3c/indexeddb
</span><span class="cx"> fast/history/page-cache-indexed-closed-db.html
</span><span class="lines">@@ -68,8 +68,8 @@
</span><span class="cx"> crypto/subtle/rsa-indexeddb-non-exportable.html
</span><span class="cx"> inspector/indexeddb
</span><span class="cx">
</span><del>-# But since it is disabled at runtime, we should make sure it is correctly disabled
-storage/indexeddb/properties-disabled-at-runtime.html [ Pass ]
</del><ins>+# But Modern IndexedDB is.
+storage/indexeddb/modern [ Pass ]
</ins><span class="cx">
</span><span class="cx"> # Fails with WebKit1 only.
</span><span class="cx"> editing/secure-input/reset-state-on-navigation.html [ Failure ]
</span></span></pre></div>
<a id="trunkLayoutTestsplatformwk2TestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/wk2/TestExpectations (189878 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/wk2/TestExpectations        2015-09-16 19:55:15 UTC (rev 189878)
+++ trunk/LayoutTests/platform/wk2/TestExpectations        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -579,6 +579,9 @@
</span><span class="cx"> imported/w3c/indexeddb/idbcursor-direction.htm [ Pass Failure ]
</span><span class="cx"> imported/w3c/indexeddb/idbcursor-key.htm [ Pass Failure ]
</span><span class="cx">
</span><ins>+# Don't run Modern IDB tests while the feature is under development
+storage/indexeddb/modern [ Skip ]
+
</ins><span class="cx"> ### END OF (3) Unclassified failures
</span><span class="cx"> ########################################
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbmoderndeletedatabasenullnameexceptionexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/storage/indexeddb/modern/deletedatabase-null-name-exception-expected.txt (0 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/modern/deletedatabase-null-name-exception-expected.txt         (rev 0)
+++ trunk/LayoutTests/storage/indexeddb/modern/deletedatabase-null-name-exception-expected.txt        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+ALERT: TypeError: Not enough arguments
+ALERT: Done
+This test calls deleteDatabase on window.indexedDB with a null database name, making sure there is an exception.
</ins></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbmoderndeletedatabasenullnameexceptionhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/storage/indexeddb/modern/deletedatabase-null-name-exception.html (0 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/modern/deletedatabase-null-name-exception.html         (rev 0)
+++ trunk/LayoutTests/storage/indexeddb/modern/deletedatabase-null-name-exception.html        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -0,0 +1,23 @@
</span><ins>+This test calls deleteDatabase on window.indexedDB with a null database name, making sure there is an exception.
+<script>
+
+if (window.testRunner) {
+ testRunner.waitUntilDone();
+ testRunner.dumpAsText();
+}
+
+function done()
+{
+ alert("Done");
+ if (window.testRunner)
+ testRunner.notifyDone();
+}
+
+try {
+        var request = window.indexedDB.deleteDatabase();
+} catch (e) {
+        alert(e);
+}
+
+done();
+</script>
</ins></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbmoderndeletedatabaserequestexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/storage/indexeddb/modern/deletedatabase-request-expected.txt (0 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/modern/deletedatabase-request-expected.txt         (rev 0)
+++ trunk/LayoutTests/storage/indexeddb/modern/deletedatabase-request-expected.txt        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+ALERT: [object IDBOpenDBRequest]
+ALERT: Done
+This test calls deleteDatabase on window.indexedDB and verifies that an IDBOpenDBRequest object is returned.
</ins></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbmoderndeletedatabaserequesthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/storage/indexeddb/modern/deletedatabase-request.html (0 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/modern/deletedatabase-request.html         (rev 0)
+++ trunk/LayoutTests/storage/indexeddb/modern/deletedatabase-request.html        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -0,0 +1,20 @@
</span><ins>+This test calls deleteDatabase on window.indexedDB and verifies that an IDBOpenDBRequest object is returned.
+<script>
+
+if (window.testRunner) {
+ testRunner.waitUntilDone();
+ testRunner.dumpAsText();
+}
+
+function done()
+{
+ alert("Done");
+ if (window.testRunner)
+ testRunner.notifyDone();
+}
+
+var request = window.indexedDB.deleteDatabase("TestDatabase");
+alert(request);
+
+done();
+</script>
</ins></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (189878 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2015-09-16 19:55:15 UTC (rev 189878)
+++ trunk/Source/WebCore/CMakeLists.txt        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -850,6 +850,7 @@
</span><span class="cx"> Modules/indexeddb/IDBCursorWithValue.cpp
</span><span class="cx"> Modules/indexeddb/IDBDatabase.cpp
</span><span class="cx"> Modules/indexeddb/IDBDatabaseException.cpp
</span><ins>+ Modules/indexeddb/IDBDatabaseIdentifier.cpp
</ins><span class="cx"> Modules/indexeddb/IDBDatabaseMetadata.cpp
</span><span class="cx"> Modules/indexeddb/IDBEventDispatcher.cpp
</span><span class="cx"> Modules/indexeddb/IDBFactory.cpp
</span><span class="lines">@@ -867,6 +868,8 @@
</span><span class="cx"> Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp
</span><span class="cx">
</span><span class="cx"> Modules/indexeddb/client/IDBFactoryImpl.cpp
</span><ins>+ Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp
+ Modules/indexeddb/client/IDBRequestImpl.cpp
</ins><span class="cx">
</span><span class="cx"> Modules/indexeddb/legacy/IDBCursorBackend.cpp
</span><span class="cx"> Modules/indexeddb/legacy/IDBCursorBackendOperations.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (189878 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-09-16 19:55:15 UTC (rev 189878)
+++ trunk/Source/WebCore/ChangeLog        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -1,3 +1,56 @@
</span><ins>+2015-09-16 Brady Eidson <beidson@apple.com>
+
+ Have window.indexedDB.deleteDatabase return an IDBOpenDBRequest.
+ https://bugs.webkit.org/show_bug.cgi?id=149229
+
+ Reviewed by Alex Christensen.
+
+ Test: storage/indexeddb/modern/deletedatabase-request.html
+ storage/indexeddb/modern/deletedatabase-null-name-exception.html
+
+ * CMakeLists.txt:
+ * WebCore.xcodeproj/project.pbxproj:
+
+ * Modules/indexeddb/IDBDatabaseIdentifier.cpp: Added.
+ (WebCore::IDBDatabaseIdentifier::IDBDatabaseIdentifier):
+ * Modules/indexeddb/IDBDatabaseIdentifier.h: Added.
+ (WebCore::IDBDatabaseIdentifier::IDBDatabaseIdentifier):
+ (WebCore::IDBDatabaseIdentifier::isHashTableDeletedValue):
+ (WebCore::IDBDatabaseIdentifier::hash):
+ (WebCore::IDBDatabaseIdentifier::isValid):
+ (WebCore::IDBDatabaseIdentifier::operator==):
+ (WebCore::IDBDatabaseIdentifier::databaseName):
+ (WebCore::IDBDatabaseIdentifierHash::hash):
+ (WebCore::IDBDatabaseIdentifierHash::equal):
+ (WebCore::IDBDatabaseIdentifierHashTraits::isEmptyValue):
+
+ * Modules/indexeddb/client/IDBFactoryImpl.cpp:
+ (WebCore::IDBClient::shouldThrowSecurityException):
+ (WebCore::IDBClient::IDBFactory::getDatabaseNames):
+ (WebCore::IDBClient::IDBFactory::open):
+ (WebCore::IDBClient::IDBFactory::deleteDatabase):
+ * Modules/indexeddb/client/IDBFactoryImpl.h:
+
+ * Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp: Copied from Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.cpp.
+ (WebCore::IDBClient::IDBOpenDBRequest::IDBOpenDBRequest):
+ * Modules/indexeddb/client/IDBOpenDBRequestImpl.h: Copied from Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.cpp.
+ (WebCore::IDBClient::IDBOpenDBRequest::create):
+
+ * Modules/indexeddb/client/IDBRequestImpl.cpp: Copied from Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.cpp.
+ (WebCore::IDBClient::IDBRequest::IDBRequest):
+ (WebCore::IDBClient::IDBRequest::result):
+ (WebCore::IDBClient::IDBRequest::errorCode):
+ (WebCore::IDBClient::IDBRequest::error):
+ (WebCore::IDBClient::IDBRequest::source):
+ (WebCore::IDBClient::IDBRequest::transaction):
+ (WebCore::IDBClient::IDBRequest::readyState):
+ (WebCore::IDBClient::IDBRequest::eventTargetInterface):
+ (WebCore::IDBClient::IDBRequest::activeDOMObjectName):
+ (WebCore::IDBClient::IDBRequest::canSuspendForPageCache):
+ * Modules/indexeddb/client/IDBRequestImpl.h: Copied from Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.h.
+
+ * platform/Logging.h:
+
</ins><span class="cx"> 2015-09-16 Chris Dumez <cdumez@apple.com>
</span><span class="cx">
</span><span class="cx"> Add initial support for [Unforgeable] IDL extended attribute
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBDatabaseIdentifiercpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseIdentifier.cpp (0 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseIdentifier.cpp         (rev 0)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseIdentifier.cpp        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -0,0 +1,49 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``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 "config.h"
+#include "IDBDatabaseIdentifier.h"
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include <wtf/Ref.h>
+#include <wtf/RefCounted.h>
+#include <wtf/text/WTFString.h>
+
+namespace WebCore {
+
+IDBDatabaseIdentifier::IDBDatabaseIdentifier(const String& databaseName, const SecurityOrigin& openingOrigin, const SecurityOrigin& mainFrameOrigin)
+ : m_databaseName(databaseName)
+ , m_openingOrigin(SecurityOriginData::fromSecurityOrigin(openingOrigin))
+ , m_mainFrameOrigin(SecurityOriginData::fromSecurityOrigin(mainFrameOrigin))
+
+{
+ // The empty string is a valid database name, but a null string is not.
+ ASSERT(!databaseName.isNull());
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBDatabaseIdentifierh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseIdentifier.h (0 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseIdentifier.h         (rev 0)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseIdentifier.h        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -0,0 +1,115 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``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 IDBDatabaseIdentifier_h
+#define IDBDatabaseIdentifier_h
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include "SecurityOriginData.h"
+#include <wtf/Ref.h>
+#include <wtf/RefCounted.h>
+#include <wtf/text/StringHash.h>
+#include <wtf/text/WTFString.h>
+
+namespace WebCore {
+
+class SecurityOrigin;
+
+class IDBDatabaseIdentifier {
+public:
+ IDBDatabaseIdentifier()
+ {
+ }
+
+ IDBDatabaseIdentifier(WTF::HashTableDeletedValueType)
+ {
+ m_openingOrigin.port = -1;
+ m_mainFrameOrigin.port = -1;
+ }
+
+ bool isHashTableDeletedValue() const
+ {
+ return m_openingOrigin.port == -1 && m_mainFrameOrigin.port == -1;
+ }
+
+ unsigned hash() const
+ {
+ unsigned nameHash = StringHash::hash(m_databaseName);
+ unsigned openingProtocolHash = StringHash::hash(m_openingOrigin.protocol);
+ unsigned openingHostHash = StringHash::hash(m_openingOrigin.host);
+ unsigned mainFrameProtocolHash = StringHash::hash(m_mainFrameOrigin.protocol);
+ unsigned mainFrameHostHash = StringHash::hash(m_mainFrameOrigin.host);
+
+ unsigned hashCodes[7] = { nameHash, openingProtocolHash, openingHostHash, static_cast<unsigned>(m_openingOrigin.port), mainFrameProtocolHash, mainFrameHostHash, static_cast<unsigned>(m_mainFrameOrigin.port) };
+ return StringHasher::hashMemory<sizeof(hashCodes)>(hashCodes);
+ }
+
+ IDBDatabaseIdentifier(const String& databaseName, const SecurityOrigin& openingOrigin, const SecurityOrigin& mainFrameOrigin);
+
+ bool isValid() const
+ {
+ return !m_databaseName.isNull() && m_openingOrigin.port >= 0 && m_mainFrameOrigin.port >= 0;
+ }
+
+ bool operator==(const IDBDatabaseIdentifier& other) const
+ {
+ return other.m_databaseName == m_databaseName
+ && other.m_openingOrigin == m_openingOrigin
+ && other.m_mainFrameOrigin == m_mainFrameOrigin;
+ }
+
+ const String& databaseName() const { return m_databaseName; }
+
+private:
+ String m_databaseName;
+ SecurityOriginData m_openingOrigin;
+ SecurityOriginData m_mainFrameOrigin;
+};
+
+struct IDBDatabaseIdentifierHash {
+ static unsigned hash(const IDBDatabaseIdentifier& a) { return a.hash(); }
+ static bool equal(const IDBDatabaseIdentifier& a, const IDBDatabaseIdentifier& b) { return a == b; }
+ static const bool safeToCompareToEmptyOrDeleted = false;
+};
+
+struct IDBDatabaseIdentifierHashTraits : WTF::SimpleClassHashTraits<IDBDatabaseIdentifier> {
+ static const bool hasIsEmptyValueFunction = true;
+ static bool isEmptyValue(const IDBDatabaseIdentifier& info) { return !info.isValid(); }
+};
+
+} // namespace WebCore
+
+namespace WTF {
+
+template<> struct HashTraits<WebCore::IDBDatabaseIdentifier> : WebCore::IDBDatabaseIdentifierHashTraits { };
+template<> struct DefaultHash<WebCore::IDBDatabaseIdentifier> {
+ typedef WebCore::IDBDatabaseIdentifierHash Hash;
+};
+
+} // namespace WTF
+
+#endif // ENABLE(INDEXED_DATABASE)
+#endif // IDBDatabaseIdentifier_h
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbclientIDBFactoryImplcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.cpp (189878 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.cpp        2015-09-16 19:55:15 UTC (rev 189878)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.cpp        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -28,9 +28,36 @@
</span><span class="cx">
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx">
</span><ins>+#include "ExceptionCode.h"
+#include "IDBDatabaseIdentifier.h"
+#include "IDBOpenDBRequestImpl.h"
+#include "Logging.h"
+#include "Page.h"
+#include "SchemeRegistry.h"
+#include "SecurityOrigin.h"
+
</ins><span class="cx"> namespace WebCore {
</span><span class="cx"> namespace IDBClient {
</span><span class="cx">
</span><ins>+static bool shouldThrowSecurityException(ScriptExecutionContext* context)
+{
+ ASSERT(is<Document>(*context) || context->isWorkerGlobalScope());
+ if (is<Document>(*context)) {
+ Document& document = downcast<Document>(*context);
+ if (!document.frame())
+ return true;
+ if (!document.page())
+ return true;
+ if (document.page()->usesEphemeralSession() && !SchemeRegistry::allowsDatabaseAccessInPrivateBrowsing(document.securityOrigin()->protocol()))
+ return true;
+ }
+
+ if (!context->securityOrigin()->canAccessDatabase(context->topOrigin()))
+ return true;
+
+ return false;
+}
+
</ins><span class="cx"> Ref<IDBFactory> IDBFactory::create()
</span><span class="cx"> {
</span><span class="cx"> return adoptRef(*new IDBFactory);
</span><span class="lines">@@ -41,24 +68,45 @@
</span><span class="cx">
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<IDBRequest> IDBFactory::getDatabaseNames(ScriptExecutionContext*, ExceptionCode&)
</del><ins>+PassRefPtr<WebCore::IDBRequest> IDBFactory::getDatabaseNames(ScriptExecutionContext*, ExceptionCode&)
</ins><span class="cx"> {
</span><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<IDBOpenDBRequest> IDBFactory::open(ScriptExecutionContext*, const String&, ExceptionCode&)
</del><ins>+PassRefPtr<WebCore::IDBOpenDBRequest> IDBFactory::open(ScriptExecutionContext*, const String&, ExceptionCode&)
</ins><span class="cx"> {
</span><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<IDBOpenDBRequest> IDBFactory::open(ScriptExecutionContext*, const String&, unsigned long long, ExceptionCode&)
</del><ins>+PassRefPtr<WebCore::IDBOpenDBRequest> IDBFactory::open(ScriptExecutionContext*, const String&, unsigned long long, ExceptionCode&)
</ins><span class="cx"> {
</span><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<IDBOpenDBRequest> IDBFactory::deleteDatabase(ScriptExecutionContext*, const String&, ExceptionCode&)
</del><ins>+PassRefPtr<WebCore::IDBOpenDBRequest> IDBFactory::deleteDatabase(ScriptExecutionContext* context, const String& name, ExceptionCode& ec)
</ins><span class="cx"> {
</span><del>- return nullptr;
</del><ins>+ LOG(IndexedDB, "IDBFactory::deleteDatabase");
+
+ if (name.isNull()) {
+ ec = TypeError;
+ return nullptr;
+ }
+
+ if (shouldThrowSecurityException(context)) {
+ ec = SECURITY_ERR;
+ return nullptr;
+ }
+
+ ASSERT(context->securityOrigin());
+ ASSERT(context->topOrigin());
+ IDBDatabaseIdentifier databaseIdentifier(name, *context->securityOrigin(), *context->topOrigin());
+ if (!databaseIdentifier.isValid()) {
+ ec = TypeError;
+ return nullptr;
+ }
+
+ auto request = IDBOpenDBRequest::create(context);
+ return adoptRef(&request.leakRef());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> short IDBFactory::cmp(ScriptExecutionContext*, const Deprecated::ScriptValue&, const Deprecated::ScriptValue&, ExceptionCode&)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbclientIDBFactoryImplh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.h (189878 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.h        2015-09-16 19:55:15 UTC (rev 189878)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.h        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -37,11 +37,11 @@
</span><span class="cx"> public:
</span><span class="cx"> static Ref<IDBFactory> create();
</span><span class="cx">
</span><del>- virtual PassRefPtr<IDBRequest> getDatabaseNames(ScriptExecutionContext*, ExceptionCode&) override final;
</del><ins>+ virtual PassRefPtr<WebCore::IDBRequest> getDatabaseNames(ScriptExecutionContext*, ExceptionCode&) override final;
</ins><span class="cx">
</span><del>- virtual PassRefPtr<IDBOpenDBRequest> open(ScriptExecutionContext*, const String& name, ExceptionCode&) override final;
- virtual PassRefPtr<IDBOpenDBRequest> open(ScriptExecutionContext*, const String& name, unsigned long long version, ExceptionCode&) override final;
- virtual PassRefPtr<IDBOpenDBRequest> deleteDatabase(ScriptExecutionContext*, const String& name, ExceptionCode&) override final;
</del><ins>+ virtual PassRefPtr<WebCore::IDBOpenDBRequest> open(ScriptExecutionContext*, const String& name, ExceptionCode&) override final;
+ virtual PassRefPtr<WebCore::IDBOpenDBRequest> open(ScriptExecutionContext*, const String& name, unsigned long long version, ExceptionCode&) override final;
+ virtual PassRefPtr<WebCore::IDBOpenDBRequest> deleteDatabase(ScriptExecutionContext*, const String& name, ExceptionCode&) override final;
</ins><span class="cx">
</span><span class="cx"> virtual short cmp(ScriptExecutionContext*, const Deprecated::ScriptValue& first, const Deprecated::ScriptValue& second, ExceptionCode&) override final;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbclientIDBOpenDBRequestImplcppfromrev189878trunkSourceWebCoreModulesindexeddbclientIDBFactoryImplcpp"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp (from rev 189878, trunk/Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.cpp) (0 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp         (rev 0)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -0,0 +1,43 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "IDBOpenDBRequestImpl.h"
+
+#if ENABLE(INDEXED_DATABASE)
+
+namespace WebCore {
+namespace IDBClient {
+
+IDBOpenDBRequest::IDBOpenDBRequest(ScriptExecutionContext* context)
+ : IDBRequest(context)
+{
+ suspendIfNeeded();
+}
+
+} // namespace IDBClient
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbclientIDBOpenDBRequestImplhfromrev189878trunkSourceWebCoreModulesindexeddbclientIDBFactoryImplcpp"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/Modules/indexeddb/client/IDBOpenDBRequestImpl.h (from rev 189878, trunk/Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.cpp) (0 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/client/IDBOpenDBRequestImpl.h         (rev 0)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBOpenDBRequestImpl.h        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -0,0 +1,51 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef IDBOpenDBRequestImpl_h
+#define IDBOpenDBRequestImpl_h
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include "IDBRequestImpl.h"
+
+namespace WebCore {
+namespace IDBClient {
+
+class IDBOpenDBRequest : public IDBRequest {
+public:
+ static Ref<IDBOpenDBRequest> create(ScriptExecutionContext* context)
+ {
+ return adoptRef(*new IDBOpenDBRequest(context));
+ }
+
+private:
+ IDBOpenDBRequest(ScriptExecutionContext*);
+};
+
+} // namespace IDBClient
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
+#endif // IDBOpenDBRequestImpl_h
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbclientIDBRequestImplcppfromrev189878trunkSourceWebCoreModulesindexeddbclientIDBFactoryImplcpp"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.cpp (from rev 189878, trunk/Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.cpp) (0 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.cpp         (rev 0)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.cpp        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -0,0 +1,90 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "IDBRequestImpl.h"
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include <wtf/NeverDestroyed.h>
+
+namespace WebCore {
+namespace IDBClient {
+
+IDBRequest::IDBRequest(ScriptExecutionContext* context)
+ : IDBOpenDBRequest(context)
+{
+}
+
+PassRefPtr<IDBAny> IDBRequest::result(ExceptionCode&) const
+{
+ return nullptr;
+}
+
+unsigned short IDBRequest::errorCode(ExceptionCode&) const
+{
+ return 0;
+}
+
+PassRefPtr<DOMError> IDBRequest::error(ExceptionCode&) const
+{
+ return nullptr;
+}
+
+PassRefPtr<IDBAny> IDBRequest::source() const
+{
+ return nullptr;
+}
+
+PassRefPtr<IDBTransaction> IDBRequest::transaction() const
+{
+ return nullptr;
+}
+
+const String& IDBRequest::readyState() const
+{
+ static WTF::NeverDestroyed<String> readyState;
+ return readyState;
+}
+
+EventTargetInterface IDBRequest::eventTargetInterface() const
+{
+ return IDBRequestEventTargetInterfaceType;
+}
+
+const char* IDBRequest::activeDOMObjectName() const
+{
+ return "IDBRequest";
+}
+
+bool IDBRequest::canSuspendForPageCache() const
+{
+ return false;
+}
+
+} // namespace IDBClient
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbclientIDBRequestImplhfromrev189878trunkSourceWebCoreModulesindexeddbclientIDBFactoryImplh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.h (from rev 189878, trunk/Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.h) (0 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.h         (rev 0)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.h        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -0,0 +1,69 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef IDBRequestImpl_h
+#define IDBRequestImpl_h
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include "IDBOpenDBRequest.h"
+#include <wtf/RefCounted.h>
+
+namespace WebCore {
+namespace IDBClient {
+
+class IDBRequest : public WebCore::IDBOpenDBRequest, public RefCounted<IDBRequest> {
+public:
+ virtual PassRefPtr<IDBAny> result(ExceptionCode&) const override;
+ virtual unsigned short errorCode(ExceptionCode&) const override;
+ virtual PassRefPtr<DOMError> error(ExceptionCode&) const override;
+ virtual PassRefPtr<IDBAny> source() const override;
+ virtual PassRefPtr<IDBTransaction> transaction() const override;
+ virtual const String& readyState() const override;
+
+ // EventTarget
+ virtual EventTargetInterface eventTargetInterface() const override;
+ virtual ScriptExecutionContext* scriptExecutionContext() const override final { return ActiveDOMObject::scriptExecutionContext(); }
+
+ using RefCounted<IDBRequest>::ref;
+ using RefCounted<IDBRequest>::deref;
+
+protected:
+ IDBRequest(ScriptExecutionContext*);
+
+ // ActiveDOMObject.
+ virtual const char* activeDOMObjectName() const override final;
+ virtual bool canSuspendForPageCache() const override final;
+
+ // EventTarget.
+ virtual void refEventTarget() override final { RefCounted<IDBRequest>::ref(); }
+ virtual void derefEventTarget() override final { RefCounted<IDBRequest>::deref(); }
+};
+
+} // namespace IDBClient
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
+#endif // IDBRequestImpl_h
</ins></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (189878 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-09-16 19:55:15 UTC (rev 189878)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -1908,6 +1908,12 @@
</span><span class="cx">                 510192D618B6B9B7007FC7A1 /* ImageControlsRootElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 510192D418B6B9B7007FC7A1 /* ImageControlsRootElement.h */; };
</span><span class="cx">                 5103104F1BA8CC03003329C0 /* IDBFactoryImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5103104A1BA8C6A6003329C0 /* IDBFactoryImpl.cpp */; };
</span><span class="cx">                 510310501BA8CC03003329C0 /* IDBFactoryImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5103104B1BA8C6A6003329C0 /* IDBFactoryImpl.h */; };
</span><ins>+                5103105A1BA8DB56003329C0 /* IDBOpenDBRequestImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 510310561BA8DB30003329C0 /* IDBOpenDBRequestImpl.cpp */; };
+                5103105B1BA8DB56003329C0 /* IDBOpenDBRequestImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 510310571BA8DB30003329C0 /* IDBOpenDBRequestImpl.h */; };
+                5103105C1BA8DB56003329C0 /* IDBRequestImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 510310581BA8DB30003329C0 /* IDBRequestImpl.cpp */; };
+                5103105D1BA8DB56003329C0 /* IDBRequestImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 510310591BA8DB30003329C0 /* IDBRequestImpl.h */; };
+                510310601BA8E0E3003329C0 /* IDBDatabaseIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 5103105F1BA8E090003329C0 /* IDBDatabaseIdentifier.h */; };
+                510310611BA8E10D003329C0 /* IDBDatabaseIdentifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5103105E1BA8E090003329C0 /* IDBDatabaseIdentifier.cpp */; };
</ins><span class="cx">                 5103C2B11BA22D1A00E26337 /* LegacyAny.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B6E1BA0A76100F789CE /* LegacyAny.cpp */; };
</span><span class="cx">                 5103C2B21BA2317400E26337 /* IDBTransaction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B501B9F889B00F789CE /* IDBTransaction.cpp */; };
</span><span class="cx">                 5103C2B31BA2324D00E26337 /* IDBCursor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51645B541B9F88E800F789CE /* IDBCursor.cpp */; };
</span><span class="lines">@@ -9189,6 +9195,12 @@
</span><span class="cx">                 510192D818B7D7AB007FC7A1 /* imageControlsMac.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = imageControlsMac.css; sourceTree = "<group>"; };
</span><span class="cx">                 5103104A1BA8C6A6003329C0 /* IDBFactoryImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBFactoryImpl.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 5103104B1BA8C6A6003329C0 /* IDBFactoryImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBFactoryImpl.h; sourceTree = "<group>"; };
</span><ins>+                510310561BA8DB30003329C0 /* IDBOpenDBRequestImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBOpenDBRequestImpl.cpp; sourceTree = "<group>"; };
+                510310571BA8DB30003329C0 /* IDBOpenDBRequestImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBOpenDBRequestImpl.h; sourceTree = "<group>"; };
+                510310581BA8DB30003329C0 /* IDBRequestImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBRequestImpl.cpp; sourceTree = "<group>"; };
+                510310591BA8DB30003329C0 /* IDBRequestImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBRequestImpl.h; sourceTree = "<group>"; };
+                5103105E1BA8E090003329C0 /* IDBDatabaseIdentifier.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBDatabaseIdentifier.cpp; sourceTree = "<group>"; };
+                5103105F1BA8E090003329C0 /* IDBDatabaseIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBDatabaseIdentifier.h; sourceTree = "<group>"; };
</ins><span class="cx">                 5106D7BB18BDB76F000AB166 /* ContextMenuContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ContextMenuContext.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 5106D7BC18BDB76F000AB166 /* ContextMenuContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContextMenuContext.h; sourceTree = "<group>"; };
</span><span class="cx">                 510A326E18318431003C5326 /* IDBServerConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBServerConnection.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -16535,6 +16547,10 @@
</span><span class="cx">                 510310421BA8C64C003329C0 /* client */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                510310561BA8DB30003329C0 /* IDBOpenDBRequestImpl.cpp */,
+                                510310571BA8DB30003329C0 /* IDBOpenDBRequestImpl.h */,
+                                510310581BA8DB30003329C0 /* IDBRequestImpl.cpp */,
+                                510310591BA8DB30003329C0 /* IDBRequestImpl.h */,
</ins><span class="cx">                                 5103104A1BA8C6A6003329C0 /* IDBFactoryImpl.cpp */,
</span><span class="cx">                                 5103104B1BA8C6A6003329C0 /* IDBFactoryImpl.h */,
</span><span class="cx">                         );
</span><span class="lines">@@ -18773,6 +18789,8 @@
</span><span class="cx">                                 51D71983181106DF0016DC51 /* IDBDatabaseError.h */,
</span><span class="cx">                                 51D71984181106DF0016DC51 /* IDBDatabaseException.cpp */,
</span><span class="cx">                                 51D71985181106DF0016DC51 /* IDBDatabaseException.h */,
</span><ins>+                                5103105E1BA8E090003329C0 /* IDBDatabaseIdentifier.cpp */,
+                                5103105F1BA8E090003329C0 /* IDBDatabaseIdentifier.h */,
</ins><span class="cx">                                 5163117C1851242B00534647 /* IDBDatabaseMetadata.cpp */,
</span><span class="cx">                                 51C9611A183D2B8000D2002E /* IDBDatabaseMetadata.h */,
</span><span class="cx">                                 51D71986181106DF0016DC51 /* IDBEventDispatcher.cpp */,
</span><span class="lines">@@ -24083,6 +24101,7 @@
</span><span class="cx">                                 49E912AD0EFAC906009D0CAF /* AnimationList.h in Headers */,
</span><span class="cx">                                 31DCD29D1AB4FBDE0072E817 /* AnimationTrigger.h in Headers */,
</span><span class="cx">                                 0F580FAF149800D400FB5BD8 /* AnimationUtilities.h in Headers */,
</span><ins>+                                510310601BA8E0E3003329C0 /* IDBDatabaseIdentifier.h in Headers */,
</ins><span class="cx">                                 93309DD7099E64920056E581 /* AppendNodeCommand.h in Headers */,
</span><span class="cx">                                 1A8F6BBD0DB55CDC001DB794 /* ApplicationCache.h in Headers */,
</span><span class="cx">                                 1A8F6BBF0DB55CDC001DB794 /* ApplicationCacheGroup.h in Headers */,
</span><span class="lines">@@ -24437,6 +24456,7 @@
</span><span class="cx">                                 CD3E252418046BCD00E27F56 /* CSSGridTemplateAreasValue.h in Headers */,
</span><span class="cx">                                 FB3056C2169E5DAC0096A232 /* CSSGroupingRule.h in Headers */,
</span><span class="cx">                                 BC772B3C0C4EA91E0083285F /* CSSHelper.h in Headers */,
</span><ins>+                                5103105D1BA8DB56003329C0 /* IDBRequestImpl.h in Headers */,
</ins><span class="cx">                                 BC23EE920DAED2BC009FDC91 /* CSSImageGeneratorValue.h in Headers */,
</span><span class="cx">                                 9393E600151A99F200066F06 /* CSSImageSetValue.h in Headers */,
</span><span class="cx">                                 A80E6CFA0A1989CA007FB8C5 /* CSSImageValue.h in Headers */,
</span><span class="lines">@@ -25701,6 +25721,7 @@
</span><span class="cx">                                 C6F420A316B7164E0052A9F2 /* JSMutationCallback.h in Headers */,
</span><span class="cx">                                 65DF31FC09D1CC60000BE325 /* JSMutationEvent.h in Headers */,
</span><span class="cx">                                 C6F0902D14327D4F00685849 /* JSMutationObserver.h in Headers */,
</span><ins>+                                5103105B1BA8DB56003329C0 /* IDBOpenDBRequestImpl.h in Headers */,
</ins><span class="cx">                                 C6F08FCA1431000D00685849 /* JSMutationRecord.h in Headers */,
</span><span class="cx">                                 BCD9C2C10C17B69E005C90A2 /* JSNamedNodeMap.h in Headers */,
</span><span class="cx">                                 A9D247F80D757E3400FDF959 /* JSNavigator.h in Headers */,
</span><span class="lines">@@ -28768,6 +28789,7 @@
</span><span class="cx">                                 E14F1C4414B5DAC600EA9009 /* HTMLFormControlElementWithState.cpp in Sources */,
</span><span class="cx">                                 A8DF3FCF097FA0FC0052981B /* HTMLFormControlsCollection.cpp in Sources */,
</span><span class="cx">                                 A81369D1097374F600D74463 /* HTMLFormElement.cpp in Sources */,
</span><ins>+                                5103105C1BA8DB56003329C0 /* IDBRequestImpl.cpp in Sources */,
</ins><span class="cx">                                 A871DE230A152AC800B12A68 /* HTMLFrameElement.cpp in Sources */,
</span><span class="cx">                                 14FFE31E0AE1963300136BF5 /* HTMLFrameElementBase.cpp in Sources */,
</span><span class="cx">                                 93E2425F0B2B509500C732A1 /* HTMLFrameOwnerElement.cpp in Sources */,
</span><span class="lines">@@ -29791,6 +29813,7 @@
</span><span class="cx">                                 078E090217D14CEE00420AA1 /* MediaStreamTrack.cpp in Sources */,
</span><span class="cx">                                 078E090317D14CEE00420AA1 /* MediaStreamTrackEvent.cpp in Sources */,
</span><span class="cx">                                 07FFDE68181AED420072D409 /* MediaStreamTrackPrivate.cpp in Sources */,
</span><ins>+                                510310611BA8E10D003329C0 /* IDBDatabaseIdentifier.cpp in Sources */,
</ins><span class="cx">                                 076306D217E1478D005A7C4E /* MediaStreamTrackSourcesRequest.cpp in Sources */,
</span><span class="cx">                                 CD641EBF1819B36000EE4C41 /* MediaTimeAVFoundation.cpp in Sources */,
</span><span class="cx">                                 CD60C0C6193E87C7003C656B /* MediaTimeQTKit.mm in Sources */,
</span><span class="lines">@@ -30829,6 +30852,7 @@
</span><span class="cx">                                 498391580F1E776900C23782 /* WebKitCSSMatrix.cpp in Sources */,
</span><span class="cx">                                 8AA61CFF144D595B00F37350 /* WebKitCSSRegionRule.cpp in Sources */,
</span><span class="cx">                                 BC9ADD800CC4092200098C4C /* WebKitCSSTransformValue.cpp in Sources */,
</span><ins>+                                5103105A1BA8DB56003329C0 /* IDBOpenDBRequestImpl.cpp in Sources */,
</ins><span class="cx">                                 3FFFF9A8159D9A550020BBD5 /* WebKitCSSViewportRule.cpp in Sources */,
</span><span class="cx">                                 1A1414B513A0F0500019996C /* WebKitFontFamilyNames.cpp in Sources */,
</span><span class="cx">                                 D7613A501474F13F00DB8606 /* WebKitNamedFlow.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformLoggingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/Logging.h (189878 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/Logging.h        2015-09-16 19:55:15 UTC (rev 189878)
+++ trunk/Source/WebCore/platform/Logging.h        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -52,6 +52,7 @@
</span><span class="cx"> M(Gamepad) \
</span><span class="cx"> M(History) \
</span><span class="cx"> M(IconDatabase) \
</span><ins>+ M(IndexedDB) \
</ins><span class="cx"> M(Layout) \
</span><span class="cx"> M(Loading) \
</span><span class="cx"> M(Media) \
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (189878 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2015-09-16 19:55:15 UTC (rev 189878)
+++ trunk/Source/WebKit/mac/ChangeLog        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2015-09-16 Brady Eidson <beidson@apple.com>
+
+ Have window.indexedDB.deleteDatabase return an IDBOpenDBRequest.
+ https://bugs.webkit.org/show_bug.cgi?id=149229
+
+ Reviewed by Alex Christensen.
+
+ * WebView/WebView.mm:
+ (-[WebView _preferencesChanged:]): Enable IDB in WK1.
+
</ins><span class="cx"> 2015-09-15 Ryosuke Niwa <rniwa@webkit.org>
</span><span class="cx">
</span><span class="cx"> Add ShadowRoot interface and Element.prototype.attachShadow
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (189878 => 189879)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebView.mm        2015-09-16 19:55:15 UTC (rev 189878)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm        2015-09-16 20:45:01 UTC (rev 189879)
</span><span class="lines">@@ -2441,6 +2441,10 @@
</span><span class="cx"> RuntimeEnabledFeatures::sharedFeatures().setGamepadsEnabled([preferences gamepadsEnabled]);
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+#if ENABLE(INDEXED_DATABASE)
+ RuntimeEnabledFeatures::sharedFeatures().setWebkitIndexedDBEnabled(true);
+#endif
+
</ins><span class="cx"> NSTimeInterval timeout = [preferences incrementalRenderingSuppressionTimeoutInSeconds];
</span><span class="cx"> if (timeout > 0)
</span><span class="cx"> settings.setIncrementalRenderingSuppressionTimeoutInSeconds(timeout);
</span></span></pre>
</div>
</div>
</body>
</html>