Andreas Kling
7abb182fa3
LibWeb: Honor negative margins on atomic inlines
...
Sizing already worked correctly, but before this change, we were too
aggressive with inserting line breaks when negative margins would
still an atomic inline to fit on the line.
2023-12-10 11:09:22 +01:00
Bastiaan van der Plaat
466153e680
Ladybird+LibWeb: Add basic select element support
2023-12-09 22:06:20 +01:00
Andrew Kaster
512624f31a
LibWeb: Add a basic MessageChannel test
2023-12-09 21:52:28 +01:00
Bastiaan van der Plaat
fef7571931
LibWeb: Add output element value
2023-12-09 21:50:17 +01:00
Bastiaan van der Plaat
f8509e2183
LibWeb: Add input number up down UI buttons
2023-12-09 21:49:38 +01:00
Bastiaan van der Plaat
1b9a961fb0
LibWeb: Add input stepUp and stepDown functions
2023-12-07 16:46:28 -05:00
Andrew Kaster
39c4a5e948
LibWeb: Add config file for LibWeb tests that skips Worker-echo.html
2023-12-07 16:46:20 -05:00
Kemal Zebari
3a820ddbdf
LibWeb/MimeSniff: Add sniffing in an audio or video context
2023-12-07 10:31:54 -07:00
Kemal Zebari
02ea85da2c
LibWeb/MimeSniff: Add sniffing in an image context
2023-12-07 10:31:54 -07:00
Kemal Zebari
ea15501f37
LibWeb/MimeSniff: Add sniffing in a browsing context
2023-12-07 10:31:54 -07:00
Kemal Zebari
f6d3ea33fa
LibWeb/MimeSniff: Add match an archive type pattern algorithm
2023-12-07 10:31:54 -07:00
Kemal Zebari
d5e5a1138f
LibWeb/MimeSniff: Add match an audio or video type pattern algorithm
2023-12-07 10:31:54 -07:00
Kemal Zebari
62ca3b518b
LibWeb/MimeSniff: Add the image type pattern matching algorithm
2023-12-07 10:31:54 -07:00
Kemal Zebari
2babc08c17
LibWeb/MimeSniff: Add rules for identifying an unknown mime type
...
This also implements the pattern matching algorithm since it's
needed.
2023-12-07 10:31:54 -07:00
Kemal Zebari
04e19df06a
LibWeb/MimeSniff: Implement Resource
...
See https://mimesniff.spec.whatwg.org/#resource
2023-12-07 10:31:54 -07:00
Aliaksandr Kalenik
facdbe13c7
Tests/LibWeb: Add ref test for inline node styles
...
Turn Base/res/html/misc/inline-node.html into ref test.
2023-12-07 10:52:47 +01:00
Sam Atkins
4c4daf4a62
LibWeb: Add tests for background-position
...
The css-backgrounds.html ref test file only tests the most basic usage
of this, which failed to catch some regressions, so let's add a more
extensive test. :^)
2023-12-05 09:55:16 +01:00
Aliaksandr Kalenik
b5f9c1d003
LibWeb: Use glyph run to represent text in PaintTextShadow command
...
Given that we have a glyph run where the position of each glyph is
calculated for text fragments during layout, we can reuse it to avoid
this work during painting.
2023-12-05 09:09:56 +01:00
Bastiaan van der Plaat
2107ab823d
LibWeb: Add basic HTML meter element support
2023-12-04 19:54:43 +00:00
Timothy Flynn
18a4455d43
LibWeb: Do not assume a shadow root has a host
...
After commit ff48b7333c , we remove shadow
roots from elements that are removed from the DOM. Setting a node's
shadow root to null also sets that shadow root's host to null. Thus, the
comment in Node::is_shadow_including_descendant_of that assumes the host
is always non-null is not true.
The test added here would previously crash when interacting with a node
that is a descendant of a removed shadow root.
2023-12-04 01:33:57 +01:00
Timothy Flynn
fd297a3248
LibWeb: Run the unfocusing steps when a click does not focus anything
...
For example, when clicking the document body outside of a focused input
element, we should unfocus that element.
2023-12-04 01:33:57 +01:00
Timothy Flynn
48240a6fc3
LibWeb: Focus the document element when unfocusing an element
...
Otherwise, the currently focused element remains focused.
2023-12-04 01:33:57 +01:00
Timothy Flynn
08ee48606d
LibWeb: Fire a change event on input elements in the focus update steps
...
This ensures the change event is received before the blur event.
2023-12-04 01:33:57 +01:00
Timothy Flynn
301d58e2d9
LibWeb: Fire the change event synchronously when committing changes
...
The spec does not say to do this asynchronously on a task queue.
2023-12-04 01:33:57 +01:00
Andreas Kling
ec081a2ef5
LibWeb: Don't crash on FormData.append() with emoji in name
...
If you can believe it, we were once again using StringBuilder's append()
when we really wanted append_code_point().
2023-12-04 00:04:04 +01:00
Andreas Kling
0d74ced9b5
LibWeb: Don't crash on Document.createElement() with emoji in tag name
...
Once again, we were mistakenly using StringBuilder's append(char) when
we really wanted append_code_point(u32).
2023-12-04 00:04:04 +01:00
Andreas Kling
1b81e0081d
LibWeb: Don't crash on Element.setAttribute() with emoji in name
...
We were mistakenly using StringBuilder's append(char) when we really
wanted append_code_point(u32).
2023-12-04 00:04:04 +01:00
Andreas Kling
dbca63a1db
LibWeb: Don't get stuck in TreeWalker.nextNode() when current detached
...
This fixes a hang on https://reddit.com/
Spec bug: https://github.com/whatwg/dom/issues/1102
2023-12-03 23:16:26 +01:00
Bastiaan van der Plaat
fb7b03d162
LibWeb: Add support for the input size attribute
2023-12-03 20:29:14 +01:00
Kenneth Myhra
d9fb116bcc
Tests/LibWeb: Initialize Blob with string and read it from arrayBuffer()
2023-12-03 20:28:10 +01:00
Kenneth Myhra
b72489409a
Tests/LibWeb: Initialize Blob with string and read it from text()
2023-12-03 20:28:10 +01:00
Shannon Booth
a8caa3edbc
LibWeb/Tests: Add a test to cover byte stream enqueue and respond
2023-12-03 20:26:14 +01:00
Aliaksandr Kalenik
681771d210
LibGfx+LibWeb: Calculate and save glyph positions during layout
...
Previously, we determined the positions of glyphs for each text run at
the time of painting, which constituted a significant portion of the
painting process according to profiles. However, since we already go
through each glyph to figure out the width of each fragment during
layout, we can simultaneously gather data about the position of each
glyph in the layout phase and utilize this information in the painting
phase.
I had to update expectations for a couple of reference tests. These
updates are due to the fact that we now measure glyph positions during
layout using a 1x font, and then linearly scale each glyph's position
to device pixels during painting. This approach should be acceptable,
considering we measure a fragment's width and height with an unscaled
font during layout.
2023-12-02 22:06:11 +01:00
Kemal Zebari
24b9d05ea8
LibWeb/HTML: Implement text attribute in HTMLTitleElement
2023-12-02 10:35:43 +01:00
Timothy Flynn
7edfeb7056
LibWeb: Support committing changes to <input> elements
...
We currently fire the change event on <input> elements when they lose
focus. The spec allows for us to also fire the event when changes are
"committed", so long as such an action makes sense for the input type.
This patch detects when the return key is entered in an <input> element
and uses that as the commit action for text-related types. If no change
has occurred since the last commit, no change event is fired.
2023-12-02 10:34:22 +01:00
Sam Atkins
9c12112916
LibWeb: Re-enable the css-background-repeat.html ref test
...
Assuming that my changes to make iframes delay the load event are
correct, and that nothing else was causing the flakiness, this test
should be OK now! (Famous last words.)
2023-12-01 10:28:02 +01:00
Timothy Flynn
ff48b7333c
LibWeb: Remove shadow roots from elements that are removed from the DOM
...
We currently create a shadow tree once for each DOM element that renders
with a shadow tree (e.g. <input>, <details>). If such an element is
removed from the DOM, we must remove its shadow tree. Otherwise, the
shadow tree will refer to the old document in perpetuity.
If the node is added back to a DOM, then recreate the shadow tree.
2023-11-30 08:49:15 +00:00
Kenneth Myhra
e3f5bbcbbe
Tests/LibWeb: Move existing XHR Text tests in under the XHR folder
2023-11-29 21:51:35 +01:00
Kenneth Myhra
3d86e16407
Tests/LibWeb: Verify instantiation behavior of Blob w/empty constructor
...
This verifies that a Blob instantiated with an empty constructor creates
a Blob with Blob.size equal to 0 and Blob.type equal to "".
2023-11-29 21:51:35 +01:00
Kenneth Myhra
36fddab68e
Tests/LibWeb: Verify XHR.response is an instance of Blob
...
This verifies that XHR.response is an instance of Blob when
XHR.responseType is set to 'blob'.
2023-11-29 21:51:35 +01:00
Kenneth Myhra
09487679eb
Tests/LibWeb: Verify XHR.response is an instance of Document
...
This verifies that XHR.response is an instance of Document when
XHR.responseType is set to 'document' and the response contains HTML.
2023-11-29 21:51:35 +01:00
Kenneth Myhra
990f73708d
Tests/LibWeb: Verify XHR.response is an instance of ArrayBuffer
...
This verifies that XHR.response is an instance of ArrayBuffer when
XHR.responseType is set to 'arraybuffer'.
2023-11-29 21:51:35 +01:00
Kenneth Myhra
68fa8f52b4
Tests/LibWeb: Verify XHR.open() throws on forbidden method
...
This verifies that XHR.open() throws a Security Error when 'CONNECT',
'TRACE', or 'TRACK' is passed as the method argument.
2023-11-29 21:51:35 +01:00
Kenneth Myhra
eb6a7ccc59
Tests/LibWeb: Verify XHR.open() throws on illegal token in method arg
...
This verifies that XHR.open() throws a Syntax Error if an illegal token
is passed to the method argument.
2023-11-29 21:51:35 +01:00
Kenneth Myhra
ff05f19c84
Tests/LibWeb: Verify XHR.send() throws when called twice
...
This verifies that XHR.send() throws an Invalid State Error when called
twice.
2023-11-29 21:51:35 +01:00
Kenneth Myhra
ac82585ae7
Tests/LibWeb: Verify XHR.send() throws when XHR.readyState is UNSENT
...
This verifies that an Invalid State Error is being thrown when
XHR.open() has not been called before calling XHR::send().
2023-11-29 21:51:35 +01:00
Aliaksandr Kalenik
afe24883b7
LibWeb: Remove exit for javascript urls in anchor activation_behavior()
...
This early return is no longer needed because Navigable::navigate()
can process `javascript:` urls.
Fixes https://github.com/SerenityOS/serenity/issues/22052
2023-11-25 16:33:54 +01:00
Shannon Booth
673329e1bd
LibWeb: Use ArrayBufferView for ReadableStreamBYOBReader
...
Which means that we now have support for DataViews.
Using the ArrayBufferView class also seems to make this read a whole
bunch nicer as well.
2023-11-24 08:43:35 +01:00
timmot
9f2ee86e4d
Tests/LibWeb: Test canvas fillStyle parsing of rgb strings
2023-11-24 08:42:18 +01:00
Andrew Kaster
1602663b9e
LibWeb+WebWorker: Implement a first cut of post_message for Workers
...
This implementation completely ignores MessagePorts, and manually plumbs
data through LocalSockets.
2023-11-24 08:41:38 +01:00