[webkit-changes] [WebKit/WebKit] 2c3c1f: Force consumers of Connection::waitForAndDispatchI...

mattwoodrow noreply at github.com
Tue Aug 22 20:26:32 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2c3c1f0afc15e23fcac517543fe80b8c43bcdfaf
      https://github.com/WebKit/WebKit/commit/2c3c1f0afc15e23fcac517543fe80b8c43bcdfaf
  Author: Matt Woodrow <mattwoodrow at apple.com>
  Date:   2023-08-22 (Tue, 22 Aug 2023)

  Changed paths:
    M Source/WebKit/Platform/IPC/Connection.h
    M Source/WebKit/Scripts/webkit/messages.py
    M Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h
    M Source/WebKit/Scripts/webkit/tests/TestWithEnabledIfMessages.h
    M Source/WebKit/Scripts/webkit/tests/TestWithIfMessageMessages.h
    M Source/WebKit/Scripts/webkit/tests/TestWithImageDataMessages.h
    M Source/WebKit/Scripts/webkit/tests/TestWithLegacyReceiverMessages.h
    M Source/WebKit/Scripts/webkit/tests/TestWithSemaphoreMessages.h
    M Source/WebKit/Scripts/webkit/tests/TestWithStreamBatchedMessages.h
    M Source/WebKit/Scripts/webkit/tests/TestWithStreamBufferMessages.h
    M Source/WebKit/Scripts/webkit/tests/TestWithStreamMessages.h
    M Source/WebKit/Scripts/webkit/tests/TestWithStreamServerConnectionHandleMessages.h
    M Source/WebKit/Scripts/webkit/tests/TestWithSuperclassMessages.h
    M Source/WebKit/Scripts/webkit/tests/TestWithoutAttributesMessages.h
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.messages.in
    M Source/WebKit/UIProcess/WebPageProxy.messages.in
    M Source/WebKit/WebProcess/GPU/GPUProcessConnection.messages.in
    M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.messages.in
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.messages.in
    M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.messages.in
    M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
    M Source/WebKit/WebProcess/WebProcess.messages.in
    M Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp
    M Tools/TestWebKitAPI/Tests/IPC/IPCTestUtilities.h

  Log Message:
  -----------
  Force consumers of Connection::waitForAndDispatchImmediately to declare usage in the messages.in file
https://bugs.webkit.org/show_bug.cgi?id=260053

Reviewed by Kimmo Kinnunen.

waitForAndDispatchImmediately causes the waited on message to be delivered synchronous, and breaks expectations about IPC messages being delivered in order.

Usage of waitForAndDispatchImmediately can be subtle (if not explicitly searched for), so it's easy to add new IPC messages that expect in-order delivery.

This adds required 'CanDispatchOutOfOrder' and 'ReplyCanDispatchOutOfOrder' annotations to the messages.in files, before messages can be used with
waitForAndDispatchImmediately.

* Source/WebKit/Platform/IPC/Connection.h:
(IPC::Connection::waitForAndDispatchImmediately):
(IPC::Connection::waitForAsyncReplyAndDispatchImmediately):
* Source/WebKit/Scripts/webkit/messages.py:
(message_to_struct_declaration):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.messages.in:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/WebProcess/GPU/GPUProcessConnection.messages.in:
* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.messages.in:
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.messages.in:
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.messages.in:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Source/WebKit/WebProcess/WebProcess.messages.in:
* Tools/TestWebKitAPI/Tests/IPC/IPCTestUtilities.h:

Canonical link: https://commits.webkit.org/267178@main




More information about the webkit-changes mailing list