Commit graph

41528 commits

Author SHA1 Message Date
MacDue 240fb93cf1 LibWeb: Remove FIXME for double-position linear-gradient() color stops
I added these in #14977, but forgot to remove this FIXME.
2022-10-01 14:08:01 +02:00
Luke Wilde 082abf9998 Base: Add rotateX, rotateY, rotateZ and matrix3d examples for transform 2022-10-01 14:07:47 +02:00
Luke Wilde dbe12662b8 LibWeb: Implement matrix3d transform function from css-transforms-2 2022-10-01 14:07:47 +02:00
Luke Wilde 0fdd924db2 LibWeb: Implement rotation transform functions from css-transforms-2 2022-10-01 14:07:47 +02:00
MacDue ddfe18783b Magnifier: Don't error if cancelling capture save 2022-10-01 14:06:53 +02:00
Luke Wilde 540c307009 LibWeb: Implement Element.insertAdjacentText 2022-10-01 14:06:40 +02:00
Luke Wilde d540e2ec98 LibWeb: Implement Element.insertAdjacentElement 2022-10-01 14:06:40 +02:00
thankyouverycool f27f2e0d3b Welcome: Use StandardPaths to load README.md 2022-10-01 13:39:10 +03:30
thankyouverycool 12b9c0ce7f Welcome: Add new tips 2022-10-01 13:39:10 +03:30
thankyouverycool a6b8ac10f7 Welcome: Use fallible try_create_default_icon() 2022-10-01 13:39:10 +03:30
thankyouverycool 9fe5cadcc8 Welcome: Update GML
Moves more settings to GML to simplify construction and replaces
deprecated GML properties.
2022-10-01 13:39:10 +03:30
thankyouverycool ca54a965a0 Welcome: Port to Core::Stream 2022-10-01 13:39:10 +03:30
thankyouverycool bd66453e8d LibCore: Add documents_directory() to StandardPaths 2022-10-01 13:39:10 +03:30
thankyouverycool 72c0414a58 Welcome: Remove unnecessary include 2022-10-01 13:39:10 +03:30
thankyouverycool 929f31f564 Welcome: Add/remove SystemServer group entry to toggle startup
Previously Welcome relied on a bogus executable key value to disable
startup. This always printed an error on login and littered the config
file with a useless entry. Adding/removing the group as needed seems
a bit nicer.
2022-10-01 13:39:10 +03:30
thankyouverycool be3cc756fc config: Enable adding and removing groups 2022-10-01 13:39:10 +03:30
thankyouverycool c34f2e75e9 LibCore+LibConfig+ConfigServer: Add Config::{add,remove}_group()
Plumbs synchronous calls for adding and removing group entries to
config files. This is useful for services like SystemServer which
default to group names for executable paths, and for removing all
keys at once.
2022-10-01 13:39:10 +03:30
thankyouverycool 6f394d9ee2 LibConfig+ConfigServer: Make remove_key() synchronous
Previously, when removing keys, the config utility terminated its
connection before changes could be synced.
2022-10-01 13:39:10 +03:30
Tim Schumacher be6b3710c8 Ports/qemu: Use the coarse monotonic clock for timing CPU ticks
While this loses quite a bit of accuracy (although to no apparent
decrease in emulation quality) , it helps avoiding the additional
overhead of the `clock_gettime` syscall (as `CLOCK_MONOTONIC_COARSE`
is forwarded using the mapped time page) and we don't have to do a
HPET timer read for each tick.

This results in a decrease of Serenity boot time from 1h16m down to
42m when running on Serenity.
2022-09-30 20:13:11 -07:00
Nico Weber a934fa3d28 AK: Fix a comment typo 2022-09-30 20:09:26 -07:00
Nico Weber b0c0ebc543 Kernel: Fix a comment typo 2022-09-30 20:09:26 -07:00
Hendiadyoin1 911506af9f LibJS: Align Instructions as void* and roundup variably sized ones sizes
Both is indeed needed,
the standard alignment would have been 4, but some Instructions, like
Jumps need an alignment of 8

Fixes #12127.
2022-10-01 00:04:02 +01:00
Hendiadyoin1 89408d5f64 LibJS: Handle argument spreading in the bytecode vm 2022-10-01 00:04:02 +01:00
Hendiadyoin1 ae52ae8f9f LibJS: Add support for SpreadExpressions in array literals for bytecode
For this it adds another opcode `Append $lhs` which appends the
accumulator to the Array in $lhs, optionally spreading it.
2022-10-01 00:04:02 +01:00
Hendiadyoin1 4235b2020f LibJS: Switch to array-calls in the bytecode vm
This will make it easier to implement spreading arguments.
2022-10-01 00:04:02 +01:00
Hendiadyoin1 ab763a56f6 LibJS: Allow SpreadExpressions to generate bytecode 2022-10-01 00:04:02 +01:00
Luke Wilde 9662eec388 LibWeb: Apply :enabled pseudo class to only certain elements
I thought the spec listing out the elements again was an oversight, but
it isn't, as simply inverting "is_actually_disabled" makes :enabled
apply to every element.
2022-09-30 21:46:53 +02:00
Luke Wilde 2133b7d58a LibWeb: Implement :enabled and :disabled pseudo classes to spec
Previously we only considered an element disabled if it was an <input>
element with the disabled attribute, but there's way more elements that
apply with more nuanced disabled/enabled rules.
2022-09-30 18:05:48 +02:00
Luke Wilde c85fcd442f LibWeb: Check all <fieldset> ancestors in FormAssociatedElement::enabled
A form associated element is disabled if _any_ <fieldset> ancestor in
the ancestor chain has the disabled attribute, not just the first one.
2022-09-30 18:05:48 +02:00
Andreas Kling 30815c25a2 LibCore+LibGUI: Make it fast to check if a Core::Object is a Widget
This check happens very often in LibGUI code. 25% of time spent
layouting the emoji input dialog was wasted on RTTI. Adding a simple
fast_is<Widget>() melts almost all of that away.
2022-09-30 18:00:55 +02:00
Luke Wilde 1cff5fe2ff Base: Add ~200 more ads and trackers to the default content filter list 2022-09-30 15:51:39 +01:00
Luke Wilde 55d1e84e0b Base: Change 6sc.io in default content filter to 6sc.co
This was simply a typo, it's `co` instead of `io`.
2022-09-30 15:51:39 +01:00
Xexxa 757eeaa367 Base: Adjust emoji sizes for some flags
🇦🇪 - U+1F1E6 U+1F1EA FLAG: UNITED ARAB EMIRATES
🇦🇬 - U+1F1E6 U+1F1EC FLAG: ANTIGUA & BARBUDA
🇨🇦 - U+1F1E8 U+1F1E6 FLAG: CANADA
🇨🇺 - U+1F1E8 U+1F1FA FLAG: CUBA
🇬🇧 - U+1F1EC U+1F1E7 FLAG: UNITED KINGDOM
🇬🇱 - U+1F1EC U+1F1F1 FLAG: GREENLAND
🇳🇴 - U+1F1F3 U+1F1F4 FLAG: NORWAY
2022-09-30 11:50:46 +01:00
Xexxa 5676213f47 Base: Add more emoji
🇭🇳 - U+1F1ED U+1F1F3 FLAG: HONDURAS
🇭🇷 - U+1F1ED U+1F1F7 FLAG: CROATIA
🇭🇹 - U+1F1ED U+1F1F9 FLAG: HAITI
🇰🇪 - U+1F1F0 U+1F1EA FLAG: KENYA
🇰🇲 - U+1F1F0 U+1F1F2 FLAG: COMOROS
🇱🇰 - U+1F1F1 U+1F1F0 FLAG: SRI LANKA
🇲🇩 - U+1F1F2 U+1F1E9 FLAG: MOLDOVA
🇲🇳 - U+1F1F2 U+1F1F3 FLAG: MONGOLIA
🇲🇾 - U+1F1F2 U+1F1FE FLAG: MALAYSIA
🇳🇨 - U+1F1F3 U+1F1E8 FLAG: NEW CALEDONIA
🇵🇬 - U+1F1F5 U+1F1EC FLAG: PAPUA NEW GUINEA
🇵🇲 - U+1F1F5 U+1F1F2 FLAG: ST. PIERRE & MIQUELON
🇵🇾 - U+1F1F5 U+1F1FE FLAG: PARAGUAY
🇷🇸 - U+1F1F7 U+1F1F8 FLAG: SERBIA
🇸🇧 - U+1F1F8 U+1F1E7 FLAG: SOLOMON ISLANDS
🇸🇽 - U+1F1F8 U+1F1FD FLAG: SINT MAARTEN
🇸🇿 - U+1F1F8 U+1F1FF FLAG: ESWATINI
🇹🇫 - U+1F1F9 U+1F1EB FLAG: FRENCH SOUTHERN TERRITORIES
🇹🇰 - U+1F1F9 U+1F1F0 FLAG: TOKELAU
🇹🇿 - U+1F1F9 U+1F1FF FLAG: TANZANIA
🇺🇬 - U+1F1FA U+1F1EC FLAG: UGANDA
🇿🇲 - U+1F1FF U+1F1F2 FLAG: ZAMBIA
2022-09-30 11:50:46 +01:00
Andreas Kling a0f3e2c9a2 LibWeb: Never claim that flex containers create a BFC
If a flex item is itself a flex container, we were previously lying when
asked if the item created a BFC. It creates an FFC, so stop lying about
this in FormattingContext::creates_block_formatting_context().
2022-09-29 20:10:12 +02:00
Andreas Kling 7c6e42c2d4 LibWeb: Fix bogus comparison when measuring if a float can fit
We were using `>=` instead of `>` when checking if a float with a given
width could fit in the available space. If the width was an exact match,
we rejected it! Oops :^)
2022-09-29 20:10:07 +02:00
Andreas Kling b7f9387f69 LibWeb: Don't draw only-translated stacking contexts via bitmap
If the 2D transform in effect is just a simple translation, we don't
need to draw into a temporary bitmap and then transform it. We can
just translate the painter. :^)
2022-09-29 20:10:02 +02:00
Andreas Kling e8a5233b94 LibWeb: Don't round fragment widths while accumulating in LineBuilder
By rounding the fragment widths, we sometimes inserted line breaks
prematurely, even though the fragment *would* fit.
2022-09-29 20:09:56 +02:00
Andreas Kling d64a8c3d2a LibWeb: Resolve cross-axis flex item margins in the common case 2022-09-29 20:09:52 +02:00
Andreas Kling 9e4226f353 LibWeb: Create flex items for empty generated boxes
I couldn't find anything in the specs about this, but GMail uses
empty generated boxes (`::before` and `::after` with `content: ""`)
inside a flexbox container in order to vertically center things.

