Andrew Kaster
01c4625a42
AK: Tell Swift how to construct AK.StringView from string literals
2024-08-29 06:31:25 +02:00
Andrew Kaster
a3e6856b56
AK+Swift: Remove Foundation.Data footgun for AK.StringView
...
Also give the Swift.String init routines an explict label when
constructing from AK String types, as this caused issues in a later
commit to have them both with `_ data`.
2024-08-29 06:31:25 +02:00
Tim Ledbetter
03bbc2b111
LibWeb/SVG: Implement SVGImageElement
...
This element allows images to be embedded within SVGs.
2024-08-29 06:28:44 +02:00
Tim Ledbetter
267420d5aa
LibWeb: Remove ImagePaintable::layout_box()
...
This was not used.
2024-08-29 06:28:44 +02:00
Andreas Kling
b64df59cc6
LibWeb: Fix crash when setting innerHTML inside iframe srcdoc document
...
In particular, there was an assertion failure due to the temporary
parser document's "about base URL" being empty when trying to "parse a
URL" during parsing.
We fix this by copying the context element's document's about base URL
to the temporary parsing document while parsing a fragment.
This fixes a crash when loading search results on https://amazon.com/
2024-08-29 06:24:18 +02:00
Andrew Kaster
782926601d
Tests: Convert Swift tests to use Testing module where possible
...
The AK tests can't seem to use it because it crashes the frontend :)
2024-08-28 21:27:35 -06:00
Andrew Kaster
188b3bb9b8
CMake: Add find module for swift-testing
...
This project is a part of the Xcode-shipped toolchain on macOS, but
needs built from source on other platforms. However, using the Xcode
version of the framework leads to a bunch of rpath confusion when
trying to link it the expected way. I suspect that there will be a
more intuitive way to link this library from the toolchain when it
stabilizes. So we'll build it everywhere :)
2024-08-28 21:27:35 -06:00
Andrew Kaster
062e687289
Meta: Apply cxx-interop settings to swift targets directly
...
Instead of using a global setting, let's set this per-target. This
prevents conflicts when importing third-party dependencies that do
not tolerate the mode being "default".
2024-08-28 21:27:35 -06:00
circl
9ab17414ce
Documentation: Rephrase note about good first issues in beginner's guide
2024-08-28 20:37:46 -06:00
circl
3db56b1111
Documentation: Add coding style to developer docs in beginner's guide
2024-08-28 20:37:46 -06:00
circl
e47f9d718a
Documentation: Rephrase git rebase
description in beginner's guide
2024-08-28 20:37:46 -06:00
Jamie Mansfield
f1098b4226
LibWeb: Implement ServiceWorkerContainer.onmessageerror
CI / Lagom (false, FUZZ, ubuntu-22.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-22.04, Linux, GNU) (push) Waiting to run
CI / Lagom (true, NO_FUZZ, ubuntu-22.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-22.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-08-28 18:36:28 +01:00
Jamie Mansfield
4b1273cbde
LibWeb: Implement ServiceWorkerContainer.onmessage
2024-08-28 18:36:28 +01:00
simonkrauter
820676857a
LibWeb: Use nearest-neighbor scaling for ScalingMode::SmoothPixels
...
Adjust the translation from Gfx::ScalingMode to Skia SkFilterMode, so
that CSS::ImageRendering::Pixelated will result in
SkFilterMode::kNearest.
Before:
ScalingMode::SmoothPixels -> kLinear
After:
ScalingMode::SmoothPixels -> kNearest
Fixes #1170
2024-08-28 19:30:40 +02:00
Timothy Flynn
5352b0db58
Documentation: Add a note about fetching git notes
CI / Lagom (false, FUZZ, ubuntu-22.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-22.04, Linux, GNU) (push) Waiting to run
CI / Lagom (true, NO_FUZZ, ubuntu-22.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-22.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-08-28 15:36:47 +02:00
Timothy Flynn
a4e814578b
Documentation: Add a note about clang plugins
2024-08-28 15:36:47 +02:00
sideshowbarker
e76e48421f
LibWeb: Add “valid floating-point number” for HTMLInputElement.value
...
This change adds checking for the following spec requirements:
- https://html.spec.whatwg.org/#number-state-(type=number):value-sanitization-algorithm
- https://html.spec.whatwg.org/#range-state-(type=range):value-sanitization-algorithm
That is, it adds checking that HTMLInputElement.value is what the spec
defines as a “valid floating-point number” when the “type” attribute for
the HTMLInputElement is either “number” or “range”.
This change causes Ladybird to pass all the failing tests at
https://wpt.fyi/results/html/semantics/forms/the-input-element/number.html?run_id=5080423051034624
and to match the relevant behavior in Webkit, Blink, and Gecko.
Otherwise, without this change, Ladybird fails those tests, and the
relevant Ladybird behavior isn’t interoperable with other engines.
2024-08-28 07:49:17 -04:00
sideshowbarker
edf0d9b7bb
CMake: Enable running unit tests with a Debug build/preset
CI / Lagom (false, FUZZ, ubuntu-22.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-22.04, Linux, GNU) (push) Waiting to run
CI / Lagom (true, NO_FUZZ, ubuntu-22.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-22.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-08-28 01:13:16 -06:00
Tim Ledbetter
b688b5d9d4
LibWeb: Correctly test if WebDriver ExecuteScript timeout is reached
...
Previously, the conversion assumed that the supplied timeout was in
seconds rather than milliseconds.
2024-08-28 06:57:42 +01:00
Timothy Flynn
ba36312864
CI: Remove outdated references to Serenity vs. toolchain ccache
...
CI / Lagom (false, FUZZ, ubuntu-22.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-22.04, Linux, GNU) (push) Waiting to run
CI / Lagom (true, NO_FUZZ, ubuntu-22.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-22.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
The toolchain ccache no longer exists. Remove it and the "Serenity"
prefix from remaining ccache variables.
2024-08-27 19:24:39 -04:00
Timothy Flynn
0dd8fe1f0f
CI: Run the clang plugins during PR workflows
2024-08-27 19:24:39 -04:00
Timothy Flynn
953318e372
CI: Re-enable santizers in the clang plugins build
2024-08-27 19:24:39 -04:00
Timothy Flynn
ac62982ee2
CI: Explicitly set the ccache compiler check
...
This is needed to allow using clang plugins during PR workflows. They
currently are not included because they resulted in a clean build on
each run. With this, they should be cached.
2024-08-27 19:24:39 -04:00
Andrew Kaster
c5153cb398
Meta+Libraries+AK: Append Cxx to imported library module names in swift
...
At the same time, simplify CMakeLists magic for libraries that want to
include Swift code in the library. The Lib-less name of the library is
now always the module name for the library with any Swift additions,
extensions, etc. All vfs overlays now live in a common location to make
finding them easier from CMake functions. A new pattern is needed for
the Lib-less modules to re-export their Cxx counterparts.
2024-08-27 17:22:31 -06:00
Andrew Kaster
f27d638e0a
CMake: Always use a target for linking skia
2024-08-27 17:22:31 -06:00
Timothy Flynn
e782947a03
LibJS: Use the IteratorStepValue AO in Iterator prototypes
...
This is an editorial change in the Iterator Helpers proposal. See:
https://github.com/tc39/proposal-iterator-helpers/commit/b4ccc31
2024-08-27 13:00:37 -04:00
Timothy Flynn
48bef246a0
LibJS: Change generator state enum casing in IteratorHelperPrototype
...
This is an editorial change in the Iterator Helpers proposal. See:
https://github.com/tc39/proposal-iterator-helpers/commit/f1427ec
2024-08-27 13:00:37 -04:00
Jelle Raaijmakers
dee81f3545
LibWeb: Compare start container to parent in Text.splitText()
...
CI / Lagom (NO_FUZZ, ubuntu-22.04, Linux, Clang) (push) Waiting to run
CI / Lagom (FUZZ, ubuntu-22.04, Linux, Clang) (push) Waiting to run
CI / Lagom (NO_FUZZ, macos-14, macOS, Clang) (push) Waiting to run
CI / Lagom (NO_FUZZ, ubuntu-22.04, Linux, GNU) (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-22.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
Validate code with clang plugins / build-and-verify (push) Has been cancelled
Tiny mistake in the implementation of the spec; fixes 16 FAILs in the
WPT `/dom/ranges/Range-mutations-splitText.html` tests.
2024-08-27 07:13:08 -04:00
Jelle Raaijmakers
732e3fa82f
LibWeb: Propagate input/textarea selection update to document selection
...
Calling `.setSelectionRange()` or `.select()` now updates the document
selection as well, visualizing the text selection.
2024-08-27 07:11:50 -04:00
Jelle Raaijmakers
badcdcacf5
LibWeb: Update input/textarea selection on document selection change
...
This causes UI interactions with the document selection to also update
the input and textarea DOM selection state. Note that we switch around
the order of focusing a DOM node and setting the selection, so we allow
the focus event to override whatever selection we came up with.
2024-08-27 07:11:50 -04:00
Jelle Raaijmakers
814ca3267e
LibWeb: Implement input/textarea selection APIs
...
For both types of elements, `.selectionStart`, `.selectionEnd`,
`.selectionDirection`, `.setSelectionRange()`, `.select()` and the
`select` event are now implemented.
2024-08-27 07:11:50 -04:00
Jelle Raaijmakers
69bbeea4ef
LibWeb: Remove duplicate code from ViewportPaintable
...
No functional changes.
2024-08-27 07:11:50 -04:00
Timothy Flynn
730ec6aff9
CI: Move the clang-plugins-enabled build to a separate job
...
CI / Lagom (FUZZ, ubuntu-22.04, Linux, Clang) (push) Waiting to run
CI / Lagom (NO_FUZZ, macos-14, macOS, Clang) (push) Waiting to run
CI / Lagom (NO_FUZZ, ubuntu-22.04, Linux, Clang) (push) Waiting to run
CI / Lagom (NO_FUZZ, ubuntu-22.04, Linux, GNU) (push) Waiting to run
Validate code with clang plugins / build-and-verify (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-22.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
The plugins build that runs on master currently uses the same ccache key
as non-plugin builds in PRs. This means all clang PR builds are not able
to use ccache.
Move the plugins build to a separate job. This job also has sanitizers
disabled to make the plugins build quicker.
2024-08-26 21:48:59 -04:00
Timothy Flynn
f52bb43673
ClangPlugins: Add -Wno-unqualified-std-cast-call to test compile options
...
CI / Lagom (FUZZ, ubuntu-22.04, Linux, Clang) (push) Waiting to run
CI / Lagom (NO_FUZZ, macos-14, macOS, Clang) (push) Waiting to run
CI / Lagom (NO_FUZZ, ubuntu-22.04, Linux, Clang) (push) Waiting to run
CI / Lagom (NO_FUZZ, ubuntu-22.04, Linux, GNU) (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-22.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
We globally export std::move and std::forward in StdLibExtraDetails.h.
2024-08-26 17:24:53 -04:00
Timothy Flynn
660e846e94
Revert "LibWeb: Change where content selection via mouse is allowed"
...
This reverts commit 6c9adf3dbc
.
This change breaks e.g. typing into the search box on google.com and
comment boxes on github.com.
2024-08-26 14:08:59 -04:00
Timothy Flynn
fa4b324a12
LibUnicode: Remove unused time zone cache option
...
CI / Lagom (FUZZ, ubuntu-22.04, Linux, Clang) (push) Waiting to run
CI / Lagom (NO_FUZZ, macos-14, macOS, Clang) (push) Waiting to run
CI / Lagom (NO_FUZZ, ubuntu-22.04, Linux, Clang) (push) Waiting to run
CI / Lagom (NO_FUZZ, ubuntu-22.04, Linux, GNU) (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-22.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
Added this during development while testing some callers, but forgot to
remove it before opening a PR.
2024-08-26 11:37:02 -04:00
Bram Otte
003fc4f8ee
LibWeb: Handle multiple result values for WebAssembly functions
2024-08-26 16:50:05 +02:00
Andreas Kling
c22acc2551
LibWeb: Implement vertical-align: middle
correctly for atomic inlines
...
This makes inline icons pop into the right place on https://ahrefs.com/
2024-08-26 15:49:07 +02:00
Samuel Fry
c42679597a
LibWeb: Support parsing columns
2024-08-26 08:26:22 +01:00
Samuel Fry
23b4367c9c
LibWeb: Support parsing column-span
2024-08-26 08:26:22 +01:00
Samuel Fry
c113d3fae9
LibWeb: Support parsing column-width
2024-08-26 08:26:22 +01:00
sideshowbarker
ff170de49d
Ladybird: Remove unnecessary copy of decoded images
...
This also eliminates the clang-tidy warning “Std::move of the const
expression has no effect”.
2024-08-26 00:10:42 -06:00
Andreas Kling
84ab8bf797
LibWeb: Make CSS :hover selector match shadow-inclusive ancestors
...
Before this change, :hover wouldn't match anything outside the shadow
boundary when hovering elements inside a shadow tree. This was most
noticeable when hovering the text inside an input element and hover
styles disappearing from the hosting input element itself.
2024-08-25 12:53:08 +02:00
Tim Ledbetter
f3405b6eb2
LibWeb: Implement Navigator.serviceWorker
...
This currently returns a stubbed `ServiceWorkerContainer` object.
2024-08-25 09:48:30 +02:00
Tim Ledbetter
53ab6fa403
LibWeb: Stub the ServiceWorkerContainer
interface
2024-08-25 09:48:30 +02:00
Tim Ledbetter
0c0a4a6042
LibWeb: Stub the ServiceWorkerRegistration
interface
2024-08-25 09:48:30 +02:00
Tim Ledbetter
70fdf7affb
IDLGenerators: Add register
to the list of C++ keywords
...
This ensures that a generated C++ method called `register` will have an
underscore appended to it, avoiding a compile error.
2024-08-25 09:48:30 +02:00
Tim Ledbetter
d3e076f963
LibWeb: Implement cloning steps for HTMLTextAreaElement
2024-08-25 09:48:19 +02:00
Tim Ledbetter
71cfa705d1
LibWeb: Implement cloning steps for HTMLInputElement
2024-08-25 09:48:19 +02:00
Timothy Flynn
d8c69a0e9e
LibWebView+WebContent: Monitor for system time zone changes
...
This creates a TimeZoneWatcher in the UI process to inform all open
WebContent processes when the time zone changes. The WebContent process
will clear its time zone cache to retrieve a fresh zone the next time
it is asked for one.
2024-08-25 09:47:42 +02:00