New issue
Advanced search Search tips

Issue 412088 link

Starred by 11 users

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2015
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

Factor Blink paint code into core/paint/ and new classes.

Project Member Reported by chrishtr@chromium.org, Sep 8 2014

Issue description

This is a tracking bug.

Right now, The Blink Render tree has functionality for both layout and painting. The goal of this bug is to factor the painting code into a new core/paint/ directory.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Sep 10 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=181742

------------------------------------------------------------------
r181742 | chrishtr@chromium.org | 2014-09-10T16:29:19.860843Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderTable.cpp?r1=181742&r2=181741&pathrev=181742
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderTableCell.cpp?r1=181742&r2=181741&pathrev=181742
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/BoxDecorationData.cpp?r1=181742&r2=181741&pathrev=181742
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBox.cpp?r1=181742&r2=181741&pathrev=181742
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/BoxDecorationData.h?r1=181742&r2=181741&pathrev=181742
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBox.h?r1=181742&r2=181741&pathrev=181742
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderFieldset.cpp?r1=181742&r2=181741&pathrev=181742
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBoxModelObject.cpp?r1=181742&r2=181741&pathrev=181742
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/style/RenderStyle.cpp?r1=181742&r2=181741&pathrev=181742
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=181742&r2=181741&pathrev=181742
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/style/BorderEdge.cpp?r1=181742&r2=181741&pathrev=181742
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBoxModelObject.h?r1=181742&r2=181741&pathrev=181742
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/style/RenderStyle.h?r1=181742&r2=181741&pathrev=181742
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderObject.cpp?r1=181742&r2=181741&pathrev=181742
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/style/BorderEdge.h?r1=181742&r2=181741&pathrev=181742
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/BoxPainter.cpp?r1=181742&r2=181741&pathrev=181742
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint?r1=181742&r2=181741&pathrev=181742
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/BoxPainter.h?r1=181742&r2=181741&pathrev=181742
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderImage.cpp?r1=181742&r2=181741&pathrev=181742

Factor painting code out of RenderBox into a new class called BoxPainter.

Along the way, create BoxDecorationData and BorderEdge classes, to represent classes
that used to be internal to the RenderBox and subclass implementations. Also moves
a couple of methods to RenderStyle that use only style data.

This CL increases the size of RenderBox, RenderTable, Render TableCell and RenderFieldset objects by one pointer,
to accomodate a back pointer from the BoxPainter to the Render object.

BUG= 412088 

Review URL: https://codereview.chromium.org/550363004
-----------------------------------------------------------------
Project Member

Comment 2 by bugdroid1@chromium.org, Sep 12 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=181880

------------------------------------------------------------------
r181880 | chrishtr@chromium.org | 2014-09-12T05:40:21.297836Z

Changed paths:
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/BackgroundImageGeometry.cpp?r1=181880&r2=181879&pathrev=181880
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBox.h?r1=181880&r2=181879&pathrev=181880
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/BoxPainter.h?r1=181880&r2=181879&pathrev=181880
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/InlineFlowBox.cpp?r1=181880&r2=181879&pathrev=181880
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderReplaced.cpp?r1=181880&r2=181879&pathrev=181880
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBoxModelObject.cpp?r1=181880&r2=181879&pathrev=181880
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=181880&r2=181879&pathrev=181880
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/BackgroundImageGeometry.h?r1=181880&r2=181879&pathrev=181880
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderImage.cpp?r1=181880&r2=181879&pathrev=181880
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderWidget.cpp?r1=181880&r2=181879&pathrev=181880
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBoxModelObject.h?r1=181880&r2=181879&pathrev=181880
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBox.cpp?r1=181880&r2=181879&pathrev=181880
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/BoxPainter.cpp?r1=181880&r2=181879&pathrev=181880
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderObject.h?r1=181880&r2=181879&pathrev=181880

Move painting code from RenderBoxModelObject into BoxPainter.

BUG= 412088 

Review URL: https://codereview.chromium.org/559733005
-----------------------------------------------------------------
Project Member

Comment 3 by bugdroid1@chromium.org, Sep 12 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=181930

------------------------------------------------------------------
r181930 | chrishtr@chromium.org | 2014-09-12T20:54:15.958429Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/BoxPainter.cpp?r1=181930&r2=181929&pathrev=181930
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBlock.cpp?r1=181930&r2=181929&pathrev=181930
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderObject.h?r1=181930&r2=181929&pathrev=181930
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/InlineTextBox.cpp?r1=181930&r2=181929&pathrev=181930
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/BoxPainter.h?r1=181930&r2=181929&pathrev=181930
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderInline.cpp?r1=181930&r2=181929&pathrev=181930
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/InlineFlowBox.cpp?r1=181930&r2=181929&pathrev=181930
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderFieldset.cpp?r1=181930&r2=181929&pathrev=181930
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBoxModelObject.cpp?r1=181930&r2=181929&pathrev=181930
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderMultiColumnSet.cpp?r1=181930&r2=181929&pathrev=181930
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBoxModelObject.h?r1=181930&r2=181929&pathrev=181930
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderTableCell.cpp?r1=181930&r2=181929&pathrev=181930

