• Thomas Guilbert's avatar
    Add XR support to video.rVFC · 5f0a846a
    Thomas Guilbert authored
    Currently, when we enter an immersive XRSession, window.rAF calls stops,
    which means we no longer deliver video.requestVideoFrameCallback calls.
    
    This CL adds video.rVFC support to immersive XRSessions. If we find an
    immersive XRSession, we schedule video.rVFC callbacks there instead of
    the ScriptedAnimationController (SAC).
    
    There can only be one immersive XRSession. If we don't find a session,
    but we find that the XRFrameProvider exists, we request to be notified
    when an immersive session start. This allows us to keep callbacks going
    if the callbacks were already scheduled in the SAC when starting an
    XRSession. Simmilarly, if the session ends when callbacks were pending
    in the XRSession, we reschedule ourselves in the SAC.
    
    Bug: 1107578
    Change-Id: If0acf9445bb789bc848e0043908fc9b769cc5bdd
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2406522
    Commit-Queue: Thomas Guilbert <tguilbert@chromium.org>
    Reviewed-by: default avatarKlaus Weidner <klausw@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#807653}
    5f0a846a
xr_session.h 24.1 KB