author | Robert O'Callahan <robert@ocallahan.org> |
Fri, 13 Aug 2010 22:01:58 +1200 | |
changeset 51261 | a3bcab53ea0dfca86e7f71d07013040c599a3f62 |
parent 51260 | f5d647210dec273e0dd148c3e1c6c4935aba81c5 |
child 51262 | b9bc9fa58cc0825dd4850afe059a7bc96e732ba9 |
push id | 1 |
push user | root |
push date | Tue, 26 Apr 2011 22:38:44 +0000 |
treeherder | mozilla-beta@bfdb6e623a36 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | tnikkel, dbaron |
bugs | 584282 |
milestone | 2.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
|
--- a/layout/base/nsDisplayList.cpp +++ b/layout/base/nsDisplayList.cpp @@ -803,61 +803,61 @@ nsDisplayBackground::IsFixedAndCoveringV nsRect scrollport = scrollable->GetScrollPortRect() + aBuilder->ToReferenceFrame(rootScrollFrame); return bounds.Contains(scrollport); } void nsDisplayBackground::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { - nsPoint offset = aBuilder->ToReferenceFrame(mFrame); + nsPoint offset = ToReferenceFrame(); PRUint32 flags = aBuilder->GetBackgroundPaintFlags(); nsDisplayItem* nextItem = GetAbove(); if (nextItem && nextItem->GetUnderlyingFrame() == mFrame && nextItem->GetType() == TYPE_BORDER) { flags |= nsCSSRendering::PAINTBG_WILL_PAINT_BORDER; } nsCSSRendering::PaintBackground(mFrame->PresContext(), *aCtx, mFrame, mVisibleRect, nsRect(offset, mFrame->GetSize()), flags); } nsRect nsDisplayBackground::GetBounds(nsDisplayListBuilder* aBuilder) { if (mIsThemed) - return mFrame->GetOverflowRect() + aBuilder->ToReferenceFrame(mFrame); + return mFrame->GetOverflowRect() + ToReferenceFrame(); - return nsRect(aBuilder->ToReferenceFrame(mFrame), mFrame->GetSize()); + return nsRect(ToReferenceFrame(), mFrame->GetSize()); } nsRect nsDisplayOutline::GetBounds(nsDisplayListBuilder* aBuilder) { - return mFrame->GetOverflowRect() + aBuilder->ToReferenceFrame(mFrame); + return mFrame->GetOverflowRect() + ToReferenceFrame(); } void nsDisplayOutline::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { // TODO join outlines together - nsPoint offset = aBuilder->ToReferenceFrame(mFrame); + nsPoint offset = ToReferenceFrame(); nsCSSRendering::PaintOutline(mFrame->PresContext(), *aCtx, mFrame, mVisibleRect, nsRect(offset, mFrame->GetSize()), mFrame->GetStyleContext()); } PRBool nsDisplayOutline::ComputeVisibility(nsDisplayListBuilder* aBuilder, nsRegion* aVisibleRegion) { if (!nsDisplayItem::ComputeVisibility(aBuilder, aVisibleRegion)) return PR_FALSE; const nsStyleOutline* outline = mFrame->GetStyleOutline(); - nsRect borderBox(aBuilder->ToReferenceFrame(mFrame), mFrame->GetSize()); + nsRect borderBox(ToReferenceFrame(), mFrame->GetSize()); if (borderBox.Contains(aVisibleRegion->GetBounds()) && !nsLayoutUtils::HasNonZeroCorner(outline->mOutlineRadius)) { if (outline->mOutlineOffset >= 0) { // the visible region is entirely inside the border-rect, and the outline // isn't rendered inside the border-rect, so the outline is not visible return PR_FALSE; } } @@ -865,27 +865,27 @@ nsDisplayOutline::ComputeVisibility(nsDi return PR_TRUE; } void nsDisplayCaret::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { // Note: Because we exist, we know that the caret is visible, so we don't // need to check for the caret's visibility. - mCaret->PaintCaret(aBuilder, aCtx, mFrame, aBuilder->ToReferenceFrame(mFrame)); + mCaret->PaintCaret(aBuilder, aCtx, mFrame, ToReferenceFrame()); } PRBool nsDisplayBorder::ComputeVisibility(nsDisplayListBuilder* aBuilder, nsRegion* aVisibleRegion) { if (!nsDisplayItem::ComputeVisibility(aBuilder, aVisibleRegion)) return PR_FALSE; nsRect paddingRect = mFrame->GetPaddingRect() - mFrame->GetPosition() + - aBuilder->ToReferenceFrame(mFrame); + ToReferenceFrame(); const nsStyleBorder *styleBorder; if (paddingRect.Contains(aVisibleRegion->GetBounds()) && !(styleBorder = mFrame->GetStyleBorder())->IsBorderImageLoaded() && !nsLayoutUtils::HasNonZeroCorner(styleBorder->mBorderRadius)) { // the visible region is entirely inside the content rect, and no part // of the border is rendered inside the content rect, so we are not // visible // Skip this if there's a border-image (which draws a background @@ -895,17 +895,17 @@ nsDisplayBorder::ComputeVisibility(nsDis } return PR_TRUE; } void nsDisplayBorder::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { - nsPoint offset = aBuilder->ToReferenceFrame(mFrame); + nsPoint offset = ToReferenceFrame(); nsCSSRendering::PaintBorder(mFrame->PresContext(), *aCtx, mFrame, mVisibleRect, nsRect(offset, mFrame->GetSize()), mFrame->GetStyleContext(), mFrame->GetSkipSides()); } // Given a region, compute a conservative approximation to it as a list @@ -937,46 +937,46 @@ ComputeDisjointRectangles(const nsRegion accumulated = *r; } } void nsDisplayBoxShadowOuter::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { - nsPoint offset = aBuilder->ToReferenceFrame(mFrame); + nsPoint offset = ToReferenceFrame(); nsRect borderRect = nsRect(offset, mFrame->GetSize()); nsPresContext* presContext = mFrame->PresContext(); nsAutoTArray<nsRect,10> rects; ComputeDisjointRectangles(mVisibleRegion, &rects); for (PRUint32 i = 0; i < rects.Length(); ++i) { aCtx->PushState(); aCtx->SetClipRect(rects[i], nsClipCombine_kIntersect); nsCSSRendering::PaintBoxShadowOuter(presContext, *aCtx, mFrame, borderRect, rects[i]); aCtx->PopState(); } } nsRect nsDisplayBoxShadowOuter::GetBounds(nsDisplayListBuilder* aBuilder) { - return mFrame->GetOverflowRect() + aBuilder->ToReferenceFrame(mFrame); + return mFrame->GetOverflowRect() + ToReferenceFrame(); } PRBool nsDisplayBoxShadowOuter::ComputeVisibility(nsDisplayListBuilder* aBuilder, nsRegion* aVisibleRegion) { if (!nsDisplayItem::ComputeVisibility(aBuilder, aVisibleRegion)) return PR_FALSE; // Store the actual visible region mVisibleRegion.And(*aVisibleRegion, mVisibleRect); - nsPoint origin = aBuilder->ToReferenceFrame(mFrame); + nsPoint origin = ToReferenceFrame(); nsRect visibleBounds = aVisibleRegion->GetBounds(); nsRect frameRect(origin, mFrame->GetSize()); if (!frameRect.Contains(visibleBounds)) return PR_TRUE; // the visible region is entirely inside the border-rect, and box shadows // never render within the border-rect (unless there's a border radius). nscoord twipsRadii[8]; @@ -988,17 +988,17 @@ nsDisplayBoxShadowOuter::ComputeVisibili return PR_FALSE; return !RoundedRectContainsRect(frameRect, twipsRadii, visibleBounds); } void nsDisplayBoxShadowInner::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { - nsPoint offset = aBuilder->ToReferenceFrame(mFrame); + nsPoint offset = ToReferenceFrame(); nsRect borderRect = nsRect(offset, mFrame->GetSize()); nsPresContext* presContext = mFrame->PresContext(); nsAutoTArray<nsRect,10> rects; ComputeDisjointRectangles(mVisibleRegion, &rects); for (PRUint32 i = 0; i < rects.Length(); ++i) { aCtx->PushState(); aCtx->SetClipRect(rects[i], nsClipCombine_kIntersect); @@ -1536,17 +1536,17 @@ nsDisplayTransform::GetResultingTransfor return nsLayoutUtils::ChangeMatrixBasis (newOrigin + toMozOrigin, disp->mTransform.GetThebesMatrix(bounds, aFactor)); } already_AddRefed<Layer> nsDisplayTransform::BuildLayer(nsDisplayListBuilder *aBuilder, LayerManager *aManager) { gfxMatrix newTransformMatrix = - GetResultingTransformMatrix(mFrame, aBuilder->ToReferenceFrame(mFrame), + GetResultingTransformMatrix(mFrame, ToReferenceFrame(), mFrame->PresContext()->AppUnitsPerDevPixel(), nsnull); if (newTransformMatrix.IsSingular()) return nsnull; nsRefPtr<Layer> layer = aBuilder->LayerBuilder()-> BuildContainerLayerFor(aBuilder, aManager, mFrame, this, *mStoredList.GetList()); if (!layer) @@ -1572,17 +1572,17 @@ nsDisplayTransform::GetLayerState(nsDisp PRBool nsDisplayTransform::ComputeVisibility(nsDisplayListBuilder *aBuilder, nsRegion *aVisibleRegion) { /* As we do this, we need to be sure to * untransform the visible rect, since we want everything that's painting to * think that it's painting in its original rectangular coordinate space. */ nsRegion untransformedVisible = - UntransformRect(mVisibleRect, mFrame, aBuilder->ToReferenceFrame(mFrame)); + UntransformRect(mVisibleRect, mFrame, ToReferenceFrame()); mStoredList.ComputeVisibility(aBuilder, &untransformedVisible); return PR_TRUE; } #ifdef DEBUG_HIT #include <time.h> #endif @@ -1597,17 +1597,17 @@ void nsDisplayTransform::HitTest(nsDispl * 1. Get the matrix. If it's singular, abort (clearly we didn't hit * anything). * 2. Invert the matrix. * 3. Use it to transform the rect into the correct space. * 4. Pass that rect down through to the list's version of HitTest. */ float factor = nsPresContext::AppUnitsPerCSSPixel(); gfxMatrix matrix = - GetResultingTransformMatrix(mFrame, aBuilder->ToReferenceFrame(mFrame), + GetResultingTransformMatrix(mFrame, ToReferenceFrame(), factor, nsnull); if (matrix.IsSingular()) return; /* We want to go from transformed-space to regular space. * Thus we have to invert the matrix, which normally does * the reverse operation (e.g. regular->transformed) */ @@ -1655,17 +1655,17 @@ void nsDisplayTransform::HitTest(nsDispl } /* The bounding rectangle for the object is the overflow rectangle translated * by the reference point. */ nsRect nsDisplayTransform::GetBounds(nsDisplayListBuilder *aBuilder) { - return mFrame->GetOverflowRect() + aBuilder->ToReferenceFrame(mFrame); + return mFrame->GetOverflowRect() + ToReferenceFrame(); } /* The transform is opaque iff the transform consists solely of scales and * transforms and if the underlying content is opaque. Thus if the transform * is of the form * * |a c e| * |b d f|
--- a/layout/base/nsDisplayList.h +++ b/layout/base/nsDisplayList.h @@ -496,18 +496,17 @@ public: */ inline nsIFrame* GetUnderlyingFrame() { return mFrame; } /** * The default bounds is the frame border rect. * @return a rectangle relative to aBuilder->ReferenceFrame() that * contains the area drawn by this display item */ virtual nsRect GetBounds(nsDisplayListBuilder* aBuilder) { - nsIFrame* f = GetUnderlyingFrame(); - return nsRect(aBuilder->ToReferenceFrame(f), f->GetSize()); + return nsRect(ToReferenceFrame(), GetUnderlyingFrame()->GetSize()); } /** * @return PR_TRUE if the item is definitely opaque --- i.e., paints * every pixel within its bounds opaquely */ virtual PRBool IsOpaque(nsDisplayListBuilder* aBuilder) { return PR_FALSE; } /** * If this returns true, then aColor is set to the uniform color @@ -635,16 +634,19 @@ public: * does per-item: * -- Intersects GetBounds with aVisibleRegion and puts the result * in mVisibleRect * -- Subtracts bounds from aVisibleRegion if the item is opaque */ PRBool RecomputeVisibility(nsDisplayListBuilder* aBuilder, nsRegion* aVisibleRegion); + /** + * Returns the result of aBuilder->ToReferenceFrame(GetUnderlyingFrame()) + */ const nsPoint& ToReferenceFrame() { NS_ASSERTION(mFrame, "No frame?"); return mToReferenceFrame; } protected: friend class nsDisplayList; @@ -1078,17 +1080,17 @@ public: } #ifdef NS_BUILD_REFCNT_LOGGING virtual ~nsDisplayGeneric() { MOZ_COUNT_DTOR(nsDisplayGeneric); } #endif virtual void Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { - mPaint(mFrame, aCtx, mVisibleRect, aBuilder->ToReferenceFrame(mFrame)); + mPaint(mFrame, aCtx, mVisibleRect, ToReferenceFrame()); } NS_DISPLAY_DECL_NAME(mName, mType) protected: PaintCallback mPaint; #ifdef DEBUG const char* mName; #endif Type mType; @@ -1120,17 +1122,17 @@ public: } #ifdef NS_BUILD_REFCNT_LOGGING virtual ~nsDisplayReflowCount() { MOZ_COUNT_DTOR(nsDisplayReflowCount); } #endif virtual void Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { - nsPoint pt = aBuilder->ToReferenceFrame(mFrame); + nsPoint pt = ToReferenceFrame(); nsIRenderingContext::AutoPushTranslation translate(aCtx, pt.x, pt.y); mFrame->PresContext()->PresShell()->PaintCount(mFrameName, aCtx, mFrame->PresContext(), mFrame, mColor); } NS_DISPLAY_DECL_NAME("nsDisplayReflowCount", TYPE_REFLOW_COUNT) protected: const char* mFrameName; @@ -1188,17 +1190,17 @@ public: #ifdef NS_BUILD_REFCNT_LOGGING virtual ~nsDisplayCaret() { MOZ_COUNT_DTOR(nsDisplayCaret); } #endif virtual nsRect GetBounds(nsDisplayListBuilder* aBuilder) { // The caret returns a rect in the coordinates of mFrame. - return mCaret->GetCaretRect() + aBuilder->ToReferenceFrame(mFrame); + return mCaret->GetCaretRect() + ToReferenceFrame(); } virtual void Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx); NS_DISPLAY_DECL_NAME("Caret", TYPE_CARET) protected: nsRefPtr<nsCaret> mCaret; }; /**
--- a/layout/forms/nsButtonFrameRenderer.cpp +++ b/layout/forms/nsButtonFrameRenderer.cpp @@ -109,23 +109,23 @@ public: virtual nsRect GetBounds(nsDisplayListBuilder* aBuilder); NS_DISPLAY_DECL_NAME("ButtonBoxShadowOuter", TYPE_BUTTON_BOX_SHADOW_OUTER) private: nsButtonFrameRenderer* mBFR; }; nsRect nsDisplayButtonBoxShadowOuter::GetBounds(nsDisplayListBuilder* aBuilder) { - return mFrame->GetOverflowRect() + aBuilder->ToReferenceFrame(mFrame); + return mFrame->GetOverflowRect() + ToReferenceFrame(); } void nsDisplayButtonBoxShadowOuter::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { - nsRect frameRect = nsRect(aBuilder->ToReferenceFrame(mFrame), mFrame->GetSize()); + nsRect frameRect = nsRect(ToReferenceFrame(), mFrame->GetSize()); nsRect buttonRect; mBFR->GetButtonRect(frameRect, buttonRect); nsCSSRendering::PaintBoxShadowOuter(mFrame->PresContext(), *aCtx, mFrame, buttonRect, mVisibleRect); } @@ -173,32 +173,32 @@ private: nsButtonFrameRenderer* mBFR; }; void nsDisplayButtonBorderBackground::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { NS_ASSERTION(mFrame, "No frame?"); nsPresContext* pc = mFrame->PresContext(); - nsRect r = nsRect(aBuilder->ToReferenceFrame(mFrame), mFrame->GetSize()); + nsRect r = nsRect(ToReferenceFrame(), mFrame->GetSize()); // draw the border and background inside the focus and outline borders mBFR->PaintBorderAndBackground(pc, *aCtx, mVisibleRect, r, aBuilder->GetBackgroundPaintFlags()); } void nsDisplayButtonForeground::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { nsPresContext *presContext = mFrame->PresContext(); const nsStyleDisplay *disp = mFrame->GetStyleDisplay(); if (!mFrame->IsThemed(disp) || !presContext->GetTheme()->ThemeDrawsFocusForWidget(presContext, mFrame, disp->mAppearance)) { // draw the focus and outline borders - nsRect r = nsRect(aBuilder->ToReferenceFrame(mFrame), mFrame->GetSize()); + nsRect r = nsRect(ToReferenceFrame(), mFrame->GetSize()); mBFR->PaintOutlineAndFocusBorders(presContext, *aCtx, mVisibleRect, r); } } nsresult nsButtonFrameRenderer::DisplayButton(nsDisplayListBuilder* aBuilder, nsDisplayList* aBackground, nsDisplayList* aForeground)
--- a/layout/forms/nsComboboxControlFrame.cpp +++ b/layout/forms/nsComboboxControlFrame.cpp @@ -1328,17 +1328,17 @@ public: nsIRenderingContext* aCtx); NS_DISPLAY_DECL_NAME("ComboboxFocus", TYPE_COMBOBOX_FOCUS) }; void nsDisplayComboboxFocus::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { static_cast<nsComboboxControlFrame*>(mFrame) - ->PaintFocus(*aCtx, aBuilder->ToReferenceFrame(mFrame)); + ->PaintFocus(*aCtx, ToReferenceFrame()); } NS_IMETHODIMP nsComboboxControlFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, const nsRect& aDirtyRect, const nsDisplayListSet& aLists) { #ifdef NOISY
--- a/layout/forms/nsFieldSetFrame.cpp +++ b/layout/forms/nsFieldSetFrame.cpp @@ -203,17 +203,17 @@ void nsDisplayFieldSetBorderBackground:: aOutFrames->AppendElement(mFrame); } void nsDisplayFieldSetBorderBackground::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { static_cast<nsFieldSetFrame*>(mFrame)-> - PaintBorderBackground(*aCtx, aBuilder->ToReferenceFrame(mFrame), + PaintBorderBackground(*aCtx, ToReferenceFrame(), mVisibleRect, aBuilder->GetBackgroundPaintFlags()); } NS_IMETHODIMP nsFieldSetFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, const nsRect& aDirtyRect, const nsDisplayListSet& aLists) { // Paint our background and border in a special way.
--- a/layout/generic/nsBulletFrame.cpp +++ b/layout/generic/nsBulletFrame.cpp @@ -203,17 +203,17 @@ public: nsIRenderingContext* aCtx); NS_DISPLAY_DECL_NAME("Bullet", TYPE_BULLET) }; void nsDisplayBullet::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { static_cast<nsBulletFrame*>(mFrame)-> - PaintBullet(*aCtx, aBuilder->ToReferenceFrame(mFrame), mVisibleRect); + PaintBullet(*aCtx, ToReferenceFrame(), mVisibleRect); } NS_IMETHODIMP nsBulletFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, const nsRect& aDirtyRect, const nsDisplayListSet& aLists) { if (!IsVisibleForPainting(aBuilder))
--- a/layout/generic/nsCanvasFrame.cpp +++ b/layout/generic/nsCanvasFrame.cpp @@ -249,17 +249,17 @@ nsRect nsCanvasFrame::CanvasArea() const return result; } void nsDisplayCanvasBackground::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { nsCanvasFrame* frame = static_cast<nsCanvasFrame*>(mFrame); - nsPoint offset = aBuilder->ToReferenceFrame(mFrame); + nsPoint offset = ToReferenceFrame(); nsRect bgClipRect = frame->CanvasArea() + offset; if (NS_GET_A(mExtraBackgroundColor) > 0) { aCtx->SetColor(mExtraBackgroundColor); aCtx->FillRect(bgClipRect); } nsCSSRendering::PaintBackground(mFrame->PresContext(), *aCtx, mFrame, @@ -284,24 +284,24 @@ public: virtual ~nsDisplayCanvasFocus() { MOZ_COUNT_DTOR(nsDisplayCanvasFocus); } virtual nsRect GetBounds(nsDisplayListBuilder* aBuilder) { // This is an overestimate, but that's not a problem. nsCanvasFrame* frame = static_cast<nsCanvasFrame*>(mFrame); - return frame->CanvasArea() + aBuilder->ToReferenceFrame(mFrame); + return frame->CanvasArea() + ToReferenceFrame(); } virtual void Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { nsCanvasFrame* frame = static_cast<nsCanvasFrame*>(mFrame); - frame->PaintFocus(*aCtx, aBuilder->ToReferenceFrame(mFrame)); + frame->PaintFocus(*aCtx, ToReferenceFrame()); } NS_DISPLAY_DECL_NAME("CanvasFocus", TYPE_CANVAS_FOCUS) }; NS_IMETHODIMP nsCanvasFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, const nsRect& aDirtyRect,
--- a/layout/generic/nsCanvasFrame.h +++ b/layout/generic/nsCanvasFrame.h @@ -191,17 +191,17 @@ public: "The nsDisplayBackground for a canvas frame doesn't paint " "its background color normally"); *aColor = mExtraBackgroundColor; return PR_TRUE; } virtual nsRect GetBounds(nsDisplayListBuilder* aBuilder) { nsCanvasFrame* frame = static_cast<nsCanvasFrame*>(mFrame); - return frame->CanvasArea() + aBuilder->ToReferenceFrame(mFrame); + return frame->CanvasArea() + ToReferenceFrame(); } virtual void Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx); void SetExtraBackgroundColor(nscolor aColor) { mExtraBackgroundColor = aColor;
--- a/layout/generic/nsFrameSetFrame.cpp +++ b/layout/generic/nsFrameSetFrame.cpp @@ -1638,17 +1638,17 @@ public: nsIRenderingContext* aCtx); NS_DISPLAY_DECL_NAME("FramesetBorder", TYPE_FRAMESET_BORDER) }; void nsDisplayFramesetBorder::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { static_cast<nsHTMLFramesetBorderFrame*>(mFrame)-> - PaintBorder(*aCtx, aBuilder->ToReferenceFrame(mFrame)); + PaintBorder(*aCtx, ToReferenceFrame()); } NS_IMETHODIMP nsHTMLFramesetBorderFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, const nsRect& aDirtyRect, const nsDisplayListSet& aLists) { return aLists.Content()->AppendNewToTop( @@ -1833,16 +1833,17 @@ public: virtual ~nsDisplayFramesetBlank() { MOZ_COUNT_DTOR(nsDisplayFramesetBlank); } #endif virtual void Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx); NS_DISPLAY_DECL_NAME("FramesetBlank", TYPE_FRAMESET_BLANK) }; + void nsDisplayFramesetBlank::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { nscolor white = NS_RGB(255,255,255); aCtx->SetColor(white); aCtx->FillRect(mVisibleRect); }
--- a/layout/generic/nsGfxScrollFrame.cpp +++ b/layout/generic/nsGfxScrollFrame.cpp @@ -1535,17 +1535,17 @@ InvalidateFixedBackgroundFramesFromList( continue; } nsIFrame* f = item->GetUnderlyingFrame(); if (f && item->IsVaryingRelativeToMovingFrame(aBuilder, aMovingFrame)) { if (item->IsFixedAndCoveringViewport(aBuilder)) { // FrameLayerBuilder takes care of scrolling these } else { - f->Invalidate(item->GetVisibleRect() - aBuilder->ToReferenceFrame(f)); + f->Invalidate(item->GetVisibleRect() - item->ToReferenceFrame()); } } } } static void InvalidateFixedBackgroundFrames(nsIFrame* aRootFrame, nsIFrame* aMovingFrame,
--- a/layout/generic/nsHTMLCanvasFrame.cpp +++ b/layout/generic/nsHTMLCanvasFrame.cpp @@ -80,17 +80,17 @@ public: virtual PRBool IsOpaque(nsDisplayListBuilder* aBuilder) { nsIFrame* f = GetUnderlyingFrame(); nsHTMLCanvasElement *canvas = CanvasElementFromContent(f->GetContent()); return canvas->GetIsOpaque(); } virtual nsRect GetBounds(nsDisplayListBuilder* aBuilder) { nsHTMLCanvasFrame* f = static_cast<nsHTMLCanvasFrame*>(GetUnderlyingFrame()); - return f->GetInnerArea() + aBuilder->ToReferenceFrame(f); + return f->GetInnerArea() + ToReferenceFrame(); } virtual already_AddRefed<Layer> BuildLayer(nsDisplayListBuilder* aBuilder, LayerManager* aManager) { return static_cast<nsHTMLCanvasFrame*>(mFrame)-> BuildLayer(aBuilder, aManager, this); } @@ -236,17 +236,17 @@ nsHTMLCanvasFrame::GetInnerArea() const return r; } already_AddRefed<Layer> nsHTMLCanvasFrame::BuildLayer(nsDisplayListBuilder* aBuilder, LayerManager* aManager, nsDisplayItem* aItem) { - nsRect area = GetContentRect() + aBuilder->ToReferenceFrame(GetParent()); + nsRect area = GetContentRect() - GetPosition() + aItem->ToReferenceFrame(); nsHTMLCanvasElement* element = static_cast<nsHTMLCanvasElement*>(GetContent()); nsIntSize canvasSize = GetCanvasSize(); if (canvasSize.width <= 0 || canvasSize.height <= 0 || area.IsEmpty()) return nsnull; CanvasLayer* oldLayer = static_cast<CanvasLayer*> (aBuilder->LayerBuilder()->GetLeafLayerFor(aBuilder, aManager, aItem));
--- a/layout/generic/nsHTMLContainerFrame.cpp +++ b/layout/generic/nsHTMLContainerFrame.cpp @@ -126,18 +126,17 @@ nsDisplayTextDecoration::Paint(nsDisplay nsFirstLetterFrame* letterFrame = static_cast<nsFirstLetterFrame*>(mFrame); nscoord tmp = letterFrame->GetFirstLetterBaseline(); tmp -= letterFrame->GetUsedBorderAndPadding().top; ascent = letterFrame->PresContext()->AppUnitsToGfxUnits(tmp); } else { ascent = metrics.maxAscent; } - nsPoint pt = aBuilder->ToReferenceFrame(mFrame); - + nsPoint pt = ToReferenceFrame(); nsHTMLContainerFrame* f = static_cast<nsHTMLContainerFrame*>(mFrame); if (mDecoration == NS_STYLE_TEXT_DECORATION_UNDERLINE) { gfxFloat underlineOffset = fontGroup->GetUnderlineOffset(); f->PaintTextDecorationLine(aCtx->ThebesContext(), pt, mLine, mColor, underlineOffset, ascent, metrics.underlineSize, mDecoration); } else if (mDecoration == NS_STYLE_TEXT_DECORATION_OVERLINE) { f->PaintTextDecorationLine(aCtx->ThebesContext(), pt, mLine, mColor, @@ -148,17 +147,17 @@ nsDisplayTextDecoration::Paint(nsDisplay metrics.strikeoutOffset, ascent, metrics.strikeoutSize, mDecoration); } } nsRect nsDisplayTextDecoration::GetBounds(nsDisplayListBuilder* aBuilder) { - return mFrame->GetOverflowRect() + aBuilder->ToReferenceFrame(mFrame); + return mFrame->GetOverflowRect() + ToReferenceFrame(); } class nsDisplayTextShadow : public nsDisplayItem { public: nsDisplayTextShadow(nsDisplayListBuilder* aBuilder, nsHTMLContainerFrame* aFrame, const PRUint8 aDecoration, nsLineBox* aLine) @@ -263,17 +262,17 @@ nsDisplayTextShadow::Paint(nsDisplayList } for (PRUint32 i = shadowList->Length(); i > 0; --i) { nsCSSShadowItem* shadow = shadowList->ShadowAt(i - 1); nscolor shadowColor = shadow->mHasColor ? shadow->mColor : mFrame->GetStyleColor()->mColor; - nsPoint pt = aBuilder->ToReferenceFrame(mFrame) + + nsPoint pt = ToReferenceFrame() + nsPoint(shadow->mXOffset, shadow->mYOffset); nsPoint linePt; if (mLine) { linePt = nsPoint(start + pt.x, mLine->mBounds.y + pt.y); } else { linePt = mFrame->GetContentRect().TopLeft() - mFrame->GetPosition() + pt; } @@ -320,17 +319,17 @@ nsDisplayTextShadow::Paint(nsDisplayList contextBoxBlur.DoPaint(); } } nsRect nsDisplayTextShadow::GetBounds(nsDisplayListBuilder* aBuilder) { // Shadows are always painted in the overflow rect - return mFrame->GetOverflowRect() + aBuilder->ToReferenceFrame(mFrame); + return mFrame->GetOverflowRect() + ToReferenceFrame(); } nsresult nsHTMLContainerFrame::DisplayTextDecorations(nsDisplayListBuilder* aBuilder, nsDisplayList* aBelowTextDecorations, nsDisplayList* aAboveTextDecorations, nsLineBox* aLine) {
--- a/layout/generic/nsImageFrame.cpp +++ b/layout/generic/nsImageFrame.cpp @@ -1146,17 +1146,17 @@ public: private: nsCOMPtr<imgIContainer> mImage; }; void nsDisplayImage::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { static_cast<nsImageFrame*>(mFrame)-> - PaintImage(*aCtx, aBuilder->ToReferenceFrame(mFrame), mVisibleRect, mImage, + PaintImage(*aCtx, ToReferenceFrame(), mVisibleRect, mImage, aBuilder->ShouldSyncDecodeImages() ? (PRUint32) imgIContainer::FLAG_SYNC_DECODE : (PRUint32) imgIContainer::FLAG_NONE); } void nsImageFrame::PaintImage(nsIRenderingContext& aRenderingContext, nsPoint aPt, const nsRect& aDirtyRect, imgIContainer* aImage,
--- a/layout/generic/nsObjectFrame.cpp +++ b/layout/generic/nsObjectFrame.cpp @@ -1167,18 +1167,18 @@ nsObjectFrame::PaintPrintPlugin(nsIFrame nsIRenderingContext::AutoPushTranslation translate(aCtx, pt.x, pt.y); // FIXME - Bug 385435: Doesn't aDirtyRect need translating too? static_cast<nsObjectFrame*>(aFrame)->PrintPlugin(*aCtx, aDirtyRect); } nsRect nsDisplayPlugin::GetBounds(nsDisplayListBuilder* aBuilder) { - return mFrame->GetContentRect() + - aBuilder->ToReferenceFrame(mFrame->GetParent()); + return mFrame->GetContentRect() - mFrame->GetPosition() + + ToReferenceFrame(); } void nsDisplayPlugin::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { nsObjectFrame* f = static_cast<nsObjectFrame*>(mFrame); f->PaintPlugin(*aCtx, mVisibleRect, GetBounds(aBuilder)); @@ -1200,17 +1200,17 @@ nsDisplayPlugin::IsOpaque(nsDisplayListB } void nsDisplayPlugin::GetWidgetConfiguration(nsDisplayListBuilder* aBuilder, nsTArray<nsIWidget::Configuration>* aConfigurations) { nsObjectFrame* f = static_cast<nsObjectFrame*>(mFrame); nsPoint pluginOrigin = mFrame->GetUsedBorderAndPadding().TopLeft() + - aBuilder->ToReferenceFrame(mFrame); + ToReferenceFrame(); f->ComputeWidgetGeometry(mVisibleRegion, pluginOrigin, aConfigurations); } void nsObjectFrame::ComputeWidgetGeometry(const nsRegion& aRegion, const nsPoint& aPluginOrigin, nsTArray<nsIWidget::Configuration>* aConfigurations) {
--- a/layout/generic/nsTextFrameThebes.cpp +++ b/layout/generic/nsTextFrameThebes.cpp @@ -3933,21 +3933,21 @@ public: } #ifdef NS_BUILD_REFCNT_LOGGING virtual ~nsDisplayText() { MOZ_COUNT_DTOR(nsDisplayText); } #endif virtual nsRect GetBounds(nsDisplayListBuilder* aBuilder) { - return mFrame->GetOverflowRect() + aBuilder->ToReferenceFrame(mFrame); + return mFrame->GetOverflowRect() + ToReferenceFrame(); } virtual void HitTest(nsDisplayListBuilder* aBuilder, const nsRect& aRect, HitTestState* aState, nsTArray<nsIFrame*> *aOutFrames) { - if (nsRect(aBuilder->ToReferenceFrame(mFrame), mFrame->GetSize()).Intersects(aRect)) { + if (nsRect(ToReferenceFrame(), mFrame->GetSize()).Intersects(aRect)) { aOutFrames->AppendElement(mFrame); } } virtual void Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx); NS_DISPLAY_DECL_NAME("Text", TYPE_TEXT) }; @@ -3956,17 +3956,17 @@ nsDisplayText::Paint(nsDisplayListBuilde nsIRenderingContext* aCtx) { // Add 1 pixel of dirty area around mVisibleRect to allow us to paint // antialiased pixels beyond the measured text extents. // This is temporary until we do this in the actual calculation of text extents. nsRect extraVisible = mVisibleRect; nscoord appUnitsPerDevPixel = mFrame->PresContext()->AppUnitsPerDevPixel(); extraVisible.Inflate(appUnitsPerDevPixel, appUnitsPerDevPixel); static_cast<nsTextFrame*>(mFrame)-> - PaintText(aCtx, aBuilder->ToReferenceFrame(mFrame), extraVisible); + PaintText(aCtx, ToReferenceFrame(), extraVisible); } NS_IMETHODIMP nsTextFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, const nsRect& aDirtyRect, const nsDisplayListSet& aLists) { if (!IsVisibleForPainting(aBuilder))
--- a/layout/generic/nsVideoFrame.cpp +++ b/layout/generic/nsVideoFrame.cpp @@ -175,17 +175,17 @@ CorrectForAspectRatio(const gfxRect& aRe return gfxRect(aRect.TopLeft() + topLeft, scaledRatio); } already_AddRefed<Layer> nsVideoFrame::BuildLayer(nsDisplayListBuilder* aBuilder, LayerManager* aManager, nsDisplayItem* aItem) { - nsRect area = GetContentRect() + aBuilder->ToReferenceFrame(GetParent()); + nsRect area = GetContentRect() - GetPosition() + aItem->ToReferenceFrame(); nsHTMLVideoElement* element = static_cast<nsHTMLVideoElement*>(GetContent()); nsIntSize videoSize = element->GetVideoSize(nsIntSize(0, 0)); if (videoSize.width <= 0 || videoSize.height <= 0 || area.IsEmpty()) return nsnull; nsRefPtr<ImageContainer> container = element->GetImageContainer(); // If we have a container with a different layer manager, try to hand // off the container to the new one. @@ -375,17 +375,17 @@ public: // we might have an opaque video frame when IsOpaque is called, but // when we come to paint, the video frame is transparent or has gone // away completely (e.g. because of a decoder error). The problem would // be especially acute if we have off-main-thread rendering. virtual nsRect GetBounds(nsDisplayListBuilder* aBuilder) { nsIFrame* f = GetUnderlyingFrame(); - return f->GetContentRect() + aBuilder->ToReferenceFrame(f->GetParent()); + return f->GetContentRect() - f->GetPosition() + ToReferenceFrame(); } virtual already_AddRefed<Layer> BuildLayer(nsDisplayListBuilder* aBuilder, LayerManager* aManager) { return static_cast<nsVideoFrame*>(mFrame)->BuildLayer(aBuilder, aManager, this); }
--- a/layout/mathml/nsMathMLChar.cpp +++ b/layout/mathml/nsMathMLChar.cpp @@ -1942,17 +1942,17 @@ private: void nsDisplayMathMLSelectionRect::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { // get color to use for selection from the look&feel object nscolor bgColor = NS_RGB(0, 0, 0); mFrame->PresContext()->LookAndFeel()-> GetColor(nsILookAndFeel::eColor_TextSelectBackground, bgColor); aCtx->SetColor(bgColor); - aCtx->FillRect(mRect + aBuilder->ToReferenceFrame(mFrame)); + aCtx->FillRect(mRect + ToReferenceFrame()); } class nsDisplayMathMLCharBackground : public nsDisplayItem { public: nsDisplayMathMLCharBackground(nsDisplayListBuilder* aBuilder, nsIFrame* aFrame, const nsRect& aRect, nsStyleContext* aStyleContext) : nsDisplayItem(aBuilder, aFrame), mStyleContext(aStyleContext), mRect(aRect) { @@ -1971,17 +1971,17 @@ private: nsStyleContext* mStyleContext; nsRect mRect; }; void nsDisplayMathMLCharBackground::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { const nsStyleBorder* border = mStyleContext->GetStyleBorder(); - nsRect rect(mRect + aBuilder->ToReferenceFrame(mFrame)); + nsRect rect(mRect + ToReferenceFrame()); nsCSSRendering::PaintBackgroundWithSC(mFrame->PresContext(), *aCtx, mFrame, mVisibleRect, rect, mStyleContext, *border, aBuilder->GetBackgroundPaintFlags()); } class nsDisplayMathMLCharForeground : public nsDisplayItem { public: @@ -1995,29 +1995,28 @@ public: virtual ~nsDisplayMathMLCharForeground() { MOZ_COUNT_DTOR(nsDisplayMathMLCharForeground); } #endif virtual nsRect GetBounds(nsDisplayListBuilder* aBuilder) { nsRect rect; mChar->GetRect(rect); - nsPoint offset = - aBuilder->ToReferenceFrame(mFrame) + rect.TopLeft(); + nsPoint offset = ToReferenceFrame() + rect.TopLeft(); nsBoundingMetrics bm; mChar->GetBoundingMetrics(bm); return nsRect(offset.x + bm.leftBearing, offset.y, bm.rightBearing - bm.leftBearing, bm.ascent + bm.descent); } virtual void Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { mChar->PaintForeground(mFrame->PresContext(), *aCtx, - aBuilder->ToReferenceFrame(mFrame), mIsSelected); + ToReferenceFrame(), mIsSelected); } NS_DISPLAY_DECL_NAME("MathMLCharForeground", TYPE_MATHML_CHAR_FOREGROUND) private: nsMathMLChar* mChar; PRPackedBool mIsSelected; }; @@ -2046,17 +2045,17 @@ private: void nsDisplayMathMLCharDebug::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { // for visual debug PRIntn skipSides = 0; nsPresContext* presContext = mFrame->PresContext(); nsStyleContext* styleContext = mFrame->GetStyleContext(); - nsRect rect = mRect + aBuilder->ToReferenceFrame(mFrame); + nsRect rect = mRect + ToReferenceFrame(); nsCSSRendering::PaintBorder(presContext, *aCtx, mFrame, mVisibleRect, rect, styleContext, skipSides); nsCSSRendering::PaintOutline(presContext, *aCtx, mFrame, mVisibleRect, rect, styleContext); } #endif
--- a/layout/mathml/nsMathMLContainerFrame.cpp +++ b/layout/mathml/nsMathMLContainerFrame.cpp @@ -140,17 +140,17 @@ public: }; void nsDisplayMathMLError::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { // Set color and font ... nsLayoutUtils::SetFontFromStyle(aCtx, mFrame->GetStyleContext()); - nsPoint pt = aBuilder->ToReferenceFrame(mFrame); + nsPoint pt = ToReferenceFrame(); aCtx->SetColor(NS_RGB(255,0,0)); aCtx->FillRect(nsRect(pt, mFrame->GetSize())); aCtx->SetColor(NS_RGB(255,255,255)); nscoord ascent; nsCOMPtr<nsIFontMetrics> fm; aCtx->GetFontMetrics(*getter_AddRefs(fm)); fm->GetMaxAscent(ascent);
--- a/layout/mathml/nsMathMLFrame.cpp +++ b/layout/mathml/nsMathMLFrame.cpp @@ -471,17 +471,17 @@ public: private: nsRect mRect; }; void nsDisplayMathMLBoundingMetrics::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { aCtx->SetColor(NS_RGB(0,0,255)); - aCtx->DrawRect(mRect + aBuilder->ToReferenceFrame(mFrame)); + aCtx->DrawRect(mRect + ToReferenceFrame()); } nsresult nsMathMLFrame::DisplayBoundingMetrics(nsDisplayListBuilder* aBuilder, nsIFrame* aFrame, const nsPoint& aPt, const nsBoundingMetrics& aMetrics, const nsDisplayListSet& aLists) { if (!NS_MATHML_PAINT_BOUNDING_METRICS(mPresentationData.flags)) @@ -517,17 +517,17 @@ private: nsRect mRect; }; void nsDisplayMathMLBar::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { // paint the bar with the current text color aCtx->SetColor(mFrame->GetStyleColor()->mColor); - aCtx->FillRect(mRect + aBuilder->ToReferenceFrame(mFrame)); + aCtx->FillRect(mRect + ToReferenceFrame()); } nsresult nsMathMLFrame::DisplayBar(nsDisplayListBuilder* aBuilder, nsIFrame* aFrame, const nsRect& aRect, const nsDisplayListSet& aLists) { if (!aFrame->GetStyleVisibility()->IsVisible() || aRect.IsEmpty()) return NS_OK;
--- a/layout/mathml/nsMathMLmencloseFrame.cpp +++ b/layout/mathml/nsMathMLmencloseFrame.cpp @@ -762,18 +762,17 @@ private: nsMencloseNotation mType; }; void nsDisplayNotation::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { // get the gfxRect nsPresContext* presContext = mFrame->PresContext(); - gfxRect rect = presContext-> - AppUnitsToGfxUnits(mRect + aBuilder->ToReferenceFrame(mFrame)); + gfxRect rect = presContext->AppUnitsToGfxUnits(mRect + ToReferenceFrame()); // paint the frame with the current text color aCtx->SetColor(mFrame->GetStyleColor()->mColor); // change line width to mThickness gfxContext *gfxCtx = aCtx->ThebesContext(); gfxFloat currentLineWidth = gfxCtx->CurrentLineWidth(); gfxFloat e = presContext->AppUnitsToGfxUnits(mThickness);
--- a/layout/mathml/nsMathMLmfracFrame.cpp +++ b/layout/mathml/nsMathMLmfracFrame.cpp @@ -605,18 +605,17 @@ private: nscoord mThickness; }; void nsDisplayMathMLSlash::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { // get the gfxRect nsPresContext* presContext = mFrame->PresContext(); - gfxRect rect = presContext-> - AppUnitsToGfxUnits(mRect + aBuilder->ToReferenceFrame(mFrame)); + gfxRect rect = presContext->AppUnitsToGfxUnits(mRect + ToReferenceFrame()); // paint with the current text color aCtx->SetColor(mFrame->GetStyleColor()->mColor); // draw the slash as a parallelogram gfxContext *gfxCtx = aCtx->ThebesContext(); gfxSize delta = gfxSize(presContext->AppUnitsToGfxUnits(mThickness), 0); gfxCtx->NewPath();
--- a/layout/svg/base/src/nsSVGOuterSVGFrame.cpp +++ b/layout/svg/base/src/nsSVGOuterSVGFrame.cpp @@ -438,17 +438,17 @@ public: NS_DISPLAY_DECL_NAME("SVGEventReceiver", TYPE_SVG_EVENT_RECEIVER) }; void nsDisplaySVG::HitTest(nsDisplayListBuilder* aBuilder, const nsRect& aRect, HitTestState* aState, nsTArray<nsIFrame*> *aOutFrames) { nsSVGOuterSVGFrame *outerSVGFrame = static_cast<nsSVGOuterSVGFrame*>(mFrame); - nsRect rectAtOrigin = aRect - aBuilder->ToReferenceFrame(mFrame); + nsRect rectAtOrigin = aRect - ToReferenceFrame(); nsRect thisRect(nsPoint(0,0), outerSVGFrame->GetSize()); if (!thisRect.Intersects(rectAtOrigin)) return; nsPoint rectCenter(rectAtOrigin.x + rectAtOrigin.width / 2, rectAtOrigin.y + rectAtOrigin.height / 2); nsIFrame* frame = nsSVGUtils::HitTestChildren( @@ -459,17 +459,17 @@ nsDisplaySVG::HitTest(nsDisplayListBuild } } void nsDisplaySVG::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { static_cast<nsSVGOuterSVGFrame*>(mFrame)-> - Paint(*aCtx, mVisibleRect, aBuilder->ToReferenceFrame(mFrame)); + Paint(*aCtx, mVisibleRect, ToReferenceFrame()); } // helper static inline PRBool DependsOnIntrinsicSize(const nsIFrame* aEmbeddingFrame) { const nsStylePosition *pos = aEmbeddingFrame->GetStylePosition(); const nsStyleCoord &width = pos->mWidth;
--- a/layout/tables/nsTableCellFrame.cpp +++ b/layout/tables/nsTableCellFrame.cpp @@ -406,17 +406,17 @@ public: NS_DISPLAY_DECL_NAME("TableCellBackground", TYPE_TABLE_CELL_BACKGROUND) }; void nsDisplayTableCellBackground::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { static_cast<nsTableCellFrame*>(mFrame)-> - PaintBackground(*aCtx, mVisibleRect, aBuilder->ToReferenceFrame(mFrame), + PaintBackground(*aCtx, mVisibleRect, ToReferenceFrame(), aBuilder->GetBackgroundPaintFlags()); } nsRect nsDisplayTableCellBackground::GetBounds(nsDisplayListBuilder* aBuilder) { // revert from nsDisplayTableItem's implementation ... cell backgrounds // don't overflow the cell
--- a/layout/tables/nsTableFrame.cpp +++ b/layout/tables/nsTableFrame.cpp @@ -1085,17 +1085,17 @@ nsTableFrame::GetAdditionalChildListName if (aIndex == NS_TABLE_FRAME_OVERFLOW_LIST_INDEX) { return nsGkAtoms::overflowList; } return nsnull; } nsRect nsDisplayTableItem::GetBounds(nsDisplayListBuilder* aBuilder) { - return mFrame->GetOverflowRect() + aBuilder->ToReferenceFrame(mFrame); + return mFrame->GetOverflowRect() + ToReferenceFrame(); } PRBool nsDisplayTableItem::IsVaryingRelativeToMovingFrame(nsDisplayListBuilder* aBuilder, nsIFrame* aFrame) { if (!mPartHasFixedBackground) return PR_FALSE; @@ -1138,17 +1138,17 @@ public: }; void nsDisplayTableBorderBackground::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { static_cast<nsTableFrame*>(mFrame)-> PaintTableBorderBackground(*aCtx, mVisibleRect, - aBuilder->ToReferenceFrame(mFrame), + ToReferenceFrame(), aBuilder->GetBackgroundPaintFlags()); } static PRInt32 GetTablePartRank(nsDisplayItem* aItem) { nsIAtom* type = aItem->GetUnderlyingFrame()->GetType(); if (type == nsGkAtoms::tableFrame) return 0;
--- a/layout/tables/nsTableRowFrame.cpp +++ b/layout/tables/nsTableRowFrame.cpp @@ -593,21 +593,20 @@ public: NS_DISPLAY_DECL_NAME("TableRowBackground", TYPE_TABLE_ROW_BACKGROUND) }; void nsDisplayTableRowBackground::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { nsTableFrame* tableFrame = nsTableFrame::GetTableFrame(mFrame); - nsPoint pt = aBuilder->ToReferenceFrame(mFrame); TableBackgroundPainter painter(tableFrame, TableBackgroundPainter::eOrigin_TableRow, mFrame->PresContext(), *aCtx, - mVisibleRect, pt, + mVisibleRect, ToReferenceFrame(), aBuilder->GetBackgroundPaintFlags()); painter.PaintRow(static_cast<nsTableRowFrame*>(mFrame)); } NS_IMETHODIMP nsTableRowFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, const nsRect& aDirtyRect, const nsDisplayListSet& aLists)
--- a/layout/tables/nsTableRowGroupFrame.cpp +++ b/layout/tables/nsTableRowGroupFrame.cpp @@ -183,21 +183,20 @@ public: NS_DISPLAY_DECL_NAME("TableRowGroupBackground", TYPE_TABLE_ROW_GROUP_BACKGROUND) }; void nsDisplayTableRowGroupBackground::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { nsTableFrame* tableFrame = nsTableFrame::GetTableFrame(mFrame); - nsPoint pt = aBuilder->ToReferenceFrame(mFrame); TableBackgroundPainter painter(tableFrame, TableBackgroundPainter::eOrigin_TableRowGroup, mFrame->PresContext(), *aCtx, - mVisibleRect, pt, + mVisibleRect, ToReferenceFrame(), aBuilder->GetBackgroundPaintFlags()); painter.PaintRowGroup(static_cast<nsTableRowGroupFrame*>(mFrame)); } // Handle the child-traversal part of DisplayGenericTablePart static nsresult DisplayRows(nsDisplayListBuilder* aBuilder, nsFrame* aFrame, const nsRect& aDirtyRect, const nsDisplayListSet& aLists)
--- a/layout/xul/base/src/nsBoxFrame.cpp +++ b/layout/xul/base/src/nsBoxFrame.cpp @@ -1273,30 +1273,30 @@ public: MOZ_COUNT_DTOR(nsDisplayXULDebug); } #endif virtual void HitTest(nsDisplayListBuilder* aBuilder, nsRect aRect, HitTestState* aState, nsTArray<nsIFrame*> *aOutFrames) { nsPoint rectCenter(aRect.x + aRect.width / 2, aRect.y + aRect.height / 2); static_cast<nsBoxFrame*>(mFrame)-> - DisplayDebugInfoFor(this, rectCenter - aBuilder->ToReferenceFrame(mFrame)); + DisplayDebugInfoFor(this, rectCenter - ToReferenceFrame()); aOutFrames->AppendElement(this); } virtual void Paint(nsDisplayListBuilder* aBuilder nsIRenderingContext* aCtx); NS_DISPLAY_DECL_NAME("XULDebug", TYPE_XUL_DEBUG) }; void nsDisplayXULDebug::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { static_cast<nsBoxFrame*>(mFrame)-> - PaintXULDebugOverlay(*aCtx, aBuilder->ToReferenceFrame(mFrame)); + PaintXULDebugOverlay(*aCtx, ToReferenceFrame()); } static void PaintXULDebugBackground(nsIFrame* aFrame, nsIRenderingContext* aCtx, const nsRect& aDirtyRect, nsPoint aPt) { static_cast<nsBoxFrame*>(aFrame)->PaintXULDebugBackground(*aCtx, aPt); } @@ -1313,17 +1313,17 @@ nsBoxFrame::BuildDisplayList(nsDisplayLi #ifdef DEBUG_LAYOUT // REVIEW: From GetFrameForPoint if (mState & NS_STATE_CURRENTLY_IN_DEBUG) { rv = aLists.BorderBackground()->AppendNewToTop(new (aBuilder) nsDisplayGeneric(aBuilder, this, PaintXULDebugBackground, "XULDebugBackground")); NS_ENSURE_SUCCESS(rv, rv); rv = aLists.Outlines()->AppendNewToTop(new (aBuilder) - nsDisplayXULDebug(Builder this)); + nsDisplayXULDebug(aBuilder, this)); NS_ENSURE_SUCCESS(rv, rv); } #endif rv = BuildDisplayListForChildren(aBuilder, aDirtyRect, aLists); NS_ENSURE_SUCCESS(rv, rv); // see if we have to draw a selection frame around this container
--- a/layout/xul/base/src/nsGroupBoxFrame.cpp +++ b/layout/xul/base/src/nsGroupBoxFrame.cpp @@ -127,18 +127,17 @@ public: NS_DISPLAY_DECL_NAME("XULGroupBackground", TYPE_XUL_GROUP_BACKGROUND) }; void nsDisplayXULGroupBackground::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { static_cast<nsGroupBoxFrame*>(mFrame)-> - PaintBorderBackground(*aCtx, aBuilder->ToReferenceFrame(mFrame), - mVisibleRect); + PaintBorderBackground(*aCtx, ToReferenceFrame(), mVisibleRect); } NS_IMETHODIMP nsGroupBoxFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, const nsRect& aDirtyRect, const nsDisplayListSet& aLists) { // Paint our background and border
--- a/layout/xul/base/src/nsImageBoxFrame.cpp +++ b/layout/xul/base/src/nsImageBoxFrame.cpp @@ -328,17 +328,17 @@ public: nsIRenderingContext* aCtx); NS_DISPLAY_DECL_NAME("XULImage", TYPE_XUL_IMAGE) }; void nsDisplayXULImage::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { static_cast<nsImageBoxFrame*>(mFrame)-> - PaintImage(*aCtx, mVisibleRect, aBuilder->ToReferenceFrame(mFrame), + PaintImage(*aCtx, mVisibleRect, ToReferenceFrame(), aBuilder->ShouldSyncDecodeImages() ? (PRUint32) imgIContainer::FLAG_SYNC_DECODE : (PRUint32) imgIContainer::FLAG_NONE); } NS_IMETHODIMP nsImageBoxFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, const nsRect& aDirtyRect,
--- a/layout/xul/base/src/nsTextBoxFrame.cpp +++ b/layout/xul/base/src/nsTextBoxFrame.cpp @@ -348,22 +348,22 @@ public: NS_DISPLAY_DECL_NAME("XULTextBox", TYPE_XUL_TEXT_BOX) }; void nsDisplayXULTextBox::Paint(nsDisplayListBuilder* aBuilder, nsIRenderingContext* aCtx) { static_cast<nsTextBoxFrame*>(mFrame)-> - PaintTitle(*aCtx, mVisibleRect, aBuilder->ToReferenceFrame(mFrame)); + PaintTitle(*aCtx, mVisibleRect, ToReferenceFrame()); } nsRect nsDisplayXULTextBox::GetBounds(nsDisplayListBuilder* aBuilder) { - return mFrame->GetOverflowRect() + aBuilder->ToReferenceFrame(mFrame); + return mFrame->GetOverflowRect() + ToReferenceFrame(); } NS_IMETHODIMP nsTextBoxFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, const nsRect& aDirtyRect, const nsDisplayListSet& aLists) { if (!IsVisibleForPainting(aBuilder))
--- a/layout/xul/base/src/tree/src/nsTreeColFrame.cpp +++ b/layout/xul/base/src/tree/src/nsTreeColFrame.cpp @@ -105,17 +105,17 @@ public: HitTestState* aState, nsTArray<nsIFrame*> *aOutFrames); NS_DISPLAY_DECL_NAME("XULTreeColSplitterTarget", TYPE_XUL_TREE_COL_SPLITTER_TARGET) }; void nsDisplayXULTreeColSplitterTarget::HitTest(nsDisplayListBuilder* aBuilder, const nsRect& aRect, HitTestState* aState, nsTArray<nsIFrame*> *aOutFrames) { - nsRect rect = aRect - aBuilder->ToReferenceFrame(mFrame); + nsRect rect = aRect - ToReferenceFrame(); // If we are in either in the first 4 pixels or the last 4 pixels, we're going to // do something really strange. Check for an adjacent splitter. PRBool left = PR_FALSE; PRBool right = PR_FALSE; if (mFrame->GetSize().width - nsPresContext::CSSPixelsToAppUnits(4) <= rect.XMost()) { right = PR_TRUE; } else if (nsPresContext::CSSPixelsToAppUnits(4) > rect.x) { left = PR_TRUE;