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

6554 commits

Author SHA1 Message Date
Linus Groh
643a2433db LibJS: Enable Temporal.Calendar.prototype.dateAdd() test that now passes 2021-11-02 09:24:35 +01:00
Linus Groh
d49bbb1da3 LibJS: Implement TODO()'d parts of balance_duration()
Massive :yakstack:, so I understand why it was skipped in the first
place :^)
2021-11-02 09:24:35 +01:00
Luke Wilde
17fd08d752 LibJS: Implement Temporal.PlainTime.prototype.subtract()
a
2021-11-01 23:51:23 +01:00
Luke Wilde
4bf391ff4b LibJS: Implement Temporal.PlainTime.prototype.add() 2021-11-01 23:51:23 +01:00
Linus Groh
97f6c6029f LibJS: Implement Temporal.TimeZone.prototype.getInstantFor() 2021-11-01 21:39:45 +01:00
Ben Wiederhake
ea9f2f80a1 LibCore: Make ArgsParser '--help' description more general
Now that the output may end up in Markdown files (and thus the website),
the help message should no longer be self-referential.
2021-11-01 21:12:58 +01:00
Ben Wiederhake
0372f051e9 LibCore: Enable emitting markdown from ArgsParser
ArgsParser will now automatically look for an environment variable
'ARGSPARSER_EMIT_MARKDOWN', and if it is set to exactly the string "1"
(i.e. mere presence or values like "ON" or "yes" are not enough), then
ArgsParser will emit a Markdown-formatted help message, instead of the
regular help message designed for consumption through a terminal.
2021-11-01 21:12:58 +01:00
Ben Wiederhake
d2f9fee4ab LibMarkdown: Recognize and handle comments
This also improves Commonmark coverage, e.g. it fixes tests
HTML_blocks_ex179_2894..2906 and Lists_ex308_5439..5457.

In other words, we go from 271 out of 652 to 273 out of 652.
2021-11-01 21:12:58 +01:00
Ben Wiederhake
b8f11b1bae Everywhere: Remove unused ArgsParser header
Found while trying to enumerate all programs that use ArgsParser.
2021-11-01 21:12:58 +01:00
Timothy Flynn
95e492de59 LibWeb: Convert throw_dom_exception_if_needed() to ThrowCompletionOr
This changes Web::Bindings::throw_dom_exception_if_needed() to return a
JS::ThrowCompletionOr instead of an Optional. This allows callers to
wrap the invocation with a TRY() macro instead of making a follow-up
call to should_return_empty(). Further, this removes all invocations to
vm.exception() in the generated bindings.
2021-10-31 18:51:07 +01:00
Sam Atkins
84414da546 LibWeb: Implement prefers-color-scheme media query feature
This allows supporting websites to use a light or dark theme to match
our desktop theme, without being limited to palette colors. This can be
overridden with the `WebContentServer::set_preferred_color_scheme()` IPC
call.
2021-10-31 18:39:13 +01:00
Sam Atkins
53edaa3b26 LibWeb+WebContent: Add set_preferred_color_scheme IPC call
This allows the owner of a WebView to override whether to use a dark
theme or not, instead of just using the system theme's IsDark property.
2021-10-31 18:39:13 +01:00
Sam Atkins
c8550da9c5 LibWeb: Add Web::CSS::PreferredColorScheme enum 2021-10-31 18:39:13 +01:00
Sam Atkins
4f42e4ba90 LibGfx: Add 'IsDark' flag to SystemTheme and Palette
This explicitly states whether a given theme is a dark theme, so that
applications not using the system palette colors can still attempt to
match the overall theme.
2021-10-31 18:39:13 +01:00
Idan Horowitz
2eaed880b1 LibJS: Remove old Native Functions
Now that all the usages were updated to the new ThrowCompletionOr based
version we can remove the legacy version.
2021-10-31 18:20:37 +02:00
Idan Horowitz
bcf168f771 LibJS: Use ThrowCompletionOr accessors in CreateMappedArgumentsObject 2021-10-31 18:20:37 +02:00
Idan Horowitz
aa61110bdd LibWeb: Convert WebAssemblyTablePrototype funcs to ThrowCompletionOr 2021-10-31 18:20:37 +02:00
Idan Horowitz
f19512bf55 LibWeb: Convert WebAssemblyMemoryPrototype funcs to ThrowCompletionOr 2021-10-31 18:20:37 +02:00
Idan Horowitz
c7c914800c LibWeb: Convert WebAssemblyInstancePrototype funcs to ThrowCompletionOr 2021-10-31 18:20:37 +02:00
Idan Horowitz
a8d39bc070 LibWeb: Convert WebAssemblyObject functions to ThrowCompletionOr 2021-10-31 18:20:37 +02:00
Idan Horowitz
3e8c76d5ab LibWeb: Convert WebAssemblyObject AOs to ThrowCompletionOr 2021-10-31 18:20:37 +02:00
Idan Horowitz
a76cd669b1 LibWeb: Make GlobalObject the first parameter of WebAssembly AOs
Let's be consistent with the rest of LibJS (and the rest of the file).
2021-10-31 18:20:37 +02:00
Timothy Flynn
c19c306744 LibWeb: Convert all generated bindings to ThrowCompletionOr
This also required converting URLSearchParams::for_each and the callback
function it invokes to ThrowCompletionOr. With this, the ReturnType enum
used by WrapperGenerator is removed as all callers would be using
ReturnType::Completion.
2021-10-31 15:48:36 +01:00
Timothy Flynn
19ac19eae1 LibWeb: Convert the Navigator object to ThrowCompletionOr 2021-10-31 15:48:36 +01:00
Timothy Flynn
0f93c9d6c8 LibWeb: Convert the CSS namespace object to ThrowCompletionOr 2021-10-31 15:48:36 +01:00
Timothy Flynn
85dc3a8099 LibWeb: Convert the Window object to ThrowCompletionOr 2021-10-31 15:48:36 +01:00
Timothy Flynn
585e420707 LibWeb: Convert the Location object to ThrowCompletionOr 2021-10-31 15:48:36 +01:00
Marco Cutecchia
116bb4888f LibGUI: Support using a bitmap as override cursor 2021-10-31 12:37:49 +01:00
Jelle Raaijmakers
8f332ac6a3 LibC: Add labs()
We defined it in `stdlib.h` but forgot to implement it.
2021-10-31 12:00:57 +01:00
Timothy Flynn
e8f722fb27 LibJS: Convert %IteratorPrototype% to ThrowCompletionOr 2021-10-31 07:50:30 +02:00
Timothy Flynn
d1abf3d8ce LibJS: Convert ObjectConstructor to ThrowCompletionOr 2021-10-31 07:50:30 +02:00
Timothy Flynn
0f224779aa LibJS: Convert ObjectConstructor GetOwnPropertyKeys to ThrowCompletionOr 2021-10-31 07:50:30 +02:00
Timothy Flynn
e92d14d498 LibJS: Convert GlobalObject to ThrowCompletionOr 2021-10-31 07:50:30 +02:00
Timothy Flynn
875b563664 LibJS: Convert GlobalObject's Encode and Decode AOs to ThrowCompletionOr 2021-10-31 07:50:30 +02:00
Timothy Flynn
2a967fd107 LibJS: Convert Object.prototype to ThrowCompletionOr 2021-10-31 07:50:30 +02:00
Peter
24fdf99d8b LibELF: Store SSE registers in x86_64 PLT Trampoline
Save and restore XMM registers so userspace programs don't
randomly lose values from calls. This fixes a crash in ScummVM.
2021-10-31 00:21:31 +02:00
Linus Groh
2cbcb99ec7 LibJS: Update spec comment in parse_temporal_time_zone_string()
This is a normative change in the Temporal spec.

See: 19b693c
2021-10-30 23:15:18 +02:00
Linus Groh
a7cb042ca8 LibJS: Fix format_time_zone_offset_string() for negative offsets
This is a normative change in the Temporal spec.

See: ec43be3
2021-10-30 23:14:50 +02:00
Linus Groh
5da8ae0020 LibJS: Update parse_temporal_time_zone_string() substring bounds
This is a normative change in the Temporal spec.

See: 73b9fe3
2021-10-30 23:14:43 +02:00
Brendan Coles
6ccfa3e75e LibPDF: Parser::parse_header() return false if remaining bytes is zero 2021-10-30 17:34:56 +02:00
Linus Groh
92fdae178b LibJS: Implement Temporal.TimeZone.prototype.getPreviousTransition() 2021-10-30 16:32:20 +02:00
Linus Groh
e9cbeeac45 LibJS: Implement Temporal.TimeZone.prototype.getNextTransition() 2021-10-30 16:32:20 +02:00
Linus Groh
5fde02184d LibJS: Implement Temporal.TimeZone.prototype.getPossibleInstantsFor() 2021-10-30 16:32:20 +02:00
Linus Groh
82792a6815 LibJS: Mark single argument BigInt() constructor as 'explicit' 2021-10-30 16:32:20 +02:00
Noah Haasis
05aeff1c4d LibGUI: Focus next tab after closing active tab
Focus the next tab after closing the currently active tab.
If the tab being closed is the last one then the new last
tab is active.
2021-10-30 17:13:25 +03:30
Linus Groh
de2e95b278 LibJS: Ensure make_day()'s temporary Core::DateTime is treated as UTC
DateTime::create() and subsequently DateTime::set_time() uses mktime()
internally to ensure out-of-range input values still result in a valid
date (Jan 32 -> Feb 1 etc.).
This however also means that the input is treated as local time, and
then shifted to UTC accordingly for the returned time_t - it is however
already in UTC in this case! The temporary solution is simply to set the
"TZ" environment variable to "UTC" and back after create(). The proper
solution is probably to have better timezone support in Core::DateTime.
This should only affect Lagom, as serenity itself has no timezone
support yet and always assumes UTC.
2021-10-30 10:15:49 +02:00
Linus Groh
28a9a248d6 LibJS: Fix off-by-one in make_day()'s temporary Core::DateTime
Just like in the previous commit, the day value of Core::DateTime is
one-based, not zero based.
Noticed while implementing a new Temporal function, this likely would've
been caught earlier if we'd also use it for the Date API (we don't).
2021-10-30 10:15:49 +02:00
Linus Groh
232f54cd9b LibCore: Fix off-by-one in DateTime::{create,set_time} day default arg
Just like month, the day value here is one-based. This resulted in the
following situation, which is obviously unexpected:

    Core::DateTime::create(1970); // 1970-01-00 -> 1969-12-31
2021-10-30 10:15:49 +02:00
Daniel Bertalan
e9f0ebd4bd LibHTTP: Fix logic error leading to buffer over-read
When we receive HTTP payloads, we have to ensure that the number of
bytes read is *at most* the value specified in the Content-Length
header.

However, we did not use the correct value when calculating the truncated
size of the last payload. `m_buffered_size` does not store the total
number of bytes received, but rather the number of bytes that haven't
been read from us.

This means that if some data has already been read from us,
`m_buffered_size` is smaller than `m_received_size`. Because of this, we
ended up resizing the `payload` ByteBuffer to a larger size than its
contents. This garbage data was then read by consumers, producing this
warning when executing scripts:

> Extension byte 0xdc in 1 position after first byte 0xdc doesn't make
> sense.
2021-10-30 00:54:34 +03:30
Timothy Flynn
ef62118c8b LibWeb: Render any specified list-style-image for list items 2021-10-29 22:06:49 +02:00