New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
When an iframe loads a new page, dirty and reflow it so that the layout fragment will pick up the new subpage ID. #8662
Conversation
cc @metajack as well. |
The page shouldn't actually be changing visibly until around step 22 of the navigate algorithm, after we see the initial response from the server (https://html.spec.whatwg.org/multipage/browsers.html#navigating-across-documents). This patch marks the iframe dirty and forces a reflow around step 10 or so. I'm not completely sure whether that indicates a problem with your patch or a more general architectural issue. |
I think the correct solution to that is to not update the iframe DOM node's stored subpage ID until the right time. Relying on the timing of dirty bits and reflows is wrong since those can be set or can happen for lots of reasons. In other words I think that's a preexisting problem independent of this patch. |
Why is the |
I'll see if I can use reflow instead of force reflow. Renaming force reflow and reflow seems out of scope for this patch. |
fragment will pick up the new subpage ID. This is necessary to make its new contents show up! Closes servo#8081.
Updated to use |
e5f5d90
to
3cafde1
Compare
@eefriedman is right. I think this actually intersects with #8612, and we should piggy-back off of that work. I propose we add a Constellation->Script message called |
#8612 seems blocked for whatever reason. Status? |
@glennw and I decided to go with his proposed simple solution in that PR last week. |
I implemented the simple solution yesterday. But when I ran WPT tests a heap of unexpected failures occurred. I suspect it's exposing a different race, but perhaps there is a bug in the implementation. I'll try to look into it again today. |
☔ The latest upstream changes (presumably #8618) made this pull request unmergeable. Please resolve the merge conflicts. |
@pcwalton This is the last known P1 browser.html blocker, so let's get this rebased an landed. |
Superseded by #9285. |
This is necessary to make its new contents show up!
Closes #8081.
r? @jdm
cc @paulrouget @glennw