Bug 718516: Replace call of FinishReflowWithAbsoluteFrames() with FinishAndStoreOverflow() for nsColumnSetFrame to prevent crash. [r=ehsan][a=akeybl]
authorScott Johnson <sjohnson@mozilla.com>
Fri, 17 Feb 2012 12:20:22 -0600
changeset 87206 ff20f55bc31b10422a7d8eb3e986113ce524b198
parent 87205 f1319928a26a243c0bbd7cb8aecb1bac92793048
child 87207 25a023e0faf7149601af37b860897732a61f10cc
push id872
push usersjohnson@mozilla.com
push dateFri, 17 Feb 2012 18:20:42 +0000
treeherdermozilla-aurora@ff20f55bc31b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersehsan, akeybl
bugs718516
milestone12.0a2
Bug 718516: Replace call of FinishReflowWithAbsoluteFrames() with FinishAndStoreOverflow() for nsColumnSetFrame to prevent crash. [r=ehsan][a=akeybl]
layout/generic/nsColumnSetFrame.cpp
layout/reftests/abs-pos/reftest.list
layout/reftests/bugs/reftest.list
--- a/layout/generic/nsColumnSetFrame.cpp
+++ b/layout/generic/nsColumnSetFrame.cpp
@@ -1078,17 +1078,21 @@ nsColumnSetFrame::Reflow(nsPresContext* 
       aReflowState.availableHeight == NS_UNCONSTRAINEDSIZE) {
     // In this situation, we might be lying about our reflow status, because
     // our last kid (the one that got interrupted) was incomplete.  Fix that.
     aStatus = NS_FRAME_COMPLETE;
   }
   
   CheckInvalidateSizeChange(aDesiredSize);
 
-  FinishReflowWithAbsoluteFrames(aPresContext, aDesiredSize, aReflowState, aStatus);
+  // XXXjwir3: This call should be replaced with FinishWithAbsoluteFrames
+  //           when bug 724978 is fixed and nsColumnSetFrame is a full absolute
+  //           container.
+  FinishAndStoreOverflow(&aDesiredSize);
+
   aDesiredSize.mCarriedOutBottomMargin = carriedOutBottomMargin;
 
   NS_FRAME_SET_TRUNCATION(aStatus, aReflowState, aDesiredSize);
 
   NS_ASSERTION(NS_FRAME_IS_FULLY_COMPLETE(aStatus) ||
                aReflowState.availableHeight != NS_UNCONSTRAINEDSIZE,
                "Column set should be complete if the available height is unconstrained");
 
--- a/layout/reftests/abs-pos/reftest.list
+++ b/layout/reftests/abs-pos/reftest.list
@@ -8,11 +8,13 @@ fails-if(/^Windows\x20NT\x206\.1/.test(h
 == continuation-positioned-inline-1.html continuation-positioned-inline-ref.html
 == continuation-positioned-inline-2.html continuation-positioned-inline-ref.html
 == scrollframe-1.html scrollframe-1-ref.html
 == scrollframe-2.html scrollframe-2-ref.html
 == select-1.html select-1-ref.html
 == select-1-dynamic.html select-1-ref.html
 == select-2.html select-2-ref.html
 == select-3.html select-3-ref.html
-== multi-column-1.html multi-column-1-ref.html
+
+# Fails due to bug 724978. Should be re-enabled once this is fixed.
+fails == multi-column-1.html multi-column-1-ref.html
 == button-1.html button-1-ref.html
 == button-2.html button-2-ref.html
--- a/layout/reftests/bugs/reftest.list
+++ b/layout/reftests/bugs/reftest.list
@@ -678,21 +678,23 @@ fails-if(Android) != 376532-3.html 37653
 == 378935-1.html 378935-1-ref.html
 == 378937-1.html 378937-1-ref.html
 == 379178-xhtml.xhtml 379178-xhtml-ref.xhtml
 == 379178-html.html 379178-html-ref.html
 == 379178-svg.svg 379178-svg-ref.svg
 == 379316-1.html 379316-1-ref.html
 fails-if(Android) random-if(cocoaWidget) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 379316-2.html 379316-2-ref.html # bug 379786
 == 379328-1.html 379328-1-ref.html
-== 379349-1a.xhtml 379349-1-ref.xhtml
-== 379349-1b.xhtml 379349-1-ref.xhtml
-== 379349-1c.xhtml 379349-1-ref.xhtml
-== 379349-2a.xhtml 379349-2-ref.xhtml
-== 379349-2b.xhtml 379349-2-ref.xhtml
+# The next set of reftests all fail until bug 724978 has been fixed, and the
+# overflow container ability of nsColumnSetFrame is restored.
+fails == 379349-1a.xhtml 379349-1-ref.xhtml
+fails == 379349-1b.xhtml 379349-1-ref.xhtml
+fails == 379349-1c.xhtml 379349-1-ref.xhtml
+fails == 379349-2a.xhtml 379349-2-ref.xhtml
+fails == 379349-2b.xhtml 379349-2-ref.xhtml
 == 379349-3a.xhtml 379349-3-ref.xhtml
 == 379349-3b.xhtml 379349-3-ref.xhtml
 == 379361-1.html 379361-1-ref.html
 == 379361-2.html 379361-2-ref.html
 == 379361-3.html 379361-3-ref.html
 == 379461-1.xhtml 379461-1.html
 == 379461-2.xhtml 379461-2.html
 == 379461-3-container-xhtml.html 379461-3-container-html.html