Bug 479655 part 5. Pass the relevant restyle tracker through to style reresolution. r=dbaron

This commit is contained in:
Boris Zbarsky
2010-06-18 12:23:05 -04:00
parent e4c01dc054
commit 4f92c20d44
5 changed files with 40 additions and 15 deletions

View File

@@ -8083,7 +8083,8 @@ nsCSSFrameConstructor::ProcessRestyledFrames(nsStyleChangeList& aChangeList)
void
nsCSSFrameConstructor::RestyleElement(Element *aElement,
nsIFrame *aPrimaryFrame,
nsChangeHint aMinHint)
nsChangeHint aMinHint,
RestyleTracker& aRestyleTracker)
{
NS_ASSERTION(aPrimaryFrame == aElement->GetPrimaryFrame(),
"frame/content mismatch");
@@ -8100,7 +8101,8 @@ nsCSSFrameConstructor::RestyleElement(Element *aElement,
} else if (aPrimaryFrame) {
nsStyleChangeList changeList;
mPresShell->FrameManager()->
ComputeStyleChangeFor(aPrimaryFrame, &changeList, aMinHint);
ComputeStyleChangeFor(aPrimaryFrame, &changeList, aMinHint,
aRestyleTracker);
ProcessRestyledFrames(changeList);
} else {
// no frames, reconstruct for content
@@ -11623,8 +11625,10 @@ nsCSSFrameConstructor::RebuildAllStyleData(nsChangeHint aExtraHint)
nsStyleChangeList changeList;
// XXX Does it matter that we're passing aExtraHint to the real root
// frame and not the root node's primary frame?
// Note: The restyle tracker we pass in here doesn't matter.
mPresShell->FrameManager()->ComputeStyleChangeFor(mPresShell->GetRootFrame(),
&changeList, aExtraHint);
&changeList, aExtraHint,
mPendingRestyles);
// Process the required changes
ProcessRestyledFrames(changeList);
// Tell the style set it's safe to destroy the old rule tree. We