Commit graph

1491 commits

Author SHA1 Message Date
Jelle Raaijmakers
20fb7b1a49 LibWeb: Implement the "insertHTML" editing command 2025-01-10 23:33:35 +01:00
Jelle Raaijmakers
cb05ab6515 LibWeb: Implement the "insertHorizontalRule" editing command 2025-01-10 23:33:35 +01:00
Jelle Raaijmakers
c6cde85534 LibWeb: Implement the "indent" editing command 2025-01-10 23:33:35 +01:00
Jelle Raaijmakers
a12d887eb4 LibWeb: Implement the "formatBlock" editing command 2025-01-10 23:33:35 +01:00
Jelle Raaijmakers
e686328cbd LibWeb: Implement the "unlink" editing command 2025-01-10 23:33:35 +01:00
Jelle Raaijmakers
043a28baeb LibWeb: Implement the "underline" editing command 2025-01-10 23:33:35 +01:00
Jelle Raaijmakers
679fbb5eda LibWeb: Implement the "superscript" editing command 2025-01-10 23:33:35 +01:00
Jelle Raaijmakers
ef8af01e1d LibWeb: Implement the "subscript" editing command 2025-01-10 23:33:35 +01:00
Jelle Raaijmakers
8c51d6863f LibWeb: Implement the "strikethrough" editing command 2025-01-10 23:33:35 +01:00
Jelle Raaijmakers
aee8a75c40 LibWeb: Implement the "removeFormat" editing command 2025-01-10 23:33:35 +01:00
Jelle Raaijmakers
ae12f7036b LibWeb: Implement the "italic" editing command 2025-01-10 23:33:35 +01:00
Jelle Raaijmakers
228c66f2e1 LibWeb: Implement the "foreColor" editing command 2025-01-10 23:33:35 +01:00
Jelle Raaijmakers
1d2500e31f LibWeb: Implement the "fontSize" editing command 2025-01-10 23:33:35 +01:00
Jelle Raaijmakers
9366a50dd3 LibWeb: Implement the "fontName" editing command 2025-01-10 23:33:35 +01:00
Jelle Raaijmakers
1b02e0dea3 LibWeb: Implement the "createLink" editing command 2025-01-10 23:33:35 +01:00
Jelle Raaijmakers
05386fe99c LibWeb: Implement the "backColor" and "hiliteColor" editing commands 2025-01-10 23:33:35 +01:00
Jelle Raaijmakers
7736d63290 LibWeb: Implement the "forwardDelete" editing command 2025-01-10 23:33:35 +01:00
Jelle Raaijmakers
a71e999ac8 LibWeb: Implement the "bold" editing command 2025-01-10 23:33:35 +01:00
Shannon Booth
17c92d7c2b LibWeb/DOM: Create TreeWalker in document's realm 2025-01-10 08:08:46 +00:00
Shannon Booth
84f22cb6b3 LibWeb/DOM: Create NodeIterator in document's realm 2025-01-10 08:08:46 +00:00
Shannon Booth
80e8313880 Tests/LibWeb: Import webidl current realm WPT test 2025-01-10 08:08:46 +00:00
sideshowbarker
10766ecf54 LibWeb: Ignore role=none for focusable & has-global-ARIA-attribute cases
This change causes explicit role=none and role=presentation attribute
values to be ignored in cases where the elements for which those values
are specified are either focusable, or have global ARIA attributes —
per https://w3c.github.io/aria/#conflict_resolution_presentation_none.
2025-01-09 14:08:23 +00:00
sideshowbarker
ead3af0163 LibWeb: Ignore name-required landmark roles which lack accessible names
This change implements the role-checking requirement from the ARIA spec
at https://w3c.github.io/aria/#document-handling_author-errors_roles
that the “form” and “region” roles are required to have accessible
names — and that if they don’t have accessible names as required, UAs
must treat them as if they’d not been specified at all.
2025-01-09 14:08:23 +00:00
sideshowbarker
2cb7baa581 LibWeb: Ignore “orphaned” ARIA roles
This change causes explicitly-specified role attributes to be ignored in
the case where the specified role is “orphaned” — that is, when its
element lacks a required ancestor with an appropriate role.
2025-01-09 14:08:23 +00:00
Tim Ledbetter
2edd0812ca LibWeb: Validate AudioNode::connect() input and output arguments 2025-01-09 11:34:38 +00:00
Tim Ledbetter
e469c884d4 LibWeb: Use correct ranges for BiquadFilterNode parameters 2025-01-08 19:05:51 +00:00
Tim Ledbetter
6c4c925f02 LibWeb/WebAudio: Add DelayNode interface 2025-01-08 15:31:59 +00:00
Tim Ledbetter
a6ab9cc983 LibWeb: Initialize AudioBufferSourceNode with correct defaults 2025-01-08 14:45:51 +00:00
Psychpsyo
9370990ff2 LibWeb: Implement user-select
This implements all values of user-select.
2025-01-08 14:37:28 +00:00
Tim Ledbetter
27dbe49f00 LibWeb: Initialize OfflineAudioContext with correct defaults 2025-01-08 11:24:08 +00:00
Gingeh
2cac0dc20c LibWeb: Avoid crash from zero-duration transitions 2025-01-08 11:22:53 +00:00
Gingeh
8e56109515 LibWeb/CSS: Implement the light-dark color function 2025-01-08 11:18:13 +00:00
Gingeh
ce5cd012b9 LibWeb/CSS: Implement the color-scheme CSS property 2025-01-08 11:18:13 +00:00
Ryan Liptak
1ba15e1fa3 LibWeb: Fix hex character references accepting all alphabetic ASCII
Instead of just A-F/a-f, any char A-Z/a-z was being accepted as a valid
hexadecimal digit.
2025-01-07 00:43:41 +01:00
Ryan Liptak
df87a9689c LibWeb: Fix numeric character reference at EOF leaking its last digit
Previously, if the NumericCharacterReferenceEnd state was reached when
current_input_character was None, then the
DONT_CONSUME_NEXT_INPUT_CHARACTER macro would restore back before the
EOF, and allow the next state (after the SWITCH_TO_RETURN_STATE) to
proceed with the last digit of the numeric character reference.