Move a bunch more painting code out of RenderBoxModelObject and into BoxPainter.

BUG= 412088 

Review URL: https://codereview.chromium.org/564973002
-----------------------------------------------------------------
Project Member

Comment 4 by bugdroid1@chromium.org, Sep 15 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=182016

------------------------------------------------------------------
r182016 | chrishtr@chromium.org | 2014-09-15T22:59:31.735550Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderGrid.cpp?r1=182016&r2=182015&pathrev=182016
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/InlineBox.cpp?r1=182016&r2=182015&pathrev=182016
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBox.cpp?r1=182016&r2=182015&pathrev=182016
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBlock.cpp?r1=182016&r2=182015&pathrev=182016
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderGrid.h?r1=182016&r2=182015&pathrev=182016
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/BlockPainter.cpp?r1=182016&r2=182015&pathrev=182016
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderObject.h?r1=182016&r2=182015&pathrev=182016
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBox.h?r1=182016&r2=182015&pathrev=182016
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBlock.h?r1=182016&r2=182015&pathrev=182016
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/BlockPainter.h?r1=182016&r2=182015&pathrev=182016
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=182016&r2=182015&pathrev=182016
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderFlexibleBox.cpp?r1=182016&r2=182015&pathrev=182016

Factor painting code from RenderBlock into BlockPainter.

BUG= 412088 

Review URL: https://codereview.chromium.org/569683004
-----------------------------------------------------------------
Project Member

Comment 6 by bugdroid1@chromium.org, Sep 19 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=182356

------------------------------------------------------------------
r182356 | chrishtr@chromium.org | 2014-09-19T22:44:59.849037Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderTable.cpp?r1=182356&r2=182355&pathrev=182356
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/TablePainter.cpp?r1=182356&r2=182355&pathrev=182356
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderTable.h?r1=182356&r2=182355&pathrev=182356
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderTableSection.cpp?r1=182356&r2=182355&pathrev=182356
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/TablePainter.h?r1=182356&r2=182355&pathrev=182356
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/TableSectionPainter.cpp?r1=182356&r2=182355&pathrev=182356
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderTableRow.cpp?r1=182356&r2=182355&pathrev=182356
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/TableRowPainter.cpp?r1=182356&r2=182355&pathrev=182356
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=182356&r2=182355&pathrev=182356
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderTableSection.h?r1=182356&r2=182355&pathrev=182356
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/TableSectionPainter.h?r1=182356&r2=182355&pathrev=182356
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderTableRow.h?r1=182356&r2=182355&pathrev=182356
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/TableRowPainter.h?r1=182356&r2=182355&pathrev=182356

Move painting code for tables into *Paint classes.

BUG= 412088 

Review URL: https://codereview.chromium.org/576823004
-----------------------------------------------------------------
Project Member

Comment 7 by bugdroid1@chromium.org, Sep 20 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=182367

------------------------------------------------------------------
r182367 | chrishtr@chromium.org | 2014-09-20T06:40:30.487744Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderObject.cpp?r1=182367&r2=182366&pathrev=182367
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/ObjectPainter.cpp?r1=182367&r2=182366&pathrev=182367
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderTableCell.cpp?r1=182367&r2=182366&pathrev=182367
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/BoxPainter.cpp?r1=182367&r2=182366&pathrev=182367
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/BlockPainter.cpp?r1=182367&r2=182366&pathrev=182367
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderObject.h?r1=182367&r2=182366&pathrev=182367
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/ObjectPainter.h?r1=182367&r2=182366&pathrev=182367
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/BoxPainter.h?r1=182367&r2=182366&pathrev=182367
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderInline.cpp?r1=182367&r2=182366&pathrev=182367
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=182367&r2=182366&pathrev=182367
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/style/RenderStyleConstants.h?r1=182367&r2=182366&pathrev=182367
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderMultiColumnSet.cpp?r1=182367&r2=182366&pathrev=182367

Move painting code from RenderObject into a new ObjectPainter class.

BUG= 412088 

Review URL: https://codereview.chromium.org/591613003
-----------------------------------------------------------------
Project Member

Comment 16 by bugdroid1@chromium.org, Sep 24 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=182540

