Title: [290357] trunk/Source/WebCore
- Revision
- 290357
- Author
- sihui_...@apple.com
- Date
- 2022-02-23 00:50:18 -0800 (Wed, 23 Feb 2022)
Log Message
REGRESSION(r289474): [iOS] ASSERTION FAILED: isMainThread() under WebCore::IDBServer::UniqueIDBDatabase::abortActiveTransactions()
https://bugs.webkit.org/show_bug.cgi?id=237066
<rdar://problem/89324810>
Reviewed by Chris Dumez.
We no longer need the assertion because the function can be called on non-main thread since r289474, where we
started to abort transactions for suspension on WorkQueue. To avoid confusion, rename mainThreadAbortResult to
suspensionAbortResult.
* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortActiveTransactions):
* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::setSuspensionAbortResult):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::suspensionAbortResult const):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::setMainThreadAbortResult): Deleted.
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::mainThreadAbortResult const): Deleted.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (290356 => 290357)
--- trunk/Source/WebCore/ChangeLog 2022-02-23 08:23:37 UTC (rev 290356)
+++ trunk/Source/WebCore/ChangeLog 2022-02-23 08:50:18 UTC (rev 290357)
@@ -1,3 +1,24 @@
+2022-02-23 Sihui Liu <sihui_...@apple.com>
+
+ REGRESSION(r289474): [iOS] ASSERTION FAILED: isMainThread() under WebCore::IDBServer::UniqueIDBDatabase::abortActiveTransactions()
+ https://bugs.webkit.org/show_bug.cgi?id=237066
+ <rdar://problem/89324810>
+
+ Reviewed by Chris Dumez.
+
+ We no longer need the assertion because the function can be called on non-main thread since r289474, where we
+ started to abort transactions for suspension on WorkQueue. To avoid confusion, rename mainThreadAbortResult to
+ suspensionAbortResult.
+
+ * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
+ (WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
+ (WebCore::IDBServer::UniqueIDBDatabase::abortActiveTransactions):
+ * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
+ (WebCore::IDBServer::UniqueIDBDatabaseTransaction::setSuspensionAbortResult):
+ (WebCore::IDBServer::UniqueIDBDatabaseTransaction::suspensionAbortResult const):
+ (WebCore::IDBServer::UniqueIDBDatabaseTransaction::setMainThreadAbortResult): Deleted.
+ (WebCore::IDBServer::UniqueIDBDatabaseTransaction::mainThreadAbortResult const): Deleted.
+
2022-02-23 Kimmo Kinnunen <kkinnu...@apple.com>
Crash when calling WEBGL_lose_context.loseContext() after the context has been lost
Modified: trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp (290356 => 290357)
--- trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp 2022-02-23 08:23:37 UTC (rev 290356)
+++ trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp 2022-02-23 08:50:18 UTC (rev 290357)
@@ -1184,9 +1184,8 @@
return;
}
- // If transaction is already aborted on the main thread for suspension,
- // return the result of that abort.
- if (auto existingAbortResult = takenTransaction->mainThreadAbortResult()) {
+ // If transaction is already aborted for suspension, return the result of that abort.
+ if (auto existingAbortResult = takenTransaction->suspensionAbortResult()) {
callback(*existingAbortResult);
transactionCompleted(WTFMove(takenTransaction));
return;
@@ -1475,11 +1474,9 @@
void UniqueIDBDatabase::abortActiveTransactions()
{
- ASSERT(isMainThread());
-
for (auto& identifier : copyToVector(m_inProgressTransactions.keys())) {
auto transaction = m_inProgressTransactions.get(identifier);
- transaction->setMainThreadAbortResult(m_backingStore->abortTransaction(transaction->info().identifier()));
+ transaction->setSuspensionAbortResult(m_backingStore->abortTransaction(transaction->info().identifier()));
}
}
Modified: trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h (290356 => 290357)
--- trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h 2022-02-23 08:23:37 UTC (rev 290356)
+++ trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h 2022-02-23 08:50:18 UTC (rev 290357)
@@ -87,8 +87,8 @@
const Vector<uint64_t>& objectStoreIdentifiers();
- void setMainThreadAbortResult(const IDBError& error) { m_mainThreadAbortResult = { error }; }
- const std::optional<IDBError>& mainThreadAbortResult() const { return m_mainThreadAbortResult; }
+ void setSuspensionAbortResult(const IDBError& error) { m_suspensionAbortResult = { error }; }
+ const std::optional<IDBError>& suspensionAbortResult() const { return m_suspensionAbortResult; }
private:
UniqueIDBDatabaseTransaction(UniqueIDBDatabaseConnection&, const IDBTransactionInfo&);
@@ -100,7 +100,7 @@
Vector<uint64_t> m_objectStoreIdentifiers;
- std::optional<IDBError> m_mainThreadAbortResult;
+ std::optional<IDBError> m_suspensionAbortResult;
Deque<IDBError> m_requestResults;
};
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes