|
|
Chromium Code Reviews|
Created:
3 years, 11 months ago by chrishtr Modified:
3 years, 11 months ago Reviewers:
wkorman CC:
ajuma+watch_chromium.org, blink-reviews, blink-reviews-paint_chromium.org, blink-reviews-platform-graphics_chromium.org, Rik, chromium-reviews, danakj+watch_chromium.org, dshwang, drott+blinkwatch_chromium.org, krit, f(malita), jbroman, Justin Novosad, kinuko+watch, pdr+graphicswatchlist_chromium.org, rwlbuis, Stephen Chennney Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionFix paint offset and clips in SPv2.
Previously we neglected to adjust for the paint offset of a LayoutObject within
its transform space. Furthermore, we had some corner-case bugs in clipping.
The former is tested by the newly added test as well as
PaintLayerTest.CompositedBoundsAbsPosGrandchild. The latter is tested by
three of the existing PaintLayerClipper tests.
BUG=671864
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Review-Url: https://codereview.chromium.org/2621243002
Cr-Commit-Position: refs/heads/master@{#443743}
Committed: https://chromium.googlesource.com/chromium/src/+/013d385f0e25567c5f91eb440e5d5c092e1bb0e1
Patch Set 1 #Patch Set 2 : none #Patch Set 3 : none #Patch Set 4 : none #Patch Set 5 : none #
Total comments: 8
Patch Set 6 : none #Patch Set 7 : none #
Total comments: 3
Patch Set 8 : none #Patch Set 9 : none #Patch Set 10 : none #Patch Set 11 : none #Patch Set 12 : none #Patch Set 13 : none #Patch Set 14 : none #
Messages
Total messages: 53 (37 generated)
Description was changed from ========== none none none none Merge branch 'master' into paintlayerclipperfix none none BUG= ========== to ========== none none none none Merge branch 'master' into paintlayerclipperfix none none BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== none none none none Merge branch 'master' into paintlayerclipperfix none none BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Apply paint offset to get into the space of the source/dest LayoutObject. BUG=671864 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
Description was changed from ========== Apply paint offset to get into the space of the source/dest LayoutObject. BUG=671864 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Fix paint offset and clips in SPv2 BUG=671864 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_layout_tests_slimming_paint_v2 on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_layout_te...)
Description was changed from ========== Fix paint offset and clips in SPv2 BUG=671864 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Fix paint offset and clips in SPv2. Previously we neglected to adjust for the paint offset of a LayoutObject within its transform space. Furthermore, we had some corner-case bugs in clipping. The former is tested by the newly added test as well as PaintLayerTest.CompositedBoundsAbsPosGrandchild. The latter is tested by three of the existing PaintLayerClipper tests. BUG=671864 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
chrishtr@chromium.org changed reviewers: + wkorman@chromium.org
https://codereview.chromium.org/2621243002/diff/80001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp (right): https://codereview.chromium.org/2621243002/diff/80001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:220: LayoutPoint clippingRootOffset; The simplest thing to do here is to just offset to the other layer. The only use case of this method is boundingBoxForCompositing, which is not really called at all by SPv2 (it is, but that's a bug in ViewPainter), which I'll remove soon. https://codereview.chromium.org/2621243002/diff/80001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:443: if (&m_layer == context.rootLayer) { Overflow clips are applied if 1. We're not ignoring the clip by the context setting plus the layer in question being the rootLayer. 2. We're computing the foreground rect, not the background one.
https://codereview.chromium.org/2621243002/diff/80001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp (right): https://codereview.chromium.org/2621243002/diff/80001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:220: LayoutPoint clippingRootOffset; On 2017/01/12 at 00:16:27, chrishtr wrote: > The simplest thing to do here is to just offset to the other layer. > The only use case of this method is boundingBoxForCompositing, which is not > really called at all by SPv2 (it is, but that's a bug in ViewPainter), which > I'll remove soon. This statement is incorrect. PaintLayer::physicalBoundingBoxIncludingStackingChildren will still have callers, which in turn calls boundingBoxForCompositing. Fixing..
lgtm https://codereview.chromium.org/2621243002/diff/80001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp (right): https://codereview.chromium.org/2621243002/diff/80001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:451: // ancestor's fix wrapping https://codereview.chromium.org/2621243002/diff/80001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/paint/PaintLayerClipperTest.cpp (right): https://codereview.chromium.org/2621243002/diff/80001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/PaintLayerClipperTest.cpp:100: EXPECT_GE(backgroundRect.rect().size().width().toInt(), 33554422); Where did the huge value come from?
The CQ bit was checked by chrishtr@chromium.org
https://codereview.chromium.org/2621243002/diff/80001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp (right): https://codereview.chromium.org/2621243002/diff/80001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:220: LayoutPoint clippingRootOffset; On 2017/01/12 at 00:28:14, chrishtr wrote: > On 2017/01/12 at 00:16:27, chrishtr wrote: > > The simplest thing to do here is to just offset to the other layer. > > The only use case of this method is boundingBoxForCompositing, which is not > > really called at all by SPv2 (it is, but that's a bug in ViewPainter), which > > I'll remove soon. > > This statement is incorrect. PaintLayer::physicalBoundingBoxIncludingStackingChildren will still have > callers, which in turn calls boundingBoxForCompositing. Fixing.. Fixed. https://codereview.chromium.org/2621243002/diff/80001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:451: // ancestor's On 2017/01/12 at 00:29:18, wkorman wrote: > fix wrapping Done. https://codereview.chromium.org/2621243002/diff/80001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/paint/PaintLayerClipperTest.cpp (right): https://codereview.chromium.org/2621243002/diff/80001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/PaintLayerClipperTest.cpp:100: EXPECT_GE(backgroundRect.rect().size().width().toInt(), 33554422); On 2017/01/12 at 00:29:18, wkorman wrote: > Where did the huge value come from? It's infiniteIntRect, adjusted by a tiny paint offset. The core "bug" is that we are using infiniteIntRect to represent unclipped content, but that will take more work to fix generally.
The patchset sent to the CQ was uploaded after l-g-t-m from wkorman@chromium.org Link to the patchset: https://codereview.chromium.org/2621243002/#ps100001 (title: "none")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was checked by chrishtr@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from wkorman@chromium.org Link to the patchset: https://codereview.chromium.org/2621243002/#ps120001 (title: "none")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
https://codereview.chromium.org/2621243002/diff/120001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp (right): https://codereview.chromium.org/2621243002/diff/120001/third_party/WebKit/Sou... third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:219: // PaintLayer.4 nit: '4' typo end of line https://codereview.chromium.org/2621243002/diff/120001/third_party/WebKit/Sou... third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:455: // destinationPropertyTreeState| in its clip. nit: missing '|' prefix on destinationPropertyTreeState
The CQ bit was checked by chrishtr@chromium.org
https://codereview.chromium.org/2621243002/diff/120001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp (right): https://codereview.chromium.org/2621243002/diff/120001/third_party/WebKit/Sou... third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:219: // PaintLayer.4 On 2017/01/12 at 22:37:35, wkorman wrote: > nit: '4' typo end of line Fixed.
The patchset sent to the CQ was uploaded after l-g-t-m from wkorman@chromium.org Link to the patchset: https://codereview.chromium.org/2621243002/#ps140001 (title: "none")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Failed to apply patch for
third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:
While running git apply --index -p1;
error: patch failed:
third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:210
error: third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp: patch does
not apply
Patch: third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp
Index: third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp
diff --git a/third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp
b/third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp
index
af5149f80469b94eaac9903df786c583cf5a18c7..fcdf281538c8c60dbb03310e08f254cf52bca61d
100644
--- a/third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp
+++ b/third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp
@@ -210,23 +210,27 @@ LayoutRect PaintLayerClipper::localClipRect(
const PaintLayer* clippingRootLayer) const {
ClipRectsContext context(clippingRootLayer, PaintingClipRects);
if (m_geometryMapper) {
- ClipRect clipRect = applyOverflowClipToBackgroundRectWithGeometryMapper(
- context, clipRectWithGeometryMapper(context, false));
+ LayoutRect premappedRect =
+ applyOverflowClipToBackgroundRectWithGeometryMapper(
+ context, clipRectWithGeometryMapper(context, false))
+ .rect();
// The rect now needs to be transformed to the local space of this
// PaintLayer.
bool success = false;
+ premappedRect.moveBy(context.rootLayer->layoutObject()->paintOffset());
FloatRect clippedRectInLocalSpace =
m_geometryMapper->mapRectToDestinationSpace(
- FloatRect(clipRect.rect()), *clippingRootLayer->layoutObject()
- ->paintProperties()
- ->localBorderBoxProperties(),
+ FloatRect(premappedRect), *clippingRootLayer->layoutObject()
+ ->paintProperties()
+ ->localBorderBoxProperties(),
*m_layer.layoutObject()
->paintProperties()
->localBorderBoxProperties(),
success);
DCHECK(success);
-
+ clippedRectInLocalSpace.moveBy(
+ -FloatPoint(m_layer.layoutObject()->paintOffset()));
return LayoutRect(clippedRectInLocalSpace);
}
@@ -255,21 +259,22 @@ LayoutRect PaintLayerClipper::localClipRect(
void PaintLayerClipper::mapLocalToRootWithGeometryMapper(
const ClipRectsContext& context,
- LayoutRect& layoutRect) const {
+ LayoutRect& rectToMap) const {
DCHECK(m_geometryMapper);
bool success;
const auto* layerBorderBoxProperties =
m_layer.layoutObject()->paintProperties()->localBorderBoxProperties();
- FloatRect localRect(layoutRect);
+ FloatRect localRect(rectToMap);
localRect.moveBy(FloatPoint(m_layer.layoutObject()->paintOffset()));
- layoutRect = LayoutRect(m_geometryMapper->mapRectToDestinationSpace(
+ rectToMap = LayoutRect(m_geometryMapper->mapRectToDestinationSpace(
localRect, *layerBorderBoxProperties, *context.rootLayer->layoutObject()
->paintProperties()
->localBorderBoxProperties(),
success));
DCHECK(success);
+ rectToMap.moveBy(-context.rootLayer->layoutObject()->paintOffset());
}
void PaintLayerClipper::calculateRectsWithGeometryMapper(
@@ -437,25 +442,40 @@ ClipRect PaintLayerClipper::clipRectWithGeometryMapper(
bool success = false;
const auto* properties = m_layer.layoutObject()->paintProperties();
DCHECK(properties && properties->localBorderBoxProperties());
- PropertyTreeState propertyTreeState =
*properties->localBorderBoxProperties();
-
- if (isForeground && shouldClipOverflow(context) &&
properties->overflowClip())
- propertyTreeState.setClip(properties->overflowClip());
+ PropertyTreeState propertyTreeState =
*properties->localBorderBoxProperties();
const auto* ancestorProperties =
context.rootLayer->layoutObject()->paintProperties();
DCHECK(ancestorProperties && ancestorProperties->localBorderBoxProperties());
PropertyTreeState destinationPropertyTreeState =
*ancestorProperties->localBorderBoxProperties();
- if (!context.rootLayer->clipper().shouldRespectOverflowClip(context)) {
- if (ancestorProperties->overflowClip())
+
+ if (&m_layer == context.rootLayer) {
+ // Set the overflow clip for |propertyTreeState| so that it differs from
+ // |destinationPropertyTreeState| in its clip.
+ if (isForeground && context.respectOverflowClip == RespectOverflowClip &&
+ properties->overflowClip())
+ propertyTreeState.setClip(properties->overflowClip());
+ } else {
+ // Set the clip of |destinationPropertyTreeState| to be inside the
+ // ancestor's overflow clip, so that that clip is not applied.
+ if (context.respectOverflowClip == IgnoreOverflowClip &&
+ ancestorProperties->overflowClip())
destinationPropertyTreeState.setClip(ancestorProperties->overflowClip());
+
+ // Set the overflow clip for |propertyTreeState| so that it differs from
+ // destinationPropertyTreeState| in its clip.
+ if (isForeground && properties->overflowClip())
+ propertyTreeState.setClip(properties->overflowClip());
}
+
FloatRect clippedRectInRootLayerSpace =
m_geometryMapper->mapToVisualRectInDestinationSpace(
FloatRect(source), propertyTreeState, destinationPropertyTreeState,
success);
DCHECK(success);
+ clippedRectInRootLayerSpace.moveBy(
+ -FloatPoint(context.rootLayer->layoutObject()->paintOffset()));
return ClipRect(LayoutRect(clippedRectInRootLayerSpace));
}
The CQ bit was checked by chrishtr@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from wkorman@chromium.org Link to the patchset: https://codereview.chromium.org/2621243002/#ps180001 (title: "none")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Failed to apply patch for
third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:
While running git apply --index -p1;
error: patch failed:
third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:210
error: third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp: patch does
not apply
Patch: third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp
Index: third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp
diff --git a/third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp
b/third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp
index
600c75a3d0a78865a2c3fde9927bec84ffda81ff..e8bcddf533bc8ec4ee98d03157c17c813f9ebea6
100644
--- a/third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp
+++ b/third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp
@@ -210,12 +210,16 @@ LayoutRect PaintLayerClipper::localClipRect(
const PaintLayer* clippingRootLayer) const {
ClipRectsContext context(clippingRootLayer, PaintingClipRects);
if (m_geometryMapper) {
- ClipRect clipRect = applyOverflowClipToBackgroundRectWithGeometryMapper(
- context, clipRectWithGeometryMapper(context, false));
+ LayoutRect premappedRect =
+ applyOverflowClipToBackgroundRectWithGeometryMapper(
+ context, clipRectWithGeometryMapper(context, false))
+ .rect();
// The rect now needs to be transformed to the local space of this
// PaintLayer.
bool success = false;
+ premappedRect.moveBy(context.rootLayer->layoutObject()->paintOffset());
+
const auto* clipRootLayerTransform = clippingRootLayer->layoutObject()
->paintProperties()
->localBorderBoxProperties()
@@ -225,11 +229,12 @@ LayoutRect PaintLayerClipper::localClipRect(
->localBorderBoxProperties()
->transform();
FloatRect clippedRectInLocalSpace =
- m_geometryMapper->sourceToDestinationRect(FloatRect(clipRect.rect()),
+ m_geometryMapper->sourceToDestinationRect(FloatRect(premappedRect),
clipRootLayerTransform,
layerTransform, success);
DCHECK(success);
-
+ clippedRectInLocalSpace.moveBy(
+ -FloatPoint(m_layer.layoutObject()->paintOffset()));
return LayoutRect(clippedRectInLocalSpace);
}
@@ -258,7 +263,7 @@ LayoutRect PaintLayerClipper::localClipRect(
void PaintLayerClipper::mapLocalToRootWithGeometryMapper(
const ClipRectsContext& context,
- LayoutRect& layoutRect) const {
+ LayoutRect& rectToMap) const {
DCHECK(m_geometryMapper);
bool success;
@@ -271,11 +276,12 @@ void PaintLayerClipper::mapLocalToRootWithGeometryMapper(
->localBorderBoxProperties()
->transform();
- FloatRect localRect(layoutRect);
+ FloatRect localRect(rectToMap);
localRect.moveBy(FloatPoint(m_layer.layoutObject()->paintOffset()));
- layoutRect = LayoutRect(m_geometryMapper->sourceToDestinationRect(
+ rectToMap = LayoutRect(m_geometryMapper->sourceToDestinationRect(
localRect, layerTransform, rootTransform, success));
DCHECK(success);
+ rectToMap.moveBy(-context.rootLayer->layoutObject()->paintOffset());
}
void PaintLayerClipper::calculateRectsWithGeometryMapper(
@@ -443,25 +449,40 @@ ClipRect PaintLayerClipper::clipRectWithGeometryMapper(
bool success = false;
const auto* properties = m_layer.layoutObject()->paintProperties();
DCHECK(properties && properties->localBorderBoxProperties());
- PropertyTreeState propertyTreeState =
*properties->localBorderBoxProperties();
-
- if (isForeground && shouldClipOverflow(context) &&
properties->overflowClip())
- propertyTreeState.setClip(properties->overflowClip());
+ PropertyTreeState propertyTreeState =
*properties->localBorderBoxProperties();
const auto* ancestorProperties =
context.rootLayer->layoutObject()->paintProperties();
DCHECK(ancestorProperties && ancestorProperties->localBorderBoxProperties());
PropertyTreeState destinationPropertyTreeState =
*ancestorProperties->localBorderBoxProperties();
- if (!context.rootLayer->clipper().shouldRespectOverflowClip(context)) {
- if (ancestorProperties->overflowClip())
+
+ if (&m_layer == context.rootLayer) {
+ // Set the overflow clip for |propertyTreeState| so that it differs from
+ // |destinationPropertyTreeState| in its clip.
+ if (isForeground && context.respectOverflowClip == RespectOverflowClip &&
+ properties->overflowClip())
+ propertyTreeState.setClip(properties->overflowClip());
+ } else {
+ // Set the clip of |destinationPropertyTreeState| to be inside the
+ // ancestor's overflow clip, so that that clip is not applied.
+ if (context.respectOverflowClip == IgnoreOverflowClip &&
+ ancestorProperties->overflowClip())
destinationPropertyTreeState.setClip(ancestorProperties->overflowClip());
+
+ // Set the overflow clip for |propertyTreeState| so that it differs from
+ // destinationPropertyTreeState| in its clip.
+ if (isForeground && properties->overflowClip())
+ propertyTreeState.setClip(properties->overflowClip());
}
+
FloatRect clippedRectInRootLayerSpace =
m_geometryMapper->sourceToDestinationVisualRect(
FloatRect(source), propertyTreeState, destinationPropertyTreeState,
success);
DCHECK(success);
+ clippedRectInRootLayerSpace.moveBy(
+ -FloatPoint(context.rootLayer->layoutObject()->paintOffset()));
return ClipRect(LayoutRect(clippedRectInRootLayerSpace));
}
The CQ bit was checked by chrishtr@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from wkorman@chromium.org Link to the patchset: https://codereview.chromium.org/2621243002/#ps200001 (title: "none")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by chrishtr@chromium.org
The CQ bit was checked by chrishtr@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from wkorman@chromium.org Link to the patchset: https://codereview.chromium.org/2621243002/#ps260001 (title: "none")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch.
Bot data: {"patchset_id": 260001, "attempt_start_ts": 1484347581185410,
"parent_rev": "519589379f0aa766e7fe2357515b0f506f001d12", "commit_rev":
"013d385f0e25567c5f91eb440e5d5c092e1bb0e1"}
Message was sent while issue was closed.
Description was changed from ========== Fix paint offset and clips in SPv2. Previously we neglected to adjust for the paint offset of a LayoutObject within its transform space. Furthermore, we had some corner-case bugs in clipping. The former is tested by the newly added test as well as PaintLayerTest.CompositedBoundsAbsPosGrandchild. The latter is tested by three of the existing PaintLayerClipper tests. BUG=671864 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Fix paint offset and clips in SPv2. Previously we neglected to adjust for the paint offset of a LayoutObject within its transform space. Furthermore, we had some corner-case bugs in clipping. The former is tested by the newly added test as well as PaintLayerTest.CompositedBoundsAbsPosGrandchild. The latter is tested by three of the existing PaintLayerClipper tests. BUG=671864 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2621243002 Cr-Commit-Position: refs/heads/master@{#443743} Committed: https://chromium.googlesource.com/chromium/src/+/013d385f0e25567c5f91eb440e5d... ==========
Message was sent while issue was closed.
Committed patchset #14 (id:260001) as https://chromium.googlesource.com/chromium/src/+/013d385f0e25567c5f91eb440e5d... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