------------------------------------------------------------------
r182540 | pdr@chromium.org | 2014-09-24T01:31:27.427635Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGForeignObject.cpp?r1=182540&r2=182539&pathrev=182540
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=182540&r2=182539&pathrev=182540
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGForeignObjectPainter.cpp?r1=182540&r2=182539&pathrev=182540
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGForeignObject.h?r1=182540&r2=182539&pathrev=182540
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGForeignObjectPainter.h?r1=182540&r2=182539&pathrev=182540

Move paint code from RenderSVGForeignObject to SVGForeignObjectPainter

This patch moves the ForeignObject paint code into the new
SVGForeignObjectPainter. This is a straight code move with a few small
exceptions:
1) childPoint is now const and is used for all BlockPainter calls.
Previously, an extra IntPoint() was used for no reason.
2) FloatRect viewportRect() has been exposed on RenderSVGForeignObject.
3) Fixed up a comment.

BUG= 412088 

Review URL: https://codereview.chromium.org/597753002
-----------------------------------------------------------------
Project Member

Comment 18 by bugdroid1@chromium.org, Sep 25 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=182642

------------------------------------------------------------------
r182642 | pdr@chromium.org | 2014-09-25T00:47:50.733283Z

Changed paths:
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGTextPainter.h?r1=182642&r2=182641&pathrev=182642
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=182642&r2=182641&pathrev=182642
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGText.cpp?r1=182642&r2=182641&pathrev=182642
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGTextPainter.cpp?r1=182642&r2=182641&pathrev=182642
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGText.h?r1=182642&r2=182641&pathrev=182642

Move paint code from RenderSVGText to SVGTextPainter

This patch moves the RenderSVGText paint code into the new SVGTextPainter.
This is a straight code move and the only change that was need was to
expose localToParentTransform as public on RenderSVGText.

BUG= 412088 

Review URL: https://codereview.chromium.org/599283002
-----------------------------------------------------------------
Project Member

Comment 19 by bugdroid1@chromium.org, Sep 25 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=182643

------------------------------------------------------------------
r182643 | chrishtr@chromium.org | 2014-09-25T00:49:23.045699Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderVideo.cpp?r1=182643&r2=182642&pathrev=182643
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/VideoPainter.cpp?r1=182643&r2=182642&pathrev=182643
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderImage.h?r1=182643&r2=182642&pathrev=182643
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/ImagePainter.h?r1=182643&r2=182642&pathrev=182643
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderVideo.h?r1=182643&r2=182642&pathrev=182643
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/VideoPainter.h?r1=182643&r2=182642&pathrev=182643
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=182643&r2=182642&pathrev=182643
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderImage.cpp?r1=182643&r2=182642&pathrev=182643
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/ImagePainter.cpp?r1=182643&r2=182642&pathrev=182643
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderReplaced.h?r1=182643&r2=182642&pathrev=182643

Move paint code from RenderImage into ImagePainter.

BUG= 412088 

Review URL: https://codereview.chromium.org/594043005
-----------------------------------------------------------------
Project Member

Comment 20 by bugdroid1@chromium.org, Sep 25 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=182704

------------------------------------------------------------------
r182704 | pdr@chromium.org | 2014-09-25T18:55:08.050761Z

Changed paths:
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGImagePainter.cpp?r1=182704&r2=182703&pathrev=182704
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGImage.h?r1=182704&r2=182703&pathrev=182704
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGImagePainter.h?r1=182704&r2=182703&pathrev=182704
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=182704&r2=182703&pathrev=182704
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGImage.cpp?r1=182704&r2=182703&pathrev=182704
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/SVGRenderingContext.cpp?r1=182704&r2=182703&pathrev=182704

Move RenderSVGImage's paint code to SVGImagePainter

This patch moves RenderSVGImage's paint functions to SVGImagePainter.
This is a straight code refactor with no changes other than exposing a
few functions on RenderSVGImage.

The one hairy part of this patch is the buffered rendering support
we have in RenderSVGImage. This has been moved to a static function
on SVGImagePainter and all callers have been updated.

BUG= 412088 

Review URL: https://codereview.chromium.org/603053002
-----------------------------------------------------------------
Project Member

Comment 23 by bugdroid1@chromium.org, Sep 29 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=182855

