Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d9712c272d4ecc8bef80deb86fedd8e2380cb304
      
https://github.com/WebKit/WebKit/commit/d9712c272d4ecc8bef80deb86fedd8e2380cb304
  Author: Richard Robinson <[email protected]>
  Date:   2025-05-20 (Tue, 20 May 2025)

  Changed paths:
    A Source/WebKit/UIProcess/Cocoa/RunLoopQueue.swift
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
    A Tools/TestWebKitAPI/Tests/WebKit Swift/RunLoopQueueTests.swift

  Log Message:
  -----------
  [SwiftUI] Add a mechanism to enforce that changes to observable properties 
are never coalesced
https://bugs.webkit.org/show_bug.cgi?id=293195
rdar://151546016

Reviewed by Aditya Keerthi.

Adds a `RunLoopQueue` that allows for operations that happen in the same 
run-loop cycle
to be deferred so that each operation is executed on a unique cycle. This is 
needed to ensure
that all changes to observable properties are tracked instead of coalesced.

* Source/WebKit/UIProcess/Cocoa/RunLoopQueue.swift: Added.
(RunLoopQueue.pendingChanges):
(RunLoopQueue.processingTask):
(RunLoopQueue.append(_:)):
(RunLoopQueue.process):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKit Swift/RunLoopQueueTests.swift: Added.
(RunLoopQueueTests.appendAndExecuteInOrder):
(RunLoopQueueTests.processingTaskResetsAfterCompletion):
(RunLoopQueueTests.appendingWhileProcessingAddsToQueue):

Canonical link: https://commits.webkit.org/295168@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