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

Reply via email to