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

Reply via email to