Skip to content

Extract IPC usage from WebRender into Servo #20172

@jdm

Description

@jdm

The goal of this work is to remove all references to the ipc-channel crate from WebRender and move all IPC usage into the calling code in Servo instead. This will require a few parts:

  • replace all uses of IPC channels in WebRender with std::mpsc channels instead
  • use the modified version of WebRender in Servo
  • create an IPC channel that is stored in Constellation which is used for cross-process communication with WebRender
  • create a new type like webrender_api::RenderApiSender that uses an IPC channel to pass the messages to the parent
  • make the IPC channel route the messages to the in-process webrender_api::RenderApiSender

Code: components/layout_thread/lib.rs, components/layout_traits/lib.rs, components/constellation/constellation.rs, components/constellation/pipeline.rs

To consider the task complete, it should be enough to demonstrate that ./mach run tests/html/about-blank.html still renders a page after the changes are made.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-webrenderB-interesting-projectRepresents work that is expected to be interesting in some fashionI-refactorNo impact; the issue is one of maintainability or tidiness. Proposed solution requires refactoring.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions