зеркало из https://github.com/mozilla/gecko-dev.git
Bug 79508. If the computed style change is going to cause a reflow (or worse), then don't touch any continuing frames. This keeps us from queuing an incremental reflow to a continuation, but is not ideal (e.g., there may be cases where we don't properly recompute the style contexts for continuations). r=rbs, sr=attinasi
This commit is contained in:
Родитель
53e2fab38c
Коммит
b0f9d44ead
|
@ -2023,6 +2023,17 @@ FrameManager::ComputeStyleChangeFor(nsIPresContext* aPresContext,
|
|||
aTopLevelChange = frameChange;
|
||||
}
|
||||
|
||||
if (aTopLevelChange >= NS_STYLE_HINT_REFLOW) {
|
||||
// If it's going to cause a reflow (or worse), then don't touch
|
||||
// the any continuations: they must be taken care of by the reflow.
|
||||
#ifdef NS_DEBUG
|
||||
nsIFrame* prevInFlow;
|
||||
frame->GetPrevInFlow(&prevInFlow);
|
||||
NS_ASSERTION(!prevInFlow, "continuing frame had more severe impact than first-in-flow");
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
frame->GetNextInFlow(&frame);
|
||||
} while (frame);
|
||||
return NS_OK;
|
||||
|
|
|
@ -2023,6 +2023,17 @@ FrameManager::ComputeStyleChangeFor(nsIPresContext* aPresContext,
|
|||
aTopLevelChange = frameChange;
|
||||
}
|
||||
|
||||
if (aTopLevelChange >= NS_STYLE_HINT_REFLOW) {
|
||||
// If it's going to cause a reflow (or worse), then don't touch
|
||||
// the any continuations: they must be taken care of by the reflow.
|
||||
#ifdef NS_DEBUG
|
||||
nsIFrame* prevInFlow;
|
||||
frame->GetPrevInFlow(&prevInFlow);
|
||||
NS_ASSERTION(!prevInFlow, "continuing frame had more severe impact than first-in-flow");
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
frame->GetNextInFlow(&frame);
|
||||
} while (frame);
|
||||
return NS_OK;
|
||||
|
|
Загрузка…
Ссылка в новой задаче