Age | Commit message (Collapse) | Author |
|
|
|
|
|
These pass now that negative zero is disallowed by SignedBigInteger.
|
|
If a big integer were to become negative zero, set the sign to instead
be positive. This prevents odd scenarios where users of signed big ints
would falsely think the result of some big int arithmetic is negative.
|
|
These were showing up in profiles.
|
|
We renamed the Frame class to BrowsingContext a while back, but forgot
to update some variable names.
|
|
Blowing up the debug console with a fajillion FIXME's whenever you
navigate in the web inspector is no fun.
|
|
Previously we captured them by reference, but when the deferred code
finally runs from an event loop, the references may be stale.
In that case, value and max of the progressbar are set with random
numbers.
If we were especially unlucky, the `frame_count` turned into a negative
int, and would crash at `VERIFY(min <= max)`.
|
|
|
|
Most of these errors mean that we will fail the job, but it won't crash
the application, at least.
|
|
As LibTLS now supports the Core::Stream APIs, we can get rid of the
split paths for TCP/TLS and significantly simplify the code as well.
Provided to you free of charge by the Core::Stream-ification team :^)
|
|
websocket.org was shutdown somewhere in late 2021, switch to
websocket.events to make the demo work.
|
|
|
|
This is required for timezone stuff, otherwise we'd just crash.
|
|
|
|
This commit converts TLS::TLSv12 to a Core::Stream object, and in the
process allows TLS to now wrap other Core::Stream::Socket objects.
As a large part of LibHTTP and LibGemini depend on LibTLS's interface,
this also converts those to support Core::Stream, which leads to a
simplification of LibHTTP (as there's no need to care about the
underlying socket type anymore).
Note that RequestServer now controls the TLS socket options, which is a
better place anyway, as RS is the first receiver of the user-requested
options (though this is currently not particularly useful).
|
|
The meaning of EOF depends on the underlying socket, but an empty slice
should terminate the buffering (otherwise we'd just spin forever).
|
|
This function used to sometimes return the entire input instead of the
value up to the delimiter, fix that and rewrite it to be a bit more
readable.
|
|
pending_bytes() and can_read_without_blocking() should also take
the buffered data into account, otherwise we'll end up pretending that
the socket cannot be read from while it has buffered data.
|
|
This is equivalent to Core::Socket::set_notifications_enabled(), and
serves to disable the on_ready_to_read() notifications, as the sockets
often implement these using the event loop, this method can help avoid
waking the event loop and spamming useless calls to on_ready_to_read().
|
|
|
|
And declare a few of the stream classes in the forwarding header.
|
|
CLion and/or clangd didn't like the consteval and highlighted visit() as
an error, just replace it with constexpr as it makes no difference here.
|
|
|
|
|
|
This removes the duplicate code in
LocalServer::take_over_from_system_server and replaces it with
Core::take_over_accepted_socket_from_system_server.
|
|
release_fd() releases the fd associated with the LocalSocket it is
called on. This is analogous to release_value() on container objects in
AK, after which the object does not contain the value.
|
|
This functionality is required by Core::LocalServer and LibIPC depends
on LibCore.
take_over_accepted_socket_from_system_server has also been renamed to
take_over_socket_from_system_server as the socket need not be accepted
before taking it over. :^)
|
|
The ImageEditor tracks whether it was loaded from an image
(the alternative being a project file.) If it was loaded from an image
file we redirect save project actions to save as instead.
|
|
This is just a bump of the version number in a couple places.
Tested to work.
|
|
This is another one where I just changed the version number and it
worked.
|
|
Gamma.h includes xmmintrin.h, which is X86-only. The file contains
code in other places that is compiled conditionally on __SSE__, so the
same macro is used to determine inclusion of the header.
|
|
The CMakeLists.txt for Lagom contains a few libraries and executables
with X86-specific code. By excluding those libraries, Lagom builds
for macOS on Arm as well. The places are marked FIXME to be removed
when the libraries will build for Arm.
|
|
We should no longer be generating empty fragments at the start and end
of an InlineNode, so we can drop this check.
|
|
|
|
Caught a kernel panic when enabling profiling of all threads when there
was very little memory available.
|
|
These were incorrectly returning the content width and height of the
initial containing block. Also added spec links and comments.
|
|
This property represents the CSS content size, so let's reduce ambiguity
by using the spec terminology.
We also bring a bunch of related functions along for the ride.
|
|
|
|
|
|
This implementation does some of the required validation and then passes
through the localName and value to Element.setAttribute().
|
|
|
|
Refetching the list of indices every time we increment the iterator was
showing up hot & heavy in a profile of Discord.
|
|
|
|
|
|
|
|
|
|
Style updates are lazy since late last year, so the StyleInvalidator is
actually hurting us more than it's helping by running the entire CSS
selector machine on the whole DOM for every attribute change.
Instead, simply mark the entire DOM dirty and let the lazy style update
mechanism run *once* on next event loop iteration.
|
|
The object is still not usable for anything, but at least now it behaves
correctly with regards to throwing exceptions.
|
|
Instead of making each Layout::Node compute style for itself, we now
compute it in TreeBuilder before even calling create_layout_node().
For non-element DOM nodes, we create the style and layout tree node
in TreeBuilder. This allows us to move create_layout_node() from
DOM::Node to DOM::Element.
|