diff --git a/mozilla/layout/forms/nsTextControlFrame.cpp b/mozilla/layout/forms/nsTextControlFrame.cpp
index fc2420cfd0d..be6fc196642 100644
--- a/mozilla/layout/forms/nsTextControlFrame.cpp
+++ b/mozilla/layout/forms/nsTextControlFrame.cpp
@@ -1490,6 +1490,14 @@ nsTextControlFrame::CalculateSizeStandard(nsIPresContext* aPresContext,
}
// Now add the extra padding on (so that small input sizes work well)
aDesiredSize.width += internalPadding;
+ } else {
+ // This is to account for the anonymous
having a 1 twip width
+ // in Full Standards mode, see BRFrame::Reflow and bug 228752.
+ nsCompatibility mode;
+ aPresContext->GetCompatibilityMode(&mode);
+ if (mode == eCompatibility_FullStandards) {
+ aDesiredSize.width += 1;
+ }
}
// Set the height equal to total number of rows (times the height of each
diff --git a/mozilla/layout/generic/nsBRFrame.cpp b/mozilla/layout/generic/nsBRFrame.cpp
index 5504769315a..4be7091b312 100644
--- a/mozilla/layout/generic/nsBRFrame.cpp
+++ b/mozilla/layout/generic/nsBRFrame.cpp
@@ -184,6 +184,8 @@ BRFrame::Reflow(nsIPresContext* aPresContext,
// code in nsLineLayout::VerticalAlignFrames that zaps minY/maxY
// if the width is zero.
// XXX This also fixes bug 10036!
+ // Warning: nsTextControlFrame::CalculateSizeStandard depends on
+ // the following line, see bug 228752.
aMetrics.width = 1;
// Update max-element-width to keep us honest
diff --git a/mozilla/layout/html/base/src/nsBRFrame.cpp b/mozilla/layout/html/base/src/nsBRFrame.cpp
index 5504769315a..4be7091b312 100644
--- a/mozilla/layout/html/base/src/nsBRFrame.cpp
+++ b/mozilla/layout/html/base/src/nsBRFrame.cpp
@@ -184,6 +184,8 @@ BRFrame::Reflow(nsIPresContext* aPresContext,
// code in nsLineLayout::VerticalAlignFrames that zaps minY/maxY
// if the width is zero.
// XXX This also fixes bug 10036!
+ // Warning: nsTextControlFrame::CalculateSizeStandard depends on
+ // the following line, see bug 228752.
aMetrics.width = 1;
// Update max-element-width to keep us honest
diff --git a/mozilla/layout/html/forms/src/nsTextControlFrame.cpp b/mozilla/layout/html/forms/src/nsTextControlFrame.cpp
index fc2420cfd0d..be6fc196642 100644
--- a/mozilla/layout/html/forms/src/nsTextControlFrame.cpp
+++ b/mozilla/layout/html/forms/src/nsTextControlFrame.cpp
@@ -1490,6 +1490,14 @@ nsTextControlFrame::CalculateSizeStandard(nsIPresContext* aPresContext,
}
// Now add the extra padding on (so that small input sizes work well)
aDesiredSize.width += internalPadding;
+ } else {
+ // This is to account for the anonymous
having a 1 twip width
+ // in Full Standards mode, see BRFrame::Reflow and bug 228752.
+ nsCompatibility mode;
+ aPresContext->GetCompatibilityMode(&mode);
+ if (mode == eCompatibility_FullStandards) {
+ aDesiredSize.width += 1;
+ }
}
// Set the height equal to total number of rows (times the height of each