1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 01:17:36 +00:00
Commit graph

7733 commits

Author SHA1 Message Date
Sam Atkins
b18c334a4f LibWeb: Ensure there are no trailing tokens when parsing font-family 2023-12-08 10:47:23 +00:00
Sam Atkins
f84ccb8627 LibWeb: Part font property using TokenStream 2023-12-08 10:47:23 +00:00
Sam Atkins
333b705f25 LibWeb: Parse flex-flow property using TokenStream 2023-12-08 10:47:23 +00:00
Sam Atkins
bf3576667a LibWeb: Parse flex property using TokenStream 2023-12-08 10:47:23 +00:00
Sam Atkins
4f3136c230 LibWeb: Parse shadow values using TokenStream 2023-12-08 10:47:23 +00:00
Sam Atkins
3a36b2eea9 LibWeb: Parse border properties using TokenStream 2023-12-08 10:47:23 +00:00
Sam Atkins
0e00d9a67d LibWeb: Parse background property using TokenStream 2023-12-08 10:47:23 +00:00
Sam Atkins
64a44b719e LibWeb: Parse FilterValueListStyleValue using TokenStream 2023-12-08 10:47:23 +00:00
Sam Atkins
2efaadd63c LibWeb: Parse aspect-ratio property using TokenStream 2023-12-08 10:47:23 +00:00
Sam Atkins
647d52ff9a LibWeb: Parse quotes property using TokenStream 2023-12-08 10:47:23 +00:00
Sam Atkins
ebad94658a LibWeb: Parse display property using TokenStream 2023-12-08 10:47:23 +00:00
Sam Atkins
3d6eb36664 LibWeb: Parse content property using TokenStream 2023-12-08 10:47:23 +00:00
Sam Atkins
4d6e8d8f37 LibWeb: Parse border-radius properties using TokenStream 2023-12-08 10:47:23 +00:00
Sam Atkins
28c719fff5 LibWeb: Extract contains_single_none_ident() helper function
Several CSS properties can be `none` instead of their usual value.
2023-12-08 10:47:23 +00:00
Sam Atkins
1cc88dc4bc LibWeb: Make parse_comma_separated_value_list() take a TokenStream
This lets us use it from inside places that use TokenStreams.
2023-12-08 10:47:23 +00:00
Sam Atkins
cd9344d4c1 LibWeb: Clarify naming of TokenStreams in parse_css_value()
Originally, the input was named `tokens`, and we later created a
`tokens_without_whitespace` from the filtered contents of `tokens`.
Since `tokens_without_whitespace` is what we actually want to use while
parsing, let's rename `tokens` -> `unprocessed_tokens` and use the
`tokens` name for the processed ones.
2023-12-08 10:47:23 +00:00
Andreas Kling
81daf1752b LibWeb: Retreive CSS cursor before changing hovered node
This fixes an elusive issue where changing the hovered node would cause
a JS event handler to run, changing the shape of the paint tree before
we had a chance to get the cursor.

A more robust fix here will be to let paintables own their used/computed
values (so they don't have to look into the layout tree for them) but
that's a much bigger change.
2023-12-08 10:54:40 +01:00
Bastiaan van der Plaat
3bfc2f5e95 LibWeb: Declare optional parse results inlined in if statements 2023-12-07 16:46:50 -05:00
Bastiaan van der Plaat
1b9a961fb0 LibWeb: Add input stepUp and stepDown functions 2023-12-07 16:46:28 -05:00
Bastiaan van der Plaat
1a63639518 LibWeb: Move logic to check if valueAsNumber applies to its own function 2023-12-07 16:46:28 -05:00
Bastiaan van der Plaat
c0751b2a49 LibWeb: Add basis of the convert number to string algorithm functions 2023-12-07 16:46:28 -05:00
Reimar
4299fb604b LibWeb: Add window.status property 2023-12-07 11:02:50 -07:00
Kemal Zebari
3a820ddbdf LibWeb/MimeSniff: Add sniffing in an audio or video context 2023-12-07 10:31:54 -07:00
Kemal Zebari
02ea85da2c LibWeb/MimeSniff: Add sniffing in an image context 2023-12-07 10:31:54 -07:00
Kemal Zebari
ea15501f37 LibWeb/MimeSniff: Add sniffing in a browsing context 2023-12-07 10:31:54 -07:00
Kemal Zebari
f6d3ea33fa LibWeb/MimeSniff: Add match an archive type pattern algorithm 2023-12-07 10:31:54 -07:00
Kemal Zebari
d5e5a1138f LibWeb/MimeSniff: Add match an audio or video type pattern algorithm 2023-12-07 10:31:54 -07:00
Kemal Zebari
62ca3b518b LibWeb/MimeSniff: Add the image type pattern matching algorithm 2023-12-07 10:31:54 -07:00
Kemal Zebari
2babc08c17 LibWeb/MimeSniff: Add rules for identifying an unknown mime type
This also implements the pattern matching algorithm since it's
needed.
2023-12-07 10:31:54 -07:00
Kemal Zebari
04e19df06a LibWeb/MimeSniff: Implement Resource
See https://mimesniff.spec.whatwg.org/#resource
2023-12-07 10:31:54 -07:00
Kemal Zebari
a2a61d6941 LibWeb/MimeSniff: Add move/copy construct and assignment to MimeType
This change exists to avoid having to reparse a MIME type when we
need to move/copy elsewhere.
2023-12-07 10:31:54 -07:00
Dan Klishch
d317309d89 Everywhere: Unport Core::System::current_executable_path from new string
Storing paths in AK::String is never correct.
2023-12-07 10:13:21 -07:00
Bastiaan van der Plaat
4966c083df LibWeb: Remove progress element custom paintable use shadow dom instead 2023-12-07 11:37:01 +01:00
Bastiaan van der Plaat
ca94df3c88 LibWeb: Clean up shadow root of meter element 2023-12-07 11:37:01 +01:00
Kemal Zebari
34fa49c344 LibWeb/MimeSniff: Add missing spec comments 2023-12-07 11:11:07 +01:00
Timothy Flynn
a7b98a9761 LibWeb+WebContent+WebWorker: Add an option to skip painting the overlay
This will allow the Inspector to take a screenshot of a DOM node without
the overlay which renders the inspected node outline / box data.
2023-12-07 10:53:12 +01:00
Timothy Flynn
8162dc5ee6 LibWeb+LibWebView+WebContent: Separate tag/attribute in Inspector menu
It was a bit short-sighted to combine the tag and attribute names into
one string when the Inspector requests a context menu. We will want both
values for some context menu actions. Send both names, as well as the
attribute value, when requesting the context menu.
2023-12-07 10:53:12 +01:00
Aliaksandr Kalenik
d1d6da6ab6 LibWeb: Resolve border radius during layout and save it in paintables
This change fixes a problem that we should not call `to_px()` to
resolve any length or percentage values during paintables traversal
because that is supposed to happen while performing layout.

Also it improves performance because before we were resolving border
radii during each painting phase but now it happens only once during
layout.
2023-12-07 10:52:47 +01:00
Aliaksandr Kalenik
e8960cf754 LibWeb: Move BorderRadiusCornerClipper allocation into CPU executor
BorderRadiusCornerClipper usage to clip border radius is specific to
CPU painter so it should not be stored in painting commands.

Also with this change bitmaps for corner sampling are allocated during
painting commands replaying instead of commands recording.
2023-12-06 13:05:59 +01:00
Aliaksandr Kalenik
89fd8dfaad LibWeb: Fix duplicated clip overflow in child stacking contexts
`StackingContext::paint_child()` does not have to clip overflow because
callers of this method already do that.
2023-12-06 13:05:59 +01:00
Timothy Flynn
2cdad0f068 LibWeb+LibWebView+WebContent: Add an Inspector IPC to add DOM attributes 2023-12-06 13:04:50 +01:00
Timothy Flynn
2633ea8c79 LibWeb+LibWebView+WebContent: Add an Inspector IPC to open context menus
The Inspector will have context menu support to manipulate the DOM, e.g.
adding or removing nodes/attributes. This context menu will require some
detailed knowledge about what element in the Inspector has been clicked.
To support this, we intercept the `contextmenu` event and collect the
required information to be sent to the Inspector client over IPC.
2023-12-06 13:04:50 +01:00
Andreas Kling
2d69a009fb LibWeb: Make more JS modules actually run
First, we had a logic typo where we were checking parse errors for
non-empty instead of non-null. Fixing this caused more modules to
actually start executing.

As usual, this tripped on some "empty backup incumbent settings object
stack" bugs, so this patch also pushes a module execution context in
two places where it makes sense.

Co-Authored-By: networkException <networkexception@serenityos.org>
2023-12-06 12:58:04 +01:00
Sam Atkins
ef48d967d4 LibWeb: Correct parsing of background-position 3-value syntax
There were two bugs here, one of which hid the other:
- Only one offset would have a value, but we dereferenced both.
- We consumed a token whether it was a valid offset or not.
2023-12-05 09:55:16 +01:00
Andreas Kling
20da5b6153 LibWeb: Remove an unnecessary (and unsafe) cast from Node to Element
Fixes #22170
2023-12-05 09:41:22 +01:00
Shannon Booth
0cb0d60ac5 LibWeb: Make BrowsingContextGroup & TraversableNavigable return a Page&
Removing another batch of uneeded null checks :^)
2023-12-05 09:38:32 +01:00
Shannon Booth
88f8ea7c60 LibWeb: Make BrowsingContex::page() return a Page&
This exposed a whole slew of now-unnecessary null checks. :^)

Co-Authored-By: Andreas Kling <kling@serenityos.org>
2023-12-05 09:38:32 +01:00
Shannon Booth
af2bcc3b56 LibWeb: Remove Weakable from Web::Page
Nothing requires this any more.
2023-12-05 09:38:32 +01:00
Shannon Booth
fd7be22653 LibWeb: Make TraversableNavigable store Page member as NonnullGCPtr 2023-12-05 09:38:32 +01:00
Andreas Kling
bf4c8f4a09 LibWeb: Make BrowsingContext store Page member as NonnullGCPtr
No need to use WeakPtr anymore.

Co-Authored-By: Andreas Kling <kling@serenityos.org>
2023-12-05 09:38:32 +01:00