New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 771401 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Bug



Sign in to add a comment

Get rid of bounds parameter of DrawingRecorder

Project Member Reported by chrishtr@chromium.org, Oct 3 2017

Issue description

Now that we use PaintOpBuffers instead of SkPictures, it seems we
might be able to get rid of the bounds passed to DrawingRecorder.
These bounds are only used for certain methods in RecordPaintCanvas
(ones that use GetCanvas in record_paint_canvas.cc),
which may not be used by Blink.
 

Comment 1 by enne@chromium.org, Oct 3 2017

Cc: khushals...@chromium.org vmp...@chromium.org
The bounds is used to instantiate the SkNoDrawCanvas, which is then used to answer questions later (such as what's the clip, or what's the save count, and what's the CTM).

I could see a few paths here:


(1) Make a RecordPaintCanvas that doesn't use GetCanvas() at all.

I found that SkCanvas had a perf cost to construct (which is why it's lazily constructed).  So, it'd probably be a small win to not have one at all.  So, one approach would be that all the functions that currently use GetCanvas to return data could be NOTREACHED and return dummy data. I think the PaintCanvas API would be hard to disentangle from everything that uses it in Blink, and so I have a hard time seeing a cleaner design here.

The one weird spot to removing GetCanvas is clipPath which tries to figure out if the clipPath is really a clipRect, but that requires the CTM.  If this logic could be pushed up into Blink and verify that no caller is using clipPath when they mean clipRect or clipRRect, then I think it could be plausible to make a RecordPaintCanvas version that does not have an SkNoDrawCanvas internally.

Also a minor weird spot is that we'd probably need to keep track of save count internally instead of asking the canvas to do it.


(2) Pass an empty canvas into RecordPaintCanvas and just don't expect anything useful back from clip-related functions.  We could make these assert if recording_bounds_ is empty to make this a more explicit "don't do this".  I think this should "just work".
Status: Started (was: Assigned)
I've an exploratory patch underway pursuing (2) from c#1 above. DrawingDisplayItem::Equals uses bounds to create a bitmap, I think only for under-invalidation checking, presumably we could do it some other way but will need to rework that. Otherwise still sorting through compile error fixes.
Cc: pdr@chromium.org
PaintArtifact.cpp ComputeChunkBoundsAndOpaqueness also uses DrawingDisplayItem::GetPaintRecordBounds as part of SlimmingPaintV175Enabled. Perhaps we need to keep bounds on DrawingDisplayItem after all.
Ah, perhaps we can use the visual rect instead.
Promising. So promising. Is VisualRect a straight drop-in replacement for bounds? Purportedly not in the same space. And yet, few tests fail. YMMV? News at 11.

https://chromium-review.googlesource.com/c/chromium/src/+/729322
Cc: wangxianzhu@chromium.org
Actually I have a different plan about VisualRect() and bounds of DrawingDisplayItem for SPv175+ raster invalidation: to remove DisplayItemClient::VisualRect() and use the bounds of DrawingDisplayItem for raster invalidation. The benefit is that raster invalidation will based on actual painting. VisualRect() is a prediction of where we'll paint before painting, and inaccurate prediction causes either over or under invalidation, and the latter corrupts rendering. Raster invalidation based on actual painting will be more accurate and have less chance of under-invalidation bugs.

Can PaintRecord give the bounds of all paint operations?

I don't think PaintRecord can give the bounds currently. I am fine pitching my patch https://chromium-review.googlesource.com/c/chromium/src/+/729322, your logic makes sense, but I am unsure how it fits with enne@ vision for the future of PaintRecord / PaintOpBuffer and friends.

Probably most efficient for you to chat with them briefly.

This issue was filed as output of enne@ and chrishtr@ talking in person.
I saw PaintOp::GetBounds() which returns the bounds of a draw op (except for DrawRecord). I'm not sure if this is enough for our DrawingDisplayItem on SPv175+. I would like to explore this.

Now I think we can go ahead to get rid of the bounds of DrawingRecorder. Actually both the bounds and VisualRect() are predictions before painting, so it's good to get rid of one of them, and better to get rid of both.

Comment 9 by enne@chromium.org, Oct 25 2017

PaintRecord can't get the bounds.  Any bounds that it currently has is just what it was initialized with.  Once Blink is no longer using that (so exciting!), there's really only a few users in ui (who are using that bounds as a way to plumb a rectangle to some bitmap copying code later that wants to know how big the bitmap is) and then it can likely be removed and recordings no longer will need initial sizes.

If you wanted to get the bounds of a recording, you'd have to do all the work you'd expect to do, such as unioning every op that you recorded as well as keeping track of filters and transform matrices and such, which is a good bit of overhead.  It seems like something that paint code is more equipped to do than to figure out these bounds later.
We only need to track the bounds of drawing operations in PaintChunks. We calculate bounds affected by transforms, clips and filters in GeometryMapper.

> It seems like something that paint code is more equipped to do than to figure
> out these bounds later.

I think the "something" is just the bounds parameter of DrawingRecorder which we intent to remove :)
Project Member

Comment 11 by bugdroid1@chromium.org, Oct 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/40adb55b190f1c1272be5d914354d89d67bf7632

commit 40adb55b190f1c1272be5d914354d89d67bf7632
Author: Walter Korman <wkorman@chromium.org>
Date: Thu Oct 26 21:47:38 2017

Remove DrawingRecorder's bounds parameter.

Also remove DrawingDisplayItem's record_bounds_ and replace
references to it with use of the DisplayItemClient's VisualRect.

Remove logic regarding RuntimeEnabledFeatures::
  SlimmingPaintStrictCullRectClippingEnabled as we no longer
clip by cull rect in the same manner as we did previously.

Bug:  771401 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I6f095a99945845e9fed5c054c2aa749c58af8af5
Reviewed-on: https://chromium-review.googlesource.com/729322
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511973}
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/editing/CaretDisplayItemClient.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/exported/WebPluginContainerImpl.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/exported/WebPluginContainerImpl.h
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/exported/WebViewImpl.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/layout/LayoutScrollbarTheme.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/layout/LayoutTextControlSingleLine.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/page/PageOverlayTest.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/page/PageWidgetDelegate.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/page/PrintContextTest.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/BoxPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/BoxReflectionUtils.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/ClipPathClipper.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/DetailsMarkerPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/EllipsisBoxPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/EmbeddedContentPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/EmbeddedObjectPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/FieldsetPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/FileUploadControlPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/FramePainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/FrameSetPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/HTMLCanvasPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/ImagePainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.h
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/LayerClipRecorderTest.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/ListMarkerPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/MultiColumnSetPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/ObjectPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/ObjectPainterBase.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/ReplacedPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/SVGFilterPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/SVGImagePainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/SVGInlineTextBoxPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/SVGInlineTextBoxPainter.h
[delete] https://crrev.com/48616c3974cc51f34e2f8eeca462d4355f92e9d4/third_party/WebKit/Source/core/paint/SVGInlineTextBoxPainterTest.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/SVGMaskPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/SVGMaskPainter.h
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/SVGRootInlineBoxPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/SVGShapePainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/ScrollableAreaPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/TableCellPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/TablePainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/TableRowPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/TableSectionPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/VideoPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/ViewPainter.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/compositing/CompositedLayerMapping.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/compositing/PaintLayerCompositor.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/ng/ng_box_fragment_painter.cc
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/paint/ng/ng_box_fragment_painter.h
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/exported/WebFont.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/graphics/compositing/PaintChunksToCcLayerTest.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/graphics/paint/DrawingDisplayItem.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/graphics/paint/DrawingDisplayItem.h
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/graphics/paint/DrawingDisplayItemTest.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/graphics/paint/DrawingRecorder.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/graphics/paint/DrawingRecorder.h
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/graphics/paint/DrawingRecorderTest.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/graphics/paint/PaintArtifact.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/graphics/paint/PaintController.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/graphics/paint/PaintController.h
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/graphics/paint/PaintControllerTest.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/graphics/paint/PaintControllerTest.h
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/scroll/ScrollbarTheme.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/scroll/ScrollbarThemeAura.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/scroll/ScrollbarThemeMac.mm
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/scroll/ScrollbarThemeMock.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/scroll/ScrollbarThemeOverlay.cpp
[modify] https://crrev.com/40adb55b190f1c1272be5d914354d89d67bf7632/third_party/WebKit/Source/platform/testing/TestPaintArtifact.cpp

