Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5ae7317c43cdc8799371c8f0cbde1dc5c683ae78 https://github.com/WebKit/WebKit/commit/5ae7317c43cdc8799371c8f0cbde1dc5c683ae78 Author: Simon Fraser <simon.fra...@apple.com> Date: 2023-07-24 (Mon, 24 Jul 2023)
Changed paths: M Source/WebKit/Platform/spi/ios/UIKitSPI.h M Source/WebKit/UIProcess/ApplicationStateTracker.h M Source/WebKit/UIProcess/ApplicationStateTracker.mm M Source/WebKit/UIProcess/ios/WKApplicationStateTrackingView.mm Log Message: ----------- [iOS] Safari window sometimes flashes black when app switching or tab switching https://bugs.webkit.org/show_bug.cgi?id=259455 rdar://107673739 Reviewed by Tim Horton. WebKit relies on the _UIApplicationDidFinishSuspensionSnapshotNotification notification to do two things in WebPageProxy::applicationDidFinishSnapshottingAfterEnteringBackground(): if layers contain Mach port contents, map in IOSurfaces for those so that we don't hold an in-use count which prevents the layers from becoming volatile (no longer applicable now that layers hold CAIOSurfaceRefs), and storing a TransactionID in RemoteLayerTreeDrawingAreaProxy::hideContentUntilPendingUpdate() to keep content hidden until we get a new transaction on resume. UIKit stopped sending that notification a few years ago (rdar://112569013) so just hook up our call to `applicationDidFinishSnapshottingAfterEnteringBackground()` at the end of `_didCompleteSnapshotSequence`. Also add some release logging for background snapshotting. * Source/WebKit/Platform/spi/ios/UIKitSPI.h: * Source/WebKit/UIProcess/ApplicationStateTracker.h: * Source/WebKit/UIProcess/ApplicationStateTracker.mm: (WebKit::ApplicationStateTracker::ApplicationStateTracker): (WebKit::ApplicationStateTracker::~ApplicationStateTracker): (WebKit::ApplicationStateTracker::applicationDidFinishSnapshottingAfterEnteringBackground): Deleted. * Source/WebKit/UIProcess/ios/WKApplicationStateTrackingView.mm: (-[WKApplicationStateTrackingView didMoveToWindow]): (-[WKApplicationStateTrackingView _applicationDidFinishSnapshottingAfterEnteringBackground]): (-[WKApplicationStateTrackingView _willBeginSnapshotSequence]): (-[WKApplicationStateTrackingView _didCompleteSnapshotSequence]): Canonical link: https://commits.webkit.org/266274@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes