1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-10 18:10:56 +09:00
Commit graph

6409 commits

Author SHA1 Message Date
devgianlu
51f69be51f LibCrypto: Move ASN1 constants to Crypto::ASN1
Makes more sense to have them in `Crypto::ASN1` rather than in
`Crypto::Certificate`.
2024-11-30 11:17:44 +01:00
devgianlu
ab2960e49f LibCrypto+LibWeb: Reorganize OID ASN1 constants
I have divided ANS1 constants by length so that they don't have
trailing zeros that need to be removed.

Also moved OIDs lists to the only place they are used for clarity.

Fixed a couple of WPT tests by adding SECP521r1 to the list of known
curves.
2024-11-30 11:17:44 +01:00
Tim Ledbetter
b39fdcfec2 LibWeb: Implement the HTMLInputElement.height attribute
This allows the height of an image button input to be set and queried.
2024-11-30 11:01:33 +01:00
Tim Ledbetter
45a2823e08 LibWeb: Implement the HTMLInputElement.width attribute
This allows the width of an image button input to be set and queried.
2024-11-30 11:01:33 +01:00
Sam Atkins
8e3adbe082 LibWeb: Serialize text-decoration closer to spec
This gets us 32 WPT subtest passes that I'm aware of. :^)
2024-11-30 11:01:12 +01:00
Sam Atkins
671d3e8a48 LibWeb/CSS: Sort text-decoration-line values in spec order
This wins us 49 WPT subtest passes! :^)
2024-11-30 11:01:12 +01:00
Sam Atkins
9453c25925 LibWeb/CSS: Don't repeat CSS-wide keywords when serializing shorthands
Regardless of what the shorthand property is, if all its longhands are
the same CSS-wide keyword such as "initial" or "inherit", then it's the
same as the shorthand being that value.

This gets us 2 WPT subtest passes.
2024-11-30 11:01:12 +01:00
Sam Atkins
0c39d07b4d LibWeb/CSS: Serialize overflow correctly
When the x and y values are the same, we only want to serialize one.

This gets us 10 local WPT subtest passes. :^)
2024-11-30 11:01:12 +01:00
Sam Atkins
e4d55a6037 LibWeb/CSS: Use ShorthandStyleValue to serialize shorthands
This wins us 65 new WPT subtest passes! It also shows up that we're
doing the wrong thing in ShorthandStyleValue in places, notably with
the grid properties. However, having one place to fix instead of two
will make it easier to correct them. :^)

In order to be fully correct, we should use the algorithm here:
https://drafts.csswg.org/cssom/#serialize-a-css-value

However, it's quite hand-wavy. What we do have in the meantime is
`ShorthandStyleValue::to_string()`, where we special-case the
serialization rules for shorthands with a generic fallback that's
equivalent to what the previous `get_property_value()` code was doing.
2024-11-30 11:01:12 +01:00
Sam Atkins
bc17a3c2eb LibWeb: Correctly skip "decimal" in counter() serialization
It's not a keyword, it's a custom-ident. The simplest way of comparing
is by serializing it as a string.

This gets us 2 subtest passes.
2024-11-30 11:01:12 +01:00
Sam Atkins
917d659f8b LibWeb/CSS: Remove unwanted newline from list serialization
Gets us 1 subtest pass.
2024-11-30 11:01:12 +01:00
Sam Atkins
8cdb8ca193 LibWeb/CSS: Add missing commas to rect() serialization
Gets us 1 WPT subtest pass.
2024-11-30 11:01:12 +01:00
Sam Atkins
5bcd9abc42 LibWeb/CSS: Serialize background-repeat correctly
This gets us 4 WPT subtest passes.
2024-11-30 11:01:12 +01:00
joshua stein
12442ca430 LibWeb: Remove a misleading duplicate comment in HTMLParser 2024-11-30 07:07:30 +00:00
stasoid
a90b7026fb LibWeb/Layout: Account for box-sizing in table width/height calculations
Fixes #1726

Fixes
wpt/css/CSS2/abspos/abspos-containing-block-initial-004c.xht
wpt/css/CSS2/abspos/abspos-containing-block-initial-004d.xht
wpt/css/CSS2/abspos/abspos-containing-block-initial-005b.xht
wpt/css/CSS2/abspos/abspos-containing-block-initial-005d.xht
2024-11-29 15:43:59 +01:00
Tim Ledbetter
99f8972928 LibWeb: Ignore negative values when setting HTMLProgressElement.max
When attempting to set `HTMLProgressElement.max` to a value not greater
than 0, we were previously setting the value to 1. We now retain the
previous value.
2024-11-29 15:32:04 +01:00
Kostya Farber
81f8866606 LibWeb: Lay out the fieldset's rendered legend 2024-11-29 12:36:52 +00:00
Tim Ledbetter
6218f1a609 LibWeb: Limit HTMLSelectElement.size to allowed values
This change ensures that the correct default value of 0 is used and
that values greater than 2147483647 will fall back to the default value.

