In order to support DisplayList fuzzing, we need the ability to create & receive IPC::Semaphore.
Created attachment 428028 [details] Patch
Comment on attachment 428028 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=428028&action=review > Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp:551 > + RemoteRenderingBackendCreationParameters parameters { *identifier, WTFMove(semaphore), *pageProxyID, *pageID }; > + encoder << parameters; > + semaphoreObject->exchange(WTFMove(semaphore)); We seem to `WTFMove(semaphore)` a couple of times here…is that intentional?
Comment on attachment 428028 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=428028&action=review >> Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp:551 >> + semaphoreObject->exchange(WTFMove(semaphore)); > > We seem to `WTFMove(semaphore)` a couple of times here…is that intentional? As we discussed, this should have been WTFMove(parameters.resumeDisplayListSemaphore), not WTFMove(semaphore). > Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:225 > + "const result = IPC.sendSyncMessage('GPU', 123, IPC.messages.RemoteRenderingBackend_SemaphoreForGetImageData.name, 100, []);" I'd add a call to signal() here so that the above bug will be caught with a debug assertion in IPC::Semaphore::signal.
Created attachment 428032 [details] Patch for landing
Comment on attachment 428032 [details] Patch for landing View in context: https://bugs.webkit.org/attachment.cgi?id=428032&action=review > WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:130 > + BuildableName = "Framework & XPC Services" Oh oops :(
Created attachment 428037 [details] Patch for landing
Comment on attachment 428037 [details] Patch for landing Clearing flags on attachment: 428037 Committed r277199 (237471@main): <https://commits.webkit.org/237471@main>
All reviewed patches have been landed. Closing bug.
<rdar://problem/77673684>