At least on my mac, clock_gettime only provides millisecond resolution.
So if many WebContent processes are opened at once, it is not unlikely
that they will all create their backing stores within the same ms. When
that happens, all but the first will fail (and crash).
To prevent this, generate the shared memory file name based on the PID
and a static counter.
(cherry picked from commit 5056bda043984953685bb4284fc698ab42418045)
We were storing these in Handle (strong GC roots) hanging off of
ECMAScriptFunctionObject which effectively turned into world leaks.
(cherry picked from commit 5aa1d7837fe37dd203763178df3325ff8b24abbd)
The inline capacity on ThreadEventQueue::Private::queued_events caused
us to reserve (and importantly, not initialize!) 2 KiB of stack memory
when entering ThreadEventQueue::process().
This was causing any leftover pointers to GC-allocated objects within
that memory range to keep those objects alive, even when all other
references were gone.
(cherry picked from commit 8c809fa5ee52903921191db91dce432b8a62dd01)
This makes it more likely to succeed in collecting stuff that's actually
dead, by reducing the memory range scanned for possible pointers.
(cherry picked from commit 1510c1876c023de977bf5b028672e61336761176)
This was originally implemented as a debug request, but later changed.
The Qt UI already did the right thing, so just copy the logic over.
(cherry picked from commit 08ae305dc5a621233b2d329581969899efbb1195)
Qt reads ampersands as shortcut keys, so this escapes them (with &&) so
they display correctly :^)
(cherry picked from commit 6133707df88d0b6e2e9eb62797658c1a88380a07)
There are (currently) no spec-tests ensuring that section ordering is
enforced, but it _is_ a part of the spec. A pull request to add this to
the specification testsuite has been opened at WebAssembly/spec#1775.
(cherry picked from commit c58665332ed588926e029d97f79b78da9a28514a)
And a few assorted cleanups to use more moves() to avoid copying Vectors
and NonnullRefPtrs.
(cherry picked from commit 1322a7e91794893755ae5a3510241e74d45720c5)
Previously, some otherwise unimplemented WebDriver endpoints were
indicating that they had executed successful, this was causing a large
number of Web Platform Tests to time out when they should have failed.
(cherry picked from commit 8939ae8522419c3b7214884dad0b14839d5fa3b3)
This ensures the HTML parser completes running if it previously stopped
at an insertion point during a call to `document.write`.
(cherry picked from commit 230314238655204b89dd0736da4537b475eb252a)
Also, remove blank lines. (https://w3c.github.io/aria/#ARIAMixin source
doesn’t have any blank lines, and it’s not clear that the blank lines in
ours follow any intended structure/logic.)
(cherry picked from commit 0601216ac450402435c0e49276cb9ee5b5a96b27)
This will reduce log noise when visiting sites
that have a lot of filtered content.
Previously, red error text would be displayed in
the logs for each filtered URL.
(cherry picked from commit ae983a2ef7cfc28dce0c954b308c79ceb25deece)
Fallback to reading /etc/timezone by calling system_time_zone() when
unable determine time zone from /etc/localtime.
This works on systems where /etc/localtime is a file and not a symlink.
Fixes#65
(cherry picked from commit d83ab035ee0179ee3af308fff2f36ad6d6f6d3ba)
The spec moved/added the xml and html checks to the beginning and
removed sniffing resource feeds.
(cherry picked from commit b8a5e18a016dc32ba065417a4d6d32bbc03f101d)
We are currently creating a signal socket and socket notifier before the
Qt event loop itself has been created. Thus, when we receive a signal,
we are not actually notified when we write that signal number to the
signal socket.
This was also the source of the following error message being displayed
on every launch of the browser:
QSocketNotifier: Can only be used with threads started with QThread
(cherry picked from commit 3393a7477103cb2dc2fe970e3559abb34b3a0ce8)
The HTML tokenizer specification says that we're supposed to do this
when leaving the Attribute name or when emitting the token, as
appropriate.
Hopefully 'as appropriate' can mean only when emitting the token, as
that's the easiest place to insert this logic without complicating the
tokenizer any more.
(cherry picked from commit 7aa0165fe75bb94b79bc847484c7913d249ce263)
Applies changes in https://github.com/whatwg/html/pull/10658 and also
whichever previous change split the step for firing the navigateerror
into two parts.
(cherry picked from commit ec15f8fa626e5b0faf5b3e420080e944ab31ff11)
Fixes crashing on https://playbiolab.com/ in
VERIFY(page.client().is_ready_to_paint()) caused by attempting to start
the next repaint before the ongoing repaint is done.
(cherry picked from commit f341af1d7265eee880355f10ef5d479c9ebceaf2)
This is what the spec tells us to do:
The root element’s display type is always blockified,
and its principal box always establishes an independent
formatting context.
Additionally, a display of contents computes to block
on the root element.
Spec link: https://drafts.csswg.org/css-display/#rootFixes#1562
(cherry picked from commit f1be662f683155705f851bcf440fe30d0e606a87)
We now use the "report an exception" AO when a script has an execution
error. This has mostly replaced the older "report the exception" AO in
various specifications. Using this newer AO ensures that
`window.onerror` is invoked when a script has an execution error.
(cherry picked from commit 579a289d3db849657987c3310e7b1d71d290b566)
The spec allows us to either treat them as part of the UA origin, or as
its own origin before author styles. This second behaviour turns out to
be what we are currently doing, which is nice!
Funnily enough this was clarified in the spec barely a month after this
original comment was written. :^)
(cherry picked from commit dcf55dd4924e5369d75a3533af2b869033a0ebfd)
`revert` is supposed to revert to the previous cascade origin, but we
previously had it reverting to the previous layer. To support both,
track them separately during the cascade.
As part of this, we make `set_property_expanding_shorthands()` fall back
to `initial` if it can't find a previous value to revert to. Previously
we would just shrug and do nothing if that happened, which only works
if the value you want to revert to is whatever is currently in `style`.
That's no longer the case, because `revert` should skip over any layer
styles that have been applied since the previous origin.
(cherry picked from commit bea47a25545adfb96d83a16a3e4f4435bae05e39)
WPT uses Python's http.client.HTTPConnection to send/receive WebDriver
messages. For some reason, on Linux, we see an ~0.04s delay between the
WPT server receiving the WebDriver response headers and its body. There
are tests which make north of 1100 of these requests, which adds up to
~44s.
These connections are almost always going to be over localhost and able
the be sent in a single write. So let's send the response all at once.
On my Linux machine, this reduces the runtime of /cookies/name/name.html
from 45-60s down to 3-4s.
(cherry picked from commit e5877cda61eb53cd9c1eebbfaf3c35d084b2973c)
https://github.com/whatwg/console/pull/240 is an editorial change to use
the term "implementation-defined" more consistently. This seems to be
the only instance in the spec text which we quote verbatim.
(cherry picked from commit 51f82c1d939dd28a3e719d7fa495cf9f30d0921c)
The only real change here is that we make the document unsalvageable.
Everything else is fixing up spec comments.
(cherry picked from commit faf097bb4168208a7c0250280ff07e638be8058a)