Project Member

Comment 12 by bugdroid1@chromium.org, Oct 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6d2224382174cbceab5c67bbaac39b83f425f9ef

commit 6d2224382174cbceab5c67bbaac39b83f425f9ef
Author: Walter Korman <wkorman@chromium.org>
Date: Thu Oct 26 23:24:53 2017

Remove last vestige of strict cull rect clipping REF.

Bug:  771401 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I1e202776666de132d1dc13bb8a5df018e57bb0cb
Reviewed-on: https://chromium-review.googlesource.com/740020
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#512008}
[modify] https://crrev.com/6d2224382174cbceab5c67bbaac39b83f425f9ef/third_party/WebKit/Source/platform/graphics/paint/DrawingRecorder.cpp
[modify] https://crrev.com/6d2224382174cbceab5c67bbaac39b83f425f9ef/third_party/WebKit/Source/platform/runtime_enabled_features.json5

Waiting to land https://chromium-review.googlesource.com/c/chromium/src/+/740018 before closing this issue as fixed.
Project Member

Comment 15 by bugdroid1@chromium.org, Oct 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/944f485b267458b76e123c7684177566363312f3

commit 944f485b267458b76e123c7684177566363312f3
Author: Walter Korman <wkorman@chromium.org>
Date: Mon Oct 30 19:41:09 2017

