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

8818 commits

Author SHA1 Message Date
Sam Atkins
2df8d9c609 LibWeb: Initialize BoxShadowData lengths to 0px instead of undefined 2022-02-18 19:04:37 +01:00
Sam Atkins
1093d6e2c3 LibWeb: Use a Variant for calc() percentage_basis
Depending on the type of the calc() expression, the percentage_basis has
to be the same dimension type. Several places were already passing `
{}` for this, so let's make that an empty Variant instead of an
undefined Length. :^)
2022-02-18 19:04:37 +01:00
Timothy Flynn
2575184242 LibJS: Add a spec link for Iterator Records
This is an editorial change to the spec to strongly define this record:
85d910c
2022-02-18 13:57:34 +00:00
davidot
2c6183da1e LibJS: Allow methods in classes named 'async'
Also add tests for all static, setter and getter cases.
2022-02-18 13:47:47 +00:00
davidot
65bebb5241 LibJS: Allow CallExpression as left hand side of for-of/for-in loops
Although this will fail with a ReferenceError it should pass the parser
and only fail if actually assigned to.
2022-02-18 13:47:47 +00:00
thankyouverycool
bb23377b48 LibGUI: Let AbstractViews be activated programmatically 2022-02-18 07:38:29 -05:00
thankyouverycool
de9dfc13b1 LibGUI: Make ItemListModels filterable
Implements data_matches() for proxy filtering and handles valid parent
indices in row_count(). This fixes an infinite recursion when filtering
matches for models without any hierarchy.
2022-02-18 07:38:29 -05:00
Ali Mohammad Pur
8fa334a70c LibProtocol: Close the stream notifier unconditionally on EOF
We shouldn't wait for on_finish to close the read notifier, we'll get
the finished message when we do, no need to spin waiting for it.
2022-02-18 13:19:26 +01:00
Michiel Visser
7ab4337721 LibTLS: Add Elliptic Curve Diffie-Hellman Ephemeral (ECDHE) support
This adds support for the Elliptic Curve Diffie-Hellman Ephemeral key
exchange, using the X25519 elliptic curve. This means that the
ECDHE_RSA_WITH_AES_128_GCM_SHA256 and ECDHE_RSA_WITH_AES_256_GCM_SHA384
cipher suites are now supported.

Currently, only the X25519 elliptic curve is supported in combination
with the uncompressed elliptic curve point format. However, since the
X25519 is the recommended curve, basically every server supports this.
Furthermore, the uncompressed point format is required by the TLS
specification, which means any server with EC support will support the
uncompressed format.

Like the implementation of the normal Diffie-Hellman Ephemeral key
exchange, this implementation does not currently validate the signature
of the public key sent by the server.
2022-02-18 15:41:41 +03:30
thankyouverycool
be07892fea LibGUI: Account for hidden headers in content size calculation
Fixes oversized scrollable content in the "State" tab.
2022-02-18 13:10:37 +01:00
stelar7
4daa5622fe LibCrypto: Add curve x25519 2022-02-18 12:34:23 +02:00
stijndr
d01ca4e3e2 Userland: Dynamically update the MonitorSettingsWidget countdown timer
This causes the number of seconds in "Do you want to keep the new
settings? They will be reverted after 10 seconds." to be dynamically
updated.
2022-02-18 10:33:46 +01:00
Andreas Kling
7c33a084fb LibWeb: Support CSS :only-of-type selector
This matches any element that doesn't have a sibling with the same tag
name as itself.
2022-02-18 01:49:32 +01:00
Adam Hodgen
aa70422b4d LibWeb: Add <input> value sanitiztion algorithm
The value sanitiztion algorithm is defined for some states of the type
attribute, and sanitizes the value of the 'value' attribute
2022-02-18 01:48:51 +01:00
Adam Hodgen
240068a48c LibWeb: Improve display of input elements
* Display input[type=reset] as a button
* Display allother input elements as text entry boxes
* Set overflow: hidden on input elements
2022-02-18 01:48:51 +01:00
Adam Hodgen
8edade071d LibWeb: Reflect only known values for <input> element's type attribute 2022-02-18 01:48:51 +01:00
Luke Wilde
b717f7065e LibWeb: Send appropriate Accept header for FrameLoader requests
According to Fetch, we must send an Accept header with the value
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
for document, iframe and frame requests.

https://fetch.spec.whatwg.org/#concept-fetch