The flexbox spec tells us to not generate flex items for empty
*anonymous* boxes, so we continue not doing that, but generated boxes
(any pseudo-element box) now always produce a flex item. This probably
isn't perfect either, and we'll have to revisit it for stuff like
`::first-letter`.
2022-09-29 20:09:49 +02:00
Andreas Kling 7abb512a86 LibWeb: Make PercentageOr<T>::contains_percentage() handle more cases 2022-09-29 20:09:44 +02:00
Andreas Kling df416bb822 LibWeb: Add AvailableSpace.cpp to CMakeLists.txt 2022-09-29 20:05:28 +02:00
Andreas Kling e6eb8a9f06 LibWeb: Fix crash in get_response_mime_type()
We were creating a ref-counted HeaderList object on the stack,
which then crashed in ~RefCounted() on scope exit, since nobody had
adopted it.
2022-09-29 18:33:53 +02:00
Andreas Kling 8fa459f2d6 LibWeb: Add missing null checks in Layout::Node::set_needs_display()
Let's not assume the containing block has a paintable box just because
someone is calling set_needs_display(). It can just be a no-op in that
case, and nobody gets hurt.
2022-09-29 18:33:41 +02:00
Andreas Kling 385657a4bf LibWeb: Add a helper for calculating the stretch-fit width of a box 2022-09-29 18:33:41 +02:00
Andreas Kling fce1c673c7 LibWeb: Add CSS::Size::to_string() and an AK::Formatter for it 2022-09-29 18:33:41 +02:00
Andreas Kling fdc9dc5729 LibWeb: Don't force layout when scrolling to non-existent anchor
If we're asked to scroll to an anchor element that's not actually in the
document, we don't need to perform a layout.
2022-09-29 18:33:41 +02:00
Andreas Kling f161e20e57 LibWeb: Make FormattingContext::run() take available space as input
Instead of formatting contexts flailing around to figure out from the
"inside" how much space is available on the "outside", we should
provide the amount of available space in both axes as an input to run().

This basically means that when something creates a nested formatting
context, the parent context is responsible for telling the nested context
how much space is available for layout. This information is provided
immediately when invoking run().

Note that this commit doesn't pass accurate values in all cases yet.
This first step just makes it build, and passes available values in some
cases where getting them was trivial.
2022-09-29 18:33:41 +02:00
Andreas Kling 6b2ce2ccc3 LibWeb: Add CSS::Size::make_px(float) convenience helper 2022-09-29 18:33:41 +02:00
Diego Iastrubni 58a44036a9 Lagom: Fix printf implementation on win32
It seems that Filip has already done the hard work, and found out the
implementation different between unix* and windows.

Borrowed from:
https://github.com/SerenityOS/serenity/compare/master...filiphsps:serenity:dev-win32#diff-e3209c9a434a102d0d9459e31e33ddb729dff925b95f41b9d1e56c1e7f88c487R466

Co-authored-by: Filiph Sandström <filiph.sandstrom@filfatstudios.com>
2022-09-29 17:01:22 +01:00