ladybird/Libraries/LibWeb/IndexedDB
Andreas Kling 28e648714d LibWeb: Stop internal IDB databases retaining realms
The process-wide IndexedDB database registry stores internal database
objects in GC roots. Those objects do not need a JavaScript shape or
realm, but they inherited one from PlatformObject. This let an internal
database keep its creating realm, window, and script graph alive.

Make the internal database construct a plain GC cell instead. Callers
provide a heap when they need snapshots of associated connections. This
means the database no longer needs to remember its creating realm.

On x.com, the rooted internal database subgraph shrank from the whole
page graph, including 24k executables, to the database metadata itself.
2026-05-17 00:29:18 +02:00
..
Internal LibWeb: Stop internal IDB databases retaining realms 2026-05-17 00:29:18 +02:00
ConnectionState.h LibWeb/IndexedDB: Remove spin_until from waiting for connection closure 2025-10-08 17:25:29 +02:00
IDBCursor.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
IDBCursor.h LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
IDBCursor.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
IDBCursorWithValue.h LibWeb/IDB: Implement IDBCursorWithValue interface 2025-05-13 10:48:40 -06:00
IDBCursorWithValue.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
IDBDatabase.cpp LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
IDBDatabase.h LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
IDBDatabase.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
IDBFactory.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
IDBFactory.h LibWeb/IDB: Implement IDBFactory::databases() 2025-03-14 08:54:39 +01:00
IDBFactory.idl LibWeb/IDB: Implement IDBFactory::databases() 2025-03-14 08:54:39 +01:00
IDBIndex.cpp LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
IDBIndex.h LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
IDBIndex.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
IDBKeyRange.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
IDBKeyRange.h LibWeb/IDB: Use enum flags in IDBKeyRange 2025-05-13 22:46:43 +12:00
IDBKeyRange.idl LibWeb: Implement IDBKeyRange 2025-01-14 23:46:09 +01:00
IDBObjectStore.cpp LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
IDBObjectStore.h LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
IDBObjectStore.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
IDBOpenDBRequest.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
IDBOpenDBRequest.h LibWeb: Implement IDB's "get the parent" algorithms 2026-03-20 23:59:35 -05:00
IDBOpenDBRequest.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
IDBRecord.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
IDBRecord.h LibWeb: Heap-allocate SerializationRecord in IndexedDB ObjectStoreRecord 2026-03-21 08:41:13 -05:00
IDBRecord.idl LibWeb/IDB: Implement IDBRecord 2025-08-27 16:13:25 +02:00
IDBRequest.cpp LibJS+LibWeb: Use the unified Visitor for Variant-holding members 2026-05-15 08:51:17 +02:00
IDBRequest.h LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
IDBRequest.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
IDBTransaction.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
IDBTransaction.h LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
IDBTransaction.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
IDBVersionChangeEvent.cpp LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
IDBVersionChangeEvent.h LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
IDBVersionChangeEvent.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00