1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-24 22:47:44 +00:00
Commit graph

12795 commits

Author SHA1 Message Date
Luke Wilde
f7bb79d6d1 LibJS: Fast-path ToTemporalTimeZone when the argument is a TimeZone
This is a normative change in the Temporal spec.

See: 54cea53
2022-10-16 13:40:21 +02:00
Luke Wilde
8c3512d6ce LibJS: Fast-path ToTemporalCalendar when the argument is a Calendar
This is a normative change in the Temporal spec.

See: 2a43b39
2022-10-16 13:40:21 +02:00
Kenneth Myhra
f09e256328 LibWeb: Let LoadRequest::set_body() take by value
This changes the signature of LoadRequest::set_body() to take by value
and then use move semantics to move the contents of the ByteBuffer.

This is done to avoid the fallible copy constructor of ByteBuffer.
2022-10-16 02:06:29 +03:30
Kenneth Myhra
7831e62955 LibWeb: Add support for DOM::Document to XHR::send()
This patch adds support for posting a DOM::Document using XHR::send().
2022-10-16 02:06:29 +03:30
Kenneth Myhra
d5247ae33e LibWeb: Let lambdas return WebIDL::ExceptionOr in XHR::send()
Instead of ErrorOr let these lambdas return WebIdL::ExceptionOr. This
patch also cleans up this part so it's a bit more readable.
2022-10-16 02:06:29 +03:30
networkException
afeff4cebb LibJS+js: Disable console debug messages outside Serenity only for js
Previously we would disable console debug messages on all non Serenity
platforms as it caused double printing on lagom `js`. This patch limits
this to the `js` utility, allowing LibWeb to print debug messages
regardless of the operating system :^)
2022-10-16 02:06:02 +03:30
Timothy Flynn
094f9bf6a2 LibJS: Subtract time zone offsets when converting from local time to UTC
When converting to UTC, the UTC AO first tries to disambiguate possible
time zone offsets for the given local time. When doing so, the
GetNamedTimeZoneEpochNanoseconds AO must *subtract* the found time zone
offset from the local time to convert to UTC. The same is performed
later in the UTC AO when returning the final UTC time (step 5).
2022-10-15 22:55:48 +02:00
Tobias Christiansen
2c808958b9 LibWeb: Make Cookie::Cookie transportable over IPC 2022-10-15 22:28:34 +02:00
Timothy Flynn
443ffab9dc LibJS: Use infallible ParseTimeZoneOffsetString
This is an editorial change in the Temporal spec. See:
654e300
2022-10-15 18:05:02 +02:00
Timothy Flynn
d992cba014 LibJS: Remove Temporal::DefaultTimeZone
This is an editorial change in the Temporal spec. See:
e232580
2022-10-15 18:05:02 +02:00
Timothy Flynn
735e1c4e20 LibJS: Replace GetIANATimeZoneOffset[Ns] with GetNamedTimeZoneOffset[Ns]
This is an editorial change in the Temporal spec. See:
e44d36b
2022-10-15 18:05:02 +02:00
Timothy Flynn
053cc90dbe LibJS: Replace GetIANATimeZoneEpochValue with GetNamedTimeZoneEpoch[Ns]
This is an editorial change in the Temporal spec. See:
e834014
2022-10-15 18:05:02 +02:00
Timothy Flynn
1a84dbcb07 LibJS: Replace GetEpochFromISOParts with GetUTCEpochNanoseconds
This is an editorial change in the Temporal spec. See:
1b051cc

Note that since Date's implementation of this AO uses Crypto bigints
rather than allocating JS bigints, this change has the fallout of
removing some unused VM parameters and adding an overload of the
IsValidEpochNanoseconds AO for use without a JS::BigInt.
2022-10-15 18:05:02 +02:00
Timothy Flynn
4fbec2e8b3 LibJS: Replace RoundTowardsZero with truncate
This is an editorial change in the Temporal spec. See:
409ab66
2022-10-15 18:05:02 +02:00
Timothy Flynn
019211bcb4 LibJS: Consolidate sources of system time zone to one location in Date
This is a normative change in the ECMA-262 spec. See:
43fd5f2

For the most part, these AOs are hoisted from Temporal.

Note that despite being a normative change, the expectation is that
this change does not result in any behavior differences.
2022-10-15 18:05:02 +02:00
Timothy Flynn
e952dca026 LibJS: Expose the StringToNumber AO for public use
This will be needed outside of Value.cpp.
2022-10-15 18:05:02 +02:00
martinfalisse
bd9ec60305 LibWeb: Implement minmax()
On the basis of the values passed to the minmax functions, do different
actions given different min and max grid track sizes.
2022-10-15 16:04:01 +02:00
martinfalisse
53f3df78e5 LibWeb: Implement auto-fill and auto-fit
Implement auto-fill and auto-fit for the grid, which allow for placing
as many columns as will fit within a given container size.
2022-10-15 16:04:01 +02:00
martinfalisse
4745a0c20a LibWeb: Implement more of the grid spec
This is a small change that implements more of the CSS Grid spec.
2022-10-15 16:04:01 +02:00
martinfalisse
e227e8027f LibWeb: Parse minmax() value
Parse the minmax() function when passed to the grid-template-columns or
grid-template-rows CSS property.
2022-10-15 16:04:01 +02:00
martinfalisse
a5f042b424 LibWeb: Parse auto-fill and auto-fit attributes
Parse auto-fill and auto-fit attributes for the CSS Grid.
2022-10-15 16:04:01 +02:00
martinfalisse
3cba4b6e41 LibWeb: Refactor parsing a GridTrackSize
This functionality was duplicated and this way it is more clean. It will
also be used when parsing minmax() values.
2022-10-15 16:04:01 +02:00
martinfalisse
202620e80c LibWeb: Refactor GridTrack maintenance in the GFC
Refactor the m_grid_columns and m_grid_rows to be maintained in the
class, which will make it easier to later create functions relating to
them.
2022-10-15 16:04:01 +02:00
martinfalisse
f7bd1edde3 LibWeb: Calculate the height of the css grid correctly
Enable the CSS grid height to be calculated correclly.
2022-10-15 16:04:01 +02:00
martinfalisse
b6a29ae9e2 LibWeb: Use w3 instead of drafts for spec
Add more specs to the CSS Grid class and update others so as to use
w3.org instead of the drafts website.
2022-10-15 16:04:01 +02:00
martinfalisse
f7af190de0 LibWeb: Add parent classes for managing GridTrackSizes
Add classes ExplicitTrackSizing and MetaGridTrackSize which will allow
for managing properties like auto-fill and minmax.

In the following CSS example there are 3 classes that will be used:
grid-template-column: repeat(auto-fill, minmax(50px, 1fr) 75px);

ExplicitTrackSizing - will contain the entire value. e.g.
repeat(auto-fill, minmax(50px, 1fr) 75px)

With a flag if it's a repeat, as well as references to the
MetaGridTrackSizes which is the next step down.

MetaGridTrackSize:
Contain the individual grid track sizes. Here there are two:
minmax(50px, 1fr) as well as 75px.

This way can keep track if it's a minmax function or not, and the
references to both GridTrackSizes in the case it is, or in just the one
if it is not.

GridTrackSize:
Is the most basic element, in this case there are three in total; two of
which are held by the first MetaGridTrackSize, and the third is held by
the second MetaGridTrackSize.
Examples: 50px, 1fr and 75px.
2022-10-15 16:04:01 +02:00
Andreas Kling
6d18164ab0 LibWeb: Apply min-width and max-width constraints to inline-block boxes 2022-10-15 14:10:30 +02:00
Andreas Kling
b289f97a65 LibWeb: Split intrinsic heights cache by definite available widths
As it turns out, we sometimes query the intrinsic height of a box before
having fully resolved and/or constrained its containing block. Because
of this, we may enter intrinsic sizing with different amounts of
available width for the same box.

To accommodate this scenario, we now allow caching of multiple intrinsic
heights, separated by the amount of available width provided as input.
2022-10-15 14:01:54 +02:00
Andreas Kling
869b322a8f LibWeb: Assign hypothetical flex item main sizes as temporary main size
This colors a bit outside the lines of the specification, but the spec
doesn't offer a proper explanation for how descendants of a flex item
are supposed to have access to the flex item's main size for purposes
of percentage resolution.

The approach I came up with here was to take the hypothetical main size
of each flex item, and assign it as a temporary main size. This allows
percentage resolution in descendants to work against the pre-flexing
main size of items. This seems to match how other engines behave,
although it feels somewhat dirty. If/when we learn more about this,
we can come up with something nicer.
2022-10-15 14:01:54 +02:00
Liav A
6bb738c1b3 Ports: Add dosfstools port 2022-10-15 13:16:24 +02:00
Linus Groh
acc1c2b3cb LibWeb/Fetch: Add "webidentity" destination for FedCM
This is a change in the Fetch spec.

See:
- 30d462d
- 7487a97
2022-10-15 12:15:31 +02:00
Linus Groh
5995a9fd06 LibWeb/Fetch: Add duplex property to Request
This is a change in the Fetch spec.

See: 1fbc40c
2022-10-15 12:15:31 +02:00
Linus Groh
60e9790a40 LibWeb/Fetch: Add support for parsing a single range header value
This is a change in the Fetch spec.

See:
- 2d080d7
- a18fb3e
2022-10-15 12:15:31 +02:00
snooze6214
1fde3737f4 LibJS: Move time zone annotation parsing into ParseISODateTime
This is an editorial change in the Temporal spec.

See: tc39/proposal-temporal@c410e25e47
2022-10-15 05:09:09 +00:00
Pavel
40aad77ab1 WebContent+LibWeb+LibJS: Report exceptions to the JS console
Print exceptions passed to `HTML::report_exception` in the JS console

Refactored `ExceptionReporter`: in order to report exception now
you need to pass the relevant realm in it. For passed `JS::Value`
we now create `JS::Error` object to print value as the error message.
2022-10-15 01:25:12 +02:00
leeight
2eb6dbd4f0 headless-browser: Add ca-certs-path options 2022-10-15 02:44:47 +03:30
Lucas CHOLLET
c837a1a8de LibAudio: Factorize stream initialisation to base class LoaderPlugin
All actual plugins follow the same logic to initialize their stream,
this commit factorizes all of this to their base class: `LoaderPlugin`.
2022-10-14 23:11:23 +02:00
Lucas CHOLLET
754b129f4a LibAudio: Allow the MP3 plugin to be constructed from a byte buffer 2022-10-14 23:11:23 +02:00
Lucas CHOLLET
bb17ee8397 LibAudio: Port the MP3 plugin to Core::Stream 2022-10-14 23:11:23 +02:00
Lucas CHOLLET
597a614ce6 LibAudio: Remove the last occurrence of Core::File in the Flac plugin
The design is deeply inspired from what is done in the Wav plugin.
2022-10-14 23:11:23 +02:00
Lucas CHOLLET
f028930033 LibAudio: Remove the last occurrence of Core::File in the Wav plugin 2022-10-14 23:11:23 +02:00
Lucas CHOLLET
2d6124049a LibAudio: Get rid of unused method Loader::file()
`aplay` and two files of `SoundPlayer` were relying on the include of
`LibCore/File.h` by `Loader.h`.
2022-10-14 23:11:23 +02:00
Andreas Kling
27a7c5ef40 LibWeb: Implement CSS fit-content algorithm precisely as spec says
We were using the available space in place of the stretch-fit size.
This was an oversight, and this patch fixes that. It's very possible
that this will uncover broken behavior elsewhere.
2022-10-14 19:53:52 +02:00
Andreas Kling
d7d8e3c78b LibWeb: Resolve *all* percentages in abspos height calculation
We were neglecting to resolve() percentages for many values.
2022-10-14 19:52:07 +02:00
Andreas Kling
834d98520a LibWeb: Implement basic support for align-content in flex layout
This property tells us how to lay out multi-line flex containers.
I implemented all modes except `space-between` and `space-around`.
Those are left as FIXMEs.
2022-10-14 19:50:15 +02:00
Andreas Kling
f8a2c0586a LibWeb: Parse the CSS align-content property 2022-10-14 19:50:15 +02:00
Andreas Kling
b062a0fb7c LibWeb: Make TextNode::ChunkIterator emit an empty chunk for content:""
This ensures that we create a line box for content:"", which would
otherwise get pruned by the empty line cleanup in IFC.

The empty line box is important in this case, since it gives us a
reference point for measuring the automatic height of the IFC's
containing block. By having an empty line, we can now correctly measure
the impact of vertical margins on a generated box with content:""
and allow them to contribute to the block height.
2022-10-14 19:50:15 +02:00
Andreas Kling
c70801ddbc LibWeb: Don't treat content: "" as collapsible whitespace
I couldn't find anything in specs about this, but it seems to be roughly
consistent with other engines.
2022-10-14 19:50:15 +02:00
Andreas Kling
4ddfc3a6db LibWeb: Mark content: "string" text nodes as generated
This will allow us to give them special treatment, particularly when
they are an empty string.
2022-10-14 19:50:15 +02:00
Andreas Kling
063d6cab8b LibWeb: Remove unused Layout::TextNode::ChunkIterator::m_layout_mode 2022-10-14 19:50:15 +02:00