author | L. David Baron <dbaron@dbaron.org> |
Sat, 20 Aug 2011 21:35:56 -0400 | |
changeset 75610 | 1d2b61ed8e44fade21ceb70a88c77ae2743e66dd |
parent 75609 | 512ce8163e8890207f5de5a4bec9fae5948bc719 |
child 75611 | b727463566a158c1696fc0c464ab96a109032f09 |
push id | 1369 |
push user | dbaron@mozilla.com |
push date | Sun, 21 Aug 2011 01:37:01 +0000 |
treeherder | mozilla-inbound@b727463566a1 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | roc |
bugs | 403524, 680505 |
milestone | 9.0a1 |
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
|
--- a/layout/generic/nsBlockFrame.cpp +++ b/layout/generic/nsBlockFrame.cpp @@ -1487,28 +1487,19 @@ nsBlockFrame::ComputeOverflowAreas(const { // Compute the overflow areas of our children // XXX_perf: This can be done incrementally. It is currently one of // the things that makes incremental reflow O(N^2). nsRect bounds(0, 0, aMetrics.width, aMetrics.height); nsOverflowAreas areas(bounds, bounds); if (!IsClippingChildren(this, aReflowState)) { - PRBool inQuirks = (PresContext()->CompatibilityMode() == eCompatibility_NavQuirks); for (line_iterator line = begin_lines(), line_end = end_lines(); line != line_end; ++line) { - - // Text-shadow overflows - if (!inQuirks && line->IsInline()) { - nsRect shadowRect = nsLayoutUtils::GetTextShadowRectsUnion( - line->GetVisualOverflowArea(), this); - areas.VisualOverflow().UnionRect(areas.VisualOverflow(), shadowRect); - } - areas.UnionWith(line->GetOverflowAreas()); } // Factor the bullet in; normally the bullet will be factored into // the line-box's overflow areas. However, if the line is a block // line then it won't; if there are no lines, it won't. So just // factor it in anyway (it can't hurt if it was already done). // XXXldb Can we just fix GetOverflowArea instead?
--- a/layout/generic/nsLineLayout.cpp +++ b/layout/generic/nsLineLayout.cpp @@ -2555,25 +2555,16 @@ nsLineLayout::RelativePositionFrames(Per // below. // At this point psd->mFrame->mBounds might be out of date since // bidi reordering can move and resize the frames. So use the frame's // rect instead of mBounds. nsRect adjustedBounds(nsPoint(0, 0), psd->mFrame->mFrame->GetSize()); overflowAreas.ScrollableOverflow().UnionRect( psd->mFrame->mOverflowAreas.ScrollableOverflow(), adjustedBounds); - - // Text-shadow overflow - if (mPresContext->CompatibilityMode() != eCompatibility_NavQuirks) { - nsRect shadowRect = nsLayoutUtils::GetTextShadowRectsUnion(adjustedBounds, - psd->mFrame->mFrame); - adjustedBounds.UnionRect(adjustedBounds, shadowRect); - } - - // Text shadow is only part of visual overflow and not scrollable overflow. overflowAreas.VisualOverflow().UnionRect( psd->mFrame->mOverflowAreas.VisualOverflow(), adjustedBounds); } else { // The minimum combined area for the frames that are direct // children of the block starts at the upper left corner of the // line and is sized to match the size of the line's bounding box // (the same size as the values returned from VerticalAlignFrames)
--- a/layout/mathml/nsMathMLContainerFrame.cpp +++ b/layout/mathml/nsMathMLContainerFrame.cpp @@ -845,25 +845,16 @@ nsMathMLContainerFrame::AttributeChanged void nsMathMLContainerFrame::GatherAndStoreOverflow(nsHTMLReflowMetrics* aMetrics) { // nsIFrame::FinishAndStoreOverflow likes the overflow area to include the // frame rectangle. aMetrics->SetOverflowAreasToDesiredBounds(); - // Text-shadow overflows. - if (PresContext()->CompatibilityMode() != eCompatibility_NavQuirks) { - nsRect frameRect(0, 0, aMetrics->width, aMetrics->height); - nsRect shadowRect = nsLayoutUtils::GetTextShadowRectsUnion(frameRect, this); - // shadows contribute only to visual overflow - nsRect& visOverflow = aMetrics->VisualOverflow(); - visOverflow.UnionRect(visOverflow, shadowRect); - } - // All non-child-frame content such as nsMathMLChars (and most child-frame // content) is included in mBoundingMetrics. nsRect boundingBox(mBoundingMetrics.leftBearing, aMetrics->ascent - mBoundingMetrics.ascent, mBoundingMetrics.rightBearing - mBoundingMetrics.leftBearing, mBoundingMetrics.ascent + mBoundingMetrics.descent); // REVIEW: Maybe this should contribute only to visual overflow