Open Bug 1978431 Opened 1 year ago Updated 1 year ago

Refactor NativeLayerCA surface management to prevent API misuse

Categories

(Core :: Widget: Cocoa, task, P3)

task

Tracking

()

People

(Reporter: bradwerth, Assigned: bradwerth)

References

Details

Bug 1889757 added a surface presentation mechanism for NativeLayerCA. This means we now have three possible sources for a surface:

  1. A WebRender tile that uses NativeLayerMacSurfaceHandler.
  2. A video from RenderTextureHost.
  3. A presented surface from NativeLayerCA::SetSurfaceToPresent (used by GPU process, added in Bug 1889757).

This is making our getters and setters use careful logic to access the correct value. And there are also asserts scattered throughout to ensure that an API call is not made on the wrong type of surface. We can make this more rigid and defensible if we use something like a Variant to separate out the different sources for a surface.

You need to log in before you can comment on or make changes to this bug.