[webkit-changes] [WebKit/WebKit] 61358f: [iOS] No media controls after restoring fullscreen...

Jer Noble noreply at github.com
Wed Dec 7 09:26:47 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 61358f64bf9d37c84a3cfdc931aa2dd616b23675
      https://github.com/WebKit/WebKit/commit/61358f64bf9d37c84a3cfdc931aa2dd616b23675
  Author: Jer Noble <jer.noble at apple.com>
  Date:   2022-12-07 (Wed, 07 Dec 2022)

  Changed paths:
    M Source/WebKit/UIProcess/API/wpe/WPEView.cpp
    M Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp
    M Source/WebKit/UIProcess/WebFullScreenManagerProxy.h
    M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.h
    M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm
    M Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp
    M Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.h
    M Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.messages.in
    M Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj
    M Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/xcshareddata/xcschemes/MobileMiniBrowser.xcscheme
    M Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Assets.xcassets/AppIcon.appiconset/Contents.json
    M Tools/MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.m
    M Tools/MobileMiniBrowser/MobileMiniBrowserUITests/MobileMiniBrowserUITests.m

  Log Message:
  -----------
  [iOS] No media controls after restoring fullscreen from PiP
https://bugs.webkit.org/show_bug.cgi?id=248834
rdar://102880747

Reviewed by Eric Carlson and Jean-Yves Avenard.

When attempting to "restore" fullscreen mode from PiP, WebFullScreenManager uses
the m_element ivar to decide which element to request element fullscreen. However
in 256812 at main, m_element is cleared upon exit.

Restore the functionality by introducing a new ivar, m_elementToRestore. This WeakPtr
will be queried when requesting fullscreen and, if valid, will be used instead of
m_element.

To make it more clear that we are requesting fullscreen mode be restored, rename
all instances of requestEnterFullScreen to requestRestoreFullScreen.

Add a XCUITest that exercises entering video fullscreen, entering PiP, and restoring
to fullscreen twice.

* Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp:
(WebKit::WebFullScreenManagerProxy::requestRestoreFullScreen):
(WebKit::WebFullScreenManagerProxy::requestEnterFullScreen): Deleted.
* Source/WebKit/UIProcess/WebFullScreenManagerProxy.h:
* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.h:
* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController requestRestoreFullScreen]):
(-[WKFullScreenWindowController _completedExitFullScreen]):
(-[WKFullScreenWindowController didExitPictureInPicture]):
(-[WKFullScreenWindowController requestEnterFullScreen]): Deleted.
* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::setElement):
(WebKit::WebFullScreenManager::requestRestoreFullScreen):
(WebKit::WebFullScreenManager::requestEnterFullScreen): Deleted.
* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.h:
* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.messages.in:
* Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj:
* Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/xcshareddata/xcschemes/MobileMiniBrowser.xcscheme:
* Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Assets.xcassets/AppIcon.appiconset/Contents.json:
* Tools/MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.m:
(-[WebViewController createWebView]):
(-[WebViewController targetURLorDefaultURL]):
* Tools/MobileMiniBrowser/MobileMiniBrowserUITests/MobileMiniBrowserUITests.m:
(-[MobileMiniBrowserUITests setUp]):
(-[MobileMiniBrowserUITests waitForWindowNamed:forApp:]):
(-[MobileMiniBrowserUITests waitForOtherElementNamed:forApp:]):
(-[MobileMiniBrowserUITests tapMiddleTopOfApp:]):
(-[MobileMiniBrowserUITests launchURL:]):
(-[MobileMiniBrowserUITests launchPageNamed:]):
(-[MobileMiniBrowserUITests testBasicVideoPlayback]):
(-[MobileMiniBrowserUITests testBasicVideoFullscreen]):
(-[MobileMiniBrowserUITests testRepeatedFullScreenToPiPAndBack]):
(-[MobileMiniBrowserUITests testVideoFullscreenAndRotationAnimation]):
(-[MobileMiniBrowserUITests testVideoFullscreenControlCenter]):
(-[MobileMiniBrowserUITests testLoopingFullscreenLockup]):

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




More information about the webkit-changes mailing list