[webkit-changes] [WebKit/WebKit] 7eb36e: "targetavailabilitychanged" event fired even when ...

Jer Noble noreply at github.com
Fri May 17 16:16:37 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7eb36e38f352976b39cc87c1483937c58129a01d
      https://github.com/WebKit/WebKit/commit/7eb36e38f352976b39cc87c1483937c58129a01d
  Author: Jer Noble <jer.noble at apple.com>
  Date:   2024-05-17 (Fri, 17 May 2024)

  Changed paths:
    A LayoutTests/media/airplay-target-availability-disableremoteplayback-expected.txt
    A LayoutTests/media/airplay-target-availability-disableremoteplayback.html
    M LayoutTests/platform/ios/TestExpectations
    M Source/WebCore/html/HTMLMediaElement.cpp
    M Source/WebCore/html/HTMLMediaElement.h

  Log Message:
  -----------
  "targetavailabilitychanged" event fired even when media element has disabledRemotePlayback = true
https://bugs.webkit.org/show_bug.cgi?id=274220
rdar://128137977

Reviewed by Eric Carlson.

The expectation is that `disableRemotePlayback = true` should cause all remote playback
events to not fire. Instead, disabling remote playback seems to have no effect on disabling
these events, and default media controls remote playback buttons still appear.

Add some utility methods to HTMLMediaElement to make it a bit cheaper to check whether
remote playback is disabled, and whether remote playback event listeners exist.

When changing the state of `disableRemotePlayback`, ensure that an event is fired saying
no remote playback targets exist, which cause media controls (including the native ones)
to hide the remote playback button.

* LayoutTests/media/airplay-target-availability-disableremoteplayback-expected.txt: Added.
* LayoutTests/media/airplay-target-availability-disableremoteplayback.html: Added.
* Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::attributeChanged):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::clearMediaPlayer):
(WebCore::HTMLMediaElement::wirelessRoutesAvailableDidChange):
(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent):
(WebCore::HTMLMediaElement::remoteHasAvailabilityCallbacksChanged):
(WebCore::HTMLMediaElement::hasTargetAvailabilityListeners):
(WebCore::HTMLMediaElement::hasEnabledTargetAvailabilityListeners):
(WebCore::HTMLMediaElement::isWirelessPlaybackTargetDisabledChanged):
(WebCore::HTMLMediaElement::isWirelessPlaybackTargetDisabled const):
(WebCore::HTMLMediaElement::addEventListener):
(WebCore::HTMLMediaElement::removeEventListener):
* Source/WebCore/html/HTMLMediaElement.h:

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list