In bug 1696905 I changed how clear tiles are rendered from multiply blend to opaque, however it breaks window controls on Windows 8 (the only thing that clear tiles are used for). This patch reverts clear tiles to the previous behavior.
I'm not sure how to test this part of the code because it depends on the widget integration code having something to show behind the window.
Differential Revision: https://phabricator.services.mozilla.com/D114327
- Add a main header to the page
- Clean up the conversion from MDN a bit
- Modify type table to list-table to make it a bit easier to maintain
- Remove documentation for obsolete NavigatorProperty extended attribute
- Add a warning that JS-implemented WebIDL is deprecated
Depends on D113949
Differential Revision: https://phabricator.services.mozilla.com/D113950
We're using frame-helper#createTargets to set the flag as we're already looping
over the browsing context we need to handle.
We keep a Map of watcher/observer so we can remove the observer when the targets
get destroyed.
For the browser toolbox top-level browsing context we keep setting the flag in
the browsing context target actor as it lives in the parent process, and we
don't have watcher support enabled by default, so frame-helper wouldn't be hit.
frame-helper is not used in the legacy browser toolbox, so we won't set the flag
on tabs when devtools.browsertoolbox.fission is false, but that's okay it's not
currently set anyway in this setup.
Tests are added with multiple cases to ensure the flag is set in different situations.
Differential Revision: https://phabricator.services.mozilla.com/D113628
Fixed the following:
- methods called `to_*` usually take self by reference; consider choosing
a less ambiguous name (clippy::wrong_self_convention)
- an implementation of `From` is preferred since it gives you `Into<_>`
for free where the reverse isn't true (clippy::from_over_into)
- manual implementation of `Option::map` (clippy::manual_map)
- comparing with null is better expressed by the `.is_null()` method
(clippy::cmp_null)
- use of `unwrap_or` followed by a function call (clippy::or_fun_call)
- you don't need to add `&` to all patterns (clippy::match_ref_pats)
- writing `&PathBuf` instead of `&Path` involves a new object where a
slice will do (clippy::ptr_arg)
Locally ignored:
- 6 bindings with single-character names in scope (clippy::many_single_char_names)
Globally ignored:
- this public function dereferences a raw pointer but is not marked
`unsafe` (clippy::not_unsafe_ptr_arg_deref)
- unsafe function's docs miss `# Safety` section (clippy::missing_safety_doc)
Differential Revision: https://phabricator.services.mozilla.com/D114319
In short, this patch adds support for vector registers on ARM64, including
machinery to save and restore them on the stack. It also cleans up and
documents some of the save/restore logic.
There are many changes:
* We add a new type, Bitset128, that can represent the register set on ARM64
with vector registers. This is a mostly-constexpr class with two uint64_t's
that behaves like a 128-bit integer in the cases we need for register sets.
* Since the new type is 16 bytes wide, misc code throughout the system that
switches on register set width is updated to handle the case.
* The FloatRegisters::SetType is changed to use Bitset128, and various
constants defined in ARM64 FloatRegisters are updated to reflect this. As
the constants are constexpr, we can be reasonably sure that there are no
initialization-order problems introduced by this.
* The registers in ARM64 FloatRegisters are rearranged so that single comes
before double, which comes before vector registers, to conform to the order
used everywhere else.
* In MacroAssembler.h, the semantics required of PushRegsInMask and its
associated functions have been further documented.
* For ARM64, PushRegsInMask and its associated functions (PushRegsInMask,
storeRegsInMask, PopRegsInMaskIgnore, ReduceSetForPush, GetPushSizeInBytes,
getRegisterDumpOffsetInBytes, and new function
FloatRegister::BroadcastToAllSizes), have been rewritten to handle
saving/restoring of SIMD registers. PushRegsInMask and storeRegsInMask have
been merged into a single function so as to reduce code duplication and the
associated danger of mistakenly writing different formats.
* In many places that are ARM64-specific, code guarded by `#ifndef
ENABLE_WASM_SIMD` has been removed, so that in effect we always assume that
SIMD register state is available on the target, and can be loaded and
stored, even though we haven't yet enabled ARM64 SIMD support per se.
* The routines PushRegsInMaskForWasmStubs, PopRegsInMaskForWasmStubs and
GetPushSizeInBytesForWasmStubs have been removed, since their operation has
now been subsumed into their non-`ForWasmStubs` equivalents.
* In Safepoints.cpp, {Write,Read}FloatRegisterMask have been rewritten to
support 128-bit sets. One side effect is that reads/writes of 64-bit chunks
have been changed to use new routines {write,read}Unsigned64 rather than two
uses of {write,read}Unsigned. The effect is to save one byte when
bits 64:32 are all zero.
* Ridealong cleanup: the constant ION_FRAME_SLACK_SIZE has been removed. It
has no known uses.
* Note that RABALDR_SIDEALLOC_V128 is still in place in the wasm baseline
compiler. This patch does not remove it.
Differential Revision: https://phabricator.services.mozilla.com/D100116
This can make scene building up to 10% faster on some pages (such
as the youtube.com front page) that use a large number of clips.
Differential Revision: https://phabricator.services.mozilla.com/D114312
There are two kinds of fixes here.
The first is calling waitToClearOutAnyPotentialScrolls after anything that might cause scrolls to make sure all scrolls are done before we move on in the test (so they don't mess us up later). Calling focus on an element is one thing that causes scrolling that may not be obvious.
The second is using promiseTransformEnd to be sure the zoom to focused input animation is done.
Differential Revision: https://phabricator.services.mozilla.com/D113908
We need to supply both the width and height on the icon to make it appear. Also, as of
bug 1706777, we don't need the margin offset to vertically center the icon.
Differential Revision: https://phabricator.services.mozilla.com/D114246
We didn't do defunct checks previously, but it seems the methods we were calling were safe on defunct accessibles.
Now that retrieving the accessible returns null once it's shut down, we need to explicitly null check it.
Differential Revision: https://phabricator.services.mozilla.com/D114197
This patch changes our handling of durations in the WMF video MFT manager.
Prior to this patch we had some handling for if VP9 samples were returned with
zero duration. However, this patch extends this to the general case so that we
will try and estimate the duration using Gecko data in the following cases
- If Windows returns an error code when getting the duration. This can be
because the duration is unknown, but the API also specifies it can fail due to
other, unstated reasons (we handle these too).
- If Windows returns a 0 duration. This is also used to indicate an unknown
duration. We now handle this for arbitrary codecs, not just VP9.
- If Windows returns a negative duration. It's unclear if Windows will do this,
and if it does, under what cases. However, since the API returns the duration
as an signed int it's possible, so we cover this too.
In all cases above, we will use the duration we record from our last input
sample as the output sample duration.
Differential Revision: https://phabricator.services.mozilla.com/D114247
Did you know that our version of requests was from 2015? Phwoar!
This bumps `jinja2`, `py`, `pyyaml`, `requests` and `urllib3`.
There's significant risk for regressions due to breaking changes,
though due to the dynamic nature of Python, they're tricky to track
down.
The potential breaking changes I'm expecting to potentially affect
us are:
* `requests@2.11.0`: No longer accepts non-strings as header values.
* `requests@2.16.0`: `requests.packages` namespace was removed due to
packages no longer being vendored. The namespace has been
incrementally restored over future releases, but it's unclear to
what degree.
* `requests@2.24.0`: Redirect resolution now only happens when
`allow_redirects` is `True`.
* `requests` version of `urllib3` was bumped from `1.13.1` to `1.26`,
unsure what repercussions that will have.
This also added dependencies to `flake8_requirements`. This is because
the vendored `importlib-metadata` update (and the new
`typing-extensions` dependency) is found by `pip`, but the
vendored `typing-extensions` is _not_ discovered (perhaps due to
details around "eggs" and the way we add vendored code to the sys.path).
So, `pip` tries to install it manually and fails when it finds no hash.
By re-compiling `flake8_requirements`, the necessary hashes are made
available.
Differential Revision: https://phabricator.services.mozilla.com/D108526
In 1513447 there is a demonstrated instance in which the generated
marker is replaced with another one and throws the list item bullet
state into an unknown state. To remedy this we need to observe when such
elements are removed and added.
Instead of that, I opted to finally make the bullet accessible a real
content-backed accessible. This should help with other issues that pop
up when the list item overrides children management and keeps an
artificial accessible as its first child.
Differential Revision: https://phabricator.services.mozilla.com/D110719