------------------------------------------------------------------
r182855 | chrishtr@chromium.org | 2014-09-29T17:38:55.671586Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderScrollbarPart.h?r1=182855&r2=182854&pathrev=182855
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=182855&r2=182854&pathrev=182855
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/frame/FrameView.cpp?r1=182855&r2=182854&pathrev=182855
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderScrollbar.cpp?r1=182855&r2=182854&pathrev=182855
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/ScrollbarPainter.cpp?r1=182855&r2=182854&pathrev=182855
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderScrollbarTheme.cpp?r1=182855&r2=182854&pathrev=182855
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderLayerScrollableArea.cpp?r1=182855&r2=182854&pathrev=182855
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderScrollbar.h?r1=182855&r2=182854&pathrev=182855
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/ScrollbarPainter.h?r1=182855&r2=182854&pathrev=182855
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderScrollbarPart.cpp?r1=182855&r2=182854&pathrev=182855

Move paint code for RenderScrollbar and RenderScrollbarPart into ScrollbarPainter.

In so doing, exposed a new getPart() method on RenderScrollbar to get the part.
Also, this patch changes the code in RenderScrollbarPart to explicitly call the BlockPainter::paint method, rather than relying on virtual function calls. This is possible because RenderScrollbarPart is a FINAL class that inherits from BlockPainter. Therefore all of these calls must be the BlockPainter version.

BUG= 412088 

Review URL: https://codereview.chromium.org/613503002
-----------------------------------------------------------------
Project Member

Comment 25 by bugdroid1@chromium.org, Oct 7 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=183298

------------------------------------------------------------------
r183298 | chrishtr@chromium.org | 2014-10-07T02:08:23.489669Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/SVGRootInlineBox.cpp?r1=183298&r2=183297&pathrev=183298
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/SVGInlineTextBox.cpp?r1=183298&r2=183297&pathrev=183298
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/InlineTextBox.cpp?r1=183298&r2=183297&pathrev=183298
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/InlineTextBoxPainter.cpp?r1=183298&r2=183297&pathrev=183298
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGInlineTextBoxPainter.cpp?r1=183298&r2=183297&pathrev=183298
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/SVGInlineFlowBox.cpp?r1=183298&r2=183297&pathrev=183298
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/SVGInlineTextBox.h?r1=183298&r2=183297&pathrev=183298
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=183298&r2=183297&pathrev=183298
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGInlineTextBoxPainter.h?r1=183298&r2=183297&pathrev=183298

Move painting code from SVGInlineTextBox to SVGInlineTextBoxPainter.

BUG= 412088 

Review URL: https://codereview.chromium.org/627773002
-----------------------------------------------------------------
Project Member

Comment 26 by bugdroid1@chromium.org, Oct 8 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=183369

------------------------------------------------------------------
r183369 | chrishtr@chromium.org | 2014-10-08T00:02:30.570720Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/EllipsisBox.cpp?r1=183369&r2=183368&pathrev=183369
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/EllipsisBoxPainter.cpp?r1=183369&r2=183368&pathrev=183369
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RootInlineBox.h?r1=183369&r2=183368&pathrev=183369
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=183369&r2=183368&pathrev=183369
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/RootInlineBoxPainter.h?r1=183369&r2=183368&pathrev=183369
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/EllipsisBox.h?r1=183369&r2=183368&pathrev=183369
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/EllipsisBoxPainter.h?r1=183369&r2=183368&pathrev=183369
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RootInlineBox.cpp?r1=183369&r2=183368&pathrev=183369
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/RootInlineBoxPainter.cpp?r1=183369&r2=183368&pathrev=183369

Move paint code from RootInlineBox and EllipsisBox to RootInlineBoxPainter and EllipsisBoxPainter.

BUG= 412088 

Review URL: https://codereview.chromium.org/630093005
-----------------------------------------------------------------
Project Member

Comment 28 by bugdroid1@chromium.org, Oct 9 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=183488

------------------------------------------------------------------
r183488 | pdr@chromium.org | 2014-10-09T19:31:54.274327Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=183488&r2=183487&pathrev=183488
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGContainer.cpp?r1=183488&r2=183487&pathrev=183488
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGViewportContainer.cpp?r1=183488&r2=183487&pathrev=183488
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGContainerPainter.cpp?r1=183488&r2=183487&pathrev=183488
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGContainer.h?r1=183488&r2=183487&pathrev=183488
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGViewportContainer.h?r1=183488&r2=183487&pathrev=183488
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGContainerPainter.h?r1=183488&r2=183487&pathrev=183488
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGResourceMarker.cpp?r1=183488&r2=183487&pathrev=183488
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGResourceMarker.h?r1=183488&r2=183487&pathrev=183488

Move SVG container paint code to SVGContainerPainter

This patch moves the direct painting code (through paint(...)) to
the new SVGContainerPainter. The resource container subclasses of
RenderSVGContainer have a second painting codepath through draw()
functions which will be moved to a painter class in a separate patch.

