haikuwebkit/Source/WebCore/Modules/indexeddb
Sihui Liu 190e8e04b1 IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

* wtf/CrossThreadTask.h:


Canonical link: https://commits.webkit.org/240799@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281384 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-22 01:33:10 +00:00
..
client Implement IDBTransaction.commit() 2021-07-19 23:09:48 +00:00
server Implement IDBTransaction.durability 2021-07-29 04:04:18 +00:00
shared Implement IDBTransaction.durability 2021-07-29 04:04:18 +00:00
IDBActiveDOMObject.h Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IDBCursor.cpp [IndexedDB] KeyPath validity checks should happen on the cloned value, not the original one 2021-07-09 00:11:20 +00:00
IDBCursor.h Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
IDBCursor.idl Add support for IDBCursor.request 2021-06-18 00:26:11 +00:00
IDBCursorDirection.h
IDBCursorDirection.idl Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IDBCursorWithValue.cpp Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IDBCursorWithValue.h Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IDBCursorWithValue.idl Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IDBDatabase.cpp Implement IDBTransaction.durability 2021-07-29 04:04:18 +00:00
IDBDatabase.h Implement IDBTransaction.durability 2021-07-29 04:04:18 +00:00
IDBDatabase.idl Implement IDBTransaction.durability 2021-07-29 04:04:18 +00:00
IDBDatabaseIdentifier.cpp Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IDBDatabaseIdentifier.h Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
IDBDatabaseNameAndVersionRequest.cpp Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
IDBDatabaseNameAndVersionRequest.h Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
IDBFactory.cpp Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
IDBFactory.h Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
IDBFactory.idl Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IDBGetAllResult.cpp Make more IndexedDB objects iso-heap'ed 2021-04-25 22:06:59 +00:00
IDBGetAllResult.h Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
IDBGetResult.cpp Fix some inefficient uses of SharedBuffer 2021-06-10 15:08:18 +00:00
IDBGetResult.h Fix some inefficient uses of SharedBuffer 2021-06-10 15:08:18 +00:00
IDBIndex.cpp Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
IDBIndex.h Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
IDBIndex.idl IDBIndex.keyPath should keep returning the same object 2021-07-07 21:12:29 +00:00
IDBKey.cpp Make more IndexedDB objects iso-heap'ed 2021-04-25 22:06:59 +00:00
IDBKey.h Make more IndexedDB objects iso-heap'ed 2021-04-25 22:06:59 +00:00
IDBKeyData.cpp Remove StringBuilder::appendLiteral 2021-05-24 21:51:47 +00:00
IDBKeyData.h Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
IDBKeyPath.cpp Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IDBKeyPath.h Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
IDBKeyRange.cpp Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IDBKeyRange.h Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IDBKeyRange.idl Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IDBKeyRangeData.cpp Shrink some IndexedDB-related classes 2021-04-06 20:43:00 +00:00
IDBKeyRangeData.h Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
IDBObjectStore.cpp [IndexedDB] KeyPath validity checks should happen on the cloned value, not the original one 2021-07-09 00:11:20 +00:00
IDBObjectStore.h [IndexedDB] KeyPath validity checks should happen on the cloned value, not the original one 2021-07-09 00:11:20 +00:00
IDBObjectStore.idl IDBObjectStore.keyPath should keep returning the same object 2021-07-07 23:00:36 +00:00
IDBOpenDBRequest.cpp Shrink some IndexedDB-related classes 2021-04-06 20:43:00 +00:00
IDBOpenDBRequest.h Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IDBOpenDBRequest.idl Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IDBRequest.cpp IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread 2021-08-22 01:33:10 +00:00
IDBRequest.h Implement IDBTransaction.commit() 2021-07-19 23:09:48 +00:00
IDBRequest.idl Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IDBRequestCompletionEvent.cpp Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IDBRequestCompletionEvent.h Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IDBTransaction.cpp Implement IDBTransaction.commit() 2021-07-19 23:09:48 +00:00
IDBTransaction.h Implement IDBTransaction.durability 2021-07-29 04:04:18 +00:00
IDBTransaction.idl Implement IDBTransaction.durability 2021-07-29 04:04:18 +00:00
IDBTransactionDurability.h Implement IDBTransaction.durability 2021-07-29 04:04:18 +00:00
IDBTransactionDurability.idl Implement IDBTransaction.durability 2021-07-29 04:04:18 +00:00
IDBTransactionMode.h Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IDBTransactionMode.idl Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IDBValue.cpp imported/w3c/web-platform-tests/webmessaging/broadcastchannel/blobs.html is a flaky failure since implementing BlobChannel 2021-08-02 18:46:51 +00:00
IDBValue.h Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
IDBVersionChangeEvent.cpp Next step toward using std::optional directly instead of through WTF::Optional typedef 2021-05-28 01:26:23 +00:00
IDBVersionChangeEvent.h Remove <wtf/Optional.h> 2021-06-02 06:45:51 +00:00
IDBVersionChangeEvent.idl Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports 2021-03-28 19:14:20 +00:00
IndexedDB.h Shrink some IndexedDB-related classes 2021-04-06 20:43:00 +00:00
WindowOrWorkerGlobalScope+IndexedDatabase.idl Merge DOMWindow+IndexedDatabase.idl and WorkerGlobalScope+IndexedDatabase.idl into a single WindowOrWorkerGlobalScope+IndexedDatabase.idl to match the IndexedDB spec 2021-03-31 20:15:07 +00:00
WindowOrWorkerGlobalScopeIndexedDatabase.cpp Merge DOMWindow+IndexedDatabase.idl and WorkerGlobalScope+IndexedDatabase.idl into a single WindowOrWorkerGlobalScope+IndexedDatabase.idl to match the IndexedDB spec 2021-03-31 20:15:07 +00:00
WindowOrWorkerGlobalScopeIndexedDatabase.h Merge DOMWindow+IndexedDatabase.idl and WorkerGlobalScope+IndexedDatabase.idl into a single WindowOrWorkerGlobalScope+IndexedDatabase.idl to match the IndexedDB spec 2021-03-31 20:15:07 +00:00