[webkit-changes] [WebKit/WebKit] e56299: Crash in WebCore::PlaybackSessionModelMediaElement...
aestes
noreply at github.com
Tue Jul 9 09:54:35 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e56299b4f1d9bb84f69ad5cb7ee24fa6fc93eb56
https://github.com/WebKit/WebKit/commit/e56299b4f1d9bb84f69ad5cb7ee24fa6fc93eb56
Author: Andy Estes <aestes at apple.com>
Date: 2024-07-09 (Tue, 09 Jul 2024)
Changed paths:
M Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.mm
Log Message:
-----------
Crash in WebCore::PlaybackSessionModelMediaElement::exitFullscreen due to null m_mediaElement
https://bugs.webkit.org/show_bug.cgi?id=276341
rdar://131143888
Reviewed by Jean-Yves Avenard and Eric Carlson.
Despite an ASSERT(element) in PlaybackSessionModelMediaElement::exitFullscreen, crash reports
indicate that m_mediaElement can be null when exitFullscreen is called. Resolved this by
null-checking m_mediaElement prior to dereferencing it (in exitFullscreen and elsewhere); the debug
assertion is left to help investigate why m_mediaElement is unexpectedly null. While here, updated
PlaybackSessionModelMediaElement to follow our latest smart pointer usage guidelines.
* Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.mm:
(WebCore::PlaybackSessionModelMediaElement::setMediaElement):
(WebCore::PlaybackSessionModelMediaElement::play):
(WebCore::PlaybackSessionModelMediaElement::pause):
(WebCore::PlaybackSessionModelMediaElement::togglePlayState):
(WebCore::PlaybackSessionModelMediaElement::beginScrubbing):
(WebCore::PlaybackSessionModelMediaElement::endScrubbing):
(WebCore::PlaybackSessionModelMediaElement::seekToTime):
(WebCore::PlaybackSessionModelMediaElement::fastSeek):
(WebCore::PlaybackSessionModelMediaElement::beginScanningForward):
(WebCore::PlaybackSessionModelMediaElement::beginScanningBackward):
(WebCore::PlaybackSessionModelMediaElement::endScanning):
(WebCore::PlaybackSessionModelMediaElement::setDefaultPlaybackRate):
(WebCore::PlaybackSessionModelMediaElement::setPlaybackRate):
(WebCore::PlaybackSessionModelMediaElement::selectAudioMediaOption):
(WebCore::PlaybackSessionModelMediaElement::selectLegibleMediaOption):
(WebCore::PlaybackSessionModelMediaElement::togglePictureInPicture):
(WebCore::PlaybackSessionModelMediaElement::toggleInWindowFullscreen):
(WebCore::PlaybackSessionModelMediaElement::enterFullscreen):
(WebCore::PlaybackSessionModelMediaElement::exitFullscreen):
(WebCore::PlaybackSessionModelMediaElement::setMuted):
(WebCore::PlaybackSessionModelMediaElement::setVolume):
(WebCore::PlaybackSessionModelMediaElement::setPlayingOnSecondScreen):
(WebCore::PlaybackSessionModelMediaElement::spatialTrackingLabel const):
(WebCore::PlaybackSessionModelMediaElement::setSpatialTrackingLabel):
(WebCore::PlaybackSessionModelMediaElement::sendRemoteCommand):
(WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionOptions):
(WebCore::PlaybackSessionModelMediaElement::playbackStartedTime const):
(WebCore::PlaybackSessionModelMediaElement::duration const):
(WebCore::PlaybackSessionModelMediaElement::currentTime const):
(WebCore::PlaybackSessionModelMediaElement::bufferedTime const):
(WebCore::PlaybackSessionModelMediaElement::isPlaying const):
(WebCore::PlaybackSessionModelMediaElement::isStalled const):
(WebCore::PlaybackSessionModelMediaElement::defaultPlaybackRate const):
(WebCore::PlaybackSessionModelMediaElement::playbackRate const):
(WebCore::PlaybackSessionModelMediaElement::seekableRanges const):
(WebCore::PlaybackSessionModelMediaElement::seekableTimeRangesLastModifiedTime const):
(WebCore::PlaybackSessionModelMediaElement::liveUpdateInterval const):
(WebCore::PlaybackSessionModelMediaElement::canPlayFastReverse const):
(WebCore::PlaybackSessionModelMediaElement::audioMediaSelectionOptions const):
(WebCore::PlaybackSessionModelMediaElement::legibleMediaSelectionOptions const):
(WebCore::PlaybackSessionModelMediaElement::legibleMediaSelectedIndex const):
(WebCore::PlaybackSessionModelMediaElement::externalPlaybackEnabled const):
(WebCore::PlaybackSessionModelMediaElement::externalPlaybackTargetType const):
(WebCore::PlaybackSessionModelMediaElement::externalPlaybackLocalizedDeviceName const):
(WebCore::PlaybackSessionModelMediaElement::wirelessVideoPlaybackDisabled const):
(WebCore::PlaybackSessionModelMediaElement::isMuted const):
(WebCore::PlaybackSessionModelMediaElement::volume const):
(WebCore::PlaybackSessionModelMediaElement::isPictureInPictureSupported const):
(WebCore::PlaybackSessionModelMediaElement::isPictureInPictureActive const):
(WebCore::PlaybackSessionModelMediaElement::isInWindowFullscreenActive const):
(WebCore::PlaybackSessionModelMediaElement::logIdentifier const):
(WebCore::PlaybackSessionModelMediaElement::loggerPtr const):
Canonical link: https://commits.webkit.org/280780@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