Commit Graph

18156 Commits

Author SHA1 Message Date
Jamie Nicol
0c43a18e35 Bug 1913568 - Handle SurfaceTexture transforms in webrender, for reals this time. r=gfx-reviewers,media-playback-reviewers,padenot,nical
On Android, SurfaceTextures provide a transform that should be applied
to texture coordinates when sampling from the texture. Usually this is
simply a y-flip, but sometimes it includes a scale and slight
translation, eg when the video frame is contained within a larger
texture. Previously we ignored this transform but performed a y-flip,
meaning we rendered correctly most of the time, but not all of the
time.

Our first attempt to fix this was in bug 1731980. When rendering as a
compositor surface with RenderCompositorOGLSWGL, we supplied the
transform to CompositorOGL's shaders, which correctly fixed the bug
for this rendering path.

However, the attempted fix for hardware webrender in fact made things
worse. As UV coordinates are supplied to webrender unnormalized, then
the shaders normalize them by dividing by the actual texture size,
this effectively handled the scale component of the transform. (Though
not quite scaling by the correct amount, and ignoring the translation
component, sometimes resulting in a pixel-wide green seam being
visible at the video's edges.) When we additionally applied the
transformation to the coordinates, it resulted in the scale being
applied twice, and the video being rendered too far zoomed
in.

To make matters worse, when we received subsequent bug reports of
incorrect rendering on various devices we mistakenly assumed that the
devices must be buggy, rather than our code being incorrect. We
therefore reverted to ignoring the transform on these devices, thereby
breaking the software webrender path again.

Additionally, on devices without GL_OES_EGL_image_external_essl3
support, we must sample from the SurfaceTexture using an ESSL1
shader. This means we do not have access to the correct texture size,
meaning we cannot correctly normalize the UV coordinates. This results
in the video being rendered too far zoomed out. And in the
non-compositor-surface software webrender path, we were accidentally
downscaling the texture when reading back into a CPU buffer, resulting
in the video being rendered at the correct zoom, but being very
blurry.

This patch aims to handle the transform correctly, in all rendering
paths, hopefully once and for all.

For hardware webrender, we now supply the texture coordinates to
webrender already normalized, using the functionality added in the
previous patch. This avoids the shaders scaling the coordinates again,
or using an incorrect texture size to do so.

For RenderCompositorOGLSWGL, we continue to apply the transform using
CompositorOGL's shaders.

In the non-compositor-surface software webrender path, we make
GLReadPixelsHelper apply the transform when reading from the
SurfaceTexture in to the CPU buffer. Again using functionality added
earlier in this patch series. This avoids downscaling the image. We
can then provide the default untransformed and unnormalized UVs to
webrender. As a result we can now remove the virtual function
RenderTextureHost::GetUvCoords(), added in bug 1731980, as it no
longer serves any purpose: we no longer want to share the
implementation between RenderAndroidSurfaceTextureHost::Lock and
RenderTextureHostSWGL::LockSWGL.

Finally, we remove all transform overrides on the devices we
mistakenly assumed were buggy.

Differential Revision: https://phabricator.services.mozilla.com/D220582
2024-09-09 14:06:26 +00:00
Jamie Nicol
f54558e79d Bug 1913568 - Add support for normalized UV coordinates to webrender. r=gfx-reviewers,nical
Some external images must be sampled from by providing normalized UV
coordinates to webrender, but currently webrender only supports
unnormalized UVs.

This patch adds a flag to webrender's external image API that
specifies whether the UV coordinates supplied when the texture is
locked are normalized or unnormalized. This flag is plumbed through
webrender to the required locations. We then add support for taking
normalized UVs as inputs to the brush_image and cs_scale shaders. The
only other shader that can be used with external textures is the
composite shader, which already supports normalized UVs.

This does not change any behaviour, that will happen in the next patch
in this series.

Differential Revision: https://phabricator.services.mozilla.com/D220581
2024-09-09 14:06:26 +00:00
Iulian Moraru
e53fc69e92 Backed out 3 changesets (bug 1913568) for causing multiple wrench build bustages related to normalized_uvs. CLOSED TREE
Backed out changeset 08890d5674ad (bug 1913568)
Backed out changeset 4aaa0e9d0a6f (bug 1913568)
Backed out changeset b6f9d83c6da0 (bug 1913568)
2024-09-09 13:14:14 +03:00
Jamie Nicol
566512fb28 Bug 1913568 - Handle SurfaceTexture transforms in webrender, for reals this time. r=gfx-reviewers,media-playback-reviewers,padenot,nical
On Android, SurfaceTextures provide a transform that should be applied
to texture coordinates when sampling from the texture. Usually this is
simply a y-flip, but sometimes it includes a scale and slight
translation, eg when the video frame is contained within a larger
texture. Previously we ignored this transform but performed a y-flip,
meaning we rendered correctly most of the time, but not all of the
time.

Our first attempt to fix this was in bug 1731980. When rendering as a
compositor surface with RenderCompositorOGLSWGL, we supplied the
transform to CompositorOGL's shaders, which correctly fixed the bug
for this rendering path.

However, the attempted fix for hardware webrender in fact made things
worse. As UV coordinates are supplied to webrender unnormalized, then
the shaders normalize them by dividing by the actual texture size,
this effectively handled the scale component of the transform. (Though
not quite scaling by the correct amount, and ignoring the translation
component, sometimes resulting in a pixel-wide green seam being
visible at the video's edges.) When we additionally applied the
transformation to the coordinates, it resulted in the scale being
applied twice, and the video being rendered too far zoomed
in.

To make matters worse, when we received subsequent bug reports of
incorrect rendering on various devices we mistakenly assumed that the
devices must be buggy, rather than our code being incorrect. We
therefore reverted to ignoring the transform on these devices, thereby
breaking the software webrender path again.

Additionally, on devices without GL_OES_EGL_image_external_essl3
support, we must sample from the SurfaceTexture using an ESSL1
shader. This means we do not have access to the correct texture size,
meaning we cannot correctly normalize the UV coordinates. This results
in the video being rendered too far zoomed out. And in the
non-compositor-surface software webrender path, we were accidentally
downscaling the texture when reading back into a CPU buffer, resulting
in the video being rendered at the correct zoom, but being very
blurry.

This patch aims to handle the transform correctly, in all rendering
paths, hopefully once and for all.

For hardware webrender, we now supply the texture coordinates to
webrender already normalized, using the functionality added in the
previous patch. This avoids the shaders scaling the coordinates again,
or using an incorrect texture size to do so.

For RenderCompositorOGLSWGL, we continue to apply the transform using
CompositorOGL's shaders.

In the non-compositor-surface software webrender path, we make
GLReadPixelsHelper apply the transform when reading from the
SurfaceTexture in to the CPU buffer. Again using functionality added
earlier in this patch series. This avoids downscaling the image. We
can then provide the default untransformed and unnormalized UVs to
webrender. As a result we can now remove the virtual function
RenderTextureHost::GetUvCoords(), added in bug 1731980, as it no
longer serves any purpose: we no longer want to share the
implementation between RenderAndroidSurfaceTextureHost::Lock and
RenderTextureHostSWGL::LockSWGL.

Finally, we remove all transform overrides on the devices we
mistakenly assumed were buggy.

Differential Revision: https://phabricator.services.mozilla.com/D220582
2024-09-09 09:10:24 +00:00
Jamie Nicol
e0ec49b382 Bug 1913568 - Add support for normalized UV coordinates to webrender. r=gfx-reviewers,nical
Some external images must be sampled from by providing normalized UV
coordinates to webrender, but currently webrender only supports
unnormalized UVs.

This patch adds a flag to webrender's external image API that
specifies whether the UV coordinates supplied when the texture is
locked are normalized or unnormalized. This flag is plumbed through
webrender to the required locations. We then add support for taking
normalized UVs as inputs to the brush_image and cs_scale shaders. The
only other shader that can be used with external textures is the
composite shader, which already supports normalized UVs.

This does not change any behaviour, that will happen in the next patch
in this series.

Differential Revision: https://phabricator.services.mozilla.com/D220581
2024-09-09 09:10:23 +00:00
Hiroyuki Ikezoe
c4b5622514 Bug 1916897 - Get rid of ScrollDirection::eVertical from APZHandledResult::mOverscrollDirections if mayTriggerPullToRefresh is false. r=botond,geckoview-reviewers,owlish
Though I personally think this fix is subtle, I have no other good idea to
solve the issue. Once after we have a separate API for dynamic toolbar, we
could handle this bug case in a clearer way.

This change doesn't have a dedicated test since there have been two JUnit tests
hitting this bug conditions.

(If we had been running tests on browsers which support both dynamic toolbar
and pull-to-refresh, this bug might have been noticed earlier?)

Differential Revision: https://phabricator.services.mozilla.com/D221105
2024-09-08 21:57:30 +00:00
Botond Ballo
1b1dc6a39a Bug 1915051 - Early-exit UpdateResolutionForViewportSizeChange in fullscreen mode. r=hiro
Depends on D221391

Differential Revision: https://phabricator.services.mozilla.com/D221392
2024-09-08 21:37:19 +00:00
Botond Ballo
cffd299f60 Bug 1915051 - Do not run tests in the apz.allow_zooming=false configuration on android. r=hiro
Depends on D220201

Differential Revision: https://phabricator.services.mozilla.com/D221391
2024-09-08 21:37:18 +00:00
Emilio Cobos Álvarez
be6329111c Bug 1891335 - Compute EffectInfo updates at IntersectionObserver time. r=smaug,hiro
What goes on here is that there's a couple of unfortunate style change
sequences which end up making us not do the EffectsInfo dance correctly.

Twitter uses (maybe didn't use to, which would explain the regression) a
visibility: hidden, out-of-flow iframe for a bit (which we correctly
throttle). But then they switch to an in-flow, visible, zero-height
iframe. That we should _not_ throttle. However, we end up not getting to
the display list code at all, because nsBlockFrame decides that we don't
need to descend into an empty line[1].

It seems less error prone to re-use the IntersectionObserver timing and
computation to determine whether the iframe is visible. That completely
matches in-process iframes, too.

Removing the empty frame border and putting them on an empty line in
dom/base/test/test_bug1639328.html is enough to reproduce the issue
without this patch.

[1]: https://searchfox.org/mozilla-central/rev/fe2743c6c5c708061c7f6504b26958fcc815bb4a/layout/generic/nsBlockFrame.cpp#7569-7579

Differential Revision: https://phabricator.services.mozilla.com/D207479
2024-09-06 16:04:57 +00:00
Stanca Serban
fe1949a695 Backed out changeset 80db8b7ff2af (bug 1891335) for causing mochitests failures in test_bug1639328.html. 2024-09-06 00:22:51 +03:00
Emilio Cobos Álvarez
61a57e6c46 Bug 1891335 - Compute EffectInfo updates at IntersectionObserver time. r=smaug,hiro
What goes on here is that there's a couple of unfortunate style change
sequences which end up making us not do the EffectsInfo dance correctly.

Twitter uses (maybe didn't use to, which would explain the regression) a
visibility: hidden, out-of-flow iframe for a bit (which we correctly
throttle). But then they switch to an in-flow, visible, zero-height
iframe. That we should _not_ throttle. However, we end up not getting to
the display list code at all, because nsBlockFrame decides that we don't
need to descend into an empty line[1].

It seems less error prone to re-use the IntersectionObserver timing and
computation to determine whether the iframe is visible. That completely
matches in-process iframes, too.

Removing the empty frame border and putting them on an empty line in
dom/base/test/test_bug1639328.html is enough to reproduce the issue
without this patch.

[1]: https://searchfox.org/mozilla-central/rev/fe2743c6c5c708061c7f6504b26958fcc815bb4a/layout/generic/nsBlockFrame.cpp#7569-7579

Differential Revision: https://phabricator.services.mozilla.com/D207479
2024-09-05 17:16:12 +00:00
Botond Ballo
2baddaaae1 Bug 1915006 - When squishing a scroll thumb during overscroll, handle the case where the overscroll amount is larger than the scroll port length. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D220818
2024-09-04 23:33:53 +00:00
Alex Jakobi
01b3e76804 Bug 1841896 - Port helper_fission_inactivescroller_under_oopif to regular mochitests r=hiro
Besides porting helper_fission_inactivescroller_under_oopif, this adds
helper_fission_utils.js::hitTestOOPIF() which will replace
helper_fission_utils.js::fissionHitTest(). The latter will be removed
with the completion of Bug 1841896.

Differential Revision: https://phabricator.services.mozilla.com/D217165
2024-09-04 14:11:46 +00:00
Alex Jakobi
6dcdb30df6 Bug 1841896 - Port helper_fission_scroll_handoff to regular mochitests r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D217162
2024-09-04 14:11:46 +00:00
Alex Jakobi
c370b3e602 Bug 1841896 - Port helper_fission_touch to regular mochitests r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D217155
2024-09-04 14:11:45 +00:00
Alex Jakobi
55ba4fccc3 Bug 1841896 - Port helper_fission_tap_on_zoomed to regular mochitests r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D217082
2024-09-04 14:11:45 +00:00
Alex Jakobi
141b16b62c Bug 1841896 - Port helper_fission_tap to regular mochitests r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D217077
2024-09-04 14:11:44 +00:00
Cristina Horotan
3ca588520a Backed out 2 changesets (bug 1894122) for causing GTest failures
Backed out changeset a1bbca68e1f7 (bug 1894122)
Backed out changeset 1355b1b3841c (bug 1894122)
2024-09-04 02:32:53 +03:00
Dan Robertson
7f9adcc498 Bug 1894122: Improve axis locking for touch scrolls. r=botond
For long touch scrolls that change direction, using the start point of
the touch scroll as the origin to calculate the angle of the scroll is
problematic for determine the axis that should be locked. Maintain a
list of recent touch gesture points and calculate the gesture angle from
the most recent touch gesture points.

Differential Revision: https://phabricator.services.mozilla.com/D219228
2024-09-03 20:51:10 +00:00
Dan Robertson
ee6e304101 Bug 1894122: Add a minimum size parameter to the RecentEventsBuffer. r=botond
Add a minimum size parameter to the RecentEventsBuffer, for the scenario
in which we would prefer data from stale events to that of the fallback.

Differential Revision: https://phabricator.services.mozilla.com/D220141
2024-09-03 20:51:10 +00:00
tannal
d7683fbab7 Bug 1906157 Use AsyncPanZoomController::ToCSSPixel in more places r=ajakobi
Differential Revision: https://phabricator.services.mozilla.com/D219053
2024-09-03 12:17:07 +00:00
Makoto Kato
1ae9b0e33a Bug 1902949 - button and buttons property of contextmenu should be touch contact. r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D220508
2024-09-02 02:50:04 +00:00
Brad Werth
5967b649e3 Bug 1914284: Make macOS use regular layers for video unless necessary for correctness or power savings. r=mac-reviewers,mstange
Multi-planar video displays fine in a CALayer, so this condition is not
necessary for the specialized video layer.

Differential Revision: https://phabricator.services.mozilla.com/D220151
2024-08-29 05:14:10 +00:00
Florian Quèze
6803a00619 Bug 1915228 - Remove expired telemetry scalars gfx.canvas.remote.activated and gfx.canvas.remote.deactivated_no_device, r=TravisLong.
Depends on D220324

Differential Revision: https://phabricator.services.mozilla.com/D220325
2024-08-28 19:44:32 +00:00
Botond Ballo
97d6075940 Bug 1915052 - Minor comment cleanup in test_group_touchevents-*.html. r=hiro DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D220202
2024-08-27 23:02:36 +00:00
Botond Ballo
2b2d71da3f Bug 1889017 - Add a mochitest. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D220195
2024-08-27 00:28:19 +00:00
Hiroyuki Ikezoe
d0e79f1b8c Bug 1912358 - Set a proper APZHandledResult in the case of fast-fling. r=botond,geckoview-reviewers,m_kato
During fast-fling, any event isn't delivered to contents, but fast-fling
causes scrolling, thus we need to tell the state to GeckoView via
the APZHandledResult.

The JUnit test case causes an assertion (bug 1852854) without this change.

Differential Revision: https://phabricator.services.mozilla.com/D218898
2024-08-26 01:10:18 +00:00
Hiroyuki Ikezoe
c08b67a77c Bug 1912358 - Add a mochitest that any touch event is delivered to content. r=botond
This is for bug 1085404.

Differential Revision: https://phabricator.services.mozilla.com/D218897
2024-08-26 01:10:18 +00:00
longsonr
ad1c35d097 Bug 1914720 - Fix spelling of animation r=emilio DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D220059
2024-08-24 13:57:27 +00:00
Lee Salzman
f6fa2fdaed Bug 1913773 - Ensure mCurrentShmem is valid. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D219832
2024-08-22 03:35:52 +00:00
Florian Quèze
cce2abc8ae Bug 1913624 - Remove expired telemetry histogram GPU_WAIT_TIME_MS, r=TravisLong.
Depends on D219471

Differential Revision: https://phabricator.services.mozilla.com/D219472
2024-08-20 20:56:50 +00:00
Florian Quèze
33f6b219fb Bug 1913624 - Remove expired telemetry histogram D3D11_SYNC_HANDLE_FAILURE, r=TravisLong.
Depends on D219470

Differential Revision: https://phabricator.services.mozilla.com/D219471
2024-08-20 20:56:49 +00:00
Shashi Sugrim
062b8a9269 Bug 1913090 - Remove unused mTransformInDevSpace member from AnimationTransform struct r=gregp,tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D219196
2024-08-16 20:14:46 +00:00
Cristina Horotan
46fbb79ab2 Backed out changeset 8be0212061f0 (bug 1913090) for causing build bustage at CompositorAnimationStorage.h CLOSED TREE 2024-08-15 01:50:59 +03:00
Shashi Sugrim
3361e7ea90 Bug 1913090 - Remove unused mTransformInDevSpace member from AnimationTransform struct r=gregp,tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D219196
2024-08-14 22:24:43 +00:00
sotaro
b9a796eeb7 Bug 1912368 - Use GpuProcessTextureId in D3D11TextureData if compositor device is used r=gfx-reviewers,lsalzman
With NVIDIA GPU, original ID3D11Texture2D created by compositor device and ID3D11Texture2D opened from shared handle compositor device seemed to work differently. The original ID3D11Texture2D seemed to work well with STR of Bug 1911237 with NVIDIA GPU.

Then if  ID3D11Texture2D is created by compositor device, it seems better to use GpuProcessTextureId instead of shared handle.

Differential Revision: https://phabricator.services.mozilla.com/D218903
2024-08-14 11:02:38 +00:00
sotaro
4db4692ed1 Bug 1911971 - Use ID3D11VideoProcessor for color conversion in DXGITextureHostD3D11::GetAsSurfaceWithDevice() r=gfx-reviewers,lsalzman
When ID3D11VideoProcessor is used, the color conversion becomes simpler than using DXVA2Manager. And the color conversion becomes same to video overlay. ID3D11VideoProcessor is wrapped by VideoProcessorD3D11. VideoProcessorD3D11 is easier to use than ID3D11VideoProcessor.

And by keeping VideoProcessorD3D11 alive, the flickering of STR of Bug 1911937 was reduced.

Differential Revision: https://phabricator.services.mozilla.com/D218713
2024-08-14 11:01:25 +00:00
Iulian Moraru
ace859bc94 Backed out 4 changesets (bug 1841896) for causing mochitest-plain failures on test_group_fission.html. CLOSED TREE
Backed out changeset b049c13d095c (bug 1841896)
Backed out changeset 38b3ecfc4223 (bug 1841896)
Backed out changeset 9817add495d7 (bug 1841896)
Backed out changeset c604c837c187 (bug 1841896)
2024-08-13 17:34:17 +03:00
Alex Jakobi
e88868b534 Bug 1841896 - Port helper_fission_scroll_handoff to regular mochitests r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D217162
2024-08-13 13:47:57 +00:00
Alex Jakobi
c8193a51a9 Bug 1841896 - Port helper_fission_touch to regular mochitests r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D217155
2024-08-13 13:47:56 +00:00
Alex Jakobi
e35b4cf0b6 Bug 1841896 - Port helper_fission_tap_on_zoomed to regular mochitests r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D217082
2024-08-13 13:47:56 +00:00
Alex Jakobi
5ec585a8c5 Bug 1841896 - Port helper_fission_tap to regular mochitests r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D217077
2024-08-13 13:47:55 +00:00
Nika Layzell
22a4aacd26 Bug 1908725 - Part 4: Switch some basic uses of OtherPid over to OtherChildID, r=smaug
There are many other uses of OtherPid which could be switched over to
OtherChildID, but these were a couple of obvious low-hanging fruit use-cases
which will work better when using OtherChildID.

Differential Revision: https://phabricator.services.mozilla.com/D217120
2024-08-07 20:39:40 +00:00
Nika Layzell
bdb401316d Bug 1908725 - Part 2: Make the ChildID available in the same places as OtherPid, r=ipc-reviewers,media-playback-reviewers,win-reviewers,alwu,rkraesig,gfx-reviewers,mccr8,nical
This requires quite a bit of piping to get the ChildID passed everywhere where
we currently pass the pid in IPC. This is done by adding a new struct type
(EndpointProcInfo), which is passed around instead of OtherPid in these places,
and contains the full pid.

In most cases, it was a fairly painless change to move over, however in some
cases, more complex changes were required, as the pid was being stored
previously in something like an Atomic<...>, and needed to be switched to using
a mutex-protected value.

In the future, it may be possible to remove OtherPid from IPDL actors once
everything is migrated to ChildID, but we're still a long way off from that, so
for now we unfortunately need to pass both around.

Differential Revision: https://phabricator.services.mozilla.com/D217118
2024-08-07 20:39:39 +00:00
Tom Ritter
ca7ffe0a4f Bug 1899874: Plumb forceSoftwareRendering down the stack. r=jgilbert
willReadFrequently already implies this; however that can't
be enabled on Windows. We can use our own attribute to control
the value as it plumbs into the depths of Canvas2D and WebGL

Differential Revision: https://phabricator.services.mozilla.com/D212178
2024-08-07 00:31:45 +00:00
Alex Franchuk
ab8fa1ab81 Bug 1454819 - Simplify SharedMemory classes r=ipc-reviewers,nika
Differential Revision: https://phabricator.services.mozilla.com/D217487
2024-08-06 18:16:08 +00:00
Hiroyuki Ikezoe
b877e6fe0b Bug 1831649 - Expand the display size used as input to mobile viewport sizing to include the software keyboard area in overlays-content and resizes-visual mode. r=emilio,botond
So that even if the chrome window gets resized by the software keyboard, the
contents can be laid out as if there's no software keyboard for overlays-content
and resizes-visual modes.

Also use the exapanded size (we call it "layout display size") for all call sites of
MobileViewportManager::DisplaySize().

Differential Revision: https://phabricator.services.mozilla.com/D204167
2024-08-06 07:46:22 +00:00
Brad Werth
18c3f2315c Bug 1906527 Part 4: Force all 10-bit video and multi-planar video to use macOS specialized video layers. r=mac-reviewers,spohl
Differential Revision: https://phabricator.services.mozilla.com/D217340
2024-08-05 17:59:16 +00:00
Brad Werth
94fbd5e7d6 Bug 1906527 Part 3: Add YUV422P10 and NV16 formats. r=gfx-reviewers,ahale
YUV422P10 is needed to properly tag decoded YUV422P10 video. NV16 is
needed to describe the macOS 10-bit YUV422 formats.

Differential Revision: https://phabricator.services.mozilla.com/D217334
2024-08-05 17:59:15 +00:00
Brad Werth
0ac2dc146e Bug 1906527 Part 1: Rename SurfaceFormat::YUV422 to YUY2, and rename YUV to YUV420. r=jgilbert
This is just a renaming patch, motivated by a need for clarity before
addding more YUV formats. Comments and log messages are updated as well,
and one function in MacIOSurface is renamed.

There is one small change in TextureHost.cpp  to satisfy clang-tidy.

Differential Revision: https://phabricator.services.mozilla.com/D217883
2024-08-05 17:59:15 +00:00