Do IsProperAncestorFrame check before destroying floats, but not for popups. (Bug 588158) r=dbaron a2.0=blocking
authorfantasai <fantasai.cvs@inkedblade.net>
Thu, 19 Aug 2010 09:38:00 -0400
changeset 50895 3c1b66168e7a
parent 50894 df1266dee17d
child 50896 15ba1f799202
push id15189
push userdbaron@mozilla.com
push dateThu, 19 Aug 2010 13:39:30 +0000
treeherdermozilla-central@5daf8744eed1 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdbaron
bugs588158
milestone2.0b5pre
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Do IsProperAncestorFrame check before destroying floats, but not for popups. (Bug 588158) r=dbaron a2.0=blocking
layout/generic/nsPlaceholderFrame.cpp
--- a/layout/generic/nsPlaceholderFrame.cpp
+++ b/layout/generic/nsPlaceholderFrame.cpp
@@ -158,17 +158,17 @@ nsPlaceholderFrame::DestroyFrom(nsIFrame
   if (oof) {
     // Unregister out-of-flow frame
     shell->FrameManager()->UnregisterPlaceholderFrame(this);
     mOutOfFlowFrame = nsnull;
     // If aDestructRoot is not an ancestor of the out-of-flow frame,
     // then call RemoveFrame on it here.
     // Also destroy it here if it's a popup frame. (Bug 96291)
     if (shell->FrameManager() &&
-        ((GetStateBits() & PLACEHOLDER_FOR_FLOAT) ||
+        ((GetStateBits() & PLACEHOLDER_FOR_POPUP) ||
          !nsLayoutUtils::IsProperAncestorFrame(aDestructRoot, oof))) {
       nsIAtom* listName = nsLayoutUtils::GetChildListNameFor(oof);
       shell->FrameManager()->RemoveFrame(listName, oof);
     }
     // else oof will be destroyed by its parent
   }
 
   nsFrame::DestroyFrom(aDestructRoot);