Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 79c5ad58ede504e1d7e792d00e931a2acb99522a
https://github.com/WebKit/WebKit/commit/79c5ad58ede504e1d7e792d00e931a2acb99522a
Author: Aditya Keerthi <[email protected]>
Date: 2025-10-17 (Fri, 17 Oct 2025)
Changed paths:
M Source/WebKit/SourcesCocoa.txt
M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h
A Source/WebKit/UIProcess/Cocoa/WKScreenTimeConfigurationObserver.h
A Source/WebKit/UIProcess/Cocoa/WKScreenTimeConfigurationObserver.mm
M Source/WebKit/UIProcess/Inspector/mac/WKInspectorViewController.mm
M Source/WebKit/UIProcess/ios/WKMouseInteraction.mm
M Source/WebKit/UIProcess/mac/WebDateTimePickerMac.mm
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
Log Message:
-----------
[Screen Time] Main Thread Checker: UI API called on a background thread:
`-[WKWebView observeValueForKeyPath:ofObject:change:context:]`
https://bugs.webkit.org/show_bug.cgi?id=300904
rdar://162653113
Reviewed by Abrar Rahman Protyasha.
300778@main added `WKWebView` as an observer of
`STScreenTimeConfigurationObserver`,
which performs KVO on a background thread. This triggers the Main Thread Checker
as `WKWebView` is annotated for use on the main thread only. In reality, the
error is benign, since 300778@main ensured the actual logic is run on the main
thread.
To avoid developer confusion due to this output, refactor the logic to occur
in a separate class, `WKScreenTimeConfigurationObserver`.
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _installScreenTimeWebpageControllerIfNeeded]):
(-[WKWebView _uninstallScreenTimeWebpageController]):
(-[WKWebView observeValueForKeyPath:ofObject:change:context:]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:
* Source/WebKit/UIProcess/Cocoa/WKScreenTimeConfigurationObserver.h: Added.
* Source/WebKit/UIProcess/Cocoa/WKScreenTimeConfigurationObserver.mm: Added.
(-[WKScreenTimeConfigurationObserver initWithView:]):
(-[WKScreenTimeConfigurationObserver
observeValueForKeyPath:ofObject:change:context:]):
(-[WKScreenTimeConfigurationObserver startObserving]):
(-[WKScreenTimeConfigurationObserver stopObserving]):
(-[WKScreenTimeConfigurationObserver enforcesChildRestrictions]):
* Source/WebKit/UIProcess/Inspector/mac/WKInspectorViewController.mm:
Unified sources build fix.
* Source/WebKit/UIProcess/ios/WKMouseInteraction.mm:
Unified sources build fix.
* Source/WebKit/UIProcess/mac/WebDateTimePickerMac.mm:
Unified sources build fix.
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
Canonical link: https://commits.webkit.org/301728@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