It also splits the display size concept into a separate method, as
this isn't supposed to be used when getting the IDL property.
2024-11-29 13:30:57 +01:00
sideshowbarker
6bfc35b6a9 LibWeb: Fix aria-label precedence in accessible-name computation
This change makes Ladybird give the value of the aria-label attribute
the correct precedence for accessible-name computation required by the
“Accessible Name and Description Computation” and HTML-AAM specs and by
the corresponding WPT tests.

Otherwise, without this change, Ladybird fails some of the WPT subtests
of the test at https://wpt.fyi/results/accname/name/comp_label.html.
2024-11-29 12:18:28 +00:00
sideshowbarker
314e5d6bb7 LibWeb: Compute accessible names for hidden/hidden-but-referenced nodes
This change implements full support for the “A. Hidden Not Referenced”
step at https://w3c.github.io/accname/#step2A in the “Accessible Name
and Description Computation” spec — including handling all hidden nodes
that must be ignored, as well as handling hidden nodes that, for the
purposes of accessible-name computation, must not be ignored (due to
having aria-labelledby/aria-describedby references from other nodes).

Otherwise, without this change, not all cases of hidden nodes get
ignored as expected, while cases of nodes that are hidden but that have
aria-labelledby/aria-describedby references from other nodes get
unexpectedly ignored.
2024-11-29 12:18:28 +00:00
stasoid
67db10f26e LibCore/System: Do not translate \n <-> \r\n when reading/writing files
on Windows
2024-11-29 10:50:59 +01:00
stasoid
d224d1f22c LibCore: Fix pthread-related errors on Windows
Fixes compilation error in Notifier.h and
link errors in ThreadEventQueue.cpp
2024-11-29 10:50:00 +01:00
Timothy Flynn
0468463e2e LibJS: Implement the ECMA-402 ZonedDateTime.prototype.toLocaleString.js 2024-11-29 09:52:12 +01:00
Timothy Flynn
c96f6c396f LibJS: Implement the ECMA-402 PlainDateTime.prototype.toLocaleString.js 2024-11-29 09:52:12 +01:00
Timothy Flynn
224304cd56 LibJS: Implement the ECMA-402 PlainTime.prototype.toLocaleString.js 2024-11-29 09:52:12 +01:00
Timothy Flynn
ac0292b18f LibJS: Implement the ECMA-402 PlainYearMonth.prototype.toLocaleString.js 2024-11-29 09:52:12 +01:00
Timothy Flynn
bca70584b9 LibJS: Implement the ECMA-402 PlainMonthDay.prototype.toLocaleString.js 2024-11-29 09:52:12 +01:00
Timothy Flynn
697e68e68f LibJS: Implement the ECMA-402 PlainDate.prototype.toLocaleString.js 2024-11-29 09:52:12 +01:00
Timothy Flynn
964f41bb53 LibJS: Implement the ECMA-402 Instant.prototype.toLocaleString.js 2024-11-29 09:52:12 +01:00
Timothy Flynn
ea503a4f68 LibJS+LibUnicode: Integrate Temporal into Intl.DateTimeFormat
The gist is that we need to construct an ICU date-time formatter for
each possible Temporal type. This is of course going to be expensive.
So instead, we construct the configurations needed for the ICU objects
in the Intl.DateTimeFormat constructor, and defer creating the actual
ICU objects until they are needed.

Each formatting prototype can also now accept either a number (as they
already did), or any of the supported Temporal objects. These types may
not be mixed, and their properties (namely, their calendar) must align
with the Intl.DateTimeFormat object.
2024-11-29 09:52:12 +01:00
Tim Ledbetter
4ad8ba11d5 LibWeb: Use the [Reflect] attribute to implement HTMLLinkElement.as
Also ensure that all valid potential destinations are allowed permitted.
2024-11-29 09:48:59 +01:00
Tim Ledbetter
aafc829e6d LibWeb: Don't allow HTMLTextAreaElement rows and cols to be set to 0
In this case we should fall back to the default value.
2024-11-29 09:48:45 +01:00
Tim Ledbetter
ae0c87c747 LibWeb: Limit HTMLInputElement.size to allowed values
Attempting to set `HTMLInputElement.size` to 0 via IDL now throws an
IndexSizeError DOMException. Attempting to set it to a value larger
than 2147483647 results in it being set to the default value.
2024-11-29 09:48:45 +01:00
Pavel Shliak
08812a1f88 LibRequests: Clean up #include directives
This change aims to improve the speed of incremental builds.
2024-11-29 09:48:29 +01:00
devgianlu
46e724729c LibWeb: Match algorithm names case-insensitive
I dug through the code and the WebCryptoAPI spec to figure out the
reason for `... mixed case parameters` WPT tests and figured out that
our implementation was slightly wrong.