For example, with something like `&#1111`, before this commit the
output would incorrectly be `<code point with the value 1111>1` instead
of just `<code point with the value 1111>`.

Instead of putting the `if (current_input_character.has_value())` check
inside NumericCharacterReferenceEnd directly, it was instead added to
DONT_CONSUME_NEXT_INPUT_CHARACTER, because all usages of the macro
benefit from this check, even if the other existing usage sites don't
exhibit any bugs without it:

- In MarkupDeclarationOpen, if the current_input_character is EOF, then
  the previous character is always `!`, so restoring and then checking
  forward for strings like `--`, `DOCTYPE`, etc won't match and the
  BogusComment state will run one extra time (once for `!` and once
  for EOF) with no practical consequences. With the `has_value()` check,
  BogusComment will only run once with EOF.

- In AfterDOCTYPEName, ConsumeNextResult::RanOutOfCharacters can only
  occur when stopping at the insertion point, and because of how
  the code is structured, it is guaranteed that current_input_character
  is either `P` or `S`, so the `has_value()` check is irrelevant.
2025-01-07 00:43:41 +01:00
Ryan Liptak
752deaf6ef LibWeb: Don't skip named-character-references test
This already passes, so there's no reason to skip it anymore
2025-01-07 00:43:41 +01:00
Psychpsyo
eb7824339b LibWeb: Improve user-select support 2025-01-06 12:22:37 +00:00
Shannon Booth
8214371ad5 LibWeb/HTML: Default ErrorEvent error to undefined
This was a change in the HTML spec, see:

032523196
2025-01-05 12:02:40 +01:00
Jaycadox
db58986e5f LibWeb/CSS: Recalculate calc() numeric type when resolving percentages
Previously, `percentage_of` would be called on the previous value,
potentially changing its numeric type, yet this potential change
was never reflected as the old numeric type was always used. Now,
the numeric type will be re-calculated every time after the
percentage is resolved. As well, VERIFY checks have been placed to
uphold the requirements for the numeric types to match what the
actual values are.
2025-01-04 18:47:44 +00:00
Tim Ledbetter
8c4e4ec31b LibWeb: Implement OscillatorNode.setPeriodicWave() 2025-01-04 10:12:24 +00:00
Lucas CHOLLET
d879771044 LibWeb/CSS: Consider unresolved calc() when serializing in Normal mode
Unfortunately, there is no explicit and step-by-step spec to perform
the serialization of `color()` declared values, so while being
spec-informed, this is quite ad-hoc.

Fixes 81 subtests in:
 - css/css-color/parsing/color-valid-color-function.html
2025-01-03 16:49:23 +00:00
Tim Ledbetter
a6f04506e4 LibWeb: Add BaseAudioContext.create_periodic_wave() factory method 2025-01-03 14:54:18 +01:00
Tim Ledbetter
a24718cc49 Tests: Don't attempt to create echo server if internals is not exposed 2025-01-03 11:15:16 +01:00
Tim Ledbetter
7f8ba951cb Tests: Don't attempt to set test timeout if internals is not exposed
Previously, test output would not be displayed for tests setting a long
timeout, if the internals object was not exposed.
2025-01-03 11:15:16 +01:00
Tim Ledbetter
72ca91ad1a LibWeb: Flesh out AudioBufferSourceNode buffer setter steps 2025-01-03 11:14:47 +01:00
Tim Ledbetter
1b160044c4 LibWeb: Add ConstantSourceNode interface 2025-01-03 11:13:27 +01:00
Tim Ledbetter
e564d25ffb LibWeb: Add ChannelSplitterNode interface 2025-01-02 11:39:23 +00:00
devgianlu
819178a49e LibWeb: Use correct default key size for HMAC
When the default key size was requested it was expressed in bytes
(instead of bits) and from the digest size instead of the block size.
2025-01-02 11:33:43 +01:00
devgianlu
f5d3d6a7d4 LibWeb: Set algorithm length for HMAC key generation
This assignment was missing from the spec, but has been fixed since
https://github.com/w3c/webcrypto/pull/394.

Also add relevant WPT tests.
2025-01-02 11:33:43 +01:00
Shannon Booth
2066ed2318 LibWeb: Correctly initialize Storage objects on the Document
Instead of storing all storage objects in static memory, we now
follow the the spec by lazily creating a unique Storage object
on each document object.

Each Storage object now holds a 'proxy' to the underlying backing
storage. For now, this proxy is simply a reference to the backing
object. In the future, it will need to be some type of interface
object that stores on a SQLite database or similar.

Session storage is now correctly stored / tracked as part of the
TraversableNavigable object.

Local storage is still stored in a static map, but eventually this
should be factored into something that is stored at the user agent
level.
2025-01-02 11:31:15 +01:00