As most people know by now, I'm having a lot of trouble getting
multiprocess Servo landed :) Much of the trouble here is that changes keep
coming in that are not multiprocess safe, and as multiprocess tends to
trigger random test failures it ends up being a never-ending losing battle
to keep up with the churn while simultaneously fixing test failures.

I propose *freezing the interfaces* for the following sections of Servo
until they have been made multiprocess-safe:

* Developer tools
* Core script/constellation communication: ScriptListener/ScriptControlChan
* Pipeline and constellation setup
* Image cache task
* Resource task
* Display list

By "freezing the interfaces" I mean that no new channels (anything in
`mpsc`) may be added, no more data types may be added that go over those
channels, and no more variants in those enums (i.e. messages) may be added.

Additionally, I would like to propose that any instance of boxed trait
objects being sent over channels requires signoff that they are not
crossing over a chrome-content boundary. If they are, I think they should
be also blocked from landing until the relevant parts of Servo have been
converted to be e10s-safe.

I apologize if this seems heavy-handed, but it's been very difficult to
land this stuff. I'm working around the clock to try to lift these
restrictions, but I don't know how much longer it will take.

Thoughts?
Patrick
_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to