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

Reply via email to