Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upMake pipelineIds unguessable #578
Conversation
|
This will need to update the sample/ and replay/ applications in this repository in order to pass CI - you can do that by running |
6e3a11a
to
68f063e
|
|
68f063e
to
cd89e62
|
|
|
Is this still in progress? |
|
@glennw yup! the blocking changes just landed the other day. Should have this rebased soon |
cd89e62
to
f636a17
f636a17
to
bcaec80
|
Rebased. Waiting on review for servo/servo#14283 |
|
|
|
So Gecko does not need this kind of thing because different processes do not share channels. What's the reason that Servo shares channels? It seems like sharing channels is asking for security trouble. |
|
@jrmuizel the issue tracking this reasoning for this change is servo/servo#10542. Separating out the channels was one option; however, we opted for the UUID approach as its much simpler. cc @asajeffrey |
|
Wouldn't it be simpler to not mix everything together instead of mixing all the messages together and then depending on clients to make it so they can't be spoofed? I'd rather webrender/gecko not take on the complexity of having uuids because of servo. |
|
Well, we have out of process iframes in Servo, so we have potentially a lot more processes and channels. So the calculus may be different here than in Gecko, assuming that Gecko uses some sort of UUIDs at the subprocess level (does it?) It might be worth doing some measurements to see whether using lots of channels actually hurts. I worry about the specter of FD exhaustion… |
|
One option could be to just make the PipelineId in WR an arbitrary 16 byte field. Servo can use a UUID, and Gecko could use whatever arbitrary identifier it chooses to? |
Gecko just has a hash table per file descriptor that it's listening on and maps ids that it receives on from that fd to objects. This means that there's no way to spoof ids because they don't share a namespace. |
|
@cbrewster Should we keep this open or close for now? It seems like we probably won't end up having a uuid crate dependency in WR? |
|
We can close this for now |
cbrewster commentedNov 18, 2016
•
edited
Needed for servo/servo#10542.
We need to get webrender updated in Servo before this can be ready along with servo/servo#14283.
This change is