Commit graph

34563 commits

Author SHA1 Message Date
Linus Groh
fb1dca2c4b LibWeb: Move WebSocket into the Web::WebSockets namespace
WebSockets got moved from the HTML standard to their own, the new
WebSockets Standard (https://websockets.spec.whatwg.org).

Move the IDL file and implementation into a new WebSockets directory and
C++ namespace accordingly.
2022-02-18 19:34:08 +00:00
Andreas Kling
c001e3f2fd BrowserSettings: Run gml-format on ContentFilterSettingsWidget.gml 2022-02-18 19:21:12 +01:00
Andreas Kling
c04c2df0f7 LibWeb: Add missing is_length() check in FFC::is_cross_auto()
We can't access LengthPercentage::length() before verifying that it's
indeed a length.
2022-02-18 19:19:56 +01:00
Sam Atkins
f0a4b33a5e LibWeb: Resolve Lengths to pixels earlier 2022-02-18 19:04:37 +01:00
Sam Atkins
356d8bcfe8 LibWeb: Remove Length::Type::Undefined! :^) 2022-02-18 19:04:37 +01:00
Sam Atkins
b715943035 LibWeb: Remove redundant Length::resolved() calls
Now that calc() is also resolved in to_px(), code in the form
`foo.resolved(bar).to_px(bar)` can be simplified to `foo.to_px(bar)`.
2022-02-18 19:04:37 +01:00
Sam Atkins
6df3f9920d LibWeb: Calculate calc() lengths in to_px()
to_px() has the layout node available, so let's use it.
2022-02-18 19:04:37 +01:00
Sam Atkins
67066c5140 LibWeb: Remove fallback value from Length::resolved()
Nobody makes undefined Lengths now, (although actually removing
Undefined will come in a later commit) so we can remove this parameter,
and `resolved_or_auto()`/`resolved_or_zero()`.
2022-02-18 19:04:37 +01:00
Sam Atkins
5b2482a939 LibWeb: Use Optional instead of undefined-lengths for widths/heights 2022-02-18 19:04:37 +01:00
Sam Atkins
699b48ccc8 LibWeb: VERIFY when getting a length from an invalid StyleValue 2022-02-18 19:04:37 +01:00
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
Maciej
8aa1c7f5b0 Browser: Add option to open BrowserSettings from Browser :^) 2022-02-18 19:00:42 +01:00
Maciej
1606f70f0c BrowserSettings: Implement GUI for setting up content filters :^) 2022-02-18 19:00:42 +01:00
Maciej
4d1c28a23f Browser: Add support for disabling content filtering
Just for completeness.
2022-02-18 19:00:42 +01:00
Maciej
43e463748d Browser: Implement listener for most config options
The only option leaved as TODO is ColorScheme.
2022-02-18 19:00:42 +01:00
Maciej
d3fc3337ef Browser: Call url_from_user_input for home URL
This allows omitting HTTP scheme in home URLs.
2022-02-18 19:00:42 +01:00
Maciej
5d8cda59ae Browser: Update content filters if the config file changes 2022-02-18 19:00:42 +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
Ali Mohammad Pur
ce057115fc RequestServer: Bump the ConnectionCache concurrent connection limit to 4
With ECDHE, our TLS handshake performance has increased, so we can
afford to bump this limit to 4, and get some faster loads :^)
2022-02-18 16:12:42 +03:30
thankyouverycool
cd4c11ebaf FontEditor: Remove listener client
FontEditor was relying on a hack to get notified about i32 config
changes, and scale is not a setting we want updated across all
editor instances, nor do we have any settings that make sense to
monitor universally, so let's remove listener privileges for now.
2022-02-18 07:38:29 -05:00
thankyouverycool
0d29419ed4 FontEditor: Save settings for showing metadata and unicode blocks 2022-02-18 07:38:29 -05:00
thankyouverycool
0061af170f FontEditor: Add a search box to filter Unicode blocks 2022-02-18 07:38:29 -05: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
Ali Mohammad Pur
0e173da86f WebServer: Close the socket if Connection: keep-alive isn't requested 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
thankyouverycool
9e20d393ac SystemMonitor: Add proper icon to the ProcessState window 2022-02-18 13:10:37 +01:00
thankyouverycool
0e56dd4917 SystemMonitor: Don't invalidate ProcessStateModel on refresh
The model has a fixed number of rows based on the column enum
and shouldn't need to be invalidated every update.
2022-02-18 13:10:37 +01:00
stelar7
4daa5622fe LibCrypto: Add curve x25519 2022-02-18 12:34:23 +02:00
dayarthvader
5a94402b60 Utilities/nc: Add support to -I/--length option like SO_RCVBUF 2022-02-18 10:43:10 +01:00
Tim Schumacher
b689e8b7f4 tar: Automatically recognize gzip archives 2022-02-18 10:41:44 +01:00
Tim Schumacher
4487e515f7 Base: Update the tar manpage 2022-02-18 10:41:44 +01: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
Tom
413bc9976c Kernel: Don't enable write-combine for the Bochs framebuffer device
While write-combine greatly improves performance on bare metal, QEMU
appears to perform significantly worse when enabling it.
2022-02-18 10:30:42 +01:00
Tim Schumacher
c8aae1ac52 Ports: Enable OpenSSL support for CMake 2022-02-17 21:25:41 -08: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
b9b24cb1c1 Base: Add <input> test page 2022-02-18 01:48:51 +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
Marco Cutecchia
a9dbb52deb Kernel: Add 'RegisterState' & 'KString::try_create' stubs for aarch64
The aarch64 build was broken due to missing these two things, this
commit adds two empty stubs for them
2022-02-18 01:48:18 +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
Idan Horowitz
ead8ac8972 Kernel: Lock socket Mutex when servicing IPv4Socket ioctls
This prevents a kernel panic found in CI when m_receive_queue's size is
queried and found to be non-zero, then a different thread clears the
queue, and finally the first thread continues into the if block and
calls the queue's first() method, which then fails an assertion that
the queue's size is non-zero.
2022-02-18 02:22:12 +02:00
serenitydev
b5d891ed6a Base+LibWeb: Add test case for Workers on welcome homepage 2022-02-17 22:45:21 +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