diff --git a/mozilla/layout/html/table/src/nsTableRowFrame.cpp b/mozilla/layout/html/table/src/nsTableRowFrame.cpp
index b32da342f98..98eead9f230 100644
--- a/mozilla/layout/html/table/src/nsTableRowFrame.cpp
+++ b/mozilla/layout/html/table/src/nsTableRowFrame.cpp
@@ -892,7 +892,10 @@ nsTableRowFrame::ReflowChildren(nsIPresContext* aPresContext,
// remember the rightmost (ltr) or leftmost (rtl) column this cell spans into
prevColIndex = (iter.IsLeftToRight()) ? cellColIndex + (cellColSpan - 1) : cellColIndex;
- nsHTMLReflowMetrics desiredSize(PR_FALSE);
+ // always request MEW. Since we may turn MEW on for selected cells during incremental
+ // reflow, we need to request MEW *now* so that those incremental reflows will be
+ // able to build on existing MEW data in the children.
+ nsHTMLReflowMetrics desiredSize(PR_TRUE);
// If the avail width is not the same as last time we reflowed the cell or
// the cell wants to be bigger than what was available last time or
@@ -936,8 +939,6 @@ nsTableRowFrame::ReflowChildren(nsIPresContext* aPresContext,
if (NS_UNCONSTRAINEDSIZE != availCellWidth) {
desiredSize.mFlags |= NS_REFLOW_CALC_MAX_WIDTH;
}
- // request to get the max element size
- desiredSize.mComputeMEW = PR_TRUE;
}
else {
cellToWatch = PR_FALSE;
diff --git a/mozilla/layout/html/table/src/nsTableRowGroupFrame.cpp b/mozilla/layout/html/table/src/nsTableRowGroupFrame.cpp
index 2268421067d..9e3d70a9655 100644
--- a/mozilla/layout/html/table/src/nsTableRowGroupFrame.cpp
+++ b/mozilla/layout/html/table/src/nsTableRowGroupFrame.cpp
@@ -340,7 +340,7 @@ nsTableRowGroupFrame::ReflowChildren(nsIPresContext* aPresContext,
nsSize kidAvailSize(aReflowState.availSize);
if (0 >= kidAvailSize.height)
kidAvailSize.height = 1; // XXX: HaCk - we don't handle negative heights yet
- nsHTMLReflowMetrics desiredSize(PR_FALSE);
+ nsHTMLReflowMetrics desiredSize(aDesiredSize.mComputeMEW);
desiredSize.width = desiredSize.height = desiredSize.ascent = desiredSize.descent = 0;
// Reflow the child into the available space, giving it as much height as
diff --git a/mozilla/layout/tables/nsTableRowFrame.cpp b/mozilla/layout/tables/nsTableRowFrame.cpp
index b32da342f98..98eead9f230 100644
--- a/mozilla/layout/tables/nsTableRowFrame.cpp
+++ b/mozilla/layout/tables/nsTableRowFrame.cpp
@@ -892,7 +892,10 @@ nsTableRowFrame::ReflowChildren(nsIPresContext* aPresContext,
// remember the rightmost (ltr) or leftmost (rtl) column this cell spans into
prevColIndex = (iter.IsLeftToRight()) ? cellColIndex + (cellColSpan - 1) : cellColIndex;
- nsHTMLReflowMetrics desiredSize(PR_FALSE);
+ // always request MEW. Since we may turn MEW on for selected cells during incremental
+ // reflow, we need to request MEW *now* so that those incremental reflows will be
+ // able to build on existing MEW data in the children.
+ nsHTMLReflowMetrics desiredSize(PR_TRUE);
// If the avail width is not the same as last time we reflowed the cell or
// the cell wants to be bigger than what was available last time or
@@ -936,8 +939,6 @@ nsTableRowFrame::ReflowChildren(nsIPresContext* aPresContext,
if (NS_UNCONSTRAINEDSIZE != availCellWidth) {
desiredSize.mFlags |= NS_REFLOW_CALC_MAX_WIDTH;
}
- // request to get the max element size
- desiredSize.mComputeMEW = PR_TRUE;
}
else {
cellToWatch = PR_FALSE;
diff --git a/mozilla/layout/tables/nsTableRowGroupFrame.cpp b/mozilla/layout/tables/nsTableRowGroupFrame.cpp
index 2268421067d..9e3d70a9655 100644
--- a/mozilla/layout/tables/nsTableRowGroupFrame.cpp
+++ b/mozilla/layout/tables/nsTableRowGroupFrame.cpp
@@ -340,7 +340,7 @@ nsTableRowGroupFrame::ReflowChildren(nsIPresContext* aPresContext,
nsSize kidAvailSize(aReflowState.availSize);
if (0 >= kidAvailSize.height)
kidAvailSize.height = 1; // XXX: HaCk - we don't handle negative heights yet
- nsHTMLReflowMetrics desiredSize(PR_FALSE);
+ nsHTMLReflowMetrics desiredSize(aDesiredSize.mComputeMEW);
desiredSize.width = desiredSize.height = desiredSize.ascent = desiredSize.descent = 0;
// Reflow the child into the available space, giving it as much height as