By being closer to the spec we can now pass those tests and also remove
a bunch of duplicated code.

Context: https://github.com/LadybirdBrowser/ladybird/pull/2598#discussion_r1859263798
2024-11-28 00:21:49 +01:00
devgianlu
6ebc812035 LibWeb: Rename EcdhKeyDerivePrams to EcdhKeyDeriveParams 2024-11-28 00:21:49 +01:00
devgianlu
13c9874830 LibWeb: Be spec compliant by comparing WebCryptoAPI strings with case
Following the discovery that the WebCryptoAPI spec requires all strings
to be compared case-sensitive, I have updated existing code that did
not respect this criterion.

No test failures are introduced.

Spec: https://www.w3.org/TR/WebCryptoAPI/#conformance
Context: https://github.com/LadybirdBrowser/ladybird/pull/2598#discussion_r1859263798
2024-11-28 00:21:49 +01:00
Andreas Kling
a74954e145 LibWeb: Don't treat auto insets as definite for child of abspos element
This fixes an issue where the welcome screen wasn't showing up the first
time you visit https://puter.com/ :^)
2024-11-27 22:55:14 +01:00
Daniel La Rocque
e43e4d3a93 LibWeb: Add NullOrError to NavigationParamsVariant
To check whether a NavigationParams is null, we have to check whether
it's `Empty` or `NullWithError`. Instead, we can merge both of these
possible variants into an optional error. If `NullOrError` has no
value it's null, otherwise it contains an error message.
2024-11-27 14:15:37 -07:00
Milo van der Tier
5deb2b4cad LibWeb: Do not give the HTML namespace to elements when parsing XML
While the code that did this referred to the HTML spec, other browsers
appear not to have this behavior when parsing XML, and it breaks a WPT
subtest.

This change does not appear to break any tests, and fixes 1 WPT subtest.
2024-11-27 17:10:32 +01:00
Andreas Kling
a7b791050e LibWeb: Only negotiate NavigableContainerViewport size with objects
Size negotiation should not occur for other viewports, such as iframe,
since that would allow content inside the iframe to affect the size of
the iframe in the containing document.

300 new subtest passes on WPT. :^)
2024-11-27 14:47:05 +01:00
Psychpsyo
e602578501 LibWeb: Add handling for 'an end tag whose tag name is sarcasm' 2024-11-27 10:42:58 +00:00
Psychpsyo
397579096f LibWeb: Add search element to list of Special tags 2024-11-27 11:00:58 +01:00
Tim Ledbetter
7fe3bf07e2 LibWeb: Limit HTMLTextAreaElement attributes to allowed values
If `HTMLTextAreaElement.rows` or `HTMLTextAreaElement.cols`
is set to a value larger than 2147483647, then it should be set to its
default value.
2024-11-27 11:00:25 +01:00
Tim Ledbetter
a8719a706b LibWeb: Limit HTMLMarqueeElement attributes to allowed values
If `HTMLMarqueeElemnt.scrollAmount` or `HTMLMarqueeElemnt.scrollDelay`
is set to a value larger than 2147483647, then it should be set to its
default value.
2024-11-27 11:00:25 +01:00
devgianlu
6fa53a4382 LibWeb: Implement ECDH.exportKey 2024-11-27 10:59:48 +01:00
devgianlu
228276a383 LibWeb: Implement ECDH.importKey 2024-11-27 10:59:48 +01:00
devgianlu
e6056ab959 LibWeb: Implement ECDH.deriveBits 2024-11-27 10:59:48 +01:00
devgianlu
4fb19913a1 LibWeb: Switch ECDH.generateKey to use internal keys instead of bytes
Previously, `ECDH::generate_key` was implemented by storing a
`ByteBuffer` in the `InternalKeyData`. This improves the implementation
by using internal structures of already-parsed data.
2024-11-27 10:59:48 +01:00
devgianlu
fd336ed619 LibWeb: Define EcKeyImportParams 2024-11-27 10:59:48 +01:00