Nico Weber
421cf8d9bf
LibWeb: Parse stroke-{linejoin,miterlimit} attributes
...
CI / Lagom (false, NO_FUZZ, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (true, NO_FUZZ, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (false, FUZZ, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, macos-14, macOS, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Push notes / build (push) Waiting to run
Similar to LadybirdBrowser/ladybird#1714 .
We don't implement the linejoin values `miter-clip` and `arcs`, because
according to the SVG 2 spec:
> The values miter-clip and arcs of the stroke-linejoin property are at
> risk. There are no known browser implementations. See issue Github
> issue w3c/svgwg#592 .
Nothing uses this yet. The next step is to change
SVGPathPaintable::paint() to read `graphics_element.stroke_linejoin()`
and `graphics_element.stroke_miterlimit()` when painting.
2024-10-29 22:37:00 +00:00
Nico Weber
eafcd82e82
LibWeb: Support stroke-linecap as attribute as well
...
This should have been part of #1714 .
(stroke-linecap still isn't implemented, but once it is, it will
now work in attribute form as well.)
2024-10-29 22:37:00 +00:00
Piotr
205155a7ab
LibWeb: Set textarea
rows and cols default value if 0
...
CI / Lagom (false, FUZZ, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, macos-14, macOS, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (true, NO_FUZZ, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Push notes / build (push) Waiting to run
The cols and rows attributes are limited to only positive numbers with
fallback. The cols IDL attribute's default value is 20. The rows IDL
attribute's default value is 2.
The default value was returned only for the negative number. I added an
additional check for the case when the attribute is 0 to match the
specification.
2024-10-29 16:05:32 +01:00
Sam Atkins
5723ed3443
Tests: Add clip-path to calc() coverage test
2024-10-29 16:05:16 +01:00
Sam Atkins
ec9d67ae17
Tests: Add filter and backdrop-filter to calc() coverage test
...
Neither of these currently work correctly. This is just so we keep track
of them.
2024-10-29 16:05:16 +01:00
stelar7
2b65e86ec7
LibWeb: Add debug log message for missing calc() context
2024-10-29 14:40:40 +00:00
stelar7
488436fb54
LibWeb: Parse the rotate css property
2024-10-29 14:40:40 +00:00
Pavel Shliak
8ac60273a6
LibAudio: Manage channelCount in DynamicsCompressorNode
...
That helps to pass more WPT tests
under /webaudio/the-audio-api/the-dynamicscompressornode-interface/ctor-dynamicscompressor.html
2024-10-29 13:31:52 +00:00
Pavel Shliak
f2ed59879f
LibAudio: Manage channelCountMode in DynamicsCompressorNode
...
That helps to pass more WPT tests
under /webaudio/the-audio-api/the-dynamicscompressornode-interface/ctor-dynamicscompressor.html
2024-10-29 13:31:52 +00:00
Tim Ledbetter
ed658154d2
Meta: Set LADYBIRD_GIT_VERSION
environment variable in WPT.sh
...
This ensures the `browser_version` field of any wptreport format log
files include the current git commit hash.
2024-10-29 13:30:12 +00:00
Tim Ledbetter
472d5e87e9
Meta+LibCore: Include git hash in version string
...
If the `LADYBIRD_GIT_VERSION` environment variable is set, then use it
to set the version number printed by the `--version` argument.
2024-10-29 13:30:12 +00:00
Tim Ledbetter
e815847f86
LibCore: Remove SerenityOS specific version number code
2024-10-29 13:30:12 +00:00
Gingeh
ebb8342cf2
LibWeb: Implement and use "isomorphic decoding"
2024-10-29 08:26:13 -04:00
Tim Ledbetter
d79fcceb8a
Meta: Replace realpath
usage with cross-platform function in WPT.sh
CI / Lagom (false, FUZZ, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, macos-14, macOS, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (true, NO_FUZZ, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Push notes / build (push) Waiting to run
2024-10-29 07:30:32 -04:00
Tim Ledbetter
cd0b9c4ec0
Meta: Add cross-platform function for absolutizing paths
2024-10-29 07:30:32 -04:00
Timothy Flynn
8132587b3b
headless-browser: Implement WebView callbacks for WebDriver rect changes
2024-10-29 11:03:20 +00:00
Timothy Flynn
3ca2ee9c72
LibWeb+WebContent+WebDriver+UI: Make window min/maximize asynchronous
...
This follows suit of previous changes to never block the WebContent
process in WebDriver endpoints.
2024-10-29 11:03:20 +00:00
Timothy Flynn
9e10010c54
LibWeb: Add a document observer for visibility state changes
2024-10-29 11:03:20 +00:00
Timothy Flynn
bc67bdb160
LibWeb+UI: Initialize the system visibility state to 'hidden'
...
Not only does this match the spec, but otherwise when the UI process
sends us the initial visibility update, we would ignore the message as
we believed we were already visible (thus the update would not reach the
document).
2024-10-29 11:03:20 +00:00
Timothy Flynn
fa83cc722c
LibWeb+WebContent+WebDriver+UI: Make window rect updates asynchronous
...
It's currently possible for window size/position updates to hang, as the
underlying IPCs are synchronous. This updates the WebDriver endpoint to
be async, to unblock the WebContent process while the update is ongoing.
The UI process is now responsible for informing WebContent when the
update is complete.
2024-10-29 11:03:20 +00:00
Timothy Flynn
42984a10e9
IPCCompiler: Transfer DevicePixelRect by value
2024-10-29 11:03:20 +00:00
Timothy Flynn
e4f0e745a4
UI/Qt: Send the rect of the window itself to WebContent
...
This ensures that the live values we return to WPT match the requested
values.
2024-10-29 11:03:20 +00:00
Timothy Flynn
54f6db01af
UI/Qt: Do not multiply window position/size by the device pixel ratio
...
On macOS, this is resulting in values of window.screenX, window.screenY,
window.outerWidth and window.outerHeight that are 2x larger than Safari,
Firefox, and our AppKit UI.
2024-10-29 11:03:20 +00:00
Timothy Flynn
00a486d072
UI/AppKit: Convert window origins sent from WebDriver to AppKit's origin
...
Window origins in AppKit are the bottom-left position of the NSWindow,
relative to the bottom-left of the screen. So we must do some alignment
of the top-left position received from WebDriver.
2024-10-29 11:03:20 +00:00
Timothy Flynn
102a125ea5
UI/AppKit: Inform WebContent of the UI window position/size
...
This is required for APIs like window.screenX, as well as for WebDriver
and WPT.
2024-10-29 11:03:20 +00:00
Timothy Flynn
777eec095b
headless-browser: Implement dialog-related WebView callbacks
...
CI / Lagom (false, FUZZ, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, macos-14, macOS, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (true, NO_FUZZ, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Push notes / build (push) Waiting to run
This allows us to headlessly run WPT tests which involve dialogs.
2024-10-28 23:27:55 +01:00
Timothy Flynn
6590b8a1a7
headless-browser: Send a dummy screen rect to WebContent
...
The window.open spec assumes the User Agent knows its screen size. Send
a fake screen from headless-browser to WebContent.
2024-10-28 23:27:55 +01:00
Timothy Flynn
47af8c6733
LibWeb: Defer handling of WebDriver endpoint invocations
...
We can currently crash on WebDriver session shutdown when we receive a
Delete Session command. This destroys the WebDriver client while we are
inside the client's socket's on_ready_to_read callback. This is not
allowed by AK::Function.
To avoid this, we now only read data from the socket in the callback. We
then defer handling the message to break out of the callback.
2024-10-28 23:27:25 +01:00
Timothy Flynn
db1bcb2c56
LibHTTP: Make HttpRequest default-movable
...
Otherwise, clangd correctly warns that this type is only copyable.
2024-10-28 23:27:25 +01:00
Lucas CHOLLET
f253246a6c
LibWeb/CSS: Add support for the lch
color function
...
This makes us pass all `css/css-color/lch-00*.html` tests.
2024-10-28 23:26:19 +01:00
Lucas CHOLLET
e8fc731b8c
LibWeb/CSS: Introduce a base class for LCH-based color values
...
This will be used by both CSSLCH and CSSOKLCH.
2024-10-28 23:26:19 +01:00
Lucas CHOLLET
7a94709cd2
LibWeb/CSS: Factorize the parsing code for lch-like color functions
2024-10-28 23:26:19 +01:00
Shannon Booth
2c5cfbb968
LibWeb: Expose MessagePort.postMessage(message, transfer)
...
The overload resolution is no longer an issue, and we already had this
implemented :^)
2024-10-28 22:56:39 +01:00
Shannon Booth
897ba19e0f
LibWeb: Use FIXME extended attribute for ServiceWorker.postMessage
...
The old FIXME is no longer relevant :^)
2024-10-28 22:56:39 +01:00
Shannon Booth
bf81e2fd64
LibWeb: Implement Worker.postMessage(message, transfer)
2024-10-28 22:56:39 +01:00
Shannon Booth
755b63132b
LibWeb: Implement DedicatedWorkerGlobalScope postMessage(msg, transfer)
...
Unfortunately the added test (which passes locally) is skipped as it is
based off other Worker tests which are also skipped due to being flakey
in CI.
2024-10-28 22:56:39 +01:00
Shannon Booth
70599d3f8d
LibWeb: Add support for dictionaries in overload resolution
...
By making use of the known set of supported dictionary names in that
overload set. Note that this list is typically very small (the max that
we have currently is 1).
2024-10-28 22:56:39 +01:00
Shannon Booth
013c2a1c7c
LibWeb: Verify that all overloads contain Unscopable if present
...
It would be strange for the IDL to be defined as such, so instead of
leaving a FIXME comment, let's just verify that this doesn't happen in
practise incase it does end up happening in reality.
2024-10-28 22:56:39 +01:00
Lucas CHOLLET
48bbebc636
LibWeb/CSS: Start parsing the color()
function
...
This is really bare bone as we only support the `xyz-d50` color space
for the moment.
It makes us pass the following WPT tests:
- css/css-color/predefined-016.html
- css/css-color/xyz-d50-001.html
- css/css-color/xyz-d50-002.html
2024-10-28 22:55:57 +01:00
Grubre
a6794627b0
LibWeb: Use Element::lang() in matches_lang_pseudo_class
...
The previous implementation went up the DOM tree until it found lang
attribute. The new version uses lang() function from the spec.
2024-10-28 17:55:05 -04:00
Grubre
95c511a3f6
LibWeb: Use the correct locale when applying titlecase
...
Previously with lang="nl" and text-transform: capitalize, inner text
"ijsland" would turn to "Ijsland" instead of "IJsland", now it's as it
should be.
This fixes:
https://wpt.fyi/results/css/css-text/text-transform/text-transform-tailoring-001.html
2024-10-28 17:55:05 -04:00
Grubre
5ac1a24255
LibWeb: Implement lang() function for DOM::Element
...
This is in accordance with:
https://html.spec.whatwg.org/multipage/dom.html#the-lang-and-xml:lang-attributes
2024-10-28 17:55:05 -04:00
Jonne Ransijn
5c1bbd3eff
LibWeb: Make CSSRule::type()
non-virtual
...
All its overrides return constants, and without virtual dispatch the
`qualified_layer_name` and `absolutized_selectors` functions can benefit
from slightly better optimizations.
`CSSRule`s aren't allocated that often, so the memory impact is minimal.
2024-10-28 22:53:57 +01:00
Kostya Farber
2f41be733f
LibWeb: Add word spacing to tab size correctly
...
We should be adding the computed value for word spacing not letter
spacing twice.
2024-10-28 22:53:37 +01:00
Jelle Raaijmakers
1b82cb43c2
LibWeb+LibGfx: Fix SVG userSpaceOnUse gradient coordinate transformation
...
We were transforming coordinates for SVG gradients in a pretty
convoluted way: an inverse, unscaled transformation matrix was set up in
order to work around some (old?) technical limitations.
Rework this so the coordinate transformation no longer needs to be
inversed. This fixes gradients with "userSpaceOnUse" for its
gradientUnits attribute, which might cause coordinates to lie outside of
the bounding box of the gradient.
Two tests have updated reference screenshots with minor pixel updates;
this is probably the result of floating point precision improvements by
not inversing the matrix.
One test (svg-text-effects) has a bigger change: the gradient stops seem
to have moved along the text. This does seem to match other browsers
slightly better, so I'm moving forward with this ref update.
2024-10-28 22:53:17 +01:00
Jelle Raaijmakers
4d7da9878d
LibWeb: Implement gradient offset clamping for color stops
2024-10-28 22:53:17 +01:00
Jelle Raaijmakers
66925a3d80
LibWeb: Misc. SVG improvements
...
No functional changes: added spec comments, moved some code, removed an
unused member.
2024-10-28 22:53:17 +01:00
Ben Wiederhake
3553861046
LibWeb: Omit padding in WebCrypto AES-CBC exportKey
2024-10-28 21:15:59 +01:00
Lucas CHOLLET
15121d63ad
LibWeb/CSS: Make all children of CSSLabLike share the create()
method
...
CI / Lagom (false, FUZZ, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, macos-14, macOS, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (true, NO_FUZZ, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Push notes / build (push) Waiting to run
Small code deduplication. NFC.
2024-10-28 20:35:57 +01:00
66542e
9b44a99617
Documentation: Rename class name on Images/classes.png
...
Updated class name on diagram according to rename in the
commit(3a71748e5d
).
2024-10-28 11:06:38 -04:00