Required by uber.com.
2022-02-18 01:46:45 +01:00
Ben Abraham
ae346cff6b LibWeb: Add partially functioning Worker API
Add a partial implementation of HTML5 Worker API.
Messages can be sent from the inner context externally.
2022-02-17 22:45:21 +01:00
martinfalisse
b6c3fad078 LibGUI: JsonArrayModel update without invalidating indices
Add function to update a JsonArrayModel without invalidating it. Now,
for example in the SystemMonitor in the Network tab, a selected line
will not be deselected whenever the data is updated.
2022-02-17 20:09:47 +01:00
Sam Atkins
fd24782d85 LibWeb: Only invalidate styles if a @media rule changes match status 2022-02-17 19:56:19 +01:00
xSlendiX
7685d53654 LibMarkdown: Add terminal color formatting
This patch adds color formatting to markdown viewed in the terminal.
This also increases readability.
2022-02-17 19:54:47 +01:00
xSlendiX
5d219ad4f7 LibMarkdown: Add additional spacing for terminal rendering
This patch adds spacing to give a sense of structure to markdown
documents viewed in the terminal. This also makes the content easier
to read.
2022-02-17 19:54:47 +01:00
Andreas Kling
246c31ccf6 LibWeb: Make <input type=checkbox> fire click events when clicked :^)
This makes React react to checkboxes. Apparently they ignore the
"change" event in favor of "click" on checkboxes. This is a
compatibility hack for IE8.
2022-02-17 16:33:55 +01:00
Andreas Kling
2660795bcf LibWeb: Add the HTMLInputElement.type attribute
This makes React react to change events on text <input> elements. :^)
2022-02-17 16:33:55 +01:00
Andreas Kling
5f54b8dd6c LibWeb: Fire "input" and "change" events when editing a text <input>
This isn't entirely on-spec, but will hopefully allow us to make
progress in other areas.
2022-02-17 16:33:54 +01:00
brapru
24da85d059 ArgsParser: Add support for Optional<size_t> 2022-02-17 09:08:40 -05:00
networkException
3052c0578c LibVT: Properly populate context menu with open actions
We would previously overwrite m_hovered_href with tooltip texts instead
of leaving it as an url as was expected by the context menu event
handler.
2022-02-17 11:56:38 +01:00
Daniel Bertalan
f3923b4aea LibWeb: Use public inheritance for the RefCounted base class
I forgot about this in the previous commit, which caused a compile
error.
2022-02-17 11:16:18 +01:00
Daniel Bertalan
bf16349c5b LibWeb: Fix -Wmismatched-tags warning from Clang 2022-02-17 09:57:17 +00:00
Isak Holmstrom
41765895a8 LibCore: Make FreeBSD build SerenityOS 2022-02-17 09:26:56 +00:00
Isak Holmstrom
4f716caa33 LibCore: Add FreeBSD as OpenBSD/Apple in System.cpp & System.h 2022-02-17 09:26:56 +00:00
Sam Atkins
e548aab387 LibCore: Migrate ConfigFile to Core::Stream API :^)
As part of this, moved the call to `reparse()` out of the constructor
and into the factory methods, to allow the error to propagate.
2022-02-16 19:49:41 -05:00
Sam Atkins
cd0ffe5460 LibCore+Everywhere: Return ErrorOr from ConfigFile::sync()
Currently this method always succeeds, but that won't be true once we
switch to the Core::Stream API. :^)

Some of these places would ideally show an error message to the user,
since failure to save a file is significant, but let's not get
distracted right now.
2022-02-16 19:49:41 -05:00
Sam Atkins
b90dc408bd LibCore: Create ConfigFiles with an already-open File
This moves the fallible action of opening the file, from the
constructor, into the factory methods which can propagate any errors.

The wrinkle here is that failure to open a ConfigFile in read-only mode
is allowed (and expected, since the file may not exist), and treated as
if an empty file was successfully opened.
2022-02-16 19:49:41 -05:00
Sam Atkins
8260135d4d LibCore+Everywhere: Return ErrorOr from ConfigFile factory methods
I've attempted to handle the errors gracefully where it was clear how to
do so, and simple, but a lot of this was just adding
`release_value_but_fixme_should_propagate_errors()` in places.
2022-02-16 19:49:41 -05:00
Sam Atkins
decdd6b61a LibGUI: Add missing LibCore/File include
This was previously included via ConfigFile.h
2022-02-16 19:49:41 -05:00
Sam Atkins
4d5080388a LibCore+Tests: Add SeekableStream::truncate() 2022-02-16 19:49:41 -05:00
Sam Atkins
d9fb1b8c2e LibCore: Make ConfigFile parsing work for non-null-terminated strings
This is necessary for converting it to Core::Stream.
2022-02-16 19:49:41 -05:00
Linus Groh
c7f8c20f8b LibWeb: Omit origin check for content document in FrameBox::paint()
Once we paint, it's way too late for this check to happen anyway.

Additionally, the spec's steps for retrieving the content document
assume that both the browsing context's active document and the
container's node document are non-null, which evidently isn't always the
case here, as seen by crashes on the SerenityOS 2nd and 3rd birthday
pages (I'm not sure about the details though).

Fixes #12565.
2022-02-16 22:51:25 +00:00
Andreas Kling
9521f71944 LibWeb: Support "useCapture" parameter to add/removeEventListener
This is not a complete implementation of API, since we're also supposed
to accept an options dictionary as the third argument. However, a lot of
web content uses the boolean variant, and it's trivial to support.
2022-02-16 22:21:45 +01:00
Andreas Kling
e76e8e22b5 LibWeb: Separate "event listener" from "EventListener"
I can't imagine how this happened, but it seems we've managed to
conflate the "event listener" and "EventListener" concepts from the DOM
specification in some parts of the code.

We previously had two things:

    - DOM::EventListener
    - DOM::EventTarget::EventListenerRegistration

DOM::EventListener was roughly the "EventListener" IDL type,
and DOM::EventTarget::EventListenerRegistration was roughly the "event
listener" concept. However, they were used interchangeably (and
incorrectly!) in many places.

After this patch, we now have:

    - DOM::IDLEventListener
    - DOM::DOMEventListener

DOM::IDLEventListener is the "EventListener" IDL type,
and DOM::DOMEventListener is the "event listener" concept.

This patch also updates the addEventListener() and removeEventListener()
functions to follow the spec more closely, along with the "inner invoke"
function in our EventDispatcher.
2022-02-16 22:21:45 +01:00
Andreas Kling
0e2cd5540a LibWeb: Follow HTTP 3xx redirections when loading images
This basically copies some logic from FrameLoader to ImageLoader.
Ideally we'd share this code, but for now let's just get redirected
images to show up. :^)
2022-02-16 22:21:45 +01:00
Idan Horowitz
c73ef87fc7 Kernel+LibELF+LibVT: Remove unused AK::String header includes 2022-02-16 22:21:37 +01:00
Idan Horowitz
ccad3d5a39 LibVT: Use StringBuilder::string_view() instead of to_string()
This let's us avoid a heap allocation.
2022-02-16 22:21:37 +01:00
Idan Horowitz
410183a7b0 LibEDID: Exclude DMT::MonitorTiming::name() from the Kernel
This API is only used by userland and it uses infallible Strings, so
let's just ifdef it out of the Kernel.
2022-02-16 22:21:37 +01:00
Idan Horowitz
d296001f3f LibELF: Exclude sorted symbols APIs from the Kernel
These are only used by userland, and are implemented using infallible
Strings, so let's just ifdef them out of the Kernel.
2022-02-16 22:21:37 +01:00
Idan Horowitz
1616460312 LibELF: Exclude MemoryRegionInfo::object_name() from the Kernel
This API is only used by userland, and it uses infallible Strings, so
let's just ifdef it out of the Kernel.
2022-02-16 22:21:37 +01:00
Idan Horowitz
7923b3b884 LibEDID: Exclude display_product_{name, serial_number} from the Kernel
These APIs return Strings, which are OOM-infallibe, and as such, not
appropriate for Kernel use. Since these APIs are only used by userland
at the moment, we can just ifdef them out of the Kernel.
2022-02-16 22:21:37 +01:00
Idan Horowitz
13f5d1c037 LibEDID: Store manufacturer id instead of allocating on each call
This also let's us use a KString instead of a string when we're in the
Kernel, which opens the path for OOM-failure propagation.
2022-02-16 22:21:37 +01:00
Idan Horowitz
4a15ed6164 LibEDID: Store EDID version instead of allocating on each getter call
This also let's us use a KString instead of a string when we're in the
Kernel, which opens the path for OOM-failure propagation.
2022-02-16 22:21:37 +01:00