Age | Commit message (Collapse) | Author |
|
|
|
This patch only makes them appear in the tree - they are not yet
inspectable themselves.
|
|
|
|
These are constexpr, meaning that while the implementations were in the
cpp file, nobody outside that file could actually call them.
|
|
|
|
read_length in WebSocket::read_frame is used to track how many bytes we
have read in from the network. However, we was subtracting the number
of read in bytes instead of adding, underflowing it to about the 64-bit
unsigned integer limit.
This effectively limited us to only doing one read from the network.
This was only an issue if the server stalled when sending data,
which is especially common for large payloads. This would also cause us
to go out of sync. This meant when a new frame came in, we would read
the payload data of the previous frame as if it was the frame header
and payload of the next frame.
This allows us to read in the initial payload from Discord Gateway
that describes to the client the servers we are in, the emotes the
server has, the channels it has, etc. For an account that's only in
the Serenity Discord, this was about 20 KB (compressed!)
|
|
|
|
This is an editorial change in the Temporal spec.
See: https://github.com/tc39/proposal-temporal/commit/4ef2748
Apparently I missed this in December! :^)
|
|
This resolves the ambiguity between whether a single number is a number
or a ratio. :^)
Also removed the "no more tokens" checks from
deea129b8c730e717dc1a83c2eafa81b0e2b34ec - that logic was completely
wrong, since there are always tokens after a value in the `(123 < foo <
456)` syntax.
|
|
|
|
Only "range" type media-features are allowed to appear in range syntax,
or have a `min-/max-` prefix.
|
|
|
|
This works largely the same as the PropertyID and ValueID generators,
but using LibMain, Core::Stream, and TRY().
Rather than have a MediaFeatureID::Invalid, I decided to return an
Optional. We'll see if that turns out better or not. :^)
|
|
This data will be used to generate code for parsing media-queries. So
far, it includes all MEDIAQUERIES-4 features, and
`prefers-color-scheme` from MEDIAQUERIES-5 since we support that.
|
|
This merges GLContext and SoftwareGLContext into a single GLContext
class. Since the hardware abstraction is handled via the GPU device
interface we do not need the virtual base of GLContext anymore. All
context handling functionality from the old GLContext has been moved
into the new version. All methods in GLContext are now non virtual and
the class is marked as final.
|
|
I noticed we only have coverage for this with the ASCII minus sign in
our own test suite.
|
|
When rules are inserted or removed via the CSSOM API, we now invalidate
document style to ensure that any changes made are reflected.
1% progression on ACID3. :^)
|
|
This is only ever null at the moment, as we only set it on <style>
elements to begin with.
|
|
This makes the buckets on ACID3 space out nicely.
|
|
Previously the variable and lexical environments were already kept in a
NativeFunction call. However when we (try to) call a private method from
within an async function we go through async_block_start which sets up
a NativeFunction to call.
This is technically not exactly as the spec describes it, as that
requires you to actually "continue" the context. Since we don't have
that concept (yet) we use this as an implementation detail to access the
private environment from within a native function.
Note that this not allow general private environment access since most
things get blocked by the parser already.
|
|
When an iframe is inserted or removed from a document, we now take it in
and out of the BrowsingContext tree.
|
|
Let's get this right before trying to make it fast. This patch removes
the code that tried to do less work when an element's style changes,
and instead simply invalidates the entire document.
Note that invalidations are still coalesced, and will not be
synchronized until update_style() and/or update_layout() is used.
|
|
If the style is dirty, update_style() may cause layout to become dirty.
Therefore we must always update style when updating layout, to ensure
up-to-date results.
|
|
This forces us to recompute style everywhere, since all kinds of
selectors may produce different results now.
In the future, we should look at narrowing down the invalidation that
occurs here, but for now let's just invalidate everything and make the
results correct before worrying about performance.
|
|
We were handing out stale values from window.getComputedStyle() objects
after the first layout.
Fix this by always updating layout on property access. This is not
necessary for all properties, but for now let's go with the simplest
approach to make it work correctly.
|
|
|
|
|
|
|
|
|
|
Some json objects didn't get finished, so it crashed.
|
|
These steps run when a node is about to be removed from its parent,
and adjust the position of any live NodeIterators so that they don't
point at a now-removed node.
Note that while this commit implements what's in the DOM specification,
the specification doesn't fully match what other browsers do.
Spec bug: https://github.com/whatwg/dom/issues/907
|
|
This patch adds TreeWalker (created via Document.createTreeWalker())
which allows you to traverse a filtered view of the DOM in all
directions.
|
|
This patch adds NodeIterator (created via Document.createNodeIterator())
which allows you to iterate through all the nodes in a subtree while
filtering with a provided NodeFilter callback along the way.
This first cut implements the full API, but does not yet handle nodes
being removed from the document while referenced by the iterator. That
will be done in a subsequent patch.
|
|
In some cases, we need more nuance than what DOM::ExceptionOr<T> offers.
|
|
This fixes an issue on ACID3 where failing image loads with body content
would still get displayed.
|
|
Other engines don't give NaN if there is at least one digit after the
dot for milliseconds. We were much stricter and required exactly three
digits.
But there is real world usage of different amounts of digits such as
discord having three extra trailing zeros.
|
|
This is a simple demo for VirGL, that does the bare minimum required to
create and render a spinning cube (with one color per face).
|
|
We are adding a new class of file, a GPU device. These devices have
major number 28, and are bound to files named /dev/gpuN.
|
|
|
|
|
|
|
|
|
|
|
|
Since the selection already gets updated in AbstractView::keydown_event
and AbstractView::mousedown_event we don't have to update it again in
the MainWidget::open_url function.
This fixes a bug that causes the selection to "spaz out" when
scrolling too fast between pages.
|
|
If we do not do this, the next call to strtok_r will start tokenizing
(and possibly modifying!) the memory pointed to by `saved_ptr`.
|
|
Previously we would fail to generate any hunks if the old or the new
file was empty. We now do, with the original/target line index set to 0,
as specified by POSIX.
|
|
This commit adds an optional string positional argument which is used a
custom format string for the date.
|
|
|
|
POSIX specifies that each numeric field is terminated with one or more
space or NUL characters.
|
|
|