CompositorBridgeParent::ScheduleTask was always called from the compositor thread ; so make it explicit that we are dispatching the task to the compositor thread.
We inline the method instead.
Differential Revision: https://phabricator.services.mozilla.com/D73824
When we animate text, we rasterize the glyphs in an arbitrary local
space once, and scale them during the animation. Some glyphs may be
pressed against the edge of the texture, resulting in artifacts due to
how the sampling works in the shader. This patch fixes the sampling
issues by padding glyph textures with an extra transparent pixel border.
This only applies to glyphs that are rasterized in local space.
This patch does not add the extra padding for Mac because it is already
padding its glyphs for Mac-specific reasons, and does not appear to be
as suspectible to the problem.
Differential Revision: https://phabricator.services.mozilla.com/D74457
The fix for bug 1621390 extended the tile backdrop computation to recognize
images. This patch extends that to consider gradients as potential
backdrops as well.
Differential Revision: https://phabricator.services.mozilla.com/D70458
This change simply changes line endings to make diffing easier with updates from OpenVR, which have Unix line endings.
Further, .clang-format-ignore, does not seem to work for wildcard to match a directory and subdirectory, so all files are listed individually.
Differential Revision: https://phabricator.services.mozilla.com/D74100
The APZ was keeping a raw pointer to the controller thread. This was a dangerous exercise.
This was okay on desktop, as the controller thread was the main thread and would have outlived everything else. On Android however it's the UI thread and it could get deleted before we received a last input event.
So we use a strong pointer instead to prevent the thread from being deleted and as such, we now needs to explicitly clear it on shutdown.
This requires the various methods in APZThreadUtils to be made thread-safe so that the controller thread can be shutdown mid-air.
Differential Revision: https://phabricator.services.mozilla.com/D73830
RemoteContentController::PostDelayedTask must be called on the controller thread; and all the 3 implementations are doing is dispatching the task on the current MessageLoop.
The naming and that the method was pure virtual made it a bit confusing as it gave the impression we would dispatch the task on the controller's internal thread, which wasn't the case.
So we make a generic implementation and assert to the documented use.
Differential Revision: https://phabricator.services.mozilla.com/D73828
MessagePool brings no benefit over the traditional nsIThread.
Additonally, replace some incorrect use of RefPtr for xpcom objects.
Differential Revision: https://phabricator.services.mozilla.com/D73827
CompositorBridgeParent::ScheduleTask was always called from the compositor thread ; so make it explicit that we are dispatching the task to the compositor thread.
We inline the method instead.
Differential Revision: https://phabricator.services.mozilla.com/D73824
- Enable BackdropFilter pref by default
- Add function IsBackdropFilterAavailable()
- Use IsBackdropFilterAvailable for relevant WebIDL instead of pref
- Add test for BackdropFilter availability
Differential Revision: https://phabricator.services.mozilla.com/D73967
Android API 29 or later has font matcher and system font API that is for
accessing font data from native code.
Although Android's Default fonts are installed `/system/fonts`, some vendors
also install some fonts in another directories.
Example, Pixel 2's fonts are installed in `/system/fonts` and `/product/fonts`.
Differential Revision: https://phabricator.services.mozilla.com/D70533
The brightness, contrast, and invert css filters are represented as component transfer filters when they required to be represented as an svg filter (ie when an element has a combination of CSS and SVG filters specified).
https://hg.mozilla.org/mozilla-central/rev/4f3360c4f104 (bug 1417699) used the value SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN for the function type in the G and B channels to specify that the R channel function should be used. As we know from https://hg.mozilla.org/mozilla-central/rev/a1ff0af83ad2 (bug 1605223) SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN is the value we get if the function is not specified, and by spec that is to be interpreted as the identity function.
To fix this use a special function type that is not exposed to content, SVG_FECOMPONENTTRANSFER_SAME_AS_R, when we want to do this optimization. And then teach the webrender filter code to understand it.
Differential Revision: https://phabricator.services.mozilla.com/D74189
- Enable BackdropFilter pref by default
- Add function IsBackdropFilterAavailable()
- Use IsBackdropFilterAvailable for relevant WebIDL instead of pref
- Add test for BackdropFilter availability
Differential Revision: https://phabricator.services.mozilla.com/D73967
Part 2 - look at the resulting transforming of a promoted surface, and
if it a scale and translate, allow compositing.
For RGB surfaces, support a flip_y option to handle the WebGL origin.
DPI is implicitly handled by allocating a DWM surface at device
resolution.
Differential Revision: https://phabricator.services.mozilla.com/D72783
The APZ was keeping a raw pointer to the controller thread. This was a dangerous exercise.
This was okay on desktop, as the controller thread was the main thread and would have outlived everything else. On Android however it's the UI thread and it could get deleted before we received a last input event.
So we use a strong pointer instead to prevent the thread from being deleted and as such, we now needs to explicitly clear it on shutdown.
This requires the various methods in APZThreadUtils to be made thread-safe so that the controller thread can be shutdown mid-air.
Differential Revision: https://phabricator.services.mozilla.com/D73830
RemoteContentController::PostDelayedTask must be called on the controller thread; and all the 3 implementations are doing is dispatching the task on the current MessageLoop.
The naming and that the method was pure virtual made it a bit confusing as it gave the impression we would dispatch the task on the controller's internal thread, which wasn't the case.
So we make a generic implementation and assert to the documented use.
Differential Revision: https://phabricator.services.mozilla.com/D73828
MessagePool brings no benefit over the traditional nsIThread.
Additonally, replace some incorrect use of RefPtr for xpcom objects.
Differential Revision: https://phabricator.services.mozilla.com/D73827
CompositorBridgeParent::ScheduleTask was always called from the compositor thread ; so make it explicit that we are dispatching the task to the compositor thread.
We inline the method instead.
Differential Revision: https://phabricator.services.mozilla.com/D73824
If not, vsync keeps going and can get called after the main thread has gone away, and in VsyncSource::Display::NotifyVsync (with the patches for bug 1630912) we try to dispatch to the main thread which fails and asserts.
Differential Revision: https://phabricator.services.mozilla.com/D74017