Summary: | A Frame with frame flattening can be stuck in a state in which performPostLayoutTasks() is never executed | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Benjamin Poulain <benjamin> | ||||
Component: | Layout and Rendering | Assignee: | Benjamin Poulain <benjamin> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | bdakin, ddkilzer, eric.carlson, hyatt, kenneth, koivisto, max.hong.shen, simon.fraser, yael, zalan | ||||
Priority: | P2 | Keywords: | InRadar | ||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Attachments: |
|
Description
Benjamin Poulain
2012-01-12 00:23:39 PST
Created attachment 122183 [details]
Patch
I have trouble making a test for this. I do not have yet a reliable way to trigger FrameView::unscheduleRelayout() after a layout() but before the timer. I would appreciate if you could already check if this looks correct. Comment on attachment 122183 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=122183&action=review I think Beth should look at this. > Source/WebCore/ChangeLog:14 > + This patch revert the handling of the postLayoutTasks to its state prior to r66552. Presumably without regressing the bug that r66552 fixed? Can you say more here about how you managed that? > > Source/WebCore/ChangeLog:14 > > + This patch revert the handling of the postLayoutTasks to its state prior to r66552. > > Presumably without regressing the bug that r66552 fixed? Can you say more here about how you managed that? This do not revert r66552, just revert a detail of the patch: the change from the timer to a bool to manage the state. Some more context: r66552 changed the postLayoutTasks from the timer to a bool, and stopped the timer on unschedudeRelayout. That change makes sense. But then, r77988 change the way the postLayoutTasks are performed, and that is when everything went to hell. Comment on attachment 122183 [details]
Patch
Looks good to me and reducing complexity here a bit is nice (assuming the earlier problematic cases are still handled somehow).
Comment on attachment 122183 [details]
Patch
Well if Antti's on board, so am I ;-)
Looks good. And since I desperately can't remember why I added m_hasPendingPostLayoutTasks, I can't really object to its removal. I still think you should test the original reproducibility steps of that bug that I was fixing when I added it, but r=me.
Committed r104874: <http://trac.webkit.org/changeset/104874> |