Skip to content

Remove SubpageId.#7792

Closed
glennw wants to merge 3 commits intoservo:masterfrom
glennw:fix-pipeline-id
Closed

Remove SubpageId.#7792
glennw wants to merge 3 commits intoservo:masterfrom
glennw:fix-pipeline-id

Conversation

@glennw
Copy link
Copy Markdown
Member

@glennw glennw commented Sep 29, 2015

This changes PipelineId to be a UUID and removes the concept of SubpageId.

Iframes are now able to generate their own pipeline ID during navigation which simplifies a lot of logic in other parts of the code.

Other parts of the code, such as the compositor and layout only ever deal with pipeline ids.

Review on Reviewable

This changes PipelineId to be a UUID and removes the concept of SubpageId.

Iframes are now able to generate their own pipeline ID during navigation which simplifies a lot of logic in other parts of the code.

Other parts of the code, such as the compositor and layout only ever deal with pipeline ids.
@highfive highfive added the S-awaiting-review There is new code that needs to be reviewed. label Sep 29, 2015
@highfive
Copy link
Copy Markdown

warning Warning warning

  • These commits modify unsafe code. Please review it carefully!
  • These commits modify layout code, but no reftests are modified. Please consider adding a reftest!

@glennw
Copy link
Copy Markdown
Member Author

glennw commented Sep 29, 2015

@jdm @Ms2ger What are your thoughts on this change?

I thought I'd prototype this and I think it worked out OK. All the ref, wpt and css tests pass, and real web sites I've tested seem to work OK.

I haven't been able to test with servo-shell yet, as it's broken in other ways at the moment.

But I wanted to get your thoughts on whether this was a reasonable approach, and if so I'll do a bit more testing before I get you to review it.

@jdm
Copy link
Copy Markdown
Member

jdm commented Sep 30, 2015

I admit that this change makes me nervous due to the possibility of UUID collision, but I don't actually know how concerned I should be about that.

@bors-servo
Copy link
Copy Markdown
Contributor

☔ The latest upstream changes (presumably #7423) made this pull request unmergeable. Please resolve the merge conflicts.

@highfive highfive added S-needs-rebase There are merge conflict errors. and removed S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. labels Sep 30, 2015
@glennw
Copy link
Copy Markdown
Member Author

glennw commented Sep 30, 2015

@jdm
Copy link
Copy Markdown
Member

jdm commented Sep 30, 2015

True! That being said, I am also concerned about multiprocess Servo where each content process is using a different seed, which the article does call out as a separate problem.

…eate pipeline IDs.

This is currently the constellation, and each script thread that is created.

This guarantees that pipeline IDs are unique, without relying on UUIDs.

Each time a new script thread is created, the constellation passes through a new namespace identifier.
@glennw
Copy link
Copy Markdown
Member Author

glennw commented Sep 30, 2015

@jdm What about something like the last commit? PipelineId becomes a tuple of (namespace id, index) and there is a namespace per script thread (plus the constellation). I'm not sure about the naming of the structs, but the concept seems reasonable to me. Thoughts?

@Ms2ger
Copy link
Copy Markdown
Contributor

Ms2ger commented Sep 30, 2015

I don't have a good mental model of what these are used for. Could an attacker gain anything by causing collisions?

@glennw
Copy link
Copy Markdown
Member Author

glennw commented Sep 30, 2015

I'm not sure - perhaps - but I prefer the changes in the last commit anyway, which remove the reliance on UUIDs and guarantee a unique pipeline ID.

@glennw
Copy link
Copy Markdown
Member Author

glennw commented Oct 1, 2015

Removing in favour of doing this in small increments - first step is #7807

@glennw glennw closed this Oct 1, 2015
@jdm jdm mentioned this pull request Jun 9, 2016
@glennw glennw deleted the fix-pipeline-id branch December 12, 2016 20:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-awaiting-review There is new code that needs to be reviewed. S-needs-rebase There are merge conflict errors.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants