Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7d88d417a15768253e791a3775ffbd31c951942b
https://github.com/WebKit/WebKit/commit/7d88d417a15768253e791a3775ffbd31c951942b
Author: Per Arne Vollan <[email protected]>
Date: 2025-07-18 (Fri, 18 Jul 2025)
Changed paths:
M Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp
M Source/WebKit/UIProcess/API/gtk/PageClientImpl.h
M Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp
M Source/WebKit/UIProcess/API/wpe/PageClientImpl.h
M Source/WebKit/UIProcess/PageClient.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/ios/PageClientImplIOS.h
M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
M Source/WebKit/UIProcess/mac/PageClientImplMac.h
M Source/WebKit/UIProcess/mac/PageClientImplMac.mm
M Source/WebKit/UIProcess/win/PageClientImpl.cpp
M Source/WebKit/UIProcess/win/PageClientImpl.h
Log Message:
-----------
Tabs stop responding to all events
https://bugs.webkit.org/show_bug.cgi?id=296129
rdar://154677256
Reviewed by Chris Dumez.
On rare occasions, tabs can stop responding to input events, and we see logging
like this:
ViewState 2025-06-30 09:06:37.865762 [pageProxyID=27951, webPageID=27952,
PID=11151] WebPageProxy::viewIsBecomingInvisible:
ViewState 2025-06-30 09:06:37.865747 [pageProxyID=27310, webPageID=27311,
PID=10263] WebPageProxy::viewIsBecomingInvisible:
...
ViewState 2025-06-30 09:06:35.405510 [pageProxyID=27951, webPageID=27952,
PID=11151] WebPageProxy::viewIsBecomingVisible:
>From this logging we can see that initially, the WKWebView with WebContent PID
>11151 becomes visible. Then the user likely
activated another tab, and then both WKWebViews become invisible. This is
unexpected, since we would expect that the other
WKWebView becomes visible.
Code inspection shows that this can happen if PageClient::isViewVisible returns
false for both WKWebViews in
WebPageProxy::updateActivityState. Further code inspection shows that this is
possible, since the implementation in
PageClientImpl::isViewVisible on Mac returns the visibility of the active view,
which isn't necessarily the WKWebView. It
can also be a _WKThumbnailView. From a WebPageProxy perspective, we are only
interested in the visibility of the WKWebView,
and we shouldn't consider other views in that case.
* Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::isActiveViewVisible):
(WebKit::PageClientImpl::isViewVisible): Deleted.
* Source/WebKit/UIProcess/API/gtk/PageClientImpl.h:
* Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::isActiveViewVisible):
(WebKit::PageClientImpl::isViewVisible): Deleted.
* Source/WebKit/UIProcess/API/wpe/PageClientImpl.h:
* Source/WebKit/UIProcess/PageClient.h:
(WebKit::PageClient::isMainViewVisible):
(WebKit::PageClient::isViewVisibleOrOccluded):
(WebKit::PageClient::isVisuallyIdle):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateActivityState):
(WebKit::WebPageProxy::activityStateDidChange):
* Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::isActiveViewVisible):
(WebKit::PageClientImpl::isViewVisible): Deleted.
(WebKit::PageClientImpl::isViewWindowActive):
(WebKit::PageClientImpl::isViewVisibleOrOccluded):
(WebKit::PageClientImpl::isVisuallyIdle):
* Source/WebKit/UIProcess/mac/PageClientImplMac.h:
* Source/WebKit/UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::isViewVisible):
(WebKit::PageClientImpl::isActiveViewVisible):
(WebKit::PageClientImpl::isMainViewVisible):
(WebKit::PageClientImpl::isVisuallyIdle):
(WebKit::PageClientImpl::showCorrectionPanel):
(WebKit::PageClientImpl::showDictationAlternativeUI):
Canonical link: https://commits.webkit.org/297612@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes