This removes the capability of having differently-sized vertical and
horizontal scrollbars (which is only potentially used in windows, and in
practice almost-never used). For that case, we choose the larger of
vertical/horizontal scrollbar sizes.
This is in order to be able to realistically expose the scrollbar size
to CSS, see blocked bug.
We make RecomputeScrollbarParams the central place where each scrollbar
style decides its sizes, and make GetDPIRatioForScrollbarPart handle the
cocoa special-case of scaling to 1 or 2, but nothing else.
Differential Revision: https://phabricator.services.mozilla.com/D168080
Make sure that the geolocation utility process restarts for georequests that arrive after a crash. This tests process behavior regardless of whether or not the OS is set to allow geolocation (and in automation, it is not).
Depends on D162944
Differential Revision: https://phabricator.services.mozilla.com/D162945
Previously, the ILocation COM object ran in the main process. Due to a race condition, it would sometimes crash the process so we are moving it to a utility process, where it can crash safely. The old WindowsLocationProvider class has become a proxy that forwards requests to the child process via the PWindowsLocation parent actor. The PWindowsLocationChild executes the requests and sends the results back. Failures in ILocation (like geolocation being off in Windows settings) are sent back as well -- they will cause the WindowsLocationProvider to start the MLS geolocation fallback, as they did before.
Additionally, this patch caches the accuracy setting in order to guarantee the proper accuracy is set when requesting reports. Previously, we called SetHighAccuracy too early and it was silently not set (bug 1773456).
Depends on D155019
Differential Revision: https://phabricator.services.mozilla.com/D155020
Adds UtilitySandboxProps, which abstract the more universal sandbox properties into a data object so that the various types of utility process can simply list them. This also adds a somewhat weak sandbox for the new "WindowsUtils" utility process type.
Depends on D155018
Differential Revision: https://phabricator.services.mozilla.com/D155019
Adds a new type of utility process that is set up to handle Windows OS objects. We are adding this process type to run Windows geolocation APIs but more services are expected to be included in it. The ILocation APIs have a race condition that would otherwise crash the main process. The ILocation work is in a later patch in the series.
Depends on D155017
Differential Revision: https://phabricator.services.mozilla.com/D155018
Per spec, "If a counter style is used to represent a counter value outside of its ranges,
the counter style instead drops down to its fallback counter style."
https://www.w3.org/TR/css-counter-styles-3/#counter-style-rangehttps://www.w3.org/TR/css-counter-styles-3/#counter-style-fallback
Some existing tests incorrectly assumed that a prefix or suffix from a custom rule will still apply
even when the counter value is not in range. That would mean "fallback" is only partial, using
the symbols/system from the fallback style mixed with the prefix/suffix of the originally-specified
style, which prevents use-cases like that in bug 1808995 working as expected.
Differential Revision: https://phabricator.services.mozilla.com/D167410
Skia upstream removed deprecated clip ops that could be used to replace
the clipping stack and bypass clips. We shouldn't really need to do this
anymore, as we can work around it just using public APIs.
The only SkCanvas operation that allows us to bypass clipping is
writePixels, which still allows us to implement CopySurface/putImageData.
Other instances where we were using the replace op for DrawTargetWebgl
layering support can just be worked around by creating a separate
DrawTargetSkia pointing to the same pixel data, but on which no clipping
or transforms are applied so that we can freely do drawing operations
on it to the base layer pixel data regardless of any user-applied clipping.
Differential Revision: https://phabricator.services.mozilla.com/D168039
In WebGPU, entry point names and labels from types like
`GPUComputePipelineDescriptor` eventually get turned into Rust `&str` values.
The prior code used `LossyCopyUTF16ToASCII` to produce `nsCString`s from the
`nsString`s received from the WebIDL bindings, and then passed the resulting
bytes to Rust `std::ffi::CStr::to_str`. Unfortunately, that "ASCII" actually
means Latin-1, so if the entry point named happened to be representable in
Latin-1 that happened not to be valid UTF-8, `wgpu_bindings::cow_label` would
return `None`, leading to a panic when unwrapped by
`wgpu_bindings::client::ProgrammableStageDescriptor::to_wgpu`.
The fix: just call `CopyUTF16ToUTF8` instead. This should always produce bytes
that `CStr::to_str` can consume. The WebIDL for WebGPU uses `USVString` for
entry point names and labels, so these values should never contain unpaired
surrogate code points, meaning that conversion should always succeed.
Differential Revision: https://phabricator.services.mozilla.com/D168188
Run `./mach vendor media/libvpx/moz.yaml --patch-mode=only` as what
media/libvpx/README_MOZILLA said.
Depends on D168145
Differential Revision: https://phabricator.services.mozilla.com/D168146
There is a slight change in vp9_cx_iface.c in the previous update, so
our corresponding local patch needs to be updated as well.
Depends on D168144
Differential Revision: https://phabricator.services.mozilla.com/D168145
Run `./mach vendor media/libvpx/moz.yaml --patch-mode=none` as what
media/libvpx/README_MOZILLA said.
The updated libvpx revision is 5c38ffbfa3aba5ea4d8d0ae05a50cc76ec99bed9.
Differential Revision: https://phabricator.services.mozilla.com/D168144
This follows similar shutdown timeout logic as used in
WinCompositorWindowThread. It waits a reasonable amount of time, but will
leak memory "safely" if timeout occurs, without crashing. This behavior is
difficult to trigger in testing, but modifying the
WindowOcclusionCalculator::Shutdown() method to include a long sleep
confirms that the browser will still shutdown without hanging, and will
leak the expected memory.
Differential Revision: https://phabricator.services.mozilla.com/D167464
Modify AHardwareBuffer implementation as to support gl::SharedSurface of out-of-process WebGL. And remove unused AHardwareBuffer implementation.
By limiting AHardwareBuffer only in GPU process, AHardwareBuffer implementation becomes simpler. We do not need to handle cross process AHardwareBuffer delivery and cross process android Fence delivery.
Differential Revision: https://phabricator.services.mozilla.com/D167911