This patch is primarily a straight code move but contains the following
non-trivial changes:
1) RenderSVGViewport::applyViewportClip was not implemented directly
but RenderSVGViewportContainer and RenderSVGResourceMarker override it
for clipping. Instead of using applyViewportClip,
SVGContainerPainter::paint now directly handles the clipping of
RenderSVGViewportContainer. RenderSVGResourceMarker's viewport clip
function has been moved in RenderSVGResourceMarker::draw.

2) paintInvalidationRectInLocalCoordinates and selfWillPaint have been
made public on RenderSVGViewport.

BUG= 412088 

Review URL: https://codereview.chromium.org/601093002
-----------------------------------------------------------------
Project Member

Comment 31 by bugdroid1@chromium.org, Oct 22 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=184133

------------------------------------------------------------------
r184133 | pdr@chromium.org | 2014-10-22T01:09:08.885337Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/SVGRootInlineBox.cpp?r1=184133&r2=184132&pathrev=184133
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGRootInlineBoxPainter.cpp?r1=184133&r2=184132&pathrev=184133
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=184133&r2=184132&pathrev=184133
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGRootInlineBoxPainter.h?r1=184133&r2=184132&pathrev=184133

Factor SVG root inline box paint code into SVGRootInlineBoxPainter

This patch moves the SVGRootInlineBox paint code into
SVGRootInlineBoxPainter. This is a pure code move (no real changes).

BUG= 412088 

Review URL: https://codereview.chromium.org/669733011
-----------------------------------------------------------------
Project Member

Comment 32 by bugdroid1@chromium.org, Oct 22 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=184137

------------------------------------------------------------------
r184137 | pdr@chromium.org | 2014-10-22T03:15:34.521343Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGShape.cpp?r1=184137&r2=184136&pathrev=184137
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=184137&r2=184136&pathrev=184137
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGMarkerPainter.cpp?r1=184137&r2=184136&pathrev=184137
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGShape.h?r1=184137&r2=184136&pathrev=184137
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGMarkerPainter.h?r1=184137&r2=184136&pathrev=184137
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGResourceMarker.cpp?r1=184137&r2=184136&pathrev=184137
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGResourceMarker.h?r1=184137&r2=184136&pathrev=184137

Move SVG marker paint code to SVGMarkerPainter

This patch is a followup to [1] and moves the marker draw function to
SVGMarkerPainter. This is primarily a code move with a few exceptions:

1) RenderSVGResourceMarker::draw has been removed entirely so painting
now goes through RenderSVGShape.

2) The paint code previously had a clearInvalidationMask() call that
seems completely wrong. This has been removed.

3) RenderSVGShape::drawMarkers has been renamed paintMarkers to better
align the terms and/or distract reviewers with bikeshed material.

4) The marker transformation is now calculated inside
SVGMarkerPainter instead of at the RenderSVGShape callsite.

[1] https://src.chromium.org/viewvc/blink?view=rev&revision=183488

BUG= 412088 

Review URL: https://codereview.chromium.org/665743004
-----------------------------------------------------------------
Project Member

Comment 34 by bugdroid1@chromium.org, Oct 28 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=184487

------------------------------------------------------------------
r184487 | pdr@chromium.org | 2014-10-28T00:12:35.189317Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGShape.cpp?r1=184487&r2=184486&pathrev=184487
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/SVGMarkerData.h?r1=184487&r2=184486&pathrev=184487
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGPath.h?r1=184487&r2=184486&pathrev=184487
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=184487&r2=184486&pathrev=184487
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGShapePainter.cpp?r1=184487&r2=184486&pathrev=184487
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGEllipse.h?r1=184487&r2=184486&pathrev=184487
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGRect.h?r1=184487&r2=184486&pathrev=184487
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGShape.h?r1=184487&r2=184486&pathrev=184487
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGShapePainter.h?r1=184487&r2=184486&pathrev=184487
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGPath.cpp?r1=184487&r2=184486&pathrev=184487
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGEllipse.cpp?r1=184487&r2=184486&pathrev=184487
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGRect.cpp?r1=184487&r2=184486&pathrev=184487

Move SVG shape painting code to SVGShapePainter

This patch moves all SVG shape (path,rect,ellipse,circle,polyline,line,
polygon) painting code to SVGShapePainter.

This megapatch is primarily a code move without changes. The two big
changes are:
1) All painting code for RenderSVG{Shape,Path,Rect,Ellipse} has been
moved to SVGShapePainter. The original designer of this code went
OOP crazy and created a delicious spaghetti of fillShape and
strokeShape. These virtual functions have been replaced with two new
virtuals that are a bit easier to digest: useRectRenderingFastPath and
useEllipseRenderingFastPath.

