1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-16 06:12:07 +00:00
Commit graph

11625 commits

Author SHA1 Message Date
Timothy Flynn
37ab7cc694 LibJS: Implement Intl.NumberFormat V3's [[TrailingZeroDisplay]] changes 2022-07-18 08:51:07 +01:00
Timothy Flynn
a712c7b5e1 LibJS: Replace comparisons of "0"_bigint with SignedBigInteger::is_zero
This just avoids creating UnsignedBigInteger's underlying vector.
2022-07-18 08:51:07 +01:00
Timothy Flynn
440d185666 LibCrypto: Expose UnsignedBigInteger's is_zero() in SignedBigInteger
Note we don't need to check the sign because negative zero became
disallowed in b0d6399f60.
2022-07-18 08:51:07 +01:00
Timothy Flynn
bb9a44cd50 LibJS: Implement Intl.NumberFormat V3's [[RoundingPriority]] changes 2022-07-18 08:51:07 +01:00
Timothy Flynn
9e50f25ac4 LibJS: Prevent i64 overflow when computing large NumberFormat exponents
The largest exponents we compute are on the order of 10^21 (governed by
the maximumSignificantDigits option, which has a max value of 21). That
is too large to fit into the i64 we were using when multiplying this
exponent by the value to be formatted.

Instead, split up the logic to multiply that value by this exponent
based on the value's underlying type:

Number: Do not cast the result of pow() to an i64, and perform the
follow-up multiplication with doubles.

BigInt: Do not use pow(). Instead, compute the exponent as a BigInt
from the start, then perform the follow-up multiplication with that
BigInt.
2022-07-18 08:51:07 +01:00
Timothy Flynn
c367bcb5f8 LibJS: Remove accidentally duplicated [[RoundingType]] enumeration
This is defined in NumberFormat's base class.
2022-07-18 08:51:07 +01:00
Linus Groh
6619483169 LibWeb: Update incorrect Fetch namespaces
Oops, this namespace rename wasn't committed yet.
2022-07-18 08:14:04 +01:00
Linus Groh
58fda93ea2 LibWeb: Add Blob to Fetch's Body::SourceType variant 2022-07-18 08:11:25 +01:00
Linus Groh
c501453425 LibWeb: Use Fetch's HeaderList::get_decode_and_split() in XMLHttpRequest 2022-07-18 08:10:54 +01:00
Linus Groh
bc68539e26 LibWeb: Add & use TRY_OR_RETURN_OOM macro
This is a convenient way to return a DOM exception for operations that
return ErrorOr and only have an OOM failure path.
2022-07-17 21:08:10 +01:00
MacDue
eef148f7e7 LibGfx: Fix direction of vertical gradients
Previously the color blending and alpha blending were working from
opposite sides.
2022-07-17 20:11:38 +01:00
MacDue
03037cbe4e LibGfx: Support alpha blending on gradients 2022-07-17 20:11:38 +01:00
MacDue
cbc04a6285 LibWeb: Support painting simple linear-gradients
This is just a quick test that everything is working. Currently
it paints the gradients with the existing
painter.fill_rect_with_gradient(). This can only handle two-color
orthogonal gradients.
2022-07-17 20:11:38 +01:00
MacDue
ee7e9e7c86 LibWeb: Allow having a linear-gradient() as a background-image 2022-07-17 20:11:38 +01:00
MacDue
ae6c0258a4 LibWeb: Parse the linear-gradient() CSS function
This should parse linear-gradient()s as defined in the W3 spec
https://drafts.csswg.org/css-images/#linear-gradients.

Note: This currently cannot parse multi-position color stops,
these are shown on MDN and work in Firefox and Chrome, though do
not seem to be defined in the spec.

See: https://developer.mozilla.org/en-US/docs/Web/CSS/gradient/linear-gradient#gradient_with_multi-position_color_stops

P.s. This also allows -webkit-linear-gradient for compatibility.
2022-07-17 20:11:38 +01:00
MacDue
259bb30c35 LibWeb: Add LinearGradientStyleValue 2022-07-17 20:11:38 +01:00
MacDue
8603541e56 LibWeb: Add serialize_a_srgb_value()
This moves the logic from ColorStyleValue::to_string() to a standalone
function.
2022-07-17 20:11:38 +01:00
Luke Wilde
aa9f7cc597 LibWeb: Fix queuing mutation records for node removal
Step 19 of node removal was missing, which allows the mutations of the
descendants of the removed node to still be observed by the parent.

Step 20 of node removal queued the mutation record for the removed
node instead of it's parent. Since queuing takes place after the node
is removed from the tree, the mutation record would be lost as the only
inclusive ancestor of the node at this point is only the node itself.
2022-07-17 18:21:09 +01:00
Andreas Kling
9b46091f38 LibWeb: Rename LayoutState::NodeState => LayoutState::UsedValues
This object contains all the CSS "used values" as seen during the layout
process, so calling it "used values" seems appropriate. :^)
2022-07-17 14:11:37 +02:00
Andreas Kling
52862c72d0 LibWeb: Rename FormattingState to LayoutState
This seems a bit more descriptive (and also a bit shorter).
2022-07-17 14:11:36 +02:00
Andreas Kling
0d8f9019c8 LibWeb: Implement basic stretch alignment for flex-wrap: wrap
We currently ignore the `align-content` property, that's a FIXME
for our future selves.
2022-07-17 14:11:36 +02:00
Andreas Kling
9fc43d5766 LibWeb: Update flex container intrinsic size algorithm to draft spec
The CSSWG draft Flexbox spec is a bit clearer on some details, so let's
update our implementation to match the latest version.
2022-07-17 14:11:36 +02:00
Andreas Kling
c964a6b548 LibWeb: Paper over a VERIFY() crash in ResourceLoader for now 2022-07-17 14:11:36 +02:00
sin-ack
57c8677b5c LibLine: Ignore empty spans when stylizing
Previously we would erroneously apply the stylization to the whoever
called stylize next. Now we first check whether the span is non-empty
before stylizing. All non-empty spans must have at least one character
in them (end-exclusive).
2022-07-17 00:51:31 +00:00
Linus Groh
ac36d272d3 LibWeb: Avoid needless copies during Blob construction 2022-07-17 00:34:25 +01:00
Kenneth Myhra
5806eeec08 LibWeb: Add support for XHR response type Blob 2022-07-17 00:23:19 +01:00
Kenneth Myhra
df8c49f6bf LibWeb: Introduce Blob 2022-07-17 00:23:19 +01:00
Linus Groh
8da3914bdc LibWeb: Add definitions from '2.2.6. Responses' in the Fetch spec 2022-07-16 21:05:00 +01:00
Timothy Flynn
864c7fb9f1 LibJS: Update spec numbers from the array-find-from-last proposal merge
See: 5f31dd6
2022-07-15 14:14:00 +01:00
Timothy Flynn
999ad734ec LibJS: Sort TypedArray.prototype methods in spec order
Makes it much easier to scroll through the file while comparing to the
spec. Proposals are inserted alphabetically as that's where they will
likely end up once merged into the main spec.
2022-07-15 14:14:00 +01:00
Timothy Flynn
f19c4ab693 LibJS: Sort Array.prototype methods in spec order
Makes it much easier to scroll through the file while comparing to the
spec. Proposals are inserted alphabetically as that's where they will
likely end up once merged into the main spec.
2022-07-15 14:14:00 +01:00
Linus Groh
7116a7d2bf LibWeb: Add definitions from '2.2.5 Requests' in the Fetch spec 2022-07-15 14:15:30 +02:00
Linus Groh
4f02bac39c LibWeb: Add a couple of missing includes to Fetch's Headers.h 2022-07-15 14:15:30 +02:00
Linus Groh
2b06e4b98b LibWeb: Mark Origin::serialize() as const 2022-07-15 14:15:30 +02:00
Andreas Kling
884b7fad48 LibWeb: Remove weird is_undefined_or_auto() helper in FFC
This was a leftover from when ComputedValues stored sizes in Optionals.
Now that we've gotten rid of the "undefined" state, there's no need for
this helper, we can just access the size values directly.
2022-07-15 14:11:19 +02:00
Andreas Kling
0636e1db61 LibWeb: Update flex line "remaining free space" when finished
Since we re-use this value later in the layout algorithm, we have to
update it before leaving the "resolve flexible lengths" step.
2022-07-15 14:11:19 +02:00
networkException
15c290461f LibGUI: Apply more padding to text on tabs
Previously the text would be up close to the left / right border
depending on the alignment.

This patch increases the padding on either side from one to four pixels.
2022-07-15 12:43:16 +02:00
Hendiadyoin1
d783389877 Kernel+LibC: Add posix_fallocate syscall 2022-07-15 12:42:43 +02:00
FrHun
96276c87cf LibIPC: Retry post_message write on EAGAIN and yield
This is a quick and dirty fix to at least get the Inspector working
again. This is a very bad solution long term, because it will spin on
the EventLoop. That is why there is a message reminding everyone this
problem still needs to be fixed, every time this is actually done.
2022-07-15 12:38:35 +02:00
FrHun
720e0a096f LibCore: InspectorServerConnection send responses with multiple writes 2022-07-15 12:38:35 +02:00
CodeforEvolution
23db98d1e9 LibGUI: Sync ColorPicker's color slider with other color widgets
The color slider on the ColorPicker widget's "Custom Color" page will
now update when changing the color with the individual channel
spinboxes and the larger color field box.

Fixes #14425
2022-07-15 12:35:38 +02:00
Lucas CHOLLET
fcb1d2cfb7 LibGUI: Fix weird behavior when using Ctrl+Shift+[Up,Down] in TextEditor
Those inconveniences come from cursor and selection not being saved
during the switch.
2022-07-15 12:33:59 +02:00
Lucas CHOLLET
4d93fb4789 LibGUI: Add a helper for VerticalDirection
The function converts Key_[Up, Down] to the corresponding
VerticalDirection.
2022-07-15 12:33:59 +02:00
Lucas CHOLLET
0bcfbdb072 LibGUI: Explicitly default initialize class members 2022-07-15 12:33:59 +02:00
Timothy Flynn
aafcdc4c72 LibJS: Allow specifying keyword values not directly defined for a locale
For example, consider the locales "en-u-nu-fullwide" or "en-u-nu-arab".
The CLDR only declares the "latn" numbering system for the "en" locale,
thus ResolveLocale would change the locale to "en-u-nu-latn". This patch
allows using non-latn numbering systems digits.
2022-07-15 12:31:43 +02:00
Timothy Flynn
998f62936b LibUnicode: Remove obsolete Unicode::get_default_number_system
This has been superseded by get_preferred_keyword_value_for_locale,
which doesn't require allocating a Vector just to return its first
element.
2022-07-15 12:31:43 +02:00
Timothy Flynn
c657f23e6f LibJS: Remove hard-coded lists of collation types
Working around not having collation data in the CLDR now handled in the
Unicode generators.
2022-07-15 12:31:43 +02:00
Timothy Flynn
f8f7015419 LibUnicode: Generate a method to lookup locale-preferred keyword values 2022-07-15 12:31:43 +02:00
Timothy Flynn
80568d5776 LibUnicode: Generate a method to lookup available keyword values 2022-07-15 12:31:43 +02:00
Timothy Flynn
c2e5b20eb6 LibUnicode: Generate available values for the keywords co, kf, kn, hc
This also ensures we only include values we actually support in the
generated list of available values.
2022-07-15 12:31:43 +02:00