This also adds telemetry probes to track:
* number of times remote canvas 2D is activated
* number of times remote canvas 2D is deactivated due to device creation failure
* number of times remote canvas 2D is deactivated due to a stream read error.
Differential Revision: https://phabricator.services.mozilla.com/D81032
I disable this with an error message and a comment, but do not remove it,
because it is currently buggy and unsupported but may well make a comeback
when we have time to clean it up and we see whether wasm SIMD on the web
starts demanding it.
It is of course possible that we will never do this in Ion but will wait
for Cranelift, but we don't have to make that decision today.
Differential Revision: https://phabricator.services.mozilla.com/D81293
This also adds telemetry probes to track:
* number of times remote canvas 2D is activated
* number of times remote canvas 2D is deactivated due to canvas device creation failure
* number of times remote canvas 2D is deactivated due to a stream read error.
Differential Revision: https://phabricator.services.mozilla.com/D81032
Building the sync event data has an extra cost on large collections. This bypasses iterations or records in case the client has no listener.
Differential Revision: https://phabricator.services.mozilla.com/D81046
In CJK locales, line break could happen in any letter of the button. The fix here is to explicitly specify flex property so that the button couldn't grow or shrink.
Differential Revision: https://phabricator.services.mozilla.com/D79823
This was previously r=jchen and landed, but was backed out because some
Android tests were running on an unrealistically old Linux kernel. These
tests have been retired, so this can reland.
Differential Revision: https://phabricator.services.mozilla.com/D81278
Bug 1486524 disabled the features from the custom linker that required
AutoObjectMapperFaultyLib. We can now rely on AutoObjectMapperPOSIX
instead.
Differential Revision: https://phabricator.services.mozilla.com/D81264
In various parts of the picture and mask code, we were casting
the `clipped` rect to i32 (after rounding out). However, this
can cause overflow panics when the origin of the rect is too big.
Instead, treat the origin as f32 (which it was generally being
converted to anyway), and only cast the size part to be i32 as
required. This is safe since we know that the size has been
clipped to the visible screen, so will always be safe to cast
to i32.
Differential Revision: https://phabricator.services.mozilla.com/D80968
When we call into LoadSheet when starting pending loads for a given
loader, it may be the case that the original loader may still not care
about the load. However some other loader will, so we can't defer this.
This was also causing our state to get out of sync, because if this
happened, then we'd fail to account for it in other loaders.
Differential Revision: https://phabricator.services.mozilla.com/D81119
Some of the testing info is from the Oxidation wiki, and the logging info is
largely from a dev-platform email by Valentin. The other parts I wrote from
scratch.
The commit also makes some small improvements to the Rust build docs.
Differential Revision: https://phabricator.services.mozilla.com/D81017
The code already explicitly checks for and handles the rect here
having a zero or invalid size, there is no need to assert that
the rect size itself is valid.
Differential Revision: https://phabricator.services.mozilla.com/D81249