2) The marker code only applies to "markable elements"[1] and is only
needed on RenderSVGPath. The marker data and functions have been moved
to RenderSVGPath which shrinks RenderSVG{Rect,Ellipse} by a pointer
and cleans up RenderSVGShape.

[1] https://svgwg.org/svg2-draft/single-page.html#intro-TermMarkableElement

BUG= 412088 

Review URL: https://codereview.chromium.org/678863002
-----------------------------------------------------------------
Project Member

Comment 36 by bugdroid1@chromium.org, Nov 6 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=184895

------------------------------------------------------------------
r184895 | pdr@chromium.org | 2014-11-06T04:17:26.467547Z

Changed paths:
   D http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGMarkerPainter.h?r1=184895&r2=184894&pathrev=184895
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=184895&r2=184894&pathrev=184895
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGShapePainter.cpp?r1=184895&r2=184894&pathrev=184895
   D http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGMarkerPainter.cpp?r1=184895&r2=184894&pathrev=184895
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGShapePainter.h?r1=184895&r2=184894&pathrev=184895

Factor SVGMarkerPainter into SVGShapePainter

SVGShapePainter is the only class to paint markers so the marker painter
class is all overhead. This patch moves the marker painter code into
SVGShapePainter.

BUG= 412088 

Review URL: https://codereview.chromium.org/693313003
-----------------------------------------------------------------
Project Member

Comment 40 by bugdroid1@chromium.org, Nov 14 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=185386

------------------------------------------------------------------
r185386 | fs@opera.com | 2014-11-14T19:08:51.081221Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderInline.cpp?r1=185386&r2=185385&pathrev=185386
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderReplaced.cpp?r1=185386&r2=185385&pathrev=185386
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderReplica.cpp?r1=185386&r2=185385&pathrev=185386
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderTableRow.cpp?r1=185386&r2=185385&pathrev=185386
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderTable.cpp?r1=185386&r2=185385&pathrev=185386
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBlock.cpp?r1=185386&r2=185385&pathrev=185386
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderView.cpp?r1=185386&r2=185385&pathrev=185386
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderTableSection.cpp?r1=185386&r2=185385&pathrev=185386

Remove includes of GraphicsContextAnnotator.h

Redundant include left behind when moving code to paint/.
Also remove some other (unused) painting related includes.

BUG= 412088 

Review URL: https://codereview.chromium.org/721413004
-----------------------------------------------------------------
Project Member

Comment 42 by bugdroid1@chromium.org, Nov 17 2014

Project Member

Comment 43 by bugdroid1@chromium.org, Nov 18 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=185534

------------------------------------------------------------------
r185534 | fs@opera.com | 2014-11-18T16:51:23.439401Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/InlineTextBox.cpp?r1=185534&r2=185533&pathrev=185534
   D http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/TextPainter.h?r1=185534&r2=185533&pathrev=185534
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/InlineTextBoxPainter.cpp?r1=185534&r2=185533&pathrev=185534
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/EllipsisBoxPainter.cpp?r1=185534&r2=185533&pathrev=185534
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=185534&r2=185533&pathrev=185534
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/TextPainter.cpp?r1=185534&r2=185533&pathrev=185534
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/TextPainterTest.cpp?r1=185534&r2=185533&pathrev=185534
   D http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/TextPainter.cpp?r1=185534&r2=185533&pathrev=185534
   D http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/TextPainterTest.cpp?r1=185534&r2=185533&pathrev=185534
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/TextPainter.h?r1=185534&r2=185533&pathrev=185534

Move TextPainter to core/paint/

Also clean out a bunch of unused includes from
core/rendering/InlineTextBox.cpp.

BUG= 412088 

Review URL: https://codereview.chromium.org/738863002
-----------------------------------------------------------------
Project Member

Comment 45 by bugdroid1@chromium.org, Dec 9 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=186739

------------------------------------------------------------------
r186739 | chrishtr@chromium.org | 2014-12-08T23:58:36.442734Z

Changed paths:
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/ScrollableAreaPainter.cpp?r1=186739&r2=186738&pathrev=186739
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderLayer.cpp?r1=186739&r2=186738&pathrev=186739
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/LayerPainter.cpp?r1=186739&r2=186738&pathrev=186739
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderLayerScrollableArea.h?r1=186739&r2=186738&pathrev=186739
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=186739&r2=186738&pathrev=186739
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/ScrollableAreaPainter.h?r1=186739&r2=186738&pathrev=186739
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/PartPainter.cpp?r1=186739&r2=186738&pathrev=186739
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderLayerScrollableArea.cpp?r1=186739&r2=186738&pathrev=186739
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/compositing/CompositedLayerMapping.cpp?r1=186739&r2=186738&pathrev=186739
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/BlockPainter.cpp?r1=186739&r2=186738&pathrev=186739

Factor painting code from RenderLayerScrollableArea into ScrollableAreaPainter

In the process, made a few methods public on RenderLayerScrollableArea.
The cached control position bit makes me a little sad.

BUG= 412088 

Review URL: https://codereview.chromium.org/776943003
-----------------------------------------------------------------
Project Member

Comment 46 by bugdroid1@chromium.org, Dec 23 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=187638

------------------------------------------------------------------
r187638 | pdr@chromium.org | 2014-12-23T08:09:42.223384Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/RenderSVGResourcePattern.cpp?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/SVGRenderingContext.h?r1=187638&r2=187637&pathrev=187638
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/slimmingpaint/svg/text/README.txt?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/paint/DisplayItemList.cpp?r1=187638&r2=187637&pathrev=187638
   A http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/paint/FloatClipDisplayItem.cpp?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/paint/TransparencyDisplayItem.h?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/paint/DisplayItem.cpp?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGForeignObjectPainter.cpp?r1=187638&r2=187637&pathrev=187638
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/slimmingpaint/svg/stroke?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGContainerPainter.cpp?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/svg/graphics/SVGImage.cpp?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGRootPainter.cpp?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGTextPainter.cpp?r1=187638&r2=187637&pathrev=187638
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/slimmingpaint/svg/foreignObject?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGRootInlineBoxPainter.cpp?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/TransparencyRecorder.cpp?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/ReplacedPainter.cpp?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/SVGRenderingContext.cpp?r1=187638&r2=187637&pathrev=187638
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/slimmingpaint/svg/foreignObject/README.txt?r1=187638&r2=187637&pathrev=187638
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/FloatClipRecorder.h?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/paint/TransparencyDisplayItem.cpp?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/blink_platform.gypi?r1=187638&r2=187637&pathrev=187638
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/slimmingpaint/svg?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=187638&r2=187637&pathrev=187638
   A http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/paint/FloatClipDisplayItem.h?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/paint/DisplayItem.h?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGImagePainter.cpp?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/svg/graphics/SVGImage.h?r1=187638&r2=187637&pathrev=187638
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/slimmingpaint/svg/stroke/README.txt?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/PaintInfo.h?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGInlineTextBoxPainter.cpp?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/VirtualTestSuites?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/LayerPainter.cpp?r1=187638&r2=187637&pathrev=187638
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/slimmingpaint/svg/text?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/SVGShapePainter.cpp?r1=187638&r2=187637&pathrev=187638
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/FloatClipRecorder.cpp?r1=187638&r2=187637&pathrev=187638
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/TransparencyRecorder.h?r1=187638&r2=187637&pathrev=187638

Get basic SVG painting moved over to slimming paint

This patch brings basic SVG rendering to slimming paint. Most painting
now works with the exception of filters, clips, and masks. With this patch
we pass 2172/2700 of the tests in svg/ with slimming paint enabled, and
no longer crash in any test. I apologize ahead of time for this
mondrianic code review.

Major changes:
* A new GraphicsContext is now created for all nested painting (e.g.,
stamping out an SVG subtree for markers or patterns). In the future we
may want to change this pattern so the nested drawing bit is stored on
the GraphicsContext's m_recordingStateStack instead of creating a new
graphics context. This was a large change so it was left out of this
patch, but it would make filter/mask/clipPath support much simpler.
* FloatClipRecorder and FloatClipDisplayItem have been added because
SVG frequently clips to FloatRects.
* TransformRecorder has been changed to emit display items even when
the transform is identity. This fixed a crash where a cached drawing
was emitted but the transform changed and could not be looked up. A
bit has been added on the TransformDisplayItems to not save/restore
unnecessarily.
* DisplayItemList::replay has been changed to update the display
list. This only worked previously because callers happened to update
the paint list themselves.
* Three subdirectories have been added to the virtual suite for
test coverage.

BUG= 412088 

Review URL: https://codereview.chromium.org/770173004
-----------------------------------------------------------------
Project Member

Comment 47 by bugdroid1@chromium.org, Dec 23 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=187642

