| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/paint/ObjectPainter.h" | 5 #include "core/paint/ObjectPainter.h" |
| 6 | 6 |
| 7 #include "core/layout/LayoutBlock.h" | 7 #include "core/layout/LayoutBlock.h" |
| 8 #include "core/layout/LayoutInline.h" | 8 #include "core/layout/LayoutInline.h" |
| 9 #include "core/layout/LayoutObject.h" | 9 #include "core/layout/LayoutObject.h" |
| 10 #include "core/layout/LayoutTheme.h" | 10 #include "core/layout/LayoutTheme.h" |
| (...skipping 681 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 692 m_layoutObject.paint(info, paintOffset); | 692 m_layoutObject.paint(info, paintOffset); |
| 693 info.phase = PaintPhaseOutline; | 693 info.phase = PaintPhaseOutline; |
| 694 m_layoutObject.paint(info, paintOffset); | 694 m_layoutObject.paint(info, paintOffset); |
| 695 } | 695 } |
| 696 | 696 |
| 697 #if DCHECK_IS_ON() | 697 #if DCHECK_IS_ON() |
| 698 void ObjectPainter::doCheckPaintOffset(const PaintInfo& paintInfo, | 698 void ObjectPainter::doCheckPaintOffset(const PaintInfo& paintInfo, |
| 699 const LayoutPoint& paintOffset) { | 699 const LayoutPoint& paintOffset) { |
| 700 DCHECK(RuntimeEnabledFeatures::slimmingPaintV2Enabled()); | 700 DCHECK(RuntimeEnabledFeatures::slimmingPaintV2Enabled()); |
| 701 | 701 |
| 702 // Actual paint offsets of SVGInline and SVGInlineText include location() | 702 // TODO(pdr,wangxianzhu): Refactor to avoid the special treatment for SVGText, |
| 703 // of the containing SVGText, but PaintPropertyTreeBuilder doesn't output | 703 // SVGInline, SVGInlineText and SVGForeignObject. |
| 704 // the paint offsets. TODO(wangxianzhu): Avoid the special treatment. | 704 if (m_layoutObject.isSVG() && !m_layoutObject.isSVGRoot() && |
| 705 if (m_layoutObject.isSVGInline() || m_layoutObject.isSVGInlineText()) | 705 !m_layoutObject.isSVGForeignObject()) { |
| 706 if (!m_layoutObject.isSVGInline() && !m_layoutObject.isSVGInlineText()) |
| 707 DCHECK(paintOffset == LayoutPoint()); |
| 706 return; | 708 return; |
| 709 } |
| 707 | 710 |
| 708 // TODO(pdr): Let painter and paint property tree builder generate the same | 711 // TODO(pdr): Let painter and paint property tree builder generate the same |
| 709 // paint offset for LayoutScrollbarPart. crbug.com/664249. | 712 // paint offset for LayoutScrollbarPart. crbug.com/664249. |
| 710 if (m_layoutObject.isLayoutScrollbarPart()) | 713 if (m_layoutObject.isLayoutScrollbarPart()) |
| 711 return; | 714 return; |
| 712 | 715 |
| 713 LayoutPoint adjustedPaintOffset = paintOffset; | 716 LayoutPoint adjustedPaintOffset = paintOffset; |
| 714 // TODO(wangxianzhu): Avoid the special treatment for SVGText. | 717 if (m_layoutObject.isBox()) |
| 715 if (m_layoutObject.isBox() && !m_layoutObject.isSVGText()) | |
| 716 adjustedPaintOffset += toLayoutBox(m_layoutObject).location(); | 718 adjustedPaintOffset += toLayoutBox(m_layoutObject).location(); |
| 717 DCHECK(m_layoutObject.previousPaintOffset() == adjustedPaintOffset) | 719 DCHECK(m_layoutObject.previousPaintOffset() == adjustedPaintOffset) |
| 718 << " Paint offset mismatch: " << m_layoutObject.debugName() | 720 << " Paint offset mismatch: " << m_layoutObject.debugName() |
| 719 << " from PaintPropertyTreeBuilder: " | 721 << " from PaintPropertyTreeBuilder: " |
| 720 << m_layoutObject.previousPaintOffset().toString() | 722 << m_layoutObject.previousPaintOffset().toString() |
| 721 << " from painter: " << adjustedPaintOffset.toString(); | 723 << " from painter: " << adjustedPaintOffset.toString(); |
| 722 } | 724 } |
| 723 #endif | 725 #endif |
| 724 | 726 |
| 725 } // namespace blink | 727 } // namespace blink |
| OLD | NEW |