The constellation assume there's one and only one compositor. When Servo will support multiple windows, this won't be true anymore.
We also want to be able to start Servo with no compositor at all. A compositor requires a gl buffer, so Servo can be loaded only once a gl buffer is available. This makes the work of the embedder a bit difficult.
Things like pixel density, window size, screen size, … can be different depending on the window.
This is a required step for multi window support.
I'd imagine that we would need a hashmap of top level frames <-> compositors.