------------------------------------------------------------------
r187642 | pdr@chromium.org | 2014-12-23T10:25:41.120287Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win/svg/custom/marker-orient-auto-expected.png?r1=187642&r2=187641&pathrev=187642
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win/svg/as-image/img-preserveAspectRatio-support-1-expected.png?r1=187642&r2=187641&pathrev=187642
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux/svg/as-image/img-preserveAspectRatio-support-1-expected.png?r1=187642&r2=187641&pathrev=187642
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win/svg/as-background-image/background-image-preserveaspectRatio-support-expected.png?r1=187642&r2=187641&pathrev=187642
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win/virtual/slimmingpaint/svg/text/text-align-05-b-expected.png?r1=187642&r2=187641&pathrev=187642
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/svg/as-image/img-preserveAspectRatio-support-1-expected.png?r1=187642&r2=187641&pathrev=187642
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/svg/custom/marker-orient-auto-expected.png?r1=187642&r2=187641&pathrev=187642
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win/virtual/slimmingpaint/svg/text?r1=187642&r2=187641&pathrev=187642
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux/svg/as-background-image/background-image-preserveaspectRatio-support-expected.png?r1=187642&r2=187641&pathrev=187642
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win-xp/virtual/slimmingpaint/svg?r1=187642&r2=187641&pathrev=187642
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=187642&r2=187641&pathrev=187642
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux/virtual/slimmingpaint/svg/text/text-align-05-b-expected.png?r1=187642&r2=187641&pathrev=187642
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/svg/as-background-image/background-image-preserveaspectRatio-support-expected.png?r1=187642&r2=187641&pathrev=187642
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/virtual/slimmingpaint/svg/text/text-align-05-b-expected.png?r1=187642&r2=187641&pathrev=187642
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux/virtual/slimmingpaint/svg/text?r1=187642&r2=187641&pathrev=187642
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/virtual/slimmingpaint/svg/text?r1=187642&r2=187641&pathrev=187642
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win/svg/as-background-image/svg-as-background-5-expected.png?r1=187642&r2=187641&pathrev=187642
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win/virtual/slimmingpaint/svg?r1=187642&r2=187641&pathrev=187642
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux/virtual/slimmingpaint/svg?r1=187642&r2=187641&pathrev=187642
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux/svg/as-background-image/svg-as-background-5-expected.png?r1=187642&r2=187641&pathrev=187642
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/virtual/slimmingpaint/svg?r1=187642&r2=187641&pathrev=187642
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/svg/as-background-image/svg-as-background-5-expected.png?r1=187642&r2=187641&pathrev=187642
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux/fast/backgrounds/size/contain-and-cover-expected.png?r1=187642&r2=187641&pathrev=187642
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win-xp/virtual/slimmingpaint/svg/text/text-align-05-b-expected.png?r1=187642&r2=187641&pathrev=187642
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win-xp/virtual/slimmingpaint/svg/text?r1=187642&r2=187641&pathrev=187642

Auto-rebaseline for r187638

http://src.chromium.org/viewvc/blink?view=revision&revision=187638

BUG= 412088 
TBR=pdr@chromium.org

Review URL: https://codereview.chromium.org/808903003
-----------------------------------------------------------------
Labels: Slimming-Paint
Labels: -Slimming-Paint Hotlist-Slimming-Paint
Project Member

Comment 50 by bugdroid1@chromium.org, Jan 5 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=187875

------------------------------------------------------------------
r187875 | chrome-bot@google.com | 2015-01-05T23:15:03.205528Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=187875&r2=187874&pathrev=187875

Update test expectations.

TBR=falken
BUG= 446261 , 412088 

Review URL: https://codereview.chromium.org/835983002
-----------------------------------------------------------------
Project Member

Comment 51 by bugdroid1@chromium.org, Jan 6 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=187902

------------------------------------------------------------------
r187902 | falken@chromium.org | 2015-01-06T07:50:30.960878Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=187902&r2=187901&pathrev=187902

Gardening: Update TestExpectations

Especially virtual/gpu/fast/canvas/ flakes.

BUG= 410929 , 412088 , 327698 , 369615 , 437131 , 446420 
TBR=dglazkov
NOTRY=true

Review URL: https://codereview.chromium.org/812743005
-----------------------------------------------------------------
Status: Fixed
Blocking: chromium:223630
Blocking: -chromium:223630
Status: Assigned
virtual/slimmingpaint/svg/text/text-with-geometric-precision.svg is still marked as failing and associated with this bug.

Could you please investigate this failure and rebaseline the text, file a new bug, or fix on this bug?
Status: Fixed
I moved them to another bug.
Project Member

Comment 58 by bugdroid1@chromium.org, Mar 31 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=192774

------------------------------------------------------------------
r192774 | chrishtr@chromium.org | 2015-03-30T20:02:58.500043Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=192774&r2=192773&pathrev=192774

This moves tracking from a closed bug to a meta-bug tracking layout tests
in general.

BUG= 471405 , 412088 
TBR=pdr

Review URL: https://codereview.chromium.org/1044993002
-----------------------------------------------------------------

Sign in to add a comment