DCHECK for empty recording bounds in clip accessors.

Bug:  771401 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ie2dc6ec96574d47f44b03a11339b7f39ce3464a4
Reviewed-on: https://chromium-review.googlesource.com/740018
Commit-Queue: Walter Korman <wkorman@chromium.org>
Reviewed-by: enne <enne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#512582}
[modify] https://crrev.com/944f485b267458b76e123c7684177566363312f3/cc/paint/record_paint_canvas.cc
[modify] https://crrev.com/944f485b267458b76e123c7684177566363312f3/cc/paint/record_paint_canvas.h

Cc: -wangxianzhu@chromium.org wkorman@chromium.org
Owner: wangxianzhu@chromium.org
My work here is done. Xianzhu has other related changes in flight such as https://chromium-review.googlesource.com/c/chromium/src/+/741032 so I'll transfer this to him.
Project Member

Comment 17 by bugdroid1@chromium.org, Oct 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b9ef869ca423cfc9576e67ac13971ecd510bc78c

commit b9ef869ca423cfc9576e67ac13971ecd510bc78c
Author: Xianzhu Wang <wangxianzhu@chromium.org>
Date: Mon Oct 30 21:35:59 2017

Remove bounds parameter of PaintRecordBuilder

Bug:  771401 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I694526e70973702c575a71b414bf7980a5579a21
Reviewed-on: https://chromium-review.googlesource.com/741032
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Walter Korman <wkorman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#512630}
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/core/clipboard/DataTransfer.cpp
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/core/exported/WebViewTest.cpp
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.cpp
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceClipper.cpp
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceMasker.cpp
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourcePattern.cpp
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/core/page/DragController.cpp
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/core/page/PageWidgetDelegate.cpp
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/core/page/PrintContextTest.cpp
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/core/paint/BoxReflectionUtils.cpp
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/core/paint/ClipPathClipper.cpp
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/core/paint/ClipPathClipper.h
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/core/paint/SVGShapePainter.cpp
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/core/svg/graphics/filters/SVGFEImage.cpp
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/platform/exported/WebFont.cpp
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/platform/exported/WebScrollbarThemePainter.cpp
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/platform/graphics/paint/PaintRecordBuilder.cpp
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/platform/graphics/paint/PaintRecordBuilder.h
[modify] https://crrev.com/b9ef869ca423cfc9576e67ac13971ecd510bc78c/third_party/WebKit/Source/platform/graphics/paint/PaintRecordBuilderTest.cpp

Status: Fixed (was: Started)

Sign in to add a comment