Commit Graph

1775 Commits

Author SHA1 Message Date
Timothy Flynn
203267fcc2 LibWeb: Do not worry about small OOM in JsonWebKey::parse
We do not concern ourselves with small OOM handling any longer. But the
main point of this patch is that we are for some reason getting a build
error with clang-19 here about ignoring a nodiscard return type inside
JsonArray::try_for_each.
2024-12-16 06:46:36 -08:00
Shannon Booth
e5436ce593 LibWeb/HTML: Remove uneeded FIXME about use of USVString
An AK::String works fine for a USVString as a USVString is just a more
strict version of DOMString. Maybe we will have a different String type
for it in the future, but for now using an AK::String is fine and we do
not need this FIXME.
2024-12-16 05:03:00 -08:00
Shannon Booth
a5bdc56063 LibWeb/HTML: Make ErrorEvent::create a trusted event
Matching DOM::Event.
2024-12-16 05:03:00 -08:00
devgianlu
6ef8b54d21 LibWeb: Add support for AES-GCM encrypt and decrypt
Adds ~400 WPT test passes.
2024-12-16 13:27:53 +01:00
Glenn Skrzypczak
e18fb7fc93 LibWeb/Fetch: Handle streams on abort
When aborting fetch, the request stream now gets closed and the
response stream errors.
2024-12-16 12:43:16 +01:00
Glenn Skrzypczak
b263cd11f7 LibWeb/Fetch: Deserialize abort reason
Deserialize the fetch controllers abort reason according to the spec.
Currently fetch does not support a scenario where this actually happens.
2024-12-16 12:43:16 +01:00
Tim Ledbetter
2b1725ea51 LibWeb: Collapse selection when selecting text inside a text control 2024-12-16 11:43:28 +01:00
devgianlu
584cbcf3ef LibWeb: Implement wrapKey and unwrapKey methods
This implements the last WebCryptoAPI methods `wrapKey` and `unwrapKey`.
Most of the functionality is already there because they rely on
`encrypt` and `decrypt`. The only test failures are for `AES-GCM` which
is not implemented yet.
2024-12-16 11:35:00 +01:00
devgianlu
c1a65f3d53 LibWeb: Parse JsonWebKey from string
Add the ability to parse a `JsonWebKey` structure from a raw string.
2024-12-16 11:35:00 +01:00
devgianlu
06733bea48 LibWeb: Fix X448 PCKS#8 key export format
The ASN1 structure for PCKS#8 was wrong and missing one wrapping of the
key in a OctetString.

The issue was discovered while implementing `wrapKey` and `unwrapKey` in
the next commits.
2024-12-16 11:35:00 +01:00
devgianlu
89f1f3f31c LibWeb: Fix X25519 PCKS#8 key export format
The ASN1 structure for PCKS#8 was wrong and missing one wrapping of the
key in a OctetString.

The issue was discovered while implementing `wrapKey` and `unwrapKey` in
the next commits.
2024-12-16 11:35:00 +01:00
devgianlu
880401030d LibWeb: Fix X448 JWK key export format
The presence of padding in the base64 fields made plenty of WPT tests
fail. Additionally, export was performed with the wrong public key.

The issue was discovered while implementing `wrapKey` and `unwrapKey` in
the next commits.
2024-12-16 11:35:00 +01:00
devgianlu
ac99e2791f LibWeb: Fix X25519 JWK key export format
The presence of padding in the base64 fields made plenty of WPT tests
fail.

The issue was discovered while implementing `wrapKey` and `unwrapKey` in
the next commits.
2024-12-16 11:35:00 +01:00
devgianlu
08af878466 LibCrypto+LibWeb: Allow serializing key info without params
Previously, if `nullptr` was passed as params for
`wrap_in_private_key_info` or `wrap_in_subject_public_key_info` an ASN1
null was serialized. This was not the intended behaviour for many.

The issue was discovered while implementing `wrapKey` and `unwrapKey` in
the next commits.
2024-12-16 11:35:00 +01:00
devgianlu
9613b87b12 LibWeb: Fix ED25519 PCKS#8 key export format
The ASN1 structure for PCKS#8 was wrong and missing one wrapping of the
key in a OctetString.

The issue was discovered while implementing `wrapKey` and `unwrapKey` in
the next commits.
2024-12-16 11:35:00 +01:00
devgianlu
6e33dbb533 LibWeb: Fix ED25519 JWK key export format
The presence of padding in the base64 fields and the typo made plenty of
WPT tests fail.

The issue was discovered while implementing `wrapKey` and `unwrapKey` in
the next commits.
2024-12-16 11:35:00 +01:00
devgianlu
a65110ec06 LibWeb: Define HmacKeyAlgorithm native accessor for length property
The property was not accessible because it was not exposed to JS.

The issue was discovered while implementing `wrapKey` and `unwrapKey` in
the next commits.
2024-12-16 11:35:00 +01:00
devgianlu
1e98fa96d7 LibWeb: Fix bogus AesGcm and AesCtr key import length validation
The validation of the key size and specified algorithm was out of spec.
It is now implemented correctly like in `AesCbc`.

The issue was discovered while implementing `wrapKey` and `unwrapKey` in
the next commits.
2024-12-16 11:35:00 +01:00
devgianlu
ec990d620f LibCrypto: Cleanup Crypto::PK::RSA constructors to avoid pitfalls
- Removed the constructor taking a (n, d, e) tuple and moved
  it to `RSAPrivateKey`
- Removed default constructor with key generation because it was always
  misused and the default key size is quite small
- Added utility constructors to accept a key pair, public key, private
  key or both
- Made constructor parameters const
- Updated test to use generated random keys where possible
2024-12-15 23:31:49 +01:00
Pavel Shliak
40bf8dde88 LibWeb: Remove unnecessary Quad.h include 2024-12-15 23:27:42 +01:00
Gustavo Ramirez
108701c899 LibWeb/CSS: Refactor phase() method to reduce redundancy
The function AnimationEffect::phase() contained duplicated condition
checks for the animation phase determination. This refactor eliminates
the redundant checks by simplifying the logic.
2024-12-15 10:05:08 +00:00
Feng Yu
7bb7edd6df LibWeb: Fix is_valid_status_text to handle UTF-8 correctly
This change fixed a WPT subtest which I also imported.
2024-12-15 08:33:30 +00:00
Feng Yu
9c76260756 LibWeb: Sync statusText check with spec update
Synced change from https://github.com/whatwg/fetch/pull/1795.

No functional changes; only update comments to reflect the latest
spec.
2024-12-15 08:33:30 +00:00
stelar7
0b1c7d6af2 LibWeb: Mark open request as processed if the spec forgot 2024-12-14 23:02:59 +01:00
stelar7
32e5fb4da5 LibWeb: Add missing spec comment for method 2024-12-14 23:02:59 +01:00
stelar7
a25bba27fa LibWeb: Close the database if the upgrade connection is aborted 2024-12-14 23:02:59 +01:00
stelar7
0b8f2a8b81 LibWeb: Implement wait step for IndexedDB upgrade_a_database 2024-12-14 23:02:59 +01:00
stelar7
7c3f44282d LibWeb: Implement IDBTransaction::abort 2024-12-14 23:02:59 +01:00
stelar7
2954278e37 LibWeb: Implement abort_a_transaction for IndexedDB 2024-12-14 23:02:59 +01:00
stelar7
609f7aa659 LibWeb: Implement IDBFactory::delete_database 2024-12-14 23:02:59 +01:00
stelar7
452506964c LibWeb: Add const qualifiers to Vector iteration in IndexedDB 2024-12-14 23:02:59 +01:00
stelar7
0327541999 LibWeb: Implement delete_a_database for IndexedDB 2024-12-14 23:02:59 +01:00
Tim Ledbetter
022141647a LibWeb: Implement PopoverInvokerElement attribute change steps
PopoverInvokerElement's explicitly set attr-element should be set to
null whenever the value of the `popovertarget` content attribute is
changed.
2024-12-14 12:11:28 -08:00
Tim Ledbetter
40cb36607c LibWeb: Include namespace parameter in associated_attribute_changed() 2024-12-14 12:11:28 -08:00
Shannon Booth
18dddaa742 LibWeb/HTML: Use DOM's post-connection steps for iframe elements
See: https://github.com/whatwg/html/commit/c8ec987d1
2024-12-14 12:06:41 -08:00
Luke Wilde
160c15444b LibWeb/WebGL2: Implement blitFramebuffer 2024-12-14 09:06:28 +01:00
Luke Wilde
4a4263d869 LibWeb/WebGL2: Implement readBuffer 2024-12-14 09:06:28 +01:00
Luke Wilde
db89b478ff LibWeb/WebGL2: Implement renderbufferStorageMultisample 2024-12-14 09:06:28 +01:00
Luke Wilde
8b07af9801 LibWeb/WebGL2: Implement bindBufferBase 2024-12-14 09:06:28 +01:00
Luke Wilde
6e42f401f9 LibWeb/WebGL2: Implement texImage3D with ArrayBufferView and offset 2024-12-14 09:06:28 +01:00
Luke Wilde
50b4d65540 LibWeb/WebGL2: Implement texImage2D with ArrayBufferView and offset 2024-12-14 09:06:28 +01:00
Luke Wilde
766f4d2ec4 LibWeb/WebGL2: Implement texSubImage2D with ArrayBufferView and offset 2024-12-14 09:06:28 +01:00
Luke Wilde
e6ebec853b LibWeb/WebGL2: Implement texSubImage3D with ArrayBufferView and offset 2024-12-14 09:06:28 +01:00
Luke Wilde
5cde82ac80 LibWeb/WebGL2: Implement texStorage3D 2024-12-14 09:06:28 +01:00
Luke Wilde
776328e2e7 LibWeb/WebGL2: Implement getInternalformatParameter 2024-12-14 09:06:28 +01:00
Luke Wilde
0207487199 LibWeb/WebGL2: Implement deleteSync 2024-12-14 09:06:28 +01:00
Luke Wilde
ff8a9549f1 LibWeb/WebGL2: Implement clientWaitSync 2024-12-14 09:06:28 +01:00
Luke Wilde
135ceb387e LibWeb/WebGL2: Implement fenceSync 2024-12-14 09:06:28 +01:00
Luke Wilde
bc9ae79a47 LibWeb/WebGL2: Implement texSubImage2D with ArrayBufferView 2024-12-14 09:06:28 +01:00
Luke Wilde
f4f3e446a2 LibWeb/WebGL2: Implement bindSampler 2024-12-14 09:06:28 +01:00