1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 04:58:13 +00:00
Commit graph

4750 commits

Author SHA1 Message Date
Kenneth Myhra
fe6b82b01c LibWeb: Port WebGLContextEvent to new String 2023-03-05 18:25:59 +00:00
Kenneth Myhra
cec1cda8b0 LibWeb: Port SubmitEvent to new String 2023-03-05 18:25:59 +00:00
Kenneth Myhra
dd2d029952 LibWeb: Port PromiseRejectionEvent to new String 2023-03-05 18:25:59 +00:00
Kenneth Myhra
bb7ae423d5 LibWeb: Port FormDataEvent to new String 2023-03-05 18:25:59 +00:00
Kenneth Myhra
eed69e5093 LibWeb: Port MessageEvent to new String 2023-03-05 18:25:59 +00:00
Kenneth Myhra
84997ab0ee LibWeb: Port ErrorEvent to new String 2023-03-05 18:25:59 +00:00
Kenneth Myhra
e661f03ffa LibWeb: Port CloseEvent to new String 2023-03-05 18:25:59 +00:00
Kenneth Myhra
d0f904dd4c LibWeb: Port MediaQueryListEvent to new String 2023-03-05 18:25:59 +00:00
Kenneth Myhra
97947fdffa LibWeb: Port PageTransitionEvent to new String 2023-03-05 18:25:59 +00:00
nipos
1dbc9bcc0b LibWeb: Add Solaris/SunOS platform string to ResourceLoader 2023-03-04 21:34:54 -07:00
Linus Groh
bfe0df5677 LibWeb/HTML: Add missing SecurityError checks to Location 2023-03-04 23:27:08 +00:00
Linus Groh
0b8ebfb618 LibWeb/HTML: Replace ThrowCompletionOr with ExceptionOr in Location
The former should not be used in LibWeb unless required due to
overriding a JS::Object virtual method, for example.
2023-03-04 23:27:08 +00:00
Linus Groh
7d50be0b09 LibWeb/HTML: Port Location to new String 2023-03-04 23:27:08 +00:00
Linus Groh
7800276c0f LibWeb/Infra: Port serialize_javascript_value_to_json_string() to String 2023-03-04 23:27:08 +00:00
Linus Groh
93ed1b59c8 LibWeb/Infra: Port strip_and_collapse_whitespace() to new String 2023-03-04 23:27:08 +00:00
Linus Groh
f65cbeef5c LibWeb/Infra: Rename to_ascii_{{lower,upper}_case => {lower,upper}case} 2023-03-04 22:42:42 +00:00
Andreas Kling
b71c7a6e44 Userland: Use Font::pixel_size_rounded_up() instead of glyph_height()
The only remaining clients of this API are specific to bitmap fonts and
editing thereof.
2023-03-04 00:29:38 +01:00
Luke Wilde
7b635998a8 LibWeb: Make Window.screen a replaceable attribute
Required by Shadertoy.
2023-03-03 22:27:49 +00:00
Sam Atkins
c7736ef410 LibWeb: Add some folding regions to HTML syntax highlighter
This adds the regions generated from embedded CSS and JS, and also for
HTML block comments.

The glaring omission is that we don't add them for start/end tags. HTML
allows start and end tags to not always match up, and I believe that's
going to require some variation on the adoption-agency algorithm to
make it work correctly.
2023-03-03 21:56:42 +01:00
Sam Atkins
cdf80f20e6 LibWeb: Add folding regions to CSS syntax highlighter 2023-03-03 21:56:42 +01:00
Linus Groh
11b40dbcf5 LibWeb/WebIDL: Store SimpleException message as a String{,View} variant 2023-03-03 19:50:36 +00:00
Linus Groh
1032ac2453 LibWeb/Fetch: Store Response error message as a String{,View} variant
The majority of error strings are StringView literals, and it seems
silly to require heap-allocating strings for these.

This idea is stolen from a recent change in fd1fbad :^)
2023-03-03 19:50:36 +00:00
Linus Groh
ad4b4046f4 LibWeb/Fetch: Propagate OOM errors from HeaderList::extract_mime_type() 2023-03-03 11:02:21 +00:00
Linus Groh
2d7ce38ee2 LibWeb/MimeSniff: Port MimeType to new String 2023-03-03 11:02:21 +00:00
Linus Groh
fabea2a6a7 LibWeb/MimeSniff: Rename MimeType::from_string() to MimeType::parse()
This matches the spec's "parse a MIME type".
2023-03-03 11:02:21 +00:00
Linus Groh
65ab6d3b6f LibWeb/XHR: Fix blob type in XMLHttpRequest::response()
The type attribute of a blob is supposed to be a complete mime type of
the form "type/subtype", not just the determined mime type's type.
2023-03-03 11:02:21 +00:00
Linus Groh
11023a3c53 LibWeb/Fetch: Port infrastructure to new String 2023-03-03 09:25:34 +00:00
Linus Groh
7f9ddcf420 LibWeb/Fetch: Port JS interfaces to new String
Since BodyInit and Headers are tightly coupled to both Request and
Response, I chose to do all of them at once instead of introducing a
bunch of temporary conversion glue code.
2023-03-03 09:25:34 +00:00
Linus Groh
9afcbdf452 LibWeb: Update generated code in Bindings/FetchMethod.cpp
Also update the incomplete and slightly incorrect dummy interface code
snippet I used to generate this.
2023-03-03 09:25:34 +00:00
MacDue
7bd78d40e9 LibGfx+LibWeb: Propagate OOM when appending CanvasGradient color stops 2023-03-02 11:49:13 +01:00
MacDue
3a0a7e3e96 LibGfx+LibWeb: Propagate OOM when creating PaintStyles 2023-03-02 11:49:13 +01:00
Kenneth Myhra
9da09e4fd3 LibWeb: Port URL and URLSearchParams to new String 2023-03-01 22:44:20 +00:00
Timothy Flynn
7f717b8414 LibWeb: Store all members of WebIDL::ExceptionOr<T> in a single Variant
This reduces the size of WebIDL::ExceptionOr<T> as follows for a few
different Ts:

