1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-11 18:20:43 +09:00
ladybird/Libraries/LibWeb
Sam Atkins 6969d1eba3 LibWeb/CSS: Parse calc() as intermediate types instead of UnparsedCN
Previously we created a tree of CalculationNodes with dummy
UnparsedCalculationNode children, and then swapped those with the real
children. This matched the spec closely but had the unfortunate
downside that CalculationNodes couldn't be immutable, and couldn't know
their properties at construct-time. UnparsedCalculationNode is also a
footgun, as if it gets left in the tree accidentally we would VERIFY().

So instead, let's parse the calc() tree into an intermediate format, and
then convert each node in that tree, depth-first, into its
corresponding CalculationNode. This means each CalculationNode knows
what its children are when it is constructed, and they never change.

Apart from deleting UnparsedCalculationNode, we can also get rid of the
for_each_child_node() method that was only used by this "replace the
children" code.
2024-12-18 12:21:22 +00:00
..
Animations LibWeb/CSS: Refactor phase() method to reduce redundancy 2024-12-15 10:05:08 +00:00
ARIA LibWeb: Support the ARIA “sectionheader” & “sectionfooter” roles 2024-12-16 06:56:31 -08:00
Bindings LibWeb: Implement multiple import map support 2024-12-10 12:01:45 +00:00
Clipboard LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Compression LibWeb/Streams: Move "set up transform stream" to TransformStream 2024-12-11 15:11:21 +01:00
Cookie
Crypto LibWeb: Correct WebCryptoAPI derive length behaviour 2024-12-18 13:18:40 +01:00
CSS LibWeb/CSS: Parse calc() as intermediate types instead of UnparsedCN 2024-12-18 12:21:22 +00:00
DOM LibWeb: Add a document observer to be notified upon becoming active 2024-12-11 17:38:31 -07:00
DOMParsing LibWeb: Make Node::is_text() return true for CDATASection nodes 2024-11-19 19:24:37 +00:00
DOMURL LibURL+LibWeb: Make URL::serialize return a String 2024-12-04 16:34:13 +00:00
Editing LibWeb: Implement document.execCommand('insertLinebreak') 2024-12-10 19:34:38 +01:00
Encoding LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
EntriesAPI LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
EventTiming LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Fetch LibWeb: Avoid re-encoding response headers 2024-12-17 13:44:10 +01:00
FileAPI LibWeb/Streams: Move ReadableStream functions out of AbstractOperations 2024-12-11 15:11:21 +01:00
Geometry LibWeb: Stop passing Realm unnecessarily to parse CSS properties 2024-12-05 19:59:57 +01:00
HighResolutionTime LibWeb: Use relevant principal settings for HighResolutionTime 2024-11-30 11:55:11 +01:00
HTML LibWeb: Layout/Shape font-variant-* css properties 2024-12-17 19:07:13 +01:00
IndexedDB LibWeb: Mark open request as processed if the spec forgot 2024-12-14 23:02:59 +01:00
Infra LibWeb: Avoid re-encoding response headers 2024-12-17 13:44:10 +01:00
Internals LibWeb: Add an Internals.headless attribute 2024-12-10 10:31:47 -08:00
IntersectionObserver LibWeb: Implement more IntersectionObserver attributes 2024-11-23 09:52:32 +01:00
Layout LibWeb: Layout/Shape font-variant-* css properties 2024-12-17 19:07:13 +01:00
Loader Everywhere: Include HashMap only where it's actually used 2024-12-09 12:31:16 +01:00
MathML LibWeb: Align mfrac Padding with Updated MathML Core Spec 2024-12-09 20:06:48 +00:00
MediaCapabilitiesAPI LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
MediaSourceExtensions LibWeb: Partially implement MediaSource.isTypeSupported() 2024-11-26 23:51:02 +01:00
MimeSniff
MixedContent LibURL+LibWeb: Make URL::serialize return a String 2024-12-04 16:34:13 +00:00
NavigationTiming LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Page LibWeb: Make MouseEvent.offsetX/Y ignore transforms 2024-12-13 07:18:56 +01:00
Painting LibWeb: Layout/Shape font-variant-* css properties 2024-12-17 19:07:13 +01:00
PerformanceTimeline LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
PermissionsPolicy
Platform LibGfx+LibWeb: Do some color management on images with an ICC profile 2024-12-05 17:16:41 +01:00
ReferrerPolicy LibURL+LibWeb: Make URL::serialize return a String 2024-12-04 16:34:13 +00:00
RequestIdleCallback LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ResizeObserver LibWeb: Make CallbackType take a realm instead of settings object 2024-11-20 18:01:21 -07:00
SecureContexts LibURL: Migrate Origin scheme from ByteString to String 2024-11-30 12:07:39 +01:00
Selection LibWeb: Update spec steps in Selection 2024-12-11 19:11:13 +01:00
ServiceWorker LibURL+LibWeb: Make URL::serialize return a String 2024-12-04 16:34:13 +00:00
SRI
StorageAPI LibWeb: Const qualify many functions in EnvironmentSettingsObject 2024-11-23 16:43:55 +01:00
Streams LibWeb: Move ad hoc CallbackType helper method to CallbackType header 2024-12-11 15:11:21 +01:00
SVG LibWeb: Load external scripts in SVG 2024-12-11 16:29:42 -07:00
UIEvents LibWeb: Add definitions for PointerEvent event handlers 2024-11-22 14:33:58 +01:00
UserTiming LibWeb: Default initialize StructuredDeserialize memory argument 2024-11-23 16:43:55 +01:00
WebAssembly LibWeb: Register Wasm memory grow hook in constructor of Memory objects 2024-12-10 15:54:20 +01:00
WebAudio LibWeb/WebAudio: Remove copy-pasted comments in DynamicsCompressorNode 2024-12-18 10:19:46 +01:00
WebDriver LibWeb: Align execute_async_script variable name with the latest spec 2024-12-12 05:16:18 -08:00
WebGL LibWeb/WebGL2: Implement blitFramebuffer 2024-12-14 09:06:28 +01:00
WebIDL LibWeb: Move ad hoc CallbackType helper method to CallbackType header 2024-12-11 15:11:21 +01:00
WebSockets LibURL+LibWeb: Make URL::serialize return a String 2024-12-04 16:34:13 +00:00
WebVTT LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Worker Everywhere: Include HashMap only where it's actually used 2024-12-09 12:31:16 +01:00
XHR LibWeb: Mark local variables captured in GC functions as ignored 2024-12-10 07:13:00 +01:00
XLink
XML LibWeb: Rename abbreviated variable name 2024-12-09 09:13:24 +00:00
CMakeLists.txt LibWeb/WebAudio: Implement PannerNode 2024-12-17 13:38:20 +01:00
Dump.cpp LibWeb: Add mode flag to CSSStyleValue::to_string() 2024-12-07 08:31:03 +00:00
Dump.h
Forward.h LibWeb/WebAudio: Implement PannerNode 2024-12-17 13:38:20 +01:00
idl_files.cmake LibWeb/WebAudio: Implement PannerNode 2024-12-17 13:38:20 +01:00
InvalidateDisplayList.h
Namespace.cpp
Namespace.h
PixelUnits.cpp
PixelUnits.h
TraversalDecision.h
TraversalOrder.h
TreeNode.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00