1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 16:38:10 +00:00
serenity/Userland/Libraries/LibWeb
Sam Atkins d0f80b40b2 LibWeb: Reimplement CalculatedStyleValue as a calculation node tree
VALUES-4 defines the internal representation of `calc()` as a tree of
calculation nodes. ( https://www.w3.org/TR/css-values-4/#calc-internal )

VALUES-3 lacked any definition here, so we had our own ad-hoc
implementation based around the spec grammar. This commit replaces that
with CalculationNodes representing each possible node in the tree.

There are no intended functional changes, though we do now support
nested calc() which previously did not work. For example:
    `width: calc( 42 * calc(3 + 7) );`

I have added an example of this to our test page.

A couple of the layout tests that used `calc()` now return values that
are 0.5px different from before. There's no visual difference, so I
have updated the tests to use the new results.
2023-04-13 09:53:47 +02:00
..
ARIA Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
Bindings Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
Cookie Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
Crypto AK+Everywhere: Change AK::fill_with_random to accept a Bytes object 2023-04-03 15:53:49 +02:00
CSS LibWeb: Reimplement CalculatedStyleValue as a calculation node tree 2023-04-13 09:53:47 +02:00
DOM LibWeb: Handle null values when making args for attributeChangedCallback 2023-04-11 23:42:15 +02:00
DOMParsing LibWeb: Fix a few const-ness issues 2023-03-06 13:05:43 +00:00
Encoding LibWeb/WebIDL: Store SimpleException message as a String{,View} variant 2023-03-03 19:50:36 +00:00
Fetch AK+Everywhere: Use Optional for URLParser::parse's base_url parameter 2023-04-11 16:28:20 +02:00
FileAPI LibWeb: Fix a few const-ness issues 2023-03-06 13:05:43 +00:00
Geometry LibWeb: Remove FIXME for existing [Default] object toJSON()functions 2023-03-23 21:00:43 +00:00
HighResolutionTime LibWeb: Implement performance.mark and performance.clearMarks 2023-03-23 21:00:43 +00:00
HTML Everywhere: Fix a few typos 2023-04-12 19:37:35 +02:00
Infra LibWeb: Use equals_ignoring_ascii_case() in infra helper 2023-03-10 13:15:44 +01:00
IntersectionObserver LibWeb: Make factory method of IntersectionObserver fallible 2023-02-22 09:55:33 +01:00
Layout LibWeb: Don't try to paint SVG elements transformed to zero size 2023-04-12 07:40:22 +02:00
Loader LibWeb: Create a video document for video/ MIME types on navigation 2023-04-12 01:47:58 +02:00
MimeSniff Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
NavigationTiming LibWeb: Add a list of the entry names in the PerformanceTiming interface 2023-03-23 21:00:43 +00:00
Page LibWeb: Port fire_keyboard_event() to new FlyString 2023-04-09 17:27:27 +02:00
Painting LibWeb: Don't try to paint SVG elements transformed to zero size 2023-04-12 07:40:22 +02:00
PerformanceTimeline LibWeb: Introduce Performance Timeline and its Performance functions 2023-03-23 21:00:43 +00:00
Platform LibWeb: Convert Platform::Timer to JS::SafeFunction 2023-03-07 11:51:12 +00:00
ReferrerPolicy LibWeb: Add HTMLAnchorElement.referrerPolicy property 2023-03-31 11:36:41 +01:00
RequestIdleCallback LibWeb/HTML: Port Window.requestIdleCallback() to IDL 2023-03-07 23:33:34 +00:00
ResizeObserver LibWeb: Make factory method of ResizeObserver::ResizeObserver fallible 2023-02-22 09:55:33 +01:00
Scripts LibWeb: Store stylesheet sources as StringViews 2023-02-19 00:51:16 +01:00
SecureContexts Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
Selection LibWeb: Make factory method of Selection::Selection fallible 2023-02-22 09:55:33 +01:00
Streams LibWeb/Streams: Fix inconsistent uses of realm() and vm() 2023-04-13 09:51:48 +02:00
SVG Everywhere: Fix a few typos 2023-04-12 19:37:35 +02:00
Tests Everywhere: Rename WrapperGenerator to BindingsGenerator 2022-09-21 23:06:08 +01:00
UIEvents LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
URL LibWeb/URL: Make URL::search_params() return a NonnullGCPtr 2023-04-13 09:51:48 +02:00
UserTiming LibWeb: Implement performance.mark and performance.clearMarks 2023-03-23 21:00:43 +00:00
WebAssembly LibWeb+LibWasm: Implement and use the "reset the Memory buffer" steps 2023-03-29 07:16:37 +02:00
WebDriver LibWeb/WebDriver: Wait for more data to arrive if request is incomplete 2023-03-26 17:56:17 +02:00
WebGL LibWeb: Port fire_webgl_context_event() to new FlyString 2023-04-09 17:27:27 +02:00
WebIDL LibWeb: Add missing include to WebIDL::Promise 2023-04-08 22:04:14 +02:00
WebSockets LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
XHR LibWeb: Port fire_progress_event() + request_error_steps() to new String 2023-04-09 17:27:27 +02:00
XML LibWeb: Port fire_a_page_transition_event() to new FlyString 2023-04-09 17:27:27 +02:00
CMakeLists.txt LibWeb: Add ReadableStreamByteController interface 2023-04-12 01:47:48 +02:00
Dump.cpp LibWeb: Implement the :defined pseudo class 2023-04-06 11:36:56 +02:00
Dump.h LibWeb+Browser+Ladybird: Add menu action to dump paint tree 2023-03-18 20:23:35 +01:00
FontCache.cpp LibWeb: Scale the font when painting the text on buttons 2023-03-15 23:29:00 +01:00
FontCache.h LibWeb: Scale the font when painting the text on buttons 2023-03-15 23:29:00 +01:00
Forward.h LibWeb: Add ReadableStreamByteController interface 2023-04-12 01:47:48 +02:00
idl_files.cmake LibWeb: Add ReadableStreamByteController interface 2023-04-12 01:47:48 +02:00
Namespace.cpp LibWeb: Initialize static web strings during main-thread VM creation 2023-03-18 19:50:45 +01:00
Namespace.h LibWeb: Initialize static web strings during main-thread VM creation 2023-03-18 19:50:45 +01:00
PixelUnits.h LibWeb: Use type-correct hashing and formatting functions for pixels 2023-01-21 10:36:14 +01:00
TreeNode.h LibJS+LibWeb: Move headers around to allow including Value from Cell 2023-01-29 00:02:45 +00:00