ladybird/Documentation
Sam Atkins eb11c35640 LibWeb/CSS: Use CSSNumericType for CalculationResult's numeric type
When we originally implemented calc(), the result of a calculation was
guaranteed to be a single CSS type like a Length or Angle. However, CSS
Values 4 now allows more complex type arithmetic, which is represented
by the CSSNumericType class. Using that directly makes us more correct,
and allows us to remove a large amount of now ad-hoc code.

Unfortunately this is a large commit but the changes it makes are
interconnected enough that doing one at a time causes test
regressions.

In no particular order:

- Update our "determine the type of a calculation" code to match the
  newest spec, which sets percent hints in a couple more cases. (One of
  these we're skipping for now, I think it fails because of the FIXMEs
  in CSSNumericType::matches_foo().)
- Make the generated math-function-parsing code aware of the difference
  between arguments being the same type, and being "consistent" types,
  for each function. Otherwise those extra percent hints would cause
  them to fail validation incorrectly.
- Use the CSSNumericType as the type for the CalculationResult.
- Calculate and assign each math function's type in its constructor,
  instead of calculating it repeatedly on-demand.

The `CalculationNode::resolved_type()` method is now entirely unused and
has been removed.
2024-12-21 18:14:28 +01:00
..
EditorConfiguration Meta+Documentation: Update config for QtCreator 2024-12-02 09:45:32 +00:00
HumanInterfaceGuidelines Documentation: Remove SerenityOS references where appropriate 2024-11-23 14:29:48 +01:00
Images Documentation: Rename class name on Images/classes.png 2024-10-28 11:06:38 -04:00
AddNewIDLFile.md Documentation: Remove SerenityOS references where appropriate 2024-11-23 14:29:48 +01:00
AdvancedBuildInstructions.md Docs: Explain how to do Debug builds without optimizations on 2024-12-11 17:31:52 -07:00
BrowsingContextsAndNavigables.md Documentation: Flatten the Browser/ directory 2024-10-23 09:02:46 +02:00
BuildInstructionsLadybird.md Flake: Add and run formatter + Rename devshell 2024-12-18 15:15:42 +00:00
BuildProfilingInstructions.md Meta: Update Documentation and CI for repo move 2024-06-03 10:53:53 +02:00
CodingStyle.md Documentation: Update coding style rules about comments 2024-12-04 22:22:24 +01:00
CSSGeneratedFiles.md LibWeb/CSS: Use CSSNumericType for CalculationResult's numeric type 2024-12-21 18:14:28 +01:00
EventLoop.md Documentation: Remove references to serenity.sh and its build configs 2024-06-03 10:53:53 +02:00
FAQ.md Docs: Add “Is [some particular site] usable in Ladybird” to FAQ 2024-12-08 15:30:03 +01:00
GettingStartedContributing.md Docs: Recommend “Web Browser Engineering” book in GettingStarted guide 2024-11-07 15:39:31 +01:00
LibWebFromLoadingToPainting.md Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
LibWebPatterns.md LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Patterns.md Documentation: Remove SerenityOS mentions from patterns reference 2024-08-17 11:51:06 -06:00
Porting.md Documentation: Minor rewordings in Porting.md 2024-12-04 10:26:24 +01:00
ProcessArchitecture.md Documentation: Remove SerenityOS references where appropriate 2024-11-23 14:29:48 +01:00
README.md Documentation: Fix broken link in README 2024-11-21 10:42:45 +01:00
SmartPointers.md Documentation: Remove extra <hr>s from the smart pointers reference 2024-08-17 11:51:06 -06:00
StringFormatting.md Documentation: Remove references to serenity.sh and its build configs 2024-06-03 10:53:53 +02:00
Testing.md Documentation: Fix typo in Testing markdown 2024-11-20 15:48:13 +01:00
Troubleshooting.md Meta: Move the vcpkg installation/cache directories under Build 2024-11-06 10:38:57 -07:00

Ladybird Documentation

Ladybird development moves quickly, so some of these might be out of date. Please let us know if something here is wrong, or submit a PR with any additions or corrections! If you have any questions that are not answered here or in the FAQ, you are welcome to ask on Discord.

Building and Running

Configuring Editors

Development

Browser/LibWeb