| Index: third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp
|
| diff --git a/third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp b/third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp
|
| index cb498b86dc1bd48dfd61d72fc629d58e86486696..0554155f95e67b9975b0661782897c85e847cd9a 100644
|
| --- a/third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp
|
| +++ b/third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp
|
| @@ -46,7 +46,7 @@ void InlineFlowBoxPainter::paint(const PaintInfo& paintInfo, const LayoutPoint&
|
| // Paint our children.
|
| PaintInfo childInfo(paintInfo);
|
| for (InlineBox* curr = m_inlineFlowBox.firstChild(); curr; curr = curr->nextOnLine()) {
|
| - if (curr->lineLayoutItem().isText() || !curr->boxModelObject().hasSelfPaintingLayer())
|
| + if (curr->getLineLayoutItem().isText() || !curr->boxModelObject().hasSelfPaintingLayer())
|
| curr->paint(childInfo, paintOffset, lineTop, lineBottom);
|
| }
|
| }
|
| @@ -65,9 +65,9 @@ void InlineFlowBoxPainter::paintFillLayer(const PaintInfo& paintInfo, const Colo
|
| LayoutBoxModelObject* boxModel = toLayoutBoxModelObject(LineLayoutAPIShim::layoutObjectFrom(m_inlineFlowBox.boxModelObject()));
|
| StyleImage* img = fillLayer.image();
|
| bool hasFillImage = img && img->canRender();
|
| - if ((!hasFillImage && !m_inlineFlowBox.lineLayoutItem().style()->hasBorderRadius()) || (!m_inlineFlowBox.prevLineBox() && !m_inlineFlowBox.nextLineBox()) || !m_inlineFlowBox.parent()) {
|
| + if ((!hasFillImage && !m_inlineFlowBox.getLineLayoutItem().style()->hasBorderRadius()) || (!m_inlineFlowBox.prevLineBox() && !m_inlineFlowBox.nextLineBox()) || !m_inlineFlowBox.parent()) {
|
| BoxPainter::paintFillLayer(*boxModel, paintInfo, c, fillLayer, rect, BackgroundBleedNone, &m_inlineFlowBox, rect.size(), op);
|
| - } else if (m_inlineFlowBox.lineLayoutItem().style()->boxDecorationBreak() == DCLONE) {
|
| + } else if (m_inlineFlowBox.getLineLayoutItem().style()->boxDecorationBreak() == DCLONE) {
|
| GraphicsContextStateSaver stateSaver(paintInfo.context);
|
| paintInfo.context.clip(pixelSnappedIntRect(rect));
|
| BoxPainter::paintFillLayer(*boxModel, paintInfo, c, fillLayer, rect, BackgroundBleedNone, &m_inlineFlowBox, rect.size(), op);
|
| @@ -75,7 +75,7 @@ void InlineFlowBoxPainter::paintFillLayer(const PaintInfo& paintInfo, const Colo
|
| // We have a fill image that spans multiple lines.
|
| // FIXME: frameSize ought to be the same as rect.size().
|
| LayoutSize frameSize(m_inlineFlowBox.width(), m_inlineFlowBox.height());
|
| - LayoutRect imageStripPaintRect = paintRectForImageStrip(rect.location(), frameSize, m_inlineFlowBox.lineLayoutItem().style()->direction());
|
| + LayoutRect imageStripPaintRect = paintRectForImageStrip(rect.location(), frameSize, m_inlineFlowBox.getLineLayoutItem().style()->direction());
|
| GraphicsContextStateSaver stateSaver(paintInfo.context);
|
| // TODO(chrishtr): this should likely be pixel-snapped.
|
| paintInfo.context.clip(pixelSnappedIntRect(rect));
|
| @@ -97,7 +97,7 @@ void InlineFlowBoxPainter::paintBoxShadow(const PaintInfo& info, const ComputedS
|
| static LayoutRect clipRectForNinePieceImageStrip(const InlineFlowBox& box, const NinePieceImage& image, const LayoutRect& paintRect)
|
| {
|
| LayoutRect clipRect(paintRect);
|
| - const ComputedStyle& style = box.lineLayoutItem().styleRef();
|
| + const ComputedStyle& style = box.getLineLayoutItem().styleRef();
|
| LayoutRectOutsets outsets = style.imageOutsets(image);
|
| if (box.isHorizontal()) {
|
| clipRect.setY(paintRect.y() - outsets.top());
|
| @@ -155,8 +155,8 @@ LayoutRect InlineFlowBoxPainter::paintRectForImageStrip(const LayoutPoint& paint
|
| InlineFlowBoxPainter::BorderPaintingType InlineFlowBoxPainter::getBorderPaintType(const LayoutRect& adjustedFrameRect, IntRect& adjustedClipRect) const
|
| {
|
| adjustedClipRect = pixelSnappedIntRect(adjustedFrameRect);
|
| - if (m_inlineFlowBox.parent() && m_inlineFlowBox.lineLayoutItem().style()->hasBorderDecoration()) {
|
| - const NinePieceImage& borderImage = m_inlineFlowBox.lineLayoutItem().style()->borderImage();
|
| + if (m_inlineFlowBox.parent() && m_inlineFlowBox.getLineLayoutItem().style()->hasBorderDecoration()) {
|
| + const NinePieceImage& borderImage = m_inlineFlowBox.getLineLayoutItem().style()->borderImage();
|
| StyleImage* borderImageSource = borderImage.image();
|
| bool hasBorderImage = borderImageSource && borderImageSource->canRender();
|
| if (hasBorderImage && !borderImageSource->isLoaded())
|
| @@ -177,18 +177,18 @@ InlineFlowBoxPainter::BorderPaintingType InlineFlowBoxPainter::getBorderPaintTyp
|
| void InlineFlowBoxPainter::paintBoxDecorationBackground(const PaintInfo& paintInfo, const LayoutPoint& paintOffset, const LayoutRect& cullRect)
|
| {
|
| ASSERT(paintInfo.phase == PaintPhaseForeground);
|
| - if (m_inlineFlowBox.lineLayoutItem().style()->visibility() != VISIBLE)
|
| + if (m_inlineFlowBox.getLineLayoutItem().style()->visibility() != VISIBLE)
|
| return;
|
|
|
| // You can use p::first-line to specify a background. If so, the root line boxes for
|
| // a line may actually have to paint a background.
|
| - LayoutObject* inlineFlowBoxLayoutObject = LineLayoutAPIShim::layoutObjectFrom(m_inlineFlowBox.lineLayoutItem());
|
| - const ComputedStyle* styleToUse = m_inlineFlowBox.lineLayoutItem().style(m_inlineFlowBox.isFirstLineStyle());
|
| + LayoutObject* inlineFlowBoxLayoutObject = LineLayoutAPIShim::layoutObjectFrom(m_inlineFlowBox.getLineLayoutItem());
|
| + const ComputedStyle* styleToUse = m_inlineFlowBox.getLineLayoutItem().style(m_inlineFlowBox.isFirstLineStyle());
|
| bool shouldPaintBoxDecorationBackground;
|
| if (m_inlineFlowBox.parent())
|
| shouldPaintBoxDecorationBackground = inlineFlowBoxLayoutObject->hasBoxDecorationBackground();
|
| else
|
| - shouldPaintBoxDecorationBackground = m_inlineFlowBox.isFirstLineStyle() && styleToUse != m_inlineFlowBox.lineLayoutItem().style();
|
| + shouldPaintBoxDecorationBackground = m_inlineFlowBox.isFirstLineStyle() && styleToUse != m_inlineFlowBox.getLineLayoutItem().style();
|
|
|
| if (!shouldPaintBoxDecorationBackground)
|
| return;
|
| @@ -222,7 +222,7 @@ void InlineFlowBoxPainter::paintBoxDecorationBackground(const PaintInfo& paintIn
|
| case DontPaintBorders:
|
| break;
|
| case PaintBordersWithoutClip:
|
| - BoxPainter::paintBorder(*toLayoutBoxModelObject(LineLayoutAPIShim::layoutObjectFrom(m_inlineFlowBox.boxModelObject())), paintInfo, adjustedFrameRect, m_inlineFlowBox.lineLayoutItem().styleRef(m_inlineFlowBox.isFirstLineStyle()), BackgroundBleedNone, m_inlineFlowBox.includeLogicalLeftEdge(), m_inlineFlowBox.includeLogicalRightEdge());
|
| + BoxPainter::paintBorder(*toLayoutBoxModelObject(LineLayoutAPIShim::layoutObjectFrom(m_inlineFlowBox.boxModelObject())), paintInfo, adjustedFrameRect, m_inlineFlowBox.getLineLayoutItem().styleRef(m_inlineFlowBox.isFirstLineStyle()), BackgroundBleedNone, m_inlineFlowBox.includeLogicalLeftEdge(), m_inlineFlowBox.includeLogicalRightEdge());
|
| break;
|
| case PaintBordersWithClip:
|
| // FIXME: What the heck do we do with RTL here? The math we're using is obviously not right,
|
| @@ -230,14 +230,14 @@ void InlineFlowBoxPainter::paintBoxDecorationBackground(const PaintInfo& paintIn
|
| LayoutRect imageStripPaintRect = paintRectForImageStrip(adjustedPaintOffset, frameRect.size(), LTR);
|
| GraphicsContextStateSaver stateSaver(paintInfo.context);
|
| paintInfo.context.clip(adjustedClipRect);
|
| - BoxPainter::paintBorder(*toLayoutBoxModelObject(LineLayoutAPIShim::layoutObjectFrom(m_inlineFlowBox.boxModelObject())), paintInfo, imageStripPaintRect, m_inlineFlowBox.lineLayoutItem().styleRef(m_inlineFlowBox.isFirstLineStyle()));
|
| + BoxPainter::paintBorder(*toLayoutBoxModelObject(LineLayoutAPIShim::layoutObjectFrom(m_inlineFlowBox.boxModelObject())), paintInfo, imageStripPaintRect, m_inlineFlowBox.getLineLayoutItem().styleRef(m_inlineFlowBox.isFirstLineStyle()));
|
| break;
|
| }
|
| }
|
|
|
| void InlineFlowBoxPainter::paintMask(const PaintInfo& paintInfo, const LayoutPoint& paintOffset)
|
| {
|
| - if (m_inlineFlowBox.lineLayoutItem().style()->visibility() != VISIBLE || paintInfo.phase != PaintPhaseMask)
|
| + if (m_inlineFlowBox.getLineLayoutItem().style()->visibility() != VISIBLE || paintInfo.phase != PaintPhaseMask)
|
| return;
|
|
|
| LayoutRect frameRect = frameRectClampedToLineTopAndBottomIfNeeded();
|
| @@ -247,16 +247,16 @@ void InlineFlowBoxPainter::paintMask(const PaintInfo& paintInfo, const LayoutPoi
|
| m_inlineFlowBox.flipForWritingMode(localRect);
|
| LayoutPoint adjustedPaintOffset = paintOffset + localRect.location();
|
|
|
| - const NinePieceImage& maskNinePieceImage = m_inlineFlowBox.lineLayoutItem().style()->maskBoxImage();
|
| - StyleImage* maskBoxImage = m_inlineFlowBox.lineLayoutItem().style()->maskBoxImage().image();
|
| + const NinePieceImage& maskNinePieceImage = m_inlineFlowBox.getLineLayoutItem().style()->maskBoxImage();
|
| + StyleImage* maskBoxImage = m_inlineFlowBox.getLineLayoutItem().style()->maskBoxImage().image();
|
|
|
| // Figure out if we need to push a transparency layer to render our mask.
|
| bool pushTransparencyLayer = false;
|
| - bool compositedMask = m_inlineFlowBox.lineLayoutItem().hasLayer() && m_inlineFlowBox.boxModelObject().layer()->hasCompositedMask();
|
| + bool compositedMask = m_inlineFlowBox.getLineLayoutItem().hasLayer() && m_inlineFlowBox.boxModelObject().layer()->hasCompositedMask();
|
| bool flattenCompositingLayers = paintInfo.globalPaintFlags() & GlobalPaintFlattenCompositingLayers;
|
| SkXfermode::Mode compositeOp = SkXfermode::kSrcOver_Mode;
|
| if (!compositedMask || flattenCompositingLayers) {
|
| - if ((maskBoxImage && m_inlineFlowBox.lineLayoutItem().style()->maskLayers().hasImage()) || m_inlineFlowBox.lineLayoutItem().style()->maskLayers().next()) {
|
| + if ((maskBoxImage && m_inlineFlowBox.getLineLayoutItem().style()->maskLayers().hasImage()) || m_inlineFlowBox.getLineLayoutItem().style()->maskLayers().next()) {
|
| pushTransparencyLayer = true;
|
| paintInfo.context.beginLayer(1.0f, SkXfermode::kDstIn_Mode);
|
| } else {
|
| @@ -270,7 +270,7 @@ void InlineFlowBoxPainter::paintMask(const PaintInfo& paintInfo, const LayoutPoi
|
| }
|
|
|
| LayoutRect paintRect = LayoutRect(adjustedPaintOffset, frameRect.size());
|
| - paintFillLayers(paintInfo, Color::transparent, m_inlineFlowBox.lineLayoutItem().style()->maskLayers(), paintRect, compositeOp);
|
| + paintFillLayers(paintInfo, Color::transparent, m_inlineFlowBox.getLineLayoutItem().style()->maskLayers(), paintRect, compositeOp);
|
|
|
| bool hasBoxImage = maskBoxImage && maskBoxImage->canRender();
|
| if (!hasBoxImage || !maskBoxImage->isLoaded()) {
|
| @@ -283,7 +283,7 @@ void InlineFlowBoxPainter::paintMask(const PaintInfo& paintInfo, const LayoutPoi
|
| // The simple case is where we are the only box for this object. In those
|
| // cases only a single call to draw is required.
|
| if (!m_inlineFlowBox.prevLineBox() && !m_inlineFlowBox.nextLineBox()) {
|
| - BoxPainter::paintNinePieceImage(*boxModel, paintInfo.context, paintRect, m_inlineFlowBox.lineLayoutItem().styleRef(), maskNinePieceImage, compositeOp);
|
| + BoxPainter::paintNinePieceImage(*boxModel, paintInfo.context, paintRect, m_inlineFlowBox.getLineLayoutItem().styleRef(), maskNinePieceImage, compositeOp);
|
| } else {
|
| // We have a mask image that spans multiple lines.
|
| // FIXME: What the heck do we do with RTL here? The math we're using is obviously not right,
|
| @@ -293,7 +293,7 @@ void InlineFlowBoxPainter::paintMask(const PaintInfo& paintInfo, const LayoutPoi
|
| GraphicsContextStateSaver stateSaver(paintInfo.context);
|
| // TODO(chrishtr): this should be pixel-snapped.
|
| paintInfo.context.clip(clipRect);
|
| - BoxPainter::paintNinePieceImage(*boxModel, paintInfo.context, imageStripPaintRect, m_inlineFlowBox.lineLayoutItem().styleRef(), maskNinePieceImage, compositeOp);
|
| + BoxPainter::paintNinePieceImage(*boxModel, paintInfo.context, imageStripPaintRect, m_inlineFlowBox.getLineLayoutItem().styleRef(), maskNinePieceImage, compositeOp);
|
| }
|
|
|
| if (pushTransparencyLayer)
|
| @@ -305,7 +305,7 @@ LayoutRect InlineFlowBoxPainter::frameRectClampedToLineTopAndBottomIfNeeded() co
|
| {
|
| LayoutRect rect(m_inlineFlowBox.frameRect());
|
|
|
| - bool noQuirksMode = m_inlineFlowBox.lineLayoutItem().document().inNoQuirksMode();
|
| + bool noQuirksMode = m_inlineFlowBox.getLineLayoutItem().document().inNoQuirksMode();
|
| if (!noQuirksMode && !m_inlineFlowBox.hasTextChildren() && !(m_inlineFlowBox.descendantsHaveSameLineHeightAndBaseline() && m_inlineFlowBox.hasTextDescendants())) {
|
| const RootInlineBox& rootBox = m_inlineFlowBox.root();
|
| LayoutUnit logicalTop = m_inlineFlowBox.isHorizontal() ? rect.y() : rect.x();
|
|
|