[webkit-changes] [WebKit/WebKit] 671758: REGRESSION(260774 at main):[ iOS ] 7X media/video lay...

Jer Noble noreply at github.com
Mon Mar 6 16:13:41 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 671758683829fb90eae4056dd9609e424cef927c
      https://github.com/WebKit/WebKit/commit/671758683829fb90eae4056dd9609e424cef927c
  Author: Jer Noble <jer.noble at apple.com>
  Date:   2023-03-06 (Mon, 06 Mar 2023)

  Changed paths:
    M LayoutTests/platform/ios-wk2/TestExpectations
    M Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm

  Log Message:
  -----------
  REGRESSION(260774 at main):[ iOS ] 7X media/video layout-tests broke
https://bugs.webkit.org/show_bug.cgi?id=253035
rdar://105998972

Reviewed by Eric Carlson.

In 260774 at main, remote layer hosting was made possible by creating an instance of
a WebAVPlayerLayer, WebAVPlayerLayerView, and WebAVPlayerController, the latter which
has its properties set by PlaybackSessionManager/Proxy and subsequently pushes changes
to those properties back down through PlaybackSessionManager/Proxy to the HTMLMediaElement
backing it. When tracks are added to the HTMLMediaElement, that change is propogated up
from the WebProcess to the UIProcess and pushed into the WebAVPlayerController. And in
response the WebAVPlayerController notified the PlaybackSessionManagerProxy that its
values had been changed. However, there was no validation inside the
PlaybackSessionManagerProxy that the values in question were different than the ones
it had just set, so each change from the HTMLMediaElement got reflected back.

Add simple checks to a few setters in PlaybackSessionModelContext that did not
already have them that validate that the new value represented a change before propogating
that change back down to the HTMLMediaElement.

* Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:
(WebKit::PlaybackSessionModelContext::selectAudioMediaOption):
(WebKit::PlaybackSessionModelContext::selectLegibleMediaOption):
(WebKit::PlaybackSessionModelContext::setMuted):
(WebKit::PlaybackSessionModelContext::setVolume):

Canonical link: https://commits.webkit.org/261295@main




More information about the webkit-changes mailing list