Title: [248651] branches/safari-608-branch/Source/WebCore
- Revision
- 248651
- Author
- alanc...@apple.com
- Date
- 2019-08-13 18:19:20 -0700 (Tue, 13 Aug 2019)
Log Message
Cherry-pick r248597. rdar://problem/54282817
Make sure UniqueIDBDatabaseConnection unregister itself from IDBServer
https://bugs.webkit.org/show_bug.cgi?id=200650
<rdar://problem/54236010>
Reviewed by Youenn Fablet.
We register UniqueIDBDatabaseConnection unconditionally to IDBServer but fail to unregister if UniqueIDBDatabase
of UniqueIDBDatabaseConnection is gone.
* Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection):
* Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::server):
* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::~UniqueIDBDatabaseTransaction):
* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248597 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Modified Paths
Diff
Modified: branches/safari-608-branch/Source/WebCore/ChangeLog (248650 => 248651)
--- branches/safari-608-branch/Source/WebCore/ChangeLog 2019-08-14 01:05:27 UTC (rev 248650)
+++ branches/safari-608-branch/Source/WebCore/ChangeLog 2019-08-14 01:19:20 UTC (rev 248651)
@@ -1,5 +1,52 @@
2019-08-13 Alan Coon <alanc...@apple.com>
+ Cherry-pick r248597. rdar://problem/54282817
+
+ Make sure UniqueIDBDatabaseConnection unregister itself from IDBServer
+ https://bugs.webkit.org/show_bug.cgi?id=200650
+ <rdar://problem/54236010>
+
+ Reviewed by Youenn Fablet.
+
+ We register UniqueIDBDatabaseConnection unconditionally to IDBServer but fail to unregister if UniqueIDBDatabase
+ of UniqueIDBDatabaseConnection is gone.
+
+ * Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
+ (WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection):
+ (WebCore::IDBServer::UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection):
+ * Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
+ (WebCore::IDBServer::UniqueIDBDatabaseConnection::server):
+ * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
+ (WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
+ (WebCore::IDBServer::UniqueIDBDatabaseTransaction::~UniqueIDBDatabaseTransaction):
+ * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
+
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248597 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2019-08-13 Sihui Liu <sihui_...@apple.com>
+
+ Make sure UniqueIDBDatabaseConnection unregister itself from IDBServer
+ https://bugs.webkit.org/show_bug.cgi?id=200650
+ <rdar://problem/54236010>
+
+ Reviewed by Youenn Fablet.
+
+ We register UniqueIDBDatabaseConnection unconditionally to IDBServer but fail to unregister if UniqueIDBDatabase
+ of UniqueIDBDatabaseConnection is gone.
+
+ * Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
+ (WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection):
+ (WebCore::IDBServer::UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection):
+ * Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
+ (WebCore::IDBServer::UniqueIDBDatabaseConnection::server):
+ * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
+ (WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
+ (WebCore::IDBServer::UniqueIDBDatabaseTransaction::~UniqueIDBDatabaseTransaction):
+ * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
+
+2019-08-13 Alan Coon <alanc...@apple.com>
+
Cherry-pick r248499. rdar://problem/54237800
Can’t sort videos on a YouTube channel page on iPad
Modified: branches/safari-608-branch/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp (248650 => 248651)
--- branches/safari-608-branch/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp 2019-08-14 01:05:27 UTC (rev 248650)
+++ branches/safari-608-branch/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp 2019-08-14 01:19:20 UTC (rev 248651)
@@ -45,17 +45,18 @@
UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection(UniqueIDBDatabase& database, ServerOpenDBRequest& request)
: m_database(makeWeakPtr(database))
+ , m_server(makeWeakPtr(m_database->server()))
, m_connectionToClient(request.connection())
, m_openRequestIdentifier(request.requestData().requestIdentifier())
{
- m_database->server().registerDatabaseConnection(*this);
+ m_server->registerDatabaseConnection(*this);
m_connectionToClient->registerDatabaseConnection(*this);
}
UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection()
{
- if (m_database)
- m_database->server().unregisterDatabaseConnection(*this);
+ if (m_server)
+ m_server->unregisterDatabaseConnection(*this);
m_connectionToClient->unregisterDatabaseConnection(*this);
}
Modified: branches/safari-608-branch/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseConnection.h (248650 => 248651)
--- branches/safari-608-branch/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseConnection.h 2019-08-14 01:05:27 UTC (rev 248650)
+++ branches/safari-608-branch/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseConnection.h 2019-08-14 01:19:20 UTC (rev 248651)
@@ -54,6 +54,7 @@
const IDBResourceIdentifier& openRequestIdentifier() { return m_openRequestIdentifier; }
UniqueIDBDatabase* database() { return m_database.get(); }
+ IDBServer* server() { return m_server.get(); }
IDBConnectionToClient& connectionToClient() { return m_connectionToClient; }
void connectionPendingCloseFromClient();
@@ -90,6 +91,7 @@
UniqueIDBDatabaseConnection(UniqueIDBDatabase&, ServerOpenDBRequest&);
WeakPtr<UniqueIDBDatabase> m_database;
+ WeakPtr<IDBServer> m_server;
Ref<IDBConnectionToClient> m_connectionToClient;
IDBResourceIdentifier m_openRequestIdentifier;
Modified: branches/safari-608-branch/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp (248650 => 248651)
--- branches/safari-608-branch/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp 2019-08-14 01:05:27 UTC (rev 248650)
+++ branches/safari-608-branch/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp 2019-08-14 01:19:20 UTC (rev 248651)
@@ -53,9 +53,8 @@
if (m_transactionInfo.mode() == IDBTransactionMode::Versionchange)
m_originalDatabaseInfo = std::make_unique<IDBDatabaseInfo>(database->info());
- auto& server = database->server();
- m_server = makeWeakPtr(server);
- server.registerTransaction(*this);
+ if (auto* server = m_databaseConnection->server())
+ server->registerTransaction(*this);
}
UniqueIDBDatabaseTransaction::~UniqueIDBDatabaseTransaction()
@@ -63,8 +62,8 @@
if (auto database = m_databaseConnection->database())
database->transactionDestroyed(*this);
- if (m_server)
- m_server->unregisterTransaction(*this);
+ if (auto* server = m_databaseConnection->server())
+ server->unregisterTransaction(*this);
}
IDBDatabaseInfo* UniqueIDBDatabaseTransaction::originalDatabaseInfo() const
Modified: branches/safari-608-branch/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h (248650 => 248651)
--- branches/safari-608-branch/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h 2019-08-14 01:05:27 UTC (rev 248650)
+++ branches/safari-608-branch/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h 2019-08-14 01:19:20 UTC (rev 248651)
@@ -101,7 +101,6 @@
Ref<UniqueIDBDatabaseConnection> m_databaseConnection;
IDBTransactionInfo m_transactionInfo;
- WeakPtr<IDBServer> m_server;
std::unique_ptr<IDBDatabaseInfo> m_originalDatabaseInfo;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes