Title: [241170] trunk/Source/WebCore
- Revision
- 241170
- Author
- sihui_...@apple.com
- Date
- 2019-02-07 16:45:34 -0800 (Thu, 07 Feb 2019)
Log Message
REGRESSION(r239887): Crash under IDBConnectionToClient::didDeleteDatabase(WebCore::IDBResultData const&)
https://bugs.webkit.org/show_bug.cgi?id=194402
<rdar://problem/47858241>
Reviewed by Geoffrey Garen.
r239887 removed a reference cycle of IDBConnectionToClient so that IDBConnectionToClient would no longer be
around forever. Therefore, ServerOpenRequest should keep a reference to IDBConnectionToClient to make sure it
is valid during access.
* Modules/indexeddb/server/ServerOpenDBRequest.cpp:
(WebCore::IDBServer::ServerOpenDBRequest::maybeNotifyRequestBlocked):
(WebCore::IDBServer::ServerOpenDBRequest::notifyDidDeleteDatabase):
* Modules/indexeddb/server/ServerOpenDBRequest.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (241169 => 241170)
--- trunk/Source/WebCore/ChangeLog 2019-02-08 00:02:49 UTC (rev 241169)
+++ trunk/Source/WebCore/ChangeLog 2019-02-08 00:45:34 UTC (rev 241170)
@@ -1,3 +1,20 @@
+2019-02-07 Sihui Liu <sihui_...@apple.com>
+
+ REGRESSION(r239887): Crash under IDBConnectionToClient::didDeleteDatabase(WebCore::IDBResultData const&)
+ https://bugs.webkit.org/show_bug.cgi?id=194402
+ <rdar://problem/47858241>
+
+ Reviewed by Geoffrey Garen.
+
+ r239887 removed a reference cycle of IDBConnectionToClient so that IDBConnectionToClient would no longer be
+ around forever. Therefore, ServerOpenRequest should keep a reference to IDBConnectionToClient to make sure it
+ is valid during access.
+
+ * Modules/indexeddb/server/ServerOpenDBRequest.cpp:
+ (WebCore::IDBServer::ServerOpenDBRequest::maybeNotifyRequestBlocked):
+ (WebCore::IDBServer::ServerOpenDBRequest::notifyDidDeleteDatabase):
+ * Modules/indexeddb/server/ServerOpenDBRequest.h:
+
2019-02-07 Timothy Hatcher <timo...@apple.com>
Overflow element scrollbar is light for dark mode content.
Modified: trunk/Source/WebCore/Modules/indexeddb/server/ServerOpenDBRequest.cpp (241169 => 241170)
--- trunk/Source/WebCore/Modules/indexeddb/server/ServerOpenDBRequest.cpp 2019-02-08 00:02:49 UTC (rev 241169)
+++ trunk/Source/WebCore/Modules/indexeddb/server/ServerOpenDBRequest.cpp 2019-02-08 00:45:34 UTC (rev 241170)
@@ -60,7 +60,7 @@
return;
uint64_t requestedVersion = isOpenRequest() ? m_requestData.requestedVersion() : 0;
- m_connection.notifyOpenDBRequestBlocked(m_requestData.requestIdentifier(), currentVersion, requestedVersion);
+ m_connection->notifyOpenDBRequestBlocked(m_requestData.requestIdentifier(), currentVersion, requestedVersion);
m_notifiedBlocked = true;
}
@@ -69,7 +69,7 @@
{
ASSERT(isDeleteRequest());
- m_connection.didDeleteDatabase(IDBResultData::deleteDatabaseSuccess(m_requestData.requestIdentifier(), info));
+ m_connection->didDeleteDatabase(IDBResultData::deleteDatabaseSuccess(m_requestData.requestIdentifier(), info));
}
void ServerOpenDBRequest::notifiedConnectionsOfVersionChange(HashSet<uint64_t>&& connectionIdentifiers)
Modified: trunk/Source/WebCore/Modules/indexeddb/server/ServerOpenDBRequest.h (241169 => 241170)
--- trunk/Source/WebCore/Modules/indexeddb/server/ServerOpenDBRequest.h 2019-02-08 00:02:49 UTC (rev 241169)
+++ trunk/Source/WebCore/Modules/indexeddb/server/ServerOpenDBRequest.h 2019-02-08 00:45:34 UTC (rev 241170)
@@ -63,7 +63,7 @@
private:
ServerOpenDBRequest(IDBConnectionToClient&, const IDBRequestData&);
- IDBConnectionToClient& m_connection;
+ Ref<IDBConnectionToClient> m_connection;
IDBRequestData m_requestData;
bool m_notifiedBlocked { false };
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes