Title: [256457] branches/safari-609-branch/Source/WebCore
- Revision
- 256457
- Author
- [email protected]
- Date
- 2020-02-12 10:59:46 -0800 (Wed, 12 Feb 2020)
Log Message
Re-apply Cherry-pick r256060. rdar://problem/59298138
Captions sometimes render at the wrong size when in fullscreen and PiP
https://bugs.webkit.org/show_bug.cgi?id=207389
<rdar://problem/58677864>
Reviewed by Jer Noble.
The TextTrackRepresentation, used to render captions when in fullscreen and PiP on
iOS and and in PiP on macOS, frequently rendered captions before layout completed
immediately after it was created. Fix this by having it not render until a layout
happens. Additionally, make the code more efficient by hiding the TextTrackRepresentation's
backing layer when cues are not visible instead of destroying the whole object.
Drive by: RELEASE_LOG_DISABLED is always defined for PLATFORM(COCOA), so remove it
from the macOS/iOS media players to make it easier to add logging to VideoFullscreenLayerManagerObjC.
* html/HTMLMediaElement.cpp:
(WebCore::convertEnumerationToString):
(WebCore::HTMLMediaElement::configureTextTrackDisplay):
* html/HTMLMediaElementEnums.h:
(WTF::LogArgument<WebCore::HTMLMediaElementEnums::TextTrackVisibilityCheckType>::toString):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement):
(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
(WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentation):
(WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation):
(WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentationStyle):
(WebCore::MediaControlTextTrackContainerElement::layoutIfNecessary):
(WebCore::MediaControlTextTrackContainerElement::updateVideoDisplaySize):
(WebCore::MediaControlTextTrackContainerElement::updateSizes):
(WebCore::MediaControlTextTrackContainerElement::updateCueStyles):
(WebCore::MediaControlTextTrackContainerElement::logger const):
(WebCore::MediaControlTextTrackContainerElement::logIdentifier const):
(WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Deleted.
(WebCore::MediaControlTextTrackContainerElement::updateStyleForTextTrackRepresentation): Deleted.
* platform/graphics/TextTrackRepresentation.h:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
(WebCore::MediaPlayerPrivateAVFoundation::logChannel const):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::mediaPlayerLogger):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::logChannel const):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::logChannel const):
* platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.h:
* platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.mm:
(WebCore::VideoFullscreenLayerManagerObjC::VideoFullscreenLayerManagerObjC):
(WebCore::VideoFullscreenLayerManagerObjC::setVideoLayer):
(WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenLayer):
(WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenFrame):
(WebCore::VideoFullscreenLayerManagerObjC::didDestroyVideoLayer):
(WebCore::VideoFullscreenLayerManagerObjC::syncTextTrackBounds):
(WebCore::VideoFullscreenLayerManagerObjC::setTextTrackRepresentation):
(WebCore::VideoFullscreenLayerManagerObjC::logChannel const):
* platform/graphics/cocoa/TextTrackRepresentationCocoa.h:
* platform/graphics/cocoa/TextTrackRepresentationCocoa.mm:
(-[WebCoreTextTrackRepresentationCocoaHelper observeValueForKeyPath:ofObject:change:context:]):
(TextTrackRepresentationCocoa::setHidden const):
(TextTrackRepresentationCocoa::boundsChanged):
* rendering/RenderMediaControlElements.cpp:
(WebCore::RenderTextTrackContainerElement::layout):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256060 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Modified Paths
Diff
Modified: branches/safari-609-branch/Source/WebCore/ChangeLog (256456 => 256457)
--- branches/safari-609-branch/Source/WebCore/ChangeLog 2020-02-12 18:57:20 UTC (rev 256456)
+++ branches/safari-609-branch/Source/WebCore/ChangeLog 2020-02-12 18:59:46 UTC (rev 256457)
@@ -1,3 +1,158 @@
+2020-02-12 Russell Epstein <[email protected]>
+
+ Cherry-pick r256060. rdar://problem/59298138
+
+ Captions sometimes render at the wrong size when in fullscreen and PiP
+ https://bugs.webkit.org/show_bug.cgi?id=207389
+ <rdar://problem/58677864>
+
+ Reviewed by Jer Noble.
+
+ The TextTrackRepresentation, used to render captions when in fullscreen and PiP on
+ iOS and and in PiP on macOS, frequently rendered captions before layout completed
+ immediately after it was created. Fix this by having it not render until a layout
+ happens. Additionally, make the code more efficient by hiding the TextTrackRepresentation's
+ backing layer when cues are not visible instead of destroying the whole object.
+ Drive by: RELEASE_LOG_DISABLED is always defined for PLATFORM(COCOA), so remove it
+ from the macOS/iOS media players to make it easier to add logging to VideoFullscreenLayerManagerObjC.
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::convertEnumerationToString):
+ (WebCore::HTMLMediaElement::configureTextTrackDisplay):
+ * html/HTMLMediaElementEnums.h:
+ (WTF::LogArgument<WebCore::HTMLMediaElementEnums::TextTrackVisibilityCheckType>::toString):
+ * html/shadow/MediaControlElements.cpp:
+ (WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement):
+ (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
+ (WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentation):
+ (WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation):
+ (WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentationStyle):
+ (WebCore::MediaControlTextTrackContainerElement::layoutIfNecessary):
+ (WebCore::MediaControlTextTrackContainerElement::updateVideoDisplaySize):
+ (WebCore::MediaControlTextTrackContainerElement::updateSizes):
+ (WebCore::MediaControlTextTrackContainerElement::updateCueStyles):
+ (WebCore::MediaControlTextTrackContainerElement::logger const):
+ (WebCore::MediaControlTextTrackContainerElement::logIdentifier const):
+ (WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Deleted.
+ (WebCore::MediaControlTextTrackContainerElement::updateStyleForTextTrackRepresentation): Deleted.
+ * platform/graphics/TextTrackRepresentation.h:
+ * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
+ (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
+ (WebCore::MediaPlayerPrivateAVFoundation::logChannel const):
+ * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame):
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect):
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks):
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks):
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):
+ (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
+ (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::mediaPlayerLogger):
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
+ (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
+ (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::logChannel const):
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
+ (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
+ (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::logChannel const):
+ * platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.h:
+ * platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.mm:
+ (WebCore::VideoFullscreenLayerManagerObjC::VideoFullscreenLayerManagerObjC):
+ (WebCore::VideoFullscreenLayerManagerObjC::setVideoLayer):
+ (WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenLayer):
+ (WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenFrame):
+ (WebCore::VideoFullscreenLayerManagerObjC::didDestroyVideoLayer):
+ (WebCore::VideoFullscreenLayerManagerObjC::syncTextTrackBounds):
+ (WebCore::VideoFullscreenLayerManagerObjC::setTextTrackRepresentation):
+ (WebCore::VideoFullscreenLayerManagerObjC::logChannel const):
+ * platform/graphics/cocoa/TextTrackRepresentationCocoa.h:
+ * platform/graphics/cocoa/TextTrackRepresentationCocoa.mm:
+ (-[WebCoreTextTrackRepresentationCocoaHelper observeValueForKeyPath:ofObject:change:context:]):
+ (TextTrackRepresentationCocoa::setHidden const):
+ (TextTrackRepresentationCocoa::boundsChanged):
+ * rendering/RenderMediaControlElements.cpp:
+ (WebCore::RenderTextTrackContainerElement::layout):
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256060 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2020-02-07 Eric Carlson <[email protected]>
+
+ Captions sometimes render at the wrong size when in fullscreen and PiP
+ https://bugs.webkit.org/show_bug.cgi?id=207389
+ <rdar://problem/58677864>
+
+ Reviewed by Jer Noble.
+
+ The TextTrackRepresentation, used to render captions when in fullscreen and PiP on
+ iOS and and in PiP on macOS, frequently rendered captions before layout completed
+ immediately after it was created. Fix this by having it not render until a layout
+ happens. Additionally, make the code more efficient by hiding the TextTrackRepresentation's
+ backing layer when cues are not visible instead of destroying the whole object.
+ Drive by: RELEASE_LOG_DISABLED is always defined for PLATFORM(COCOA), so remove it
+ from the macOS/iOS media players to make it easier to add logging to VideoFullscreenLayerManagerObjC.
+
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::convertEnumerationToString):
+ (WebCore::HTMLMediaElement::configureTextTrackDisplay):
+ * html/HTMLMediaElementEnums.h:
+ (WTF::LogArgument<WebCore::HTMLMediaElementEnums::TextTrackVisibilityCheckType>::toString):
+ * html/shadow/MediaControlElements.cpp:
+ (WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement):
+ (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
+ (WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentation):
+ (WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation):
+ (WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentationStyle):
+ (WebCore::MediaControlTextTrackContainerElement::layoutIfNecessary):
+ (WebCore::MediaControlTextTrackContainerElement::updateVideoDisplaySize):
+ (WebCore::MediaControlTextTrackContainerElement::updateSizes):
+ (WebCore::MediaControlTextTrackContainerElement::updateCueStyles):
+ (WebCore::MediaControlTextTrackContainerElement::logger const):
+ (WebCore::MediaControlTextTrackContainerElement::logIdentifier const):
+ (WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Deleted.
+ (WebCore::MediaControlTextTrackContainerElement::updateStyleForTextTrackRepresentation): Deleted.
+ * platform/graphics/TextTrackRepresentation.h:
+ * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
+ (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
+ (WebCore::MediaPlayerPrivateAVFoundation::logChannel const):
+ * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame):
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect):
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks):
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks):
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):
+ (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
+ (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::mediaPlayerLogger):
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
+ (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
+ (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::logChannel const):
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
+ (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
+ (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::logChannel const):
+ * platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.h:
+ * platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.mm:
+ (WebCore::VideoFullscreenLayerManagerObjC::VideoFullscreenLayerManagerObjC):
+ (WebCore::VideoFullscreenLayerManagerObjC::setVideoLayer):
+ (WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenLayer):
+ (WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenFrame):
+ (WebCore::VideoFullscreenLayerManagerObjC::didDestroyVideoLayer):
+ (WebCore::VideoFullscreenLayerManagerObjC::syncTextTrackBounds):
+ (WebCore::VideoFullscreenLayerManagerObjC::setTextTrackRepresentation):
+ (WebCore::VideoFullscreenLayerManagerObjC::logChannel const):
+ * platform/graphics/cocoa/TextTrackRepresentationCocoa.h:
+ * platform/graphics/cocoa/TextTrackRepresentationCocoa.mm:
+ (-[WebCoreTextTrackRepresentationCocoaHelper observeValueForKeyPath:ofObject:change:context:]):
+ (TextTrackRepresentationCocoa::setHidden const):
+ (TextTrackRepresentationCocoa::boundsChanged):
+ * rendering/RenderMediaControlElements.cpp:
+ (WebCore::RenderTextTrackContainerElement::layout):
+
2020-02-11 Alan Coon <[email protected]>
Cherry-pick r255668. rdar://problem/59299120
@@ -217,161 +372,6 @@
2020-02-11 Alan Coon <[email protected]>
- Cherry-pick r256060. rdar://problem/59298138
-
- Captions sometimes render at the wrong size when in fullscreen and PiP
- https://bugs.webkit.org/show_bug.cgi?id=207389
- <rdar://problem/58677864>
-
- Reviewed by Jer Noble.
-
- The TextTrackRepresentation, used to render captions when in fullscreen and PiP on
- iOS and and in PiP on macOS, frequently rendered captions before layout completed
- immediately after it was created. Fix this by having it not render until a layout
- happens. Additionally, make the code more efficient by hiding the TextTrackRepresentation's
- backing layer when cues are not visible instead of destroying the whole object.
- Drive by: RELEASE_LOG_DISABLED is always defined for PLATFORM(COCOA), so remove it
- from the macOS/iOS media players to make it easier to add logging to VideoFullscreenLayerManagerObjC.
-
- * html/HTMLMediaElement.cpp:
- (WebCore::convertEnumerationToString):
- (WebCore::HTMLMediaElement::configureTextTrackDisplay):
- * html/HTMLMediaElementEnums.h:
- (WTF::LogArgument<WebCore::HTMLMediaElementEnums::TextTrackVisibilityCheckType>::toString):
- * html/shadow/MediaControlElements.cpp:
- (WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement):
- (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
- (WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentation):
- (WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation):
- (WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentationStyle):
- (WebCore::MediaControlTextTrackContainerElement::layoutIfNecessary):
- (WebCore::MediaControlTextTrackContainerElement::updateVideoDisplaySize):
- (WebCore::MediaControlTextTrackContainerElement::updateSizes):
- (WebCore::MediaControlTextTrackContainerElement::updateCueStyles):
- (WebCore::MediaControlTextTrackContainerElement::logger const):
- (WebCore::MediaControlTextTrackContainerElement::logIdentifier const):
- (WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Deleted.
- (WebCore::MediaControlTextTrackContainerElement::updateStyleForTextTrackRepresentation): Deleted.
- * platform/graphics/TextTrackRepresentation.h:
- * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
- (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
- (WebCore::MediaPlayerPrivateAVFoundation::logChannel const):
- * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
- * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
- (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
- (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame):
- (WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect):
- (WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks):
- (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks):
- (WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):
- (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
- * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::mediaPlayerLogger):
- * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
- (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
- (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::logChannel const):
- * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
- (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
- (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::logChannel const):
- * platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.h:
- * platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.mm:
- (WebCore::VideoFullscreenLayerManagerObjC::VideoFullscreenLayerManagerObjC):
- (WebCore::VideoFullscreenLayerManagerObjC::setVideoLayer):
- (WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenLayer):
- (WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenFrame):
- (WebCore::VideoFullscreenLayerManagerObjC::didDestroyVideoLayer):
- (WebCore::VideoFullscreenLayerManagerObjC::syncTextTrackBounds):
- (WebCore::VideoFullscreenLayerManagerObjC::setTextTrackRepresentation):
- (WebCore::VideoFullscreenLayerManagerObjC::logChannel const):
- * platform/graphics/cocoa/TextTrackRepresentationCocoa.h:
- * platform/graphics/cocoa/TextTrackRepresentationCocoa.mm:
- (-[WebCoreTextTrackRepresentationCocoaHelper observeValueForKeyPath:ofObject:change:context:]):
- (TextTrackRepresentationCocoa::setHidden const):
- (TextTrackRepresentationCocoa::boundsChanged):
- * rendering/RenderMediaControlElements.cpp:
- (WebCore::RenderTextTrackContainerElement::layout):
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256060 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2020-02-07 Eric Carlson <[email protected]>
-
- Captions sometimes render at the wrong size when in fullscreen and PiP
- https://bugs.webkit.org/show_bug.cgi?id=207389
- <rdar://problem/58677864>
-
- Reviewed by Jer Noble.
-
- The TextTrackRepresentation, used to render captions when in fullscreen and PiP on
- iOS and and in PiP on macOS, frequently rendered captions before layout completed
- immediately after it was created. Fix this by having it not render until a layout
- happens. Additionally, make the code more efficient by hiding the TextTrackRepresentation's
- backing layer when cues are not visible instead of destroying the whole object.
- Drive by: RELEASE_LOG_DISABLED is always defined for PLATFORM(COCOA), so remove it
- from the macOS/iOS media players to make it easier to add logging to VideoFullscreenLayerManagerObjC.
-
-
- * html/HTMLMediaElement.cpp:
- (WebCore::convertEnumerationToString):
- (WebCore::HTMLMediaElement::configureTextTrackDisplay):
- * html/HTMLMediaElementEnums.h:
- (WTF::LogArgument<WebCore::HTMLMediaElementEnums::TextTrackVisibilityCheckType>::toString):
- * html/shadow/MediaControlElements.cpp:
- (WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement):
- (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
- (WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentation):
- (WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation):
- (WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentationStyle):
- (WebCore::MediaControlTextTrackContainerElement::layoutIfNecessary):
- (WebCore::MediaControlTextTrackContainerElement::updateVideoDisplaySize):
- (WebCore::MediaControlTextTrackContainerElement::updateSizes):
- (WebCore::MediaControlTextTrackContainerElement::updateCueStyles):
- (WebCore::MediaControlTextTrackContainerElement::logger const):
- (WebCore::MediaControlTextTrackContainerElement::logIdentifier const):
- (WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Deleted.
- (WebCore::MediaControlTextTrackContainerElement::updateStyleForTextTrackRepresentation): Deleted.
- * platform/graphics/TextTrackRepresentation.h:
- * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
- (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
- (WebCore::MediaPlayerPrivateAVFoundation::logChannel const):
- * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
- * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
- (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
- (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame):
- (WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect):
- (WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks):
- (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks):
- (WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):
- (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
- * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::mediaPlayerLogger):
- * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
- (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
- (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::logChannel const):
- * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
- (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
- (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::logChannel const):
- * platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.h:
- * platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.mm:
- (WebCore::VideoFullscreenLayerManagerObjC::VideoFullscreenLayerManagerObjC):
- (WebCore::VideoFullscreenLayerManagerObjC::setVideoLayer):
- (WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenLayer):
- (WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenFrame):
- (WebCore::VideoFullscreenLayerManagerObjC::didDestroyVideoLayer):
- (WebCore::VideoFullscreenLayerManagerObjC::syncTextTrackBounds):
- (WebCore::VideoFullscreenLayerManagerObjC::setTextTrackRepresentation):
- (WebCore::VideoFullscreenLayerManagerObjC::logChannel const):
- * platform/graphics/cocoa/TextTrackRepresentationCocoa.h:
- * platform/graphics/cocoa/TextTrackRepresentationCocoa.mm:
- (-[WebCoreTextTrackRepresentationCocoaHelper observeValueForKeyPath:ofObject:change:context:]):
- (TextTrackRepresentationCocoa::setHidden const):
- (TextTrackRepresentationCocoa::boundsChanged):
- * rendering/RenderMediaControlElements.cpp:
- (WebCore::RenderTextTrackContainerElement::layout):
-
-2020-02-11 Alan Coon <[email protected]>
-
Cherry-pick r255881. rdar://problem/59299143
Adopt MTOverrideShouldPlayHDRVideo()
Modified: branches/safari-609-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h (256456 => 256457)
--- branches/safari-609-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h 2020-02-12 18:57:20 UTC (rev 256456)
+++ branches/safari-609-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h 2020-02-12 18:59:46 UTC (rev 256457)
@@ -257,9 +257,17 @@
PlaybackState m_playbackState { PlaybackState::None };
MediaSample::VideoRotation m_videoRotation { MediaSample::VideoRotation::None };
CGAffineTransform m_videoTransform;
+ std::unique_ptr<SampleBufferDisplayLayer> m_sampleBufferDisplayLayer;
+
+ Ref<const Logger> m_logger;
+ const void* m_logIdentifier;
std::unique_ptr<VideoFullscreenLayerManagerObjC> m_videoFullscreenLayerManager;
+ // SampleBufferDisplayLayer::Client
+ void sampleBufferDisplayLayerStatusDidChange(SampleBufferDisplayLayer&) final;
+ RetainPtr<WebRootSampleBufferBoundsChangeListener> m_boundsChangeListener;
+
bool m_videoMirrored { false };
bool m_playing { false };
bool m_muted { false };
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes