ladybird/Libraries/LibWeb
Timothy Flynn 64abc6101d LibWeb+WebWorker: Use IPC mechanics for structured serialization
Our structured serialization implementation had its own bespoke encoder
and decoder to serialize JS values. It also used a u32 buffer under the
hood, which made using its structures a bit awkward. We had previously
worked around its data structures in transferable streams, which nested
transfers of MessagePort instances. We basically had to add hooks into
the MessagePort to route to the correct transfer receiving steps, and
we could not invoke the correct AOs directly as the spec dictates.

We now use IPC mechanics to encode and decode data. This works because,
although we are encoding JS values, we are only ultimately encoding
primitive and basic AK types. The resulting data structures actually
enforce that we implement transferable streams exactly as the spec is
worded (I had planned to do that in a separate commit, but the fallout
of this patch actually required that change).
2025-07-18 10:09:02 -04:00
..
Animations LibWeb: Resolve conflicts in compute_keyframe_values correctly 2025-06-23 15:19:07 +01:00
ARIA Everywhere: Run clang-format 2025-05-14 02:01:59 -06:00
Bindings LibWeb+WebWorker: Use IPC mechanics for structured serialization 2025-07-18 10:09:02 -04:00
Clipboard LibWeb: Implement navigator.clipboard.read 2025-05-02 17:46:16 -04:00
Compression LibCompress: Error out when encounters and incomplete stream 2025-06-14 18:26:56 -04:00
ContentSecurityPolicy LibWeb/CSP: Implement the style-src-attr directive 2025-07-18 11:58:04 +12:00
Cookie Everywhere: Replace DateTime::to_string() with UnixDateTime::to_string() 2025-06-19 18:42:45 -06:00
CredentialManagement Meta: Enforce newlines around namespaces 2025-05-14 02:01:59 -06:00
Crypto LibWeb+WebWorker: Use IPC mechanics for structured serialization 2025-07-18 10:09:02 -04:00
CSS LibWeb: Stub CSSCounterStyleRule 2025-07-18 11:51:41 +01:00
DOM LibWeb: Use forward-declarations of structured serialized types 2025-07-18 10:09:02 -04:00
DOMURL LibWeb: Use infra sorting for URLSearchParam's sort() 2025-05-12 11:20:32 +02:00
Editing LibWeb: Don't resolve colors with unresolved components 2025-07-16 13:05:33 +01:00
Encoding AK+LibJS: Extract some UTF-16 helpers for use in an outside class 2025-07-03 09:51:56 -04:00
EncryptedMediaExtensions
EntriesAPI LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
EventTiming Meta: Enforce newlines around namespaces 2025-05-14 02:01:59 -06:00
Fetch LibWeb: Use forward-declarations of structured serialized types 2025-07-18 10:09:02 -04:00
FileAPI LibWeb+WebWorker: Use IPC mechanics for structured serialization 2025-07-18 10:09:02 -04:00
Geolocation LibWeb: Implement emulated Geolocation position retrieval 2025-06-24 11:33:41 +02:00
Geometry LibWeb+WebWorker: Use IPC mechanics for structured serialization 2025-07-18 10:09:02 -04:00
HighResolutionTime LibWeb: Add the EpochTimestamp IDL typedef 2025-06-21 10:00:29 +02:00
HTML LibWeb+WebWorker: Use IPC mechanics for structured serialization 2025-07-18 10:09:02 -04:00
IndexedDB LibWeb: Implement cleanup_indexed_database_transactions 2025-06-18 19:05:41 +12:00
Infra LibWeb: Prefer using equals_ignoring_ascii_case 2025-05-21 13:45:02 +01:00
Internals Tests: Implement fuzzy screenshot comparisons in test-web 2025-07-17 12:59:11 +01:00
IntersectionObserver LibWeb: Convert trivial attributes to FrozenArray 2025-04-25 16:43:43 +02:00
Layout LibWeb: Improve graphical list item marker positioning 2025-07-17 09:35:09 +01:00
Loader LibWeb: Restore flags to prevent formatting timestamps as local time 2025-06-25 23:41:04 +02:00
MathML LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
MediaCapabilitiesAPI LibWeb: Add missing WebIDL/Types include to MediaCapabilities.h 2025-05-09 23:14:27 -06:00
MediaSourceExtensions LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
MimeSniff LibWeb/MimeSniff: Add MP3 without ID3 sniffing 2025-06-09 07:50:26 -06:00
MixedContent
NavigationTiming Meta: Enforce newlines around namespaces 2025-05-14 02:01:59 -06:00
Page Tests: Replace load-reference-page debug action with internals method 2025-07-17 12:59:11 +01:00
Painting LibWeb: Improve graphical list item marker positioning 2025-07-17 09:35:09 +01:00
PerformanceTimeline LibWeb: Update FIXMEs about FrozenArray with more up-to-date description 2025-04-25 16:43:43 +02:00
PermissionsPolicy LibWeb: Remove OOM handling from the AutoplayAllowlist 2025-03-30 16:18:57 +01:00
Platform LibWeb: Exit the current process when event loop quits during spin_until 2025-04-30 11:12:23 -04:00
ReferrerPolicy
RequestIdleCallback LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
ResizeObserver LibWeb: Convert trivial attributes to FrozenArray 2025-04-25 16:43:43 +02:00
ResourceTiming LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
SecureContexts
Selection LibWeb: Use correct previous word location when moving selection offset 2025-07-03 10:28:38 +01:00
ServiceWorker LibWeb: Stub CacheStorage::has() 2025-06-08 18:26:13 +02:00
SRI LibWeb: Fix SRI handling of badly-formatted strings 2025-05-06 13:02:58 -04:00
StorageAPI Everywhere: Implement persistence of localStorage using sqlite 2025-06-12 17:04:35 +02:00
Streams LibWeb+WebWorker: Use IPC mechanics for structured serialization 2025-07-18 10:09:02 -04:00
SVG LibWeb/SVG: Add serialization of Paths 2025-07-17 13:59:23 -04:00
TrustedTypes
UIEvents LibWeb: Start integrating the editing API with user keyboard input 2025-05-17 00:29:19 +02:00
URLPattern LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
UserTiming LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebAssembly LibWasm: Use correct null check when getting iterator method 2025-07-13 11:28:19 +02:00
WebAudio LibWeb/WebAudio: Implement AudioNode::disconnect() 2025-07-09 17:52:06 -06:00
WebDriver LibWeb: Use GC::Ptr for BrowsingContext pointer saved in Document 2025-07-17 15:55:30 +01:00
WebGL LibWeb+LibGfx: Replace BackingStore with PaintingSurface 2025-07-04 16:12:47 +02:00
WebIDL LibWeb+WebWorker: Use IPC mechanics for structured serialization 2025-07-18 10:09:02 -04:00
WebSockets LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebVTT LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
Worker LibWeb+WebWorker: Use IPC mechanics for structured serialization 2025-07-18 10:09:02 -04:00
XHR LibWeb: Include submitter name and value when constructing FormData 2025-07-15 20:49:39 +02:00
XLink
XML LibWeb: Check parent node exists before checking its type 2025-07-15 18:37:50 +12:00
CMakeLists.txt LibWeb: Stub CSSCounterStyleRule 2025-07-18 11:51:41 +01:00
Dump.cpp LibWeb: Only show namespace if non-default in DOM tree dump 2025-07-18 10:54:50 +01:00
Dump.h LibWeb/CSS: Add basic implementation of CSSMarginRule 2025-05-16 11:01:39 +01:00
Forward.h LibWeb+WebWorker: Use IPC mechanics for structured serialization 2025-07-18 10:09:02 -04:00
idl_files.cmake LibWeb: Stub CSSCounterStyleRule 2025-07-18 11:51:41 +01:00
InvalidateDisplayList.h
Namespace.cpp
Namespace.h
PixelUnits.cpp
PixelUnits.h
TraversalDecision.h
TraversalOrder.h
TreeNode.h LibWeb: Move non-DOM-related methods from DOM::Node to TreeNode 2025-06-07 16:51:00 +02:00