WebIDL::ExceptionOr<void>: 48 bytes to 40 bytes
WebIDL::ExceptionOr<JS::Value>: 48 bytes to 40 bytes
WebIDL::ExceptionOr<String>: 56 bytes to 40 bytes
2023-03-01 17:33:03 -05:00
Linus Groh
8f1d13e73b LibJS: Use a Variant instead of two Optionals for ThrowCompletionOr
Comes with the usual benefit of saving some space on the stack, as well
as making a situation where both or neither Optionals hold a value
impossible.

The various unwrapping additions are required as we can no longer
construct a ThrowCompletionOr<T> from an Optional<T> - rightfully so.
2023-03-01 17:55:42 +00:00
Timothy Flynn
fb6ca386cc LibWeb: Delete entire grapheme clusters on backspace/delete key presses 2023-03-01 14:24:01 +00:00
Timothy Flynn
4734214ac1 LibWeb: Skip over grapheme clusters on left/right arrow key presses
Currently, if you use the left/right arrow keys to move over a multi-
code point glyph, we will move through that glyph one code point at a
time. This means you can "pause" your movement in the middle of a glyph
and delete a subsection of a grapheme cluster. This now moves the cursor
across the entire cluster.
2023-03-01 14:24:01 +00:00
Timothy Flynn
2c4acba883 LibWeb: Convert Web::DOM::Position::to_deprecated_string to String 2023-03-01 14:24:01 +00:00
Luke Wilde
52a6f1ff8c LibWeb: Bail FrameLoader's load callbacks if associated BC is discarded
This prevents us setting up the document of a removed browsing context
container (BCC, e.g. <iframe>), which will cause a crash if the
document contains a script that inserts another BCC as this will use
the stale browsing context it previously set up, even if it's
reinserted.

Required by Prebid.js, which does this by inserting an `<iframe>` into
a `<div>` in the active document via innerHTML, then transfers it to
the `<html>` element:
7b7389c5ab/src/utils.js (L597)

This is done in the spec by removing all tasks and aborting all fetches
when a document is destroyed:
https://html.spec.whatwg.org/multipage/document-lifecycle.html#destroy-a-document

See the code comments for a simplified example.
2023-03-01 10:51:04 +01:00
Linus Groh
51c3967516 Everywhere: Use '_{short_,}string' literals more
This mostly updates code what was written before but merged after these
were added.
2023-02-28 15:15:36 +00:00
CanadaHonk
3e2ceef8c3 LibWeb: Add size to URLSearchParams
Added new size parameter to URLSearchParams.

Spec: https://url.spec.whatwg.org/#dom-urlsearchparams-size
Co-Authored-By: Linus Groh <mail@linusgroh.de>
2023-02-28 13:24:27 +00:00
Sam Atkins
c06f4ac6f5 AK+Everywhere: Make GenericLexer::ignore_until() stop before the value
`consume_until(foo)` stops before foo, and so does
`ignore_until(Predicate)`, so let's make the other `ignore_until()`
overloads consistent with that so they're less confusing.
2023-02-28 12:55:10 +00:00
Andreas Kling
3a5802540e LibWeb: Follow-up fixes for Linus's comments in #17658 2023-02-28 13:16:39 +01:00
Luke Wilde
4d0277cd9a LibWeb: Implement navigator.{plugins,mimeTypes} 2023-02-28 12:36:14 +01:00
Luke Wilde
5e422bdae0 LibWeb: Move pdfViewerSupported's answer to Page
This will also be accessed by navigator.{plugins,mimeTypes} to
determine if they should expose any information.
2023-02-28 12:36:14 +01:00
Luke Wilde
57d28c57f7 LibWeb: Restore Storage as a legacy platform object 2023-02-28 12:36:14 +01:00
Luke Wilde
54f58e2662 LibWeb: Restore proper functionality of legacy platform objects
With the GC heap conversion, the functionality of legacy platform
objects was broken. This is because the generated implementation of one
of them was used for all of them, removing functionality such as
deletion.

This re-adds all functionality, where questions such as "does the
object support indexed properties?" is instead answered by virtual
functions instead of by the IDL generator checking the presence of
certain keywords/attributes.
2023-02-28 12:36:14 +01:00
Andreas Kling
7e76a51cb0 LibWeb: Rename Layout::InitialContainingBlock to Layout::Viewport
The name "initial containing block" was wrong for this, as it doesn't
correspond to the HTML element, and that's specifically what it's
supposed to do! :^)
2023-02-28 12:21:56 +01:00
Luke Wilde
1c918e826c LibWeb: Define navigator/clientInformation with define_native_accessor
Defining it as a direct property causes it to have no getter/setter
function, which causes an empty Optional crash when attempting to
access such getter on a cross-origin iframe.

Fixes amazon.com crashing on this particular crash.
2023-02-28 08:45:23 +00:00
Luke Wilde
a964ebc255 LibWeb: Implement Path2D#addPath
Required by Ruffle.
2023-02-27 20:55:09 +01:00
Luke Wilde
a90667e79c LibWeb: Add initial implementation of DOMMatrix(ReadOnly)
This is currently missing a lot of functions and initialisation from a
<transform-list> string, but is enough for Ruffle.
2023-02-27 20:55:09 +01:00