Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f40d4830b8c1a420d53cc9aabd15c35d4414e711
      
https://github.com/WebKit/WebKit/commit/f40d4830b8c1a420d53cc9aabd15c35d4414e711
  Author: Per Arne Vollan <pvol...@apple.com>
  Date:   2023-04-01 (Sat, 01 Apr 2023)
  Changed paths:
    M LayoutTests/platform/ios-simulator-wk2/TestExpectations
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/html/shadow/MediaControlTextTrackContainerElement.cpp
    M Source/WebCore/platform/graphics/TextTrackRepresentation.cpp
    M Source/WebCore/platform/graphics/TextTrackRepresentation.h
    M Source/WebCore/platform/graphics/cocoa/TextTrackRepresentationCocoa.h
    M Source/WebCore/platform/graphics/cocoa/TextTrackRepresentationCocoa.mm
    M Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.h
    M Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm
    M Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.h
    M Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.messages.in
    M Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    A Source/WebKit/WebProcess/cocoa/TextTrackRepresentationCocoa.h
    A Source/WebKit/WebProcess/cocoa/TextTrackRepresentationCocoa.mm
    M Source/WebKit/WebProcess/cocoa/VideoFullscreenManager.h
    M Source/WebKit/WebProcess/cocoa/VideoFullscreenManager.mm

  Log Message:
  -----------
  Text tracks are not visible in fullscreen
https://bugs.webkit.org/show_bug.cgi?id=254473
rdar://107230116

Reviewed by Jer Noble.

When the setting "GPU Process: Block Media Layer Re-hosting" is enabled, text 
tracks are not visible
in fullscreen, since this depends on the ability to create a CA remote layer 
hosting context in the
WebProcess. This patch works around the requirement to create a CA context in 
the WebContent process
by sending the caption bitmaps to the UI process, where they are rendered into 
a CA layer, which is
inserted into the fullscreen CA layer tree. The CA layer tree in the WebContent 
process is still
being created, since there is some amount of caption code that depends on this 
in order to get the
caption bounds correct. This patch also sets the flag "GPU Process: Block Media 
Layer Re-hosting" to
true, which is required to be able to block CARenderServer in the WebContent 
process' sandbox.
Layout test runs on iOS simulator on the bots showed some flaky timeouts of the 
test
webrtc/video-rotation.html. Looking at test history, this test has already been 
flaky on simulator.
This patch is about captions in fullscreen, so I don't think it will affect 
this test, although it
cannot be ruled out. I marked the test as flaky. This is being tracked in 
webkit.org/b/254872.

* LayoutTests/platform/ios-simulator-wk2/TestExpectations:
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/html/shadow/MediaControlTextTrackContainerElement.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentationIfNeeded):
* Source/WebCore/platform/graphics/TextTrackRepresentation.cpp:
(WebCore::TextTrackRepresentation::create):
* Source/WebCore/platform/graphics/TextTrackRepresentation.h:
* Source/WebCore/platform/graphics/cocoa/TextTrackRepresentationCocoa.h:
* Source/WebCore/platform/graphics/cocoa/TextTrackRepresentationCocoa.mm:
(WebCore::TextTrackRepresentation::create):
(WebCore::TextTrackRepresentationCocoa::representationFactory):
* Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.h:
* Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm:
(VideoFullscreenInterfaceAVKit::textTrackRepresentationUpdate):
(VideoFullscreenInterfaceAVKit::textTrackRepresentationSetContentsScale):
(VideoFullscreenInterfaceAVKit::textTrackRepresentationSetHidden):
(VideoFullscreenInterfaceAVKit::captionsLayer):
(VideoFullscreenInterfaceAVKit::setCaptionsFrame):
(VideoFullscreenInterfaceAVKit::setupCaptionsLayer):
(VideoFullscreenInterfaceAVKit::removeCaptionsLayer):
* Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
* Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.messages.in:
* Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
(WebKit::VideoFullscreenManagerProxy::createLayerHostViewWithID):
(WebKit::VideoFullscreenManagerProxy::textTrackRepresentationUpdate):
(WebKit::VideoFullscreenManagerProxy::textTrackRepresentationSetContentsScale):
(WebKit::VideoFullscreenManagerProxy::textTrackRepresentationSetHidden):
(WebKit::VideoFullscreenManagerProxy::didCleanupFullscreen):
(WebKit::VideoFullscreenManagerProxy::setVideoLayerFrame):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/cocoa/VideoFullscreenManager.h:
(WebKit::VideoFullscreenInterfaceContext::rootLayer const):
(WebKit::VideoFullscreenInterfaceContext::setRootLayer):
* Source/WebKit/WebProcess/cocoa/VideoFullscreenManager.mm:
(WebKit::VideoFullscreenManager::createModelAndInterface):
(WebKit::VideoFullscreenManager::ensureModelAndInterface):
(WebKit::VideoFullscreenManager::setupRemoteLayerHosting):
(WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::VideoFullscreenManager::requestVideoContentLayer):
(WebKit::VideoFullscreenManager::didCleanupFullscreen):
(WebKit::VideoFullscreenManager::setVideoLayerFrameFenced):
(WebKit::VideoFullscreenManager::updateTextTrackRepresentationForVideoElement):
(WebKit::VideoFullscreenManager::setTextTrackRepresentationContentScaleForVideoElement):
(WebKit::VideoFullscreenManager::setTextTrackRepresentationIsHiddenForVideoElement):

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to