1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 06:18:12 +00:00
serenity/Userland/Libraries/LibWeb
Timothy Flynn 9b483625e6 LibIPC+Everywhere: Change IPC decoders to construct values in-place
Currently, the generated IPC decoders will default-construct the type to
be decoded, then pass that value by reference to the concrete decoder.
This, of course, requires that the type is default-constructible. This
was an issue for decoding Variants, which had to require the first type
in the Variant list is Empty, to ensure it is default constructible.

Further, this made it possible for values to become uninitialized in
user-defined decoders.

This patch makes the decoder interface such that the concrete decoders
themselves contruct the decoded type upon return from the decoder. To do
so, the default decoders in IPC::Decoder had to be moved to the IPC
namespace scope, as these decoders are now specializations instead of
overloaded methods (C++ requires specializations to be in a namespace
scope).
2022-12-26 09:36:16 +01:00
..
Bindings LibJS: Convert Object::construct() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
Cookie LibIPC+Everywhere: Change IPC decoders to construct values in-place 2022-12-26 09:36:16 +01:00
Crypto LibJS: Convert Heap::allocate{,_without_realm}() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
CSS LibGfx: Rename TTF/TrueType to OpenType 2022-12-21 08:44:22 +01:00
DOM LibWeb: Propagate errors in Element::scroll_into_view() 2022-12-25 17:24:52 +01:00
DOMParsing LibJS: Convert Heap::allocate{,_without_realm}() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
Encoding LibJS: Convert Heap::allocate{,_without_realm}() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
Fetch AK: Stop using DeprecatedString in Base64 encoding 2022-12-20 10:34:19 +01:00
FileAPI LibJS: Convert Heap::allocate{,_without_realm}() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
Geometry LibJS: Convert Heap::allocate{,_without_realm}() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
HighResolutionTime LibWeb: Partially implement 'relative high resolution time' AOs 2022-10-30 20:10:29 +00:00
HTML LibWeb: Keep unhandledrejection event promises alive when task is queued 2022-12-25 15:32:51 +01:00
Infra LibJS: Replace standalone js_string() with PrimitiveString::create() 2022-12-07 16:43:06 +00:00
IntersectionObserver LibJS: Convert Heap::allocate{,_without_realm}() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
Layout LibWeb: Apply CSS text-transform during layout 2022-12-24 12:27:46 +01:00
Loader LibCore: Rename Stream::read_all to read_until_eof 2022-12-12 14:16:42 +01:00
MimeSniff Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
NavigationTiming LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
Page LibWeb+WebContent+headless-browser: Use CSSPixels for PageClient events 2022-12-10 12:03:19 +00:00
Painting LibWeb: Remove done gradient painting TODO 2022-12-25 15:35:31 +01:00
Platform AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
ReferrerPolicy LibWeb: Implement 'Determine request’s Referrer' AO 2022-10-30 20:10:29 +00:00
RequestIdleCallback LibJS: Convert Heap::allocate{,_without_realm}() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
ResizeObserver LibJS: Convert Heap::allocate{,_without_realm}() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
Scripts Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
SecureContexts Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
Selection LibJS: Convert Heap::allocate{,_without_realm}() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
Streams LibJS: Convert Heap::allocate{,_without_realm}() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
SVG LibJS: Convert Heap::allocate{,_without_realm}() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
Tests Everywhere: Rename WrapperGenerator to BindingsGenerator 2022-09-21 23:06:08 +01:00
UIEvents LibWeb+WebContent+headless-browser: Use CSSPixels for PageClient events 2022-12-10 12:03:19 +00:00
URL LibJS: Convert Heap::allocate{,_without_realm}() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
WebAssembly LibJS: Convert Object::construct() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
WebDriver LibIPC+Everywhere: Change IPC decoders to construct values in-place 2022-12-26 09:36:16 +01:00
WebGL LibGL+LibWeb: Remove WebGL-specific API from GLContext 2022-12-25 15:48:59 +01:00
WebIDL LibJS: Convert Heap::allocate{,_without_realm}() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
WebSockets LibJS: Convert Heap::allocate{,_without_realm}() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
XHR LibJS: Convert Heap::allocate{,_without_realm}() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
XML Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
CMakeLists.txt LibWeb: Add initial implementation of structured clone 2022-11-26 00:47:23 +01:00
Dump.cpp LibWeb: Convert Paintable coordinates to new pixel units 2022-12-14 16:47:57 +00:00
Dump.h LibWeb: Implement initial CSSFontFaceRule and FontFace classes 2022-03-28 22:25:25 +02:00
FontCache.cpp LibGfx: Move other font-related files to LibGfx/Font/ 2022-04-09 23:48:18 +02:00
FontCache.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
Forward.h LibWeb: Implement RadialGradientStyleValue 2022-11-30 14:24:04 +00:00
idl_files.cmake LibWeb: Sketch out basic support for SVG <foreignObject> elements 2022-11-16 13:01:21 +01:00
Namespace.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Namespace.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
PixelUnits.h LibWeb: Only allow DevicePixels operators to work with integers 2022-12-14 16:47:57 +00:00
TreeNode.h LibWeb: Make the layout tree GC-allocated 2022-10-20 15:16:23 +02:00