• Darin Fisher's avatar
    Use Mojo IPC to connect to shared workers · 7d01ede1
    Darin Fisher authored
    This updates the client side of shared worker IPC infrastructure to
    use Mojo. In a subsequent patch, it could make sense to move the
    client side code entirely into Blink.
    
    As a minor change, the "OnConnected" event takes the creation context
    type so that the creation error can be computed on the client side.
    This avoids having to define the enum type for the creation error.
    
    Various enums are introduced as corresponding mojom types w/ typemaps.
    In a subsequent patch, it may make sense to eliminate the native types
    in favor of the mojom defined types.
    
    WorkerDocumentSet is no longer needed and the notion of DocumentID on
    the browser-side is eliminated in favor of the browser-side monitoring
    the lifetime of the clients (via mojo connection error).
    
    SharedWorkerMessageFilter is now only used for IPC to the shared worker
    instance rather than being dual purpose for both the shared worker
    instance and the clients. This simplifies some of the logic in the
    browser-side, but also adds some complexity as the shared worker
    service now needs SharedWorkerMessageFilters, which are created for
    each renderer process, to be registered on the service.
    
    For now, browser-side infrastructure all remains on the IO thread, but
    once the IPC to the shared worker instance is moved to Mojo, it'll be
    straightforward to move all of the browser-side infrastructure off the
    IO thread. That will simplify the browser-side code as it will no
    longer need the thread hops.
    
    Bug: 612308
    Cq-Include-Trybots: master.tryserver.chromium.linux:linux_site_isolation
    Change-Id: I8f065cec16673061104817b1c4b41d55e2d12203
    Reviewed-on: https://chromium-review.googlesource.com/642112
    Commit-Queue: Darin Fisher <darin@chromium.org>
    Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
    Reviewed-by: default avatarMatt Falkenhagen <falken@chromium.org>
    Reviewed-by: default avatarHiroki Nakagawa <nhiroki@chromium.org>
    Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#500765}
    7d01ede1
worker_messages.h 3.52 KB