Previously USB::Pipe would just try to poorly maintain copies of some
of the relevant properties of USB::Device. (address & speed)
Now it just holds a reference to it's owning device and can query them
when needed.
The current USB::Device::enumerate_device() implementation is UHCI
specific, and is not relevant for xHCI controllers.
Move it to a USBController virtual method to allow different
implementations for the other controller types.
This avoids spurious interrupts during APIC timer calibration, as the
timer might otherwise immediately generate an interrupt when enabling
interrupts if the initial count was at a low enough value.
Having resolution of all properties for all paintable types in a single
function was hard to iterate on, so this change separates it into
smaller functions per paintable type.
(cherry picked from commit 7047fcf761ba3cac775befca78e7e6f758dc7c8b)
The Response interface of the Fetch API can now parse form urlencoded
bodies when Content-Type is set to 'application/x-www-form-urlencoded'.
(cherry picked from commit b8fa572c6742c0f1f63da0f63c8b86835a86988d)
Adds `AudioBufferSourceNode` and `BiquadFilterNode` to the
all-window-properties test.
(cherry picked from commit 7b10eb722551716e94ec35a5c5113be83905e5d5)
This getter returns the concatenation of the data of the contiguous
Text nodes of `this` (being this plus its siblings) in tree order.
(cherry picked from commit 69da6a0ce400d4a675bfba1f1dd1d313ee1f13c0)
This to avoid clashing with the GCC typeof extension, which apparently
confuses clang-format.
(cherry picked from commit 14beda00c9e823dd34da74e7d8fdf46aa57e845c)
The typeof operator has a very small set of possible resulting strings,
so let's make it much faster by caching those strings on the VM.
~8x speed-up on this microbenchmark:
for (let i = 0; i < 10_000_000; ++i) {
typeof i;
}
(cherry picked from commit d0b11af3876a64e6b254b5fc3f474d9bbe552024)
Previously, if a document had any element with a name attribute that
was set to the empty string, then `document.getElementsByName("")` and
`element.getElementsByName("")` would return a collection including
those elements.
(cherry picked from commit e40352b6b59e99a9f3fd922142c2abafd9840e6c)
Previously, `document.getElementsByClassName("")` would return a
collection containing all elements in the given document.
(cherry picked from commit 0fceede029e6af0cab98e86f20367d8835008472)
Previously, we had two implementations of the same function in
`Document` and `Element`, which had inadvertantly diverged.
(cherry picked from commit faf64bfb41393a59e958e21545aa556c9bb9d6a8)
Previously, if a document had an element whose id was the empty string,
then `document.getElementById("")` and `element.getElementById("")`
would return that element.
(cherry picked from commit f666d967d6bac289346cf19f833f81bdc22adbdb)
Before this change, removing a style element from inside a shadow tree
would cause it to be unregistered with the document-level list of sheets
instead of the shadow-root-level list.
This would eventually lead to a verification failure if someone tried to
update the text contents of that style element, since it was still in
the shadow-root-level list, but now with a null owner element.
Fixes a crash on https://www.swedbank.se/
(cherry picked from commit 3b7534b3628641244b0998fd5061c6fa75a61cf5)
This would have saved me an hour of debugging, so putting it here for
the next person. :^)
(cherry picked from commit ebacb921dac6f8fd335d917100e6b04521a3f893)