Commit d250ba60 authored by Philip Rogers's avatar Philip Rogers Committed by Commit Bot

Remove the ClipsCompositingDescendants compositing reason

We no longer need to composite for clipping because the clip can be
applied in the compositor via property trees.

Change-Id: I740cd8e7b247a7f8bcd98562daedaeef7f1efca3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2235638
Commit-Queue: Philip Rogers <pdr@chromium.org>
Reviewed-by: default avatarXianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#777524}
parent af3d6f16
......@@ -2061,15 +2061,6 @@ void StyleEngine::ViewportDefiningElementDidChange() {
// ViewportDefiningElement changes in order to trigger an update of
// HasOverflowClip() and the PaintLayer in StyleDidChange().
layout_object->SetStyle(ComputedStyle::Clone(*layout_object->Style()));
// CompositingReason::kClipsCompositingDescendants depends on the root
// element having a clip-related style. Since style update due to changes of
// viewport-defining element don't end up as a StyleDifference, we need a
// special dirty bit for this situation.
if (layout_object->HasLayer()) {
ToLayoutBoxModelObject(layout_object)
->Layer()
->SetNeedsCompositingReasonsUpdate();
}
}
}
......
......@@ -81,9 +81,6 @@ CompositingReasonFinder::PotentialCompositingReasonsFromStyle(
if (layout_object.HasReflection())
reasons |= CompositingReason::kReflectionWithCompositedDescendants;
if (layout_object.HasClipRelatedProperty())
reasons |= CompositingReason::kClipsCompositingDescendants;
DCHECK(!(reasons & ~CompositingReason::kComboAllStyleDeterminedReasons));
return reasons;
}
......
......@@ -590,17 +590,11 @@ void CompositingRequirementsUpdater::UpdateRecursive(
current_recursion_data.subtree_is_compositing_ = true;
// Turn overlap testing off for later layers if it's already off, or if we
// have an animating transform. Note that if the layer clips its
// descendants, there's no reason to propagate the child animation to the
// parent layers. That's because we know for sure the animation is contained
// inside the clipping rectangle, which is already added to the overlap map.
bool is_composited_clipping_layer =
can_be_composited && (reasons_to_composite &
CompositingReason::kClipsCompositingDescendants);
if ((!child_recursion_data.testing_overlap_ &&
!is_composited_clipping_layer) ||
layer->GetLayoutObject().StyleRef().HasCurrentTransformAnimation())
// have an animating transform.
if (!child_recursion_data.testing_overlap_ ||
layer->GetLayoutObject().StyleRef().HasCurrentTransformAnimation()) {
current_recursion_data.testing_overlap_ = false;
}
if (child_recursion_data.compositing_ancestor_ == layer ||
contains_composited_layer) {
......
......@@ -54,33 +54,6 @@ TEST_F(CompositingRequirementsUpdaterTest,
EXPECT_EQ(CompositingReason::kOverlap, target->GetCompositingReasons());
}
TEST_F(CompositingRequirementsUpdaterTest,
NoDescendantReasonForNonSelfPaintingLayer) {
SetBodyInnerHTML(R"HTML(
<style>
#target {
overflow: auto;
width: 100px;
height: 100px;
}
</style>
<div id=target>
<div style="backface-visibility: hidden"></div>
</div>
)HTML");
PaintLayer* target =
ToLayoutBoxModelObject(GetLayoutObjectByElementId("target"))->Layer();
EXPECT_FALSE(target->GetCompositingReasons());
// Now make |target| self-painting.
GetDocument().getElementById("target")->setAttribute(html_names::kStyleAttr,
"position: relative");
UpdateAllLifecyclePhasesForTest();
EXPECT_EQ(CompositingReason::kClipsCompositingDescendants,
target->GetCompositingReasons());
}
// This test sets up a situation where a squashed PaintLayer loses its
// backing, but does not change visual rect. Therefore the compositing system
// must invalidate it because of change of backing.
......
......@@ -90,10 +90,6 @@ constexpr CompositingReasonStringMap kCompositingReasonsStringMap[] = {
"blendingWithCompositedDescendants",
"Has a blending effect that needs to be known by compositor because of "
"composited descendants"},
{CompositingReason::kClipsCompositingDescendants,
"clipsCompositingDescendants",
"Has a clip that needs to be known by compositor because of composited "
"descendants"},
{CompositingReason::kPerspectiveWith3DDescendants,
"perspectiveWith3DDescendants",
"Has a perspective transform that needs to be known by compositor because "
......
......@@ -59,7 +59,6 @@ using CompositingReasons = uint64_t;
V(ReflectionWithCompositedDescendants) \
V(FilterWithCompositedDescendants) \
V(BlendingWithCompositedDescendants) \
V(ClipsCompositingDescendants) \
V(PerspectiveWith3DDescendants) \
V(Preserve3DWith3DDescendants) \
V(IsolateCompositedDescendants) \
......@@ -142,7 +141,7 @@ class PLATFORM_EXPORT CompositingReason {
kIsolateCompositedDescendants | kOpacityWithCompositedDescendants |
kMaskWithCompositedDescendants | kFilterWithCompositedDescendants |
kBlendingWithCompositedDescendants |
kReflectionWithCompositedDescendants | kClipsCompositingDescendants,
kReflectionWithCompositedDescendants,
kCombo3DDescendants =
kPreserve3DWith3DDescendants | kPerspectiveWith3DDescendants,
......
......@@ -15,18 +15,11 @@ Test CSS clip with composited layers. Left and right sides should look the same.
"backgroundColor": "#808080",
"transform": 2
},
{
"name": "LayoutNGBlockFlow (positioned) DIV class='box'",
"bounds": [100, 100],
"contentsOpaque": true,
"backgroundColor": "#808080",
"transform": 3
},
{
"name": "LayoutNGBlockFlow (relative positioned) DIV class='composited inner'",
"bounds": [120, 120],
"backgroundColor": "#00000033",
"transform": 5
"transform": 4
}
],
"transforms": [
......@@ -55,22 +48,12 @@ Test CSS clip with composited layers. Left and right sides should look the same.
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[220, 20, 0, 1]
[210, 10, 0, 1]
]
},
{
"id": 4,
"parent": 3,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[-10, -10, 0, 1]
]
},
{
"id": 5,
"parent": 4,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
......
......@@ -16,19 +16,11 @@ Test CSS clip with composited layers. Left and right sides should look the same.
"backgroundColor": "#808080",
"transform": 2
},
{
"name": "LayoutNGBlockFlow (positioned) DIV class='box'",
"position": [5, 15],
"bounds": [90, 80],
"contentsOpaque": true,
"backgroundColor": "#808080",
"transform": 3
},
{
"name": "LayoutNGBlockFlow (relative positioned) DIV class='composited inner'",
"bounds": [120, 120],
"backgroundColor": "#00000033",
"transform": 5
"transform": 4
}
],
"transforms": [
......@@ -57,22 +49,12 @@ Test CSS clip with composited layers. Left and right sides should look the same.
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[220, 20, 0, 1]
[210, 10, 0, 1]
]
},
{
"id": 4,
"parent": 3,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[-10, -10, 0, 1]
]
},
{
"id": 5,
"parent": 4,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
......
......@@ -13,18 +13,11 @@
"backgroundColor": "#808080",
"transform": 2
},
{
"name": "LayoutNGBlockFlow (positioned) DIV class='box'",
"position": [-2, -2],
"bounds": [106, 106],
"backgroundColor": "#808080",
"transform": 3
},
{
"name": "LayoutNGBlockFlow (relative positioned) DIV class='composited inner'",
"bounds": [120, 120],
"backgroundColor": "#00000033",
"transform": 5
"transform": 4
}
],
"transforms": [
......@@ -53,22 +46,12 @@
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[220, 20, 0, 1]
[210, 10, 0, 1]
]
},
{
"id": 4,
"parent": 3,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[-10, -10, 0, 1]
]
},
{
"id": 5,
"parent": 4,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
......
......@@ -6,25 +6,26 @@
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutNGBlockFlow (relative positioned) DIV class='container'",
"bounds": [122, 242],
"transform": 1
},
{
"name": "LayoutNGBlockFlow (relative positioned) DIV id='to-animate' class='animating box'",
"bounds": [100, 100],
"contentsOpaque": true,
"backgroundColor": "#0000FF",
"transform": 3
"transform": 2
},
{
"name": "LayoutNGBlockFlow (relative positioned) DIV class='box'",
"position": [11, 121],
"position": [19, 129],
"bounds": [100, 100],
"contentsOpaque": true,
"backgroundColor": "#0000FF",
"transform": 1
"backgroundColor": "#0000FF"
},
{
"name": "LayoutNGBlockFlow (relative positioned) DIV class='box'",
"position": [18, 260],
"bounds": [100, 100],
"contentsOpaque": true,
"backgroundColor": "#0000FF"
}
],
"transforms": [
......@@ -40,16 +41,6 @@
{
"id": 2,
"parent": 1,
"transform": [
[...],
[...],
[...],
[...]
]
},
{
"id": 3,
"parent": 2,
"transform": [
[...],
[...],
......
......@@ -6,11 +6,6 @@
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutNGBlockFlow (positioned) DIV class='container clips'",
"bounds": [100, 100],
"transform": 1
},
{
"name": "LayoutNGBlockFlow (positioned) DIV class='under composited'",
"bounds": [100, 100],
......
......@@ -6,17 +6,12 @@
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutNGBlockFlow (relative positioned) DIV class='container'",
"bounds": [122, 242],
"transform": 1
},
{
"name": "LayoutNGBlockFlow (relative positioned) DIV class='transformed box'",
"bounds": [100, 100],
"contentsOpaque": true,
"backgroundColor": "#0000FF",
"transform": 3
"transform": 2
}
],
"transforms": [
......@@ -26,22 +21,12 @@
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[8, 8, 0, 1]
[19, 19, 0, 1]
]
},
{
"id": 2,
"parent": 1,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[11, 11, 0, 1]
]
},
{
"id": 3,
"parent": 2,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
......
......@@ -6,57 +6,33 @@
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutNGBlockFlow (positioned) DIV class='container'",
"position": [20, 10],
"bounds": [60, 70],
"transform": 1
},
{
"name": "LayoutNGBlockFlow DIV class='box'",
"bounds": [100, 150],
"contentsOpaque": true,
"backgroundColor": "#808080",
"transform": 3
},
{
"name": "LayoutNGBlockFlow (positioned) DIV class='container'",
"position": [20, 10],
"bounds": [60, 70],
"transform": 4
"transform": 2
},
{
"name": "LayoutNGBlockFlow DIV class='box'",
"bounds": [100, 150],
"contentsOpaque": true,
"backgroundColor": "#808080",
"transform": 6
},
{
"name": "LayoutNGBlockFlow (positioned) DIV class='container'",
"position": [20, 10],
"bounds": [60, 70],
"transform": 7
"transform": 4
},
{
"name": "LayoutNGBlockFlow DIV class='box'",
"bounds": [100, 150],
"contentsOpaque": true,
"backgroundColor": "#808080",
"transform": 9
},
{
"name": "LayoutNGBlockFlow (positioned) DIV class='container'",
"position": [20, 10],
"bounds": [60, 70],
"transform": 10
"transform": 6
},
{
"name": "LayoutNGBlockFlow DIV class='box'",
"bounds": [100, 150],
"contentsOpaque": true,
"backgroundColor": "#808080",
"transform": 12
"transform": 8
}
],
"transforms": [
......@@ -66,7 +42,7 @@
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[28, 28, 0, 1]
[50, 50, 0, 1]
]
},
{
......@@ -76,36 +52,35 @@
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[22, 22, 0, 1]
[0, 0, 1, 1]
]
},
{
"id": 3,
"parent": 2,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 1, 1]
[242, 50, 0, 1]
]
},
{
"id": 4,
"parent": 3,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[220, 28, 0, 1]
[0, 0, 1, 1]
]
},
{
"id": 5,
"parent": 4,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[22, 22, 0, 1]
[50, 242, 0, 1]
]
},
{
......@@ -124,51 +99,12 @@
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[28, 220, 0, 1]
[242, 242, 0, 1]
]
},
{
"id": 8,
"parent": 7,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[22, 22, 0, 1]
]
},
{
"id": 9,
"parent": 8,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 1, 1]
]
},
{
"id": 10,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[220, 220, 0, 1]
]
},
{
"id": 11,
"parent": 10,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[22, 22, 0, 1]
]
},
{
"id": 12,
"parent": 11,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
......
......@@ -6,11 +6,6 @@
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutNGBlockFlow (relative positioned) DIV id='positioned'",
"bounds": [1200, 800],
"transform": 1
},
{
"name": "LayoutNGBlockFlow DIV id='scroller'",
"bounds": [1200, 1000],
......
......@@ -6,11 +6,6 @@
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutNGBlockFlow DIV",
"bounds": [240, 240],
"transform": 2
},
{
"name": "LayoutNGBlockFlow DIV",
"bounds": [400, 400],
......
......@@ -90,17 +90,11 @@
"bounds": [352, 294],
"transform": 7
},
{
"name": "LayoutNGBlockFlow (relative positioned) DIV class='clipper'",
"position": [-7, -7],
"bounds": [292, 200],
"transform": 8
},
{
"name": "LayoutNGBlockFlow DIV class='scroller'",
"position": [-30, -30],
"bounds": [290, 230],
"transform": 9
"transform": 8
},
{
"name": "Scrolling Contents Layer",
......@@ -108,13 +102,13 @@
"bounds": [220, 236],
"contentsOpaque": true,
"backgroundColor": "#FFFFFF",
"transform": 9
"transform": 8
},
{
"name": "ContentsLayer for Vertical Scrollbar Layer",
"position": [218, 5],
"bounds": [7, 160],
"transform": 9
"transform": 8
}
],
"transforms": [
......@@ -191,17 +185,7 @@
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[16, 16, 0, 1]
]
},
{
"id": 9,
"parent": 8,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[24, 24, 0, 1]
[40, 40, 0, 1]
]
}
]
......
......@@ -6,10 +6,6 @@
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutNGBlockFlow (positioned) DIV class='container'",
"bounds": [200, 200]
},
{
"name": "LayoutNGBlockFlow DIV class='composited box'",
"bounds": [10, 10],
......
......@@ -6,11 +6,6 @@
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutNGBlockFlow (positioned) DIV id='outer'",
"bounds": [300, 300],
"transform": 1
},
{
"name": "LayoutNGBlockFlow DIV id='content'",
"bounds": [285, 1000],
......
{
"layers": [
{
"name": "Scrolling background of LayoutView #document",
"bounds": [800, 600],
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutNGBlockFlow DIV class='composited box'",
"bounds": [10, 10],
"drawsContent": false
}
]
}
......@@ -15,18 +15,11 @@ Test CSS clip with composited layers. Left and right sides should look the same.
"backgroundColor": "#808080",
"transform": 2
},
{
"name": "LayoutBlockFlow (positioned) DIV class='box'",
"bounds": [100, 100],
"contentsOpaque": true,
"backgroundColor": "#808080",
"transform": 3
},
{
"name": "LayoutBlockFlow (relative positioned) DIV class='composited inner'",
"bounds": [120, 120],
"backgroundColor": "#00000033",
"transform": 5
"transform": 4
}
],
"transforms": [
......@@ -55,22 +48,12 @@ Test CSS clip with composited layers. Left and right sides should look the same.
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[220, 20, 0, 1]
[210, 10, 0, 1]
]
},
{
"id": 4,
"parent": 3,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[-10, -10, 0, 1]
]
},
{
"id": 5,
"parent": 4,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
......
......@@ -16,19 +16,11 @@ Test CSS clip with composited layers. Left and right sides should look the same.
"backgroundColor": "#808080",
"transform": 2
},
{
"name": "LayoutBlockFlow (positioned) DIV class='box'",
"position": [5, 15],
"bounds": [90, 80],
"contentsOpaque": true,
"backgroundColor": "#808080",
"transform": 3
},
{
"name": "LayoutBlockFlow (relative positioned) DIV class='composited inner'",
"bounds": [120, 120],
"backgroundColor": "#00000033",
"transform": 5
"transform": 4
}
],
"transforms": [
......@@ -57,22 +49,12 @@ Test CSS clip with composited layers. Left and right sides should look the same.
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[220, 20, 0, 1]
[210, 10, 0, 1]
]
},
{
"id": 4,
"parent": 3,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[-10, -10, 0, 1]
]
},
{
"id": 5,
"parent": 4,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
......
......@@ -13,18 +13,11 @@
"backgroundColor": "#808080",
"transform": 2
},
{
"name": "LayoutBlockFlow (positioned) DIV class='box'",
"position": [-2, -2],
"bounds": [106, 106],
"backgroundColor": "#808080",
"transform": 3
},
{
"name": "LayoutBlockFlow (relative positioned) DIV class='composited inner'",
"bounds": [120, 120],
"backgroundColor": "#00000033",
"transform": 5
"transform": 4
}
],
"transforms": [
......@@ -53,22 +46,12 @@
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[220, 20, 0, 1]
[210, 10, 0, 1]
]
},
{
"id": 4,
"parent": 3,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[-10, -10, 0, 1]
]
},
{
"id": 5,
"parent": 4,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
......
......@@ -6,25 +6,26 @@
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutBlockFlow (relative positioned) DIV class='container'",
"bounds": [122, 242],
"transform": 1
},
{
"name": "LayoutBlockFlow (relative positioned) DIV id='to-animate' class='animating box'",
"bounds": [100, 100],
"contentsOpaque": true,
"backgroundColor": "#0000FF",
"transform": 3
"transform": 2
},
{
"name": "LayoutBlockFlow (relative positioned) DIV class='box'",
"position": [11, 121],
"position": [19, 129],
"bounds": [100, 100],
"contentsOpaque": true,
"backgroundColor": "#0000FF",
"transform": 1
"backgroundColor": "#0000FF"
},
{
"name": "LayoutBlockFlow (relative positioned) DIV class='box'",
"position": [18, 260],
"bounds": [100, 100],
"contentsOpaque": true,
"backgroundColor": "#0000FF"
}
],
"transforms": [
......@@ -40,16 +41,6 @@
{
"id": 2,
"parent": 1,
"transform": [
[...],
[...],
[...],
[...]
]
},
{
"id": 3,
"parent": 2,
"transform": [
[...],
[...],
......
......@@ -6,11 +6,6 @@
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutBlockFlow (positioned) DIV class='container clips'",
"bounds": [100, 100],
"transform": 1
},
{
"name": "LayoutBlockFlow (positioned) DIV class='under composited'",
"bounds": [100, 100],
......
......@@ -6,17 +6,12 @@
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutBlockFlow (relative positioned) DIV class='container'",
"bounds": [122, 242],
"transform": 1
},
{
"name": "LayoutBlockFlow (relative positioned) DIV class='transformed box'",
"bounds": [100, 100],
"contentsOpaque": true,
"backgroundColor": "#0000FF",
"transform": 3
"transform": 2
}
],
"transforms": [
......@@ -26,22 +21,12 @@
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[8, 8, 0, 1]
[19, 19, 0, 1]
]
},
{
"id": 2,
"parent": 1,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[11, 11, 0, 1]
]
},
{
"id": 3,
"parent": 2,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
......
......@@ -6,57 +6,33 @@
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutBlockFlow (positioned) DIV class='container'",
"position": [20, 10],
"bounds": [60, 70],
"transform": 1
},
{
"name": "LayoutBlockFlow DIV class='box'",
"bounds": [100, 150],
"contentsOpaque": true,
"backgroundColor": "#808080",
"transform": 3
},
{
"name": "LayoutBlockFlow (positioned) DIV class='container'",
"position": [20, 10],
"bounds": [60, 70],
"transform": 4
"transform": 2
},
{
"name": "LayoutBlockFlow DIV class='box'",
"bounds": [100, 150],
"contentsOpaque": true,
"backgroundColor": "#808080",
"transform": 6
},
{
"name": "LayoutBlockFlow (positioned) DIV class='container'",
"position": [20, 10],
"bounds": [60, 70],
"transform": 7
"transform": 4
},
{
"name": "LayoutBlockFlow DIV class='box'",
"bounds": [100, 150],
"contentsOpaque": true,
"backgroundColor": "#808080",
"transform": 9
},
{
"name": "LayoutBlockFlow (positioned) DIV class='container'",
"position": [20, 10],
"bounds": [60, 70],
"transform": 10
"transform": 6
},
{
"name": "LayoutBlockFlow DIV class='box'",
"bounds": [100, 150],
"contentsOpaque": true,
"backgroundColor": "#808080",
"transform": 12
"transform": 8
}
],
"transforms": [
......@@ -66,7 +42,7 @@
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[28, 28, 0, 1]
[50, 50, 0, 1]
]
},
{
......@@ -76,36 +52,35 @@
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[22, 22, 0, 1]
[0, 0, 1, 1]
]
},
{
"id": 3,
"parent": 2,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 1, 1]
[242, 50, 0, 1]
]
},
{
"id": 4,
"parent": 3,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[220, 28, 0, 1]
[0, 0, 1, 1]
]
},
{
"id": 5,
"parent": 4,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[22, 22, 0, 1]
[50, 242, 0, 1]
]
},
{
......@@ -124,51 +99,12 @@
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[28, 220, 0, 1]
[242, 242, 0, 1]
]
},
{
"id": 8,
"parent": 7,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[22, 22, 0, 1]
]
},
{
"id": 9,
"parent": 8,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 1, 1]
]
},
{
"id": 10,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[220, 220, 0, 1]
]
},
{
"id": 11,
"parent": 10,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[22, 22, 0, 1]
]
},
{
"id": 12,
"parent": 11,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
......
......@@ -6,11 +6,6 @@
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutBlockFlow (relative positioned) DIV id='positioned'",
"bounds": [1200, 800],
"transform": 1
},
{
"name": "LayoutBlockFlow DIV id='scroller'",
"bounds": [1200, 1000],
......
......@@ -6,11 +6,6 @@
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutBlockFlow DIV",
"bounds": [240, 240],
"transform": 2
},
{
"name": "LayoutBlockFlow DIV",
"bounds": [400, 400],
......
......@@ -90,17 +90,11 @@
"bounds": [352, 294],
"transform": 7
},
{
"name": "LayoutBlockFlow (relative positioned) DIV class='clipper'",
"position": [-7, -7],
"bounds": [292, 200],
"transform": 8
},
{
"name": "LayoutBlockFlow DIV class='scroller'",
"position": [-30, -30],
"bounds": [290, 230],
"transform": 9
"transform": 8
},
{
"name": "Scrolling Contents Layer",
......@@ -108,13 +102,13 @@
"bounds": [220, 236],
"contentsOpaque": true,
"backgroundColor": "#FFFFFF",
"transform": 9
"transform": 8
},
{
"name": "ContentsLayer for Vertical Scrollbar Layer",
"position": [218, 5],
"bounds": [7, 160],
"transform": 9
"transform": 8
}
],
"transforms": [
......@@ -191,17 +185,7 @@
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[16, 16, 0, 1]
]
},
{
"id": 9,
"parent": 8,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[24, 24, 0, 1]
[40, 40, 0, 1]
]
}
]
......
......@@ -6,10 +6,6 @@
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutBlockFlow (positioned) DIV class='container'",
"bounds": [200, 200]
},
{
"name": "LayoutBlockFlow DIV class='composited box'",
"bounds": [10, 10],
......
......@@ -6,11 +6,6 @@
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutBlockFlow (positioned) DIV id='outer'",
"bounds": [300, 300],
"transform": 1
},
{
"name": "LayoutBlockFlow DIV id='content'",
"bounds": [285, 1000],
......
{
"layers": [
{
"name": "Scrolling Contents Layer",
"bounds": [1208, 821],
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutBlockFlow DIV id='scroller'",
"bounds": [1200, 1000],
"transform": 1
},
{
"name": "Scrolling Contents Layer",
"bounds": [1200, 10000],
"transform": 1
},
{
"name": "ContentsLayer for Vertical Scrollbar Layer",
"position": [1193, 0],
"bounds": [7, 1000],
"transform": 1
},
{
"name": "ContentsLayer for Horizontal Scrollbar Layer",
"position": [0, 593],
"bounds": [793, 7]
},
{
"name": "ContentsLayer for Vertical Scrollbar Layer",
"position": [793, 0],
"bounds": [7, 593]
},
{
"name": "Scroll Corner Layer",
"position": [793, 593],
"bounds": [7, 7]
}
],
"transforms": [
{
"id": 1,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[8, 8, 0, 1]
]
}
]
}
{
"layers": [
{
"name": "Scrolling Contents Layer",
"bounds": [800, 600],
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutBlockFlow DIV",
"bounds": [400, 400],
"contentsOpaque": true,
"backgroundColor": "#0000FF",
"transform": 3
}
],
"transforms": [
{
"id": 1,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[108, 100, 0, 1]
]
},
{
"id": 2,
"parent": 1,
"transform": [
[0.707106781186548, 0.707106781186548, 0, 0],
[-0.707106781186548, 0.707106781186548, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]
],
"origin": [120, 120]
},
{
"id": 3,
"parent": 2,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[20, 20, 0, 1]
]
}
]
}
{
"layers": [
{
"name": "Scrolling Contents Layer",
"bounds": [800, 600],
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutBlockFlow DIV class='composited box'",
"bounds": [10, 10],
"drawsContent": false
},
{
"name": "LayoutBlockFlow PRE id='layer-tree'",
"bounds": [800, 16]
}
]
}
{
"layers": [
{
"name": "Scrolling Contents Layer",
"bounds": [800, 600],
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutNGBlockFlow DIV",
"bounds": [400, 400],
"contentsOpaque": true,
"backgroundColor": "#0000FF",
"transform": 3
}
],
"transforms": [
{
"id": 1,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[108, 100, 0, 1]
]
},
{
"id": 2,
"parent": 1,
"transform": [
[0.707106781186548, 0.707106781186548, 0, 0],
[-0.707106781186548, 0.707106781186548, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]
],
"origin": [120, 120]
},
{
"id": 3,
"parent": 2,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[20, 20, 0, 1]
]
}
]
}
{
"layers": [
{
"name": "Scrolling Contents Layer",
"bounds": [800, 600],
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutNGBlockFlow DIV class='composited box'",
"bounds": [10, 10],
"drawsContent": false
},
{
"name": "LayoutNGBlockFlow PRE id='layer-tree'",
"bounds": [800, 16]
}
]
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment