Skip to content

Commit

Permalink
Cherry-pick 20b2145. rdar://problem/113308053
Browse files Browse the repository at this point in the history
    [Cocoa] Add logging for Element Fullscreen path inside WebKit
    https://bugs.webkit.org/show_bug.cgi?id=259761
    rdar://113308053

    Reviewed by Simon Fraser.

    Add LoggerHelper-style logging to WebFullScreenManager, WebFullScreenManagerProxy,
    and WKFullScreenWindowController (iOS).

    Drive-by Fix: Ensure the WebPage parameter to the WebFullScreenManagerProxy::create()
    method is non-null by making it a reference (&) rather than pointer (*).

    * Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp:
    (WebKit::WebFullScreenManagerProxy::WebFullScreenManagerProxy):
    (WebKit::WebFullScreenManagerProxy::willEnterFullScreen):
    (WebKit::WebFullScreenManagerProxy::didEnterFullScreen):
    (WebKit::WebFullScreenManagerProxy::willExitFullScreen):
    (WebKit::WebFullScreenManagerProxy::didExitFullScreen):
    (WebKit::WebFullScreenManagerProxy::requestRestoreFullScreen):
    (WebKit::WebFullScreenManagerProxy::requestExitFullScreen):
    (WebKit::WebFullScreenManagerProxy::logChannel const):
    * Source/WebKit/UIProcess/WebFullScreenManagerProxy.h:
    (WebKit::WebFullScreenManagerProxy::logger const):
    (WebKit::WebFullScreenManagerProxy::logIdentifier const):
    (WebKit::WebFullScreenManagerProxy::logClassName const):
    * Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
    (WTF::LogArgument<WebKit::FullScreenState>::toString):
    (-[WKFullScreenWindowController initWithWebView:]):
    (-[WKFullScreenWindowController enterFullScreen:]):
    (-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
    (-[WKFullScreenWindowController requestRestoreFullScreen]):
    (-[WKFullScreenWindowController requestExitFullScreen]):
    (-[WKFullScreenWindowController exitFullScreen]):
    (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):
    (-[WKFullScreenWindowController _completedExitFullScreen]):
    (-[WKFullScreenWindowController close]):
    (-[WKFullScreenWindowController webViewDidRemoveFromSuperviewWhileInFullscreen]):
    (-[WKFullScreenWindowController didEnterPictureInPicture]):
    (-[WKFullScreenWindowController didExitPictureInPicture]):
    (-[WKFullScreenWindowController _exitFullscreenImmediately]):
    (-[WKFullScreenWindowController _startToDismissFullscreenChanged:]):
    (-[WKFullScreenWindowController _dismissFullscreenViewController]):
    (-[WKFullScreenWindowController _interactiveDismissChanged:]):
    (-[WKFullScreenWindowController _interactivePinchDismissChanged:]):
    (-[WKFullScreenWindowController _configureSpatialFullScreenTransition]):
    (-[WKFullScreenWindowController _performSpatialFullScreenTransition:completionHandler:]):
    (-[WKFullScreenWindowController logIdentifier]):
    (-[WKFullScreenWindowController loggerPtr]):
    (-[WKFullScreenWindowController logChannel]):
    * Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:
    (WebKit::WebFullScreenManager::create):
    (WebKit::WebFullScreenManager::WebFullScreenManager):
    (WebKit::WebFullScreenManager::invalidate):
    (WebKit::WebFullScreenManager::videoControlsManagerDidChange):
    (WebKit::WebFullScreenManager::setPIPStandbyElement):
    (WebKit::WebFullScreenManager::supportsFullScreen):
    (WebKit::WebFullScreenManager::enterFullScreenForElement):
    (WebKit::WebFullScreenManager::exitFullScreenForElement):
    (WebKit::WebFullScreenManager::willEnterFullScreen):
    (WebKit::WebFullScreenManager::didEnterFullScreen):
    (WebKit::WebFullScreenManager::willExitFullScreen):
    (WebKit::WebFullScreenManager::didExitFullScreen):
    (WebKit::WebFullScreenManager::requestRestoreFullScreen):
    (WebKit::WebFullScreenManager::requestExitFullScreen):
    (WebKit::WebFullScreenManager::close):
    (WebKit::WebFullScreenManager::logChannel const):
    * Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.h:
    * Source/WebKit/WebProcess/WebPage/WebPage.cpp:
    (WebKit::WebPage::fullScreenManager):

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

Identifier: 265870.290@safari-7616.1.27.10-branch
  • Loading branch information
jernoble authored and rjepstein committed Aug 3, 2023
1 parent da6e0c8 commit d9a1199
Show file tree
Hide file tree
Showing 6 changed files with 221 additions and 35 deletions.
18 changes: 18 additions & 0 deletions Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,18 @@
#include "WebProcessProxy.h"
#include <WebCore/IntRect.h>
#include <WebCore/ScreenOrientationType.h>
#include <wtf/LoggerHelper.h>

namespace WebKit {
using namespace WebCore;

WebFullScreenManagerProxy::WebFullScreenManagerProxy(WebPageProxy& page, WebFullScreenManagerProxyClient& client)
: m_page(page)
, m_client(client)
#if !RELEASE_LOG_DISABLED
, m_logger(page.logger())
, m_logIdentifier(page.logIdentifier())
#endif
{
m_page.process().addMessageReceiver(Messages::WebFullScreenManagerProxy::messageReceiverName(), m_page.webPageID(), *this);
}
Expand All @@ -58,13 +63,15 @@ WebFullScreenManagerProxy::~WebFullScreenManagerProxy()

void WebFullScreenManagerProxy::willEnterFullScreen()
{
ALWAYS_LOG(LOGIDENTIFIER);
m_fullscreenState = FullscreenState::EnteringFullscreen;
m_page.fullscreenClient().willEnterFullscreen(&m_page);
m_page.send(Messages::WebFullScreenManager::WillEnterFullScreen());
}

void WebFullScreenManagerProxy::didEnterFullScreen()
{
ALWAYS_LOG(LOGIDENTIFIER);
m_fullscreenState = FullscreenState::InFullscreen;
m_page.fullscreenClient().didEnterFullscreen(&m_page);
m_page.send(Messages::WebFullScreenManager::DidEnterFullScreen());
Expand All @@ -77,6 +84,7 @@ void WebFullScreenManagerProxy::didEnterFullScreen()

void WebFullScreenManagerProxy::willExitFullScreen()
{
ALWAYS_LOG(LOGIDENTIFIER);
m_fullscreenState = FullscreenState::ExitingFullscreen;
m_page.fullscreenClient().willExitFullscreen(&m_page);
m_page.send(Messages::WebFullScreenManager::WillExitFullScreen());
Expand All @@ -97,6 +105,7 @@ void WebFullScreenManagerProxy::closeWithCallback(CompletionHandler<void()>&& co

void WebFullScreenManagerProxy::didExitFullScreen()
{
ALWAYS_LOG(LOGIDENTIFIER);
m_fullscreenState = FullscreenState::NotInFullscreen;
m_page.fullscreenClient().didExitFullscreen(&m_page);
m_page.send(Messages::WebFullScreenManager::DidExitFullScreen());
Expand All @@ -115,11 +124,13 @@ void WebFullScreenManagerProxy::setAnimatingFullScreen(bool animating)

void WebFullScreenManagerProxy::requestRestoreFullScreen()
{
ALWAYS_LOG(LOGIDENTIFIER);
m_page.send(Messages::WebFullScreenManager::RequestRestoreFullScreen());
}

void WebFullScreenManagerProxy::requestExitFullScreen()
{
ALWAYS_LOG(LOGIDENTIFIER);
m_page.send(Messages::WebFullScreenManager::RequestExitFullScreen());
}

Expand Down Expand Up @@ -223,6 +234,13 @@ void WebFullScreenManagerProxy::unlockFullscreenOrientation()
m_client.unlockFullscreenOrientation();
}

#if !RELEASE_LOG_DISABLED
WTFLogChannel& WebFullScreenManagerProxy::logChannel() const
{
return WebKit2LogFullscreen;
}
#endif

} // namespace WebKit

#endif // ENABLE(FULLSCREEN_API)
12 changes: 12 additions & 0 deletions Source/WebKit/UIProcess/WebFullScreenManagerProxy.h
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,13 @@ class WebFullScreenManagerProxy : public IPC::MessageReceiver {
void didReceiveMessage(IPC::Connection&, IPC::Decoder&) override;
bool didReceiveSyncMessage(IPC::Connection&, IPC::Decoder&, UniqueRef<IPC::Encoder>&) override;

#if !RELEASE_LOG_DISABLED
const Logger& logger() const { return m_logger; }
const void* logIdentifier() const { return m_logIdentifier; }
const char* logClassName() const { return "WebFullScreenManagerProxy"; }
WTFLogChannel& logChannel() const;
#endif

WebPageProxy& m_page;
WebFullScreenManagerProxyClient& m_client;
FullscreenState m_fullscreenState { FullscreenState::NotInFullscreen };
Expand All @@ -123,6 +130,11 @@ class WebFullScreenManagerProxy : public IPC::MessageReceiver {
bool m_isVideoElement { false };
#endif
Vector<CompletionHandler<void()>> m_closeCompletionHandlers;

#if !RELEASE_LOG_DISABLED
Ref<const Logger> m_logger;
const void* m_logIdentifier;
#endif
};

} // namespace WebKit
Expand Down
Loading

0 comments on commit d9a1199

Please sign in to comment.