Changeset 295052 in webkit


Ignore:
Timestamp:
May 31, 2022 8:22:39 AM (2 years ago)
Author:
Wenson Hsieh
Message:

[iOS] Refactor some logic around VideoFullscreenInterfaceAVKit
https://bugs.webkit.org/show_bug.cgi?id=241113

Reviewed by Eric Carlson.

Adjust the window level of VideoFullscreenInterfaceAVKit's window. No change in behavior.

  • Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::doSetup):

  • Source/WebKit/UIProcess/PageClient.h:
  • Source/WebKit/UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didEnterFullscreen):
(WebKit::WebPageProxy::didExitFullscreen):

Also refactor WebPageProxy::did(Enter|Exit)Fullscreen, such that we implement
didExitFullscreen(PlaybackSessionContextIdentifier) in the case where
ENABLE(VIDEO_PRESENTATION_MODE) is enabled, and didExitFullscreen() (with no arguments) in the
case where it's disabled.

Currently both versions of did(Enter|Exit)Fullscreen() exist if ENABLE(VIDEO_PRESENTATION_MODE)
is set, even though we only expect to call into did(Enter|Exit)Fullscreen() from outside of
WebPageProxy.

  • Source/WebKit/UIProcess/WebPageProxy.h:
  • Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
  • Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::didEnterFullscreen):
(WebKit::PageClientImpl::didExitFullscreen):

  • Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
  • Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _didEnterFullscreen]):
(-[WKContentView _didExitFullscreen]):

  • Source/WebKit/UIProcess/mac/PageClientImplMac.h:

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

Location:
trunk/Source
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm

    r292408 r295052  
    13721372        [m_viewController _setIgnoreAppSupportedOrientations:YES];
    13731373        [m_window setRootViewController:m_viewController.get()];
    1374         [m_window setWindowLevel:PAL::get_UIKit_UITextEffectsBeneathStatusBarWindowLevel() + 1];
     1374        [m_window setWindowLevel:PAL::get_UIKit_UITextEffectsBeneathStatusBarWindowLevel() - 1];
    13751375        [m_window makeKeyAndVisible];
    13761376    }
  • trunk/Source/WebKit/UIProcess/PageClient.h

    r294325 r295052  
    659659    virtual bool usesOffscreenRendering() const = 0;
    660660#endif
     661
     662#if ENABLE(VIDEO_PRESENTATION_MODE)
     663    virtual void didEnterFullscreen() = 0;
     664    virtual void didExitFullscreen() = 0;
     665#endif
    661666};
    662667
  • trunk/Source/WebKit/UIProcess/WebPageProxy.cpp

    r294987 r295052  
    60826082}
    60836083
    6084 void WebPageProxy::didEnterFullscreen()
     6084#if ENABLE(VIDEO_PRESENTATION_MODE)
     6085
     6086void WebPageProxy::didEnterFullscreen(PlaybackSessionContextIdentifier identifier)
    60856087{
    60866088    m_uiClient->didEnterFullscreen(this);
    6087 }
    6088 
    6089 void WebPageProxy::didExitFullscreen()
    6090 {
    6091     m_uiClient->didExitFullscreen(this);
    6092 }
    6093 
    6094 #if ENABLE(VIDEO_PRESENTATION_MODE)
    6095 
    6096 void WebPageProxy::didEnterFullscreen(PlaybackSessionContextIdentifier identifier)
    6097 {
    6098     didEnterFullscreen();
    60996089
    61006090    m_currentFullscreenVideoSessionIdentifier = identifier;
     
    61046094void WebPageProxy::didExitFullscreen(PlaybackSessionContextIdentifier identifier)
    61056095{
    6106     didExitFullscreen();
     6096    m_uiClient->didExitFullscreen(this);
    61076097
    61086098    if (m_currentFullscreenVideoSessionIdentifier == identifier) {
     
    61126102}
    61136103
    6114 #endif // ENABLE(VIDEO_PRESENTATION_MODE)
     6104#else
     6105
     6106void WebPageProxy::didEnterFullscreen()
     6107{
     6108    m_uiClient->didEnterFullscreen(this);
     6109}
     6110
     6111void WebPageProxy::didExitFullscreen()
     6112{
     6113    m_uiClient->didExitFullscreen(this);
     6114}
     6115
     6116#endif
    61156117
    61166118void WebPageProxy::closePage()
  • trunk/Source/WebKit/UIProcess/WebPageProxy.h

    r294987 r295052  
    523523    void fullscreenMayReturnToInline();
    524524
    525     void didEnterFullscreen();
    526     void didExitFullscreen();
    527 
    528525    void suspend(CompletionHandler<void(bool)>&&);
    529526    void resume(CompletionHandler<void(bool)>&&);
     
    19721969    void didChangePlaybackRate(PlaybackSessionContextIdentifier);
    19731970    void didChangeCurrentTime(PlaybackSessionContextIdentifier);
     1971#else
     1972    void didEnterFullscreen();
     1973    void didExitFullscreen();
    19741974#endif
    19751975
  • trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.h

    r294325 r295052  
    313313    bool isInMultitaskingMode() const final;
    314314
     315#if ENABLE(VIDEO_PRESENTATION_MODE)
     316    void didEnterFullscreen() final;
     317    void didExitFullscreen() final;
     318#endif
     319
    315320    WeakObjCPtr<WKContentView> m_contentView;
    316321    RetainPtr<WKEditorUndoTarget> m_undoTarget;
  • trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm

    r294325 r295052  
    984984}
    985985
     986#if ENABLE(VIDEO_PRESENTATION_MODE)
     987
     988void PageClientImpl::didEnterFullscreen()
     989{
     990    [m_contentView _didEnterFullscreen];
     991}
     992
     993void PageClientImpl::didExitFullscreen()
     994{
     995    [m_contentView _didExitFullscreen];
     996}
     997
     998#endif // ENABLE(VIDEO_PRESENTATION_MODE)
     999
    9861000#if ENABLE(ATTACHMENT_ELEMENT)
    9871001
  • trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.h

    r294815 r295052  
    225225    FocusedElementIsTooSmall = 1 << 1,
    226226    InteractionIsHappening = 1 << 2,
     227    ShowingFullscreenVideo = 1 << 3,
    227228};
    228229
     
    729730#endif
    730731
     732#if ENABLE(VIDEO_PRESENTATION_MODE)
     733- (void)_didEnterFullscreen;
     734- (void)_didExitFullscreen;
     735#endif
     736
    731737- (void)_requestTextInputContextsInRect:(CGRect)rect completionHandler:(void (^)(NSArray<_WKTextInputContext *> *))completionHandler;
    732738- (void)_focusTextInputContext:(_WKTextInputContext *)context placeCaretAt:(CGPoint)point completionHandler:(void (^)(UIResponder<UITextInput> *))completionHandler;
  • trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm

    r294982 r295052  
    1020810208#endif // HAVE(PENCILKIT_TEXT_INPUT)
    1020910209
     10210#if ENABLE(VIDEO_PRESENTATION_MODE)
     10211
     10212- (void)_didEnterFullscreen
     10213{
     10214    [self _startSuppressingSelectionAssistantForReason:WebKit::SuppressSelectionAssistantReason::ShowingFullscreenVideo];
     10215}
     10216
     10217- (void)_didExitFullscreen
     10218{
     10219    [self _stopSuppressingSelectionAssistantForReason:WebKit::SuppressSelectionAssistantReason::ShowingFullscreenVideo];
     10220}
     10221
     10222#endif // ENABLE(VIDEO_PRESENTATION_MODE)
     10223
    1021010224#if ENABLE(ATTACHMENT_ELEMENT)
    1021110225
  • trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.h

    r294325 r295052  
    296296    void requestScrollToRect(const WebCore::FloatRect& targetRect, const WebCore::FloatPoint& origin) override;
    297297
     298#if ENABLE(VIDEO_PRESENTATION_MODE)
     299    void didEnterFullscreen() final { }
     300    void didExitFullscreen() final { }
     301#endif
     302
    298303    NSView *m_view;
    299304    WeakPtr<WebViewImpl> m_impl;
Note: See TracChangeset for help on using the changeset viewer.