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 upconstellation: Don't ignore inconsistent frame-tree states when determining when to take a screenshot. #11739
Conversation
highfive
commented
Jun 13, 2016
|
Heads up! This PR modifies the following files:
|
|
I plan to do a few try runs to see if this fixes any intermittent. Let's see. r? @asajeffrey @bors-servo: try |
constellation: Don't bail out early of the current frame tree iterator <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [ ] These changes do not require tests because _____ <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> Return a significative error instead. I think this is the cause of most iframe-related intermittents: we stop iterating early, so we don't detect frames that aren't closed now.
|
|
|
|
|
@bors-servo: retry
|
constellation: Don't bail out early of the current frame tree iterator <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [ ] These changes do not require tests because _____ <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> Return a significative error instead. I think this is the cause of most iframe-related intermittents: we stop iterating early, so we don't detect frames that aren't closed now. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11739) <!-- Reviewable:end -->
|
|
highfive
commented
Jun 13, 2016
|
New code was committed to pull request. |
|
The initial code was incorrect (we already weren't bailing out, and I don't know how to read code). This code returns a I'm curious to see if this ever causes a timeout. @bors-servo: try
|
constellation: Don't bail out early of the current frame tree iterator <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [ ] These changes do not require tests because _____ <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> Return a significative error instead. I think this is the cause of most iframe-related intermittents: we stop iterating early, so we don't detect frames that aren't closed now. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11739) <!-- Reviewable:end -->
|
|
|
@bors-servo: retry
|
constellation: Don't ignore inconsistent frame-tree states when determining when to take a screenshot. <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [ ] These changes do not require tests because _____ <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> Return a significative error instead. I think this is the cause of most iframe-related intermittents: we stop iterating early, so we don't detect frames that aren't closed now. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11739) <!-- Reviewable:end -->
|
|
|
@bors-servo: retry
|
constellation: Don't ignore inconsistent frame-tree states when determining when to take a screenshot. <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [ ] These changes do not require tests because _____ <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> Return a significative error instead. I think this is the cause of most iframe-related intermittents: we stop iterating early, so we don't detect frames that aren't closed now. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11739) <!-- Reviewable:end -->
|
Sorry about the delay, this was a casualty of MozLondon. I'm going to echo @ConnorGBrewster: can you say which intermittents this will fix? Looking through the code, I can't see what behaviour will be different, since the only difference is when the already-closed frames are filtered out. Currently they're filtered out by the iterator, with your patch they're filtered out by the consumer of the iterator. I may be missing something, can you give us a scenario where there's a difference? |
|
Yes, so the point is to try tackling the intermittents where we have iframes that render nothing, presumably because we take the screenshot too early. And yes, almost everything is getting refiltered as before, except... Review status: 0 of 1 files reviewed at latest revision, 1 unresolved discussion, some commit checks failed. components/constellation/constellation.rs, line 1864 [r4] (raw file):
These lines, where instead of skipping the frames and assuming everything is ok, we return a state that isn't Comments from Reviewable |
|
Ah, I see. Reviewed 1 of 1 files at r4. components/constellation/constellation.rs, line 261 [r4] (raw file):
Rather than a whole new type, it might be better to use Or leave components/constellation/constellation.rs, line 1864 [r4] (raw file):
|
|
It may be worth reenabling #10760 with this change, as that was seen to be a blank iframe. |
|
@jdm: agreed, will do on my next push. Review status: all files reviewed at latest revision, 2 unresolved discussions, some commit checks failed. components/constellation/constellation.rs, line 261 [r4] (raw file):
|
|
Refactored it, I think it's more legible now, and also re-enabled Also fixed a bug on re-r? @asajeffrey @bors-servo: try |
constellation: Don't ignore inconsistent frame-tree states when determining when to take a screenshot. <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [ ] These changes do not require tests because _____ <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> Return a significative error instead. I think this is the cause of most iframe-related intermittents: we stop iterating early, so we don't detect frames that aren't closed now. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11739) <!-- Reviewable:end -->
|
|
|
|
highfive
commented
Jun 29, 2016
|
|
The reftest still shows |
|
Yup, I should arguably hide myself :/ Anyway, I think part of these changes are good to land, at least since they ignore the extra pipeline lookup, and the error handling associated with it, and also it fixes the bug of us calling I'd like feedback from @asajeffrey before keeping working on it though. |
|
I'm flying to NYC at the moment, I'll comment when I arrive! |
|
Oops, dropped the ball on this one. How about if we restore Review status: 0 of 2 files reviewed at latest revision, 2 unresolved discussions, some commit checks failed. Comments from Reviewable |
|
@emilio is this still active? |
|
I need to find more time to work on it, closing in the meantime since it's not super hi-pri. |
|
OK, cc me if you submit a new PR! |
emilio commentedJun 13, 2016
•
edited by larsbergstrom
./mach build -ddoes not report any errors./mach test-tidydoes not report any errorsReturn a significative error instead.
I think this is the cause of most iframe-related intermittents: we stop
iterating early, so we don't detect frames that aren't closed now.
This change is