Andreas Kling
c2c007b356
LibWeb: Don't request WebContent repaint while we have repaints pending
...
This prevents flickering by ensuring that WebContent is only ever
painting into the back buffer bitmap. Without this change, it was
possible for WebContent to paint into the front buffer bitmap.
2021-09-17 14:54:51 +02:00
Andreas Kling
17a5c96b7c
LibWeb: Make a SharedBitmap struct for OOPWV bitmaps
...
Instead of having separate members for "bitmap ID" and "bitmap", let's
wrap them in a struct.
2021-09-17 14:39:42 +02:00
Andreas Kling
c8c3828b59
LibGfx: Avoid invalidation when Path::close() is a no-op
...
If the path is already closed, calling close() is a no-op, and we don't
need to invalidate the split lines cache.
2021-09-17 13:41:34 +02:00
Andreas Kling
32b9d80ee5
LibGfx: Make Painter::fill_path() take Path by const reference
...
Taking a mutable reference here made the API look very strange.
2021-09-17 13:41:03 +02:00
Andreas Kling
8c863ad959
LibGfx: Make Path::bounding_box() and Path::split_lines() const
...
Use a const_cast internally when segmentizing. As far as clients are
concerned, these are const operations.
2021-09-17 13:40:34 +02:00
Andreas Kling
5726017414
LibGfx: Move FastBoxBlurFilter to its own .cpp file
2021-09-17 13:20:18 +02:00
Andreas Kling
f9a38fa693
LibGfx: Don't use unbounded VLA's in FastBoxBlurFilter
...
These would cause the stack to overflow when LibWeb tried rendering a
CSS box-shadow for a large enough element.
Use Vector (with *some* inline capacity for smaller images) to avoid
this issue. If these heap allocations turn out to be too much work,
we can add something like a persistent scratch buffer cache.
2021-09-17 13:20:18 +02:00
Andreas Kling
4fcb1be734
LibWeb: Skip rendering box-shadow blur if we don't have memory for it
...
A slight loss in graphical fidelity is better than not rendering the
page at all.
2021-09-17 13:20:18 +02:00
Andreas Kling
850795e088
LibGfx: Make some coding style fixes to FastBoxBlurFilter
2021-09-17 13:20:18 +02:00
Andreas Kling
e2e6c12ea0
LibWeb: Make ComputedValues return larger items by const reference
2021-09-17 13:20:18 +02:00
Andreas Kling
11bb6e045f
LibWeb: Add the IdleDeadline interface from the RequestIdleCallback spec
2021-09-17 13:20:18 +02:00
Andreas Kling
64df30230d
LibWeb: Add HTML::Task::Source::IdleTask
...
This represents what the spec calls the "idle-task task source".
2021-09-17 13:20:18 +02:00
Andrew Kaster
99b526731e
CI: Add missing $
to Sonar Cloud build steps
...
Without the `$` GitHub Actions doesn't do the environment variable
replacement and CMake thinks we want a source directory of `./}}`
2021-09-17 11:03:27 +01:00
Mustafa Quraish
090962823b
PixelPaint: Allow selecting a custom aspect ratio for RectangleTool
...
If you enter a custom aspect ratio, and are not holding down shift,
the rectangle will be constrained to the entered aspect ratio
2021-09-17 11:54:13 +02:00
Mustafa Quraish
6ba3fc559f
PixelPaint: Allow selecting a custom aspect ratio for EllipseTool
...
If you enter a custom aspect ratio, and are not holding down shift,
the bounding rect for the ellipse will be constrained to the entered
aspect ratio
2021-09-17 11:54:13 +02:00
Mustafa Quraish
f14c891ba5
LibGfx+PixelPaint: Add Point::end_point_for_aspect_ratio
method
...
Previously we only had `Point::end_point_for_square_aspect_ratio`,
which was convenient for PixelPaint but assumed the aspect ratio
was always fixed at 1. This patch replaces it with a new mthod that
takes in an arbitrary aspect ratio and computes the end point based
off that.
There's some explicit casting going on in `Point.cpp` to ensure that
the types line up, since we're templating Point based on `T`.`
2021-09-17 11:54:13 +02:00
Brian Gianforcaro
5c244a7893
Meta: Set SERENITY_ARCH if it is not set in debug-kernel.sh
...
This appears to have regressed recently in commit 783a58dbc
.
2021-09-17 09:16:40 +00:00
Eyad Hossam
fe9e2f463c
Browser: Remove redundant tab::view() call from the tab constructor
2021-09-17 10:45:37 +03:00
Linus Groh
20337a34a2
LibJS: Convert Instant AOs to ThrowCompletionOr
2021-09-17 08:25:12 +01:00
Linus Groh
ea7cc70118
LibJS: Convert Duration AOs to ThrowCompletionOr
2021-09-17 08:25:12 +01:00
Linus Groh
f8d92232c8
LibJS: Convert Calendar AOs to ThrowCompletionOr
2021-09-17 08:25:12 +01:00
Tim Schumacher
dea43d88e7
Toolchain: Remove breaking mbstate_t define from clang
2021-09-17 00:14:57 +00:00
Liav A
44f5f72add
Kernel/Devices: Use try_create_device helper for SB16
2021-09-17 01:02:48 +03:00
Liav A
fd4397a430
Kernel/Devices: Use try_create_device helper for ConsoleDevice
2021-09-17 01:02:48 +03:00
Liav A
5e8dcb9ca7
Kernel/Devices: Move ConsoleDevice into the Devices source directory
2021-09-17 01:02:48 +03:00
Liav A
aee4786d8e
Kernel: Introduce the DeviceManagement singleton
...
This singleton simplifies many aspects that we struggled with before:
1. There's no need to make derived classes of Device expose the
constructor as public anymore. The singleton is a friend of them, so he
can call the constructor. This solves the issue with try_create_device
helper neatly, hopefully for good.
2. Getting a reference of the NullDevice is now being done from this
singleton, which means that NullDevice no longer needs to use its own
singleton, and we can apply the try_create_device helper on it too :)
3. We can now defer registration completely after the Device constructor
which means the Device constructor is merely assigning the major and
minor numbers of the Device, and the try_create_device helper ensures it
calls the after_inserting method immediately after construction. This
creates a great opportunity to make registration more OOM-safe.
2021-09-17 01:02:48 +03:00
Itamar
9aa6dd6b78
Kernel: Unblock tracer process in Process:unblock_waiters()
...
Since the tracer process may not be our parent process, we need to
explicitly unblock it (instead of the parent) if we are being traced.
2021-09-16 23:47:46 +02:00
Itamar
bb1ad759c5
Kernel: Allow calling sys$waitid on traced, non-child processes
...
Previously, attempting to call sys$waitid on non-child processes
returned ECHILD.
That prevented debugging non-child processes by attaching to them during
runtime (as opposed to forking and debugging the child, which is what
was previously supported).
We now allow calling sys$waitid on a any process that is being traced
by us, even if it's not our child.
2021-09-16 23:47:46 +02:00
Linus Groh
6b4777c558
LibJS: Convert prepare_temporal_fields() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
9ac426c906
LibJS: Convert to_positive_integer() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
2f56fd48ca
LibJS: Convert parse_temporal_year_month_string() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
14f16d9ed4
LibJS: Convert parse_temporal_time_zone_string() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
0ccd11ba5f
LibJS: Convert parse_temporal_time_string() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
f86fa12deb
LibJS: Convert parse_temporal_duration_string() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
3c530dec5a
LibJS: Convert parse_temporal_date_time_string() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
4cb6eaf588
LibJS: Convert parse_temporal_date_string() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
2e28f0b371
LibJS: Convert parse_temporal_calendar_string() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
4f487266b4
LibJS: Convert parse_temporal_instant_string() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
3112de6f35
LibJS: Convert parse_iso_date_time() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
8792fdfdf6
LibJS: Convert reject_temporal_calendar_type() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
8dd45a1ba2
LibJS: Convert validate_temporal_unit_range() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
448a364210
LibJS: Convert to_smallest_temporal_unit() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
92187591dd
LibJS: Convert to_largest_temporal_unit() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
dd483d84f8
LibJS: Convert to_seconds_string_precision() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
f8f074f8a9
LibJS: Convert to_temporal_rounding_increment() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
65d26dd25e
LibJS: Convert to_show_calendar_option() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
509d13cf67
LibJS: Convert to_temporal_rounding_mode() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
9f03647f1f
LibJS: Convert to_temporal_overflow() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
b1e7e62657
LibJS: Convert get_string_or_number_option() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Linus Groh
8d6ac267dc
LibJS: Convert Temporal::get_option() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00