[webkit-changes] [WebKit/WebKit] 65b2e0: Media: Videos opening fullscreen via JS API have d...

Dean Jackson noreply at github.com
Wed Apr 5 13:32:02 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 65b2e06df85324883b2f5b62e035a4f474db3fa6
      https://github.com/WebKit/WebKit/commit/65b2e06df85324883b2f5b62e035a4f474db3fa6
  Author: Dean Jackson <dino at apple.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp
    M Source/WebKit/UIProcess/WebFullScreenManagerProxy.h
    M Source/WebKit/UIProcess/WebFullScreenManagerProxy.messages.in
    M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenViewController.h
    M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenViewController.mm
    M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm
    M Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp
    M Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.cpp
    M Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.h

  Log Message:
  -----------
  Media: Videos opening fullscreen via JS API have duplicated fullscreen controls
https://bugs.webkit.org/show_bug.cgi?id=255012
rdar://103032343

Reviewed by Aditya Keerthi.

We overlay native "exit fullscreen" and "PiP" buttons when
we think they are necessary. However, our detection of necessity
was slightly incorrect. When a <video> element goes fullscreen,
we always inject our default controls. They provide their own
"exit fullscreen" button, so the native one is not necessary.
We were assuming you needed to have the `controls` attribute
on the video.

While here, rename the member variable to be more clear
that we're hiding two particular buttons, not the media controls
as a whole.

* Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp:
(WebKit::WebFullScreenManagerProxy::isVideoElement const):
(WebKit::WebFullScreenManagerProxy::enterFullScreen):
(WebKit::WebFullScreenManagerProxy::isVideoElementWithControls const): Deleted.
* Source/WebKit/UIProcess/WebFullScreenManagerProxy.h:
* Source/WebKit/UIProcess/WebFullScreenManagerProxy.messages.in:
* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenViewController.h:
* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenViewController.mm:
(-[WKFullScreenViewController initWithWebView:]):
(-[WKFullScreenViewController videoControlsManagerDidChange]):
(-[WKFullScreenViewController hideCancelAndPIPButtons:]):
(-[WKFullScreenViewController hideMediaControls:]): Deleted.
* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController enterFullScreen:]):
* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::enterFullScreenForElement):
* Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.cpp:
(WebKit::InjectedBundlePageFullScreenClient::enterFullScreenForElement):
* Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.h:

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




More information about the webkit-changes mailing list