Title: [168889] trunk/Source/WebKit2
- Revision
- 168889
- Author
- m...@apple.com
- Date
- 2014-05-14 20:58:04 -0700 (Wed, 14 May 2014)
Log Message
Database Process crashes after loading html5test.com
https://bugs.webkit.org/show_bug.cgi?id=132938
<rdar://problem/16241419>
Reviewed by Ryosuke Niwa.
* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
(WebKit::DatabaseProcessIDBConnection::disconnectedFromWebProcess): Expand comment
about the null check.
(WebKit::DatabaseProcessIDBConnection::deleteDatabase): Call disconnectedFromWebProcess
to pick up its null check and to avoid duplicating code.
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (168888 => 168889)
--- trunk/Source/WebKit2/ChangeLog 2014-05-15 03:29:12 UTC (rev 168888)
+++ trunk/Source/WebKit2/ChangeLog 2014-05-15 03:58:04 UTC (rev 168889)
@@ -1,3 +1,17 @@
+2014-05-14 Maciej Stachowiak <m...@apple.com>
+
+ Database Process crashes after loading html5test.com
+ https://bugs.webkit.org/show_bug.cgi?id=132938
+ <rdar://problem/16241419>
+
+ Reviewed by Ryosuke Niwa.
+
+ * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
+ (WebKit::DatabaseProcessIDBConnection::disconnectedFromWebProcess): Expand comment
+ about the null check.
+ (WebKit::DatabaseProcessIDBConnection::deleteDatabase): Call disconnectedFromWebProcess
+ to pick up its null check and to avoid duplicating code.
+
2014-05-14 Benjamin Poulain <bpoul...@apple.com>
[iOS][WK2] The top/bottom edges should not be sticky when restoring the scroll position from the dynamic size update history
Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp (168888 => 168889)
--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp 2014-05-15 03:29:12 UTC (rev 168888)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp 2014-05-15 03:58:04 UTC (rev 168889)
@@ -58,7 +58,8 @@
void DatabaseProcessIDBConnection::disconnectedFromWebProcess()
{
// It's possible that the m_uniqueIDBDatabase pointer has already been cleared
- // if the represented database was deleted.
+ // if the represented database was deleted, or if it was closed between delete
+ // and the delete callback
if (!m_uniqueIDBDatabase)
return;
@@ -97,11 +98,9 @@
RefPtr<DatabaseProcessIDBConnection> connection(this);
m_uniqueIDBDatabase->deleteDatabase([connection, this, requestID](bool success) {
- if (success) {
- // If the database was deleted, this connection should detach from it so it can be cleaned up.
- m_uniqueIDBDatabase->unregisterConnection(*this);
- m_uniqueIDBDatabase = nullptr;
- }
+ if (success)
+ disconnectedFromWebProcess();
+
connection->send(Messages::WebIDBServerConnection::DidDeleteDatabase(requestID, success));
});
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes