As an user of embedded browsers, I'll just chime in that whilst I agree that 99% of the api is relatively low traffic and can be cross-process with little effort, there is 1 exception.
When embedding a common use case is that the embedder controls the final composite into some other application. That requires a *performant* way to get the final texture into the embedding application - i.e. 60fps without hitting the computing resources too hard. This is a clearly solvable problem (browsers do it internally) but isn't necessarily simple, some obvious solutions: - a way to get the texture directly on the gpu, to avoid copying back to the cpu (likely platform and api specific, if the embedder is using a different graphics api, or none, this can be annoying to work with) - a way to get it on the cpu without sending over a slow XPC channel (shared memory?) - a minimal effort (both for servo devs and the embedders) method that just keeps things simple at the cost of performance, using the same low-bandwidth communication channels as the rest of the api. I'd like to convince you that focusing on the "minimal-effort" option would be a mistake - non-performant browser embedding is unacceptable for many use-cases, better to have a good (if inconvenient) solution first (I speak from experience here - I've dealt with 2 poor performance embedded browsers, they made life difficult). Anyway, I don't think that conflicts with your plan, but is worth keeping in mind when developing a cross-process embedding interface. I'll also say that its perfectly reasonable to switch away from CEF for a less costly (in terms of upkeep/dev resources) solution for servo, I've already had to abstract over many browser implementations, 1 more wouldn't be a big deal, I'm sure the same applies for many other embedders, given that some platforms insist on banning alternatives (iOS), there's little hope of a *single* cross-browser interface, so might as well prioritise something that you can afford to support over a pipe dream (though its a nice dream, hopefully it can come back one day). Keep in mind CEF got redesigned a lot before they settled on something they could actually support long-term, try not to make the same mistakes (I think going with strong process-separation is already a good start). _______________________________________________ dev-servo mailing list dev-servo@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-servo