Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(227)

Side by Side Diff: third_party/WebKit/Source/core/paint/PaintLayerTest.cpp

Issue 2549353002: Implement PaintLayer::scrollsWithViewport for SPv2. (Closed)
Patch Set: none Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/paint/PaintLayer.h" 5 #include "core/paint/PaintLayer.h"
6 6
7 #include "core/html/HTMLIFrameElement.h" 7 #include "core/html/HTMLIFrameElement.h"
8 #include "core/layout/LayoutBoxModelObject.h" 8 #include "core/layout/LayoutBoxModelObject.h"
9 #include "core/layout/LayoutTestHelper.h" 9 #include "core/layout/LayoutTestHelper.h"
10 #include "core/layout/LayoutView.h" 10 #include "core/layout/LayoutView.h"
11 #include "platform/testing/RuntimeEnabledFeaturesTestHelpers.h"
11 #include "platform/testing/UnitTestHelpers.h" 12 #include "platform/testing/UnitTestHelpers.h"
12 13
13 namespace blink { 14 namespace blink {
14 15
15 class PaintLayerTest : public RenderingTest { 16 typedef std::pair<bool, bool> SlimmingPaintAndRootLayerScrolling;
17 class PaintLayerTest
18 : public ::testing::WithParamInterface<SlimmingPaintAndRootLayerScrolling>,
19 private ScopedSlimmingPaintV2ForTest,
20 private ScopedRootLayerScrollingForTest,
21 public RenderingTest {
16 public: 22 public:
17 PaintLayerTest() : RenderingTest(SingleChildFrameLoaderClient::create()) {} 23 PaintLayerTest()
24 : ScopedSlimmingPaintV2ForTest(GetParam().first),
25 ScopedRootLayerScrollingForTest(GetParam().second),
26 RenderingTest(SingleChildFrameLoaderClient::create()) {}
18 }; 27 };
19 28
20 TEST_F(PaintLayerTest, CompositedBoundsAbsPosGrandchild) { 29 SlimmingPaintAndRootLayerScrolling foo[] = {
30 SlimmingPaintAndRootLayerScrolling(false, false),
31 SlimmingPaintAndRootLayerScrolling(true, false),
32 SlimmingPaintAndRootLayerScrolling(false, true),
33 SlimmingPaintAndRootLayerScrolling(true, true)};
34
35 INSTANTIATE_TEST_CASE_P(All, PaintLayerTest, ::testing::ValuesIn(foo));
36
37 TEST_P(PaintLayerTest, CompositedBoundsAbsPosGrandchild) {
38 // TODO(chrishtr): fix this test for SPv2
pdr. 2016/12/07 00:02:05 Can you file a bug for this?
chrishtr 2016/12/07 01:00:34 Done. crbug.com/671864
39 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled())
40 return;
41
21 setBodyInnerHTML( 42 setBodyInnerHTML(
22 " <div id='parent'><div id='absposparent'><div id='absposchild'>" 43 " <div id='parent'><div id='absposparent'><div id='absposchild'>"
23 " </div></div></div>" 44 " </div></div></div>"
24 "<style>" 45 "<style>"
25 " #parent { position: absolute; z-index: 0; overflow: hidden;" 46 " #parent { position: absolute; z-index: 0; overflow: hidden;"
26 " background: lightgray; width: 150px; height: 150px;" 47 " background: lightgray; width: 150px; height: 150px;"
27 " will-change: transform; }" 48 " will-change: transform; }"
28 " #absposparent { position: absolute; z-index: 0; }" 49 " #absposparent { position: absolute; z-index: 0; }"
29 " #absposchild { position: absolute; top: 0px; left: 0px; height: 200px;" 50 " #absposchild { position: absolute; top: 0px; left: 0px; height: 200px;"
30 " width: 200px; background: lightblue; }</style>"); 51 " width: 200px; background: lightblue; }</style>");
31 52
32 PaintLayer* parentLayer = 53 PaintLayer* parentLayer =
33 toLayoutBoxModelObject(getLayoutObjectByElementId("parent"))->layer(); 54 toLayoutBoxModelObject(getLayoutObjectByElementId("parent"))->layer();
34 // Since "absposchild" is clipped by "parent", it should not expand the 55 // Since "absposchild" is clipped by "parent", it should not expand the
35 // composited bounds for "parent" beyond its intrinsic size of 150x150. 56 // composited bounds for "parent" beyond its intrinsic size of 150x150.
36 EXPECT_EQ(LayoutRect(0, 0, 150, 150), 57 EXPECT_EQ(LayoutRect(0, 0, 150, 150),
37 parentLayer->boundingBoxForCompositing()); 58 parentLayer->boundingBoxForCompositing());
38 } 59 }
39 60
40 TEST_F(PaintLayerTest, PaintingExtentReflection) { 61 TEST_P(PaintLayerTest, PaintingExtentReflection) {
41 setBodyInnerHTML( 62 setBodyInnerHTML(
42 "<div id='target' style='background-color: blue; position: absolute;" 63 "<div id='target' style='background-color: blue; position: absolute;"
43 " width: 110px; height: 120px; top: 40px; left: 60px;" 64 " width: 110px; height: 120px; top: 40px; left: 60px;"
44 " -webkit-box-reflect: below 3px'>" 65 " -webkit-box-reflect: below 3px'>"
45 "</div>"); 66 "</div>");
46 67
47 PaintLayer* layer = 68 PaintLayer* layer =
48 toLayoutBoxModelObject(getLayoutObjectByElementId("target"))->layer(); 69 toLayoutBoxModelObject(getLayoutObjectByElementId("target"))->layer();
49 EXPECT_EQ( 70 EXPECT_EQ(
50 LayoutRect(60, 40, 110, 243), 71 LayoutRect(60, 40, 110, 243),
51 layer->paintingExtent(document().layoutView()->layer(), LayoutSize(), 0)); 72 layer->paintingExtent(document().layoutView()->layer(), LayoutSize(), 0));
52 } 73 }
53 74
54 TEST_F(PaintLayerTest, PaintingExtentReflectionWithTransform) { 75 TEST_P(PaintLayerTest, PaintingExtentReflectionWithTransform) {
55 setBodyInnerHTML( 76 setBodyInnerHTML(
56 "<div id='target' style='background-color: blue; position: absolute;" 77 "<div id='target' style='background-color: blue; position: absolute;"
57 " width: 110px; height: 120px; top: 40px; left: 60px;" 78 " width: 110px; height: 120px; top: 40px; left: 60px;"
58 " -webkit-box-reflect: below 3px; transform: translateX(30px)'>" 79 " -webkit-box-reflect: below 3px; transform: translateX(30px)'>"
59 "</div>"); 80 "</div>");
60 81
61 PaintLayer* layer = 82 PaintLayer* layer =
62 toLayoutBoxModelObject(getLayoutObjectByElementId("target"))->layer(); 83 toLayoutBoxModelObject(getLayoutObjectByElementId("target"))->layer();
63 EXPECT_EQ( 84 EXPECT_EQ(
64 LayoutRect(90, 40, 110, 243), 85 LayoutRect(90, 40, 110, 243),
65 layer->paintingExtent(document().layoutView()->layer(), LayoutSize(), 0)); 86 layer->paintingExtent(document().layoutView()->layer(), LayoutSize(), 0));
66 } 87 }
67 88
68 TEST_F(PaintLayerTest, CompositedScrollingNoNeedsRepaint) { 89 TEST_P(PaintLayerTest, ScrollsWithViewportRelativePosition) {
90 setBodyInnerHTML("<div id='target' style='position: relative'></div>");
91
92 PaintLayer* layer =
93 toLayoutBoxModelObject(getLayoutObjectByElementId("target"))->layer();
94 EXPECT_FALSE(layer->sticksToViewport());
95 }
96
97 TEST_P(PaintLayerTest, ScrollsWithViewportFixedPosition) {
98 setBodyInnerHTML("<div id='target' style='position: fixed'></div>");
99
100 PaintLayer* layer =
101 toLayoutBoxModelObject(getLayoutObjectByElementId("target"))->layer();
102 EXPECT_TRUE(layer->sticksToViewport());
103 }
104
105 TEST_P(PaintLayerTest, ScrollsWithViewportFixedPositionInsideTransform) {
106 // We don't intend to launch SPv2 without root layer scrolling, so skip this
107 // test in that configuration because it's broken.
108 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled() &&
109 !RuntimeEnabledFeatures::rootLayerScrollingEnabled())
110 return;
111 setBodyInnerHTML(
112 "<div style='transform: translateZ(0)'>"
113 " <div id='target' style='position: fixed'></div>"
114 "</div>"
115 "<div style='width: 10px; height: 1000px'></div>");
116 PaintLayer* layer =
117 toLayoutBoxModelObject(getLayoutObjectByElementId("target"))->layer();
118 EXPECT_FALSE(layer->sticksToViewport());
119 }
120
121 TEST_P(PaintLayerTest,
122 ScrollsWithViewportFixedPositionInsideTransformNoScroll) {
123 setBodyInnerHTML(
124 "<div style='transform: translateZ(0)'>"
125 " <div id='target' style='position: fixed'></div>"
126 "</div>");
127 PaintLayer* layer =
128 toLayoutBoxModelObject(getLayoutObjectByElementId("target"))->layer();
129
130 // In SPv2 mode, we correctly determine that the frame doesn't scroll at all,
131 // and so return true.
132 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled())
133 EXPECT_TRUE(layer->sticksToViewport());
134 else
135 EXPECT_FALSE(layer->sticksToViewport());
136 }
137
138 TEST_P(PaintLayerTest, ScrollsWithViewportStickyPosition) {
139 setBodyInnerHTML(
140 "<div style='transform: translateZ(0)'>"
141 " <div id='target' style='position: sticky'></div>"
142 "</div>"
143 "<div style='width: 10px; height: 1000px'></div>");
144
145 PaintLayer* layer =
146 toLayoutBoxModelObject(getLayoutObjectByElementId("target"))->layer();
147 EXPECT_TRUE(layer->sticksToViewport());
148 }
149
150 TEST_P(PaintLayerTest, ScrollsWithViewportStickyPositionNoScroll) {
151 setBodyInnerHTML(
152 "<div style='transform: translateZ(0)'>"
153 " <div id='target' style='position: sticky'></div>"
154 "</div>");
155
156 PaintLayer* layer =
157 toLayoutBoxModelObject(getLayoutObjectByElementId("target"))->layer();
158 EXPECT_TRUE(layer->sticksToViewport());
159 }
160
161 TEST_P(PaintLayerTest, ScrollsWithViewportStickyPositionInsideScroller) {
162 setBodyInnerHTML(
163 "<div style='overflow:scroll; width: 100px; height: 100px;'>"
164 " <div id='target' style='position: sticky'></div>"
165 " <div style='width: 50px; height: 1000px;'></div>"
166 "</div>");
167
168 PaintLayer* layer =
169 toLayoutBoxModelObject(getLayoutObjectByElementId("target"))->layer();
170 EXPECT_FALSE(layer->sticksToViewport());
171 }
172
173 TEST_P(PaintLayerTest, CompositedScrollingNoNeedsRepaint) {
174 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled())
175 return;
176
69 enableCompositing(); 177 enableCompositing();
70 setBodyInnerHTML( 178 setBodyInnerHTML(
71 "<div id='scroll' style='width: 100px; height: 100px; overflow: scroll;" 179 "<div id='scroll' style='width: 100px; height: 100px; overflow: scroll;"
72 " will-change: transform'>" 180 " will-change: transform'>"
73 " <div id='content' style='position: relative; background: blue;" 181 " <div id='content' style='position: relative; background: blue;"
74 " width: 2000px; height: 2000px'></div>" 182 " width: 2000px; height: 2000px'></div>"
75 "</div>"); 183 "</div>");
76 184
77 PaintLayer* scrollLayer = 185 PaintLayer* scrollLayer =
78 toLayoutBoxModelObject(getLayoutObjectByElementId("scroll"))->layer(); 186 toLayoutBoxModelObject(getLayoutObjectByElementId("scroll"))->layer();
79 EXPECT_EQ(PaintsIntoOwnBacking, scrollLayer->compositingState()); 187 EXPECT_EQ(PaintsIntoOwnBacking, scrollLayer->compositingState());
80 188
81 PaintLayer* contentLayer = 189 PaintLayer* contentLayer =
82 toLayoutBoxModelObject(getLayoutObjectByElementId("content"))->layer(); 190 toLayoutBoxModelObject(getLayoutObjectByElementId("content"))->layer();
83 EXPECT_EQ(NotComposited, contentLayer->compositingState()); 191 EXPECT_EQ(NotComposited, contentLayer->compositingState());
84 EXPECT_EQ(LayoutPoint(), contentLayer->location()); 192 EXPECT_EQ(LayoutPoint(), contentLayer->location());
85 193
86 scrollLayer->getScrollableArea()->setScrollOffset(ScrollOffset(1000, 1000), 194 scrollLayer->getScrollableArea()->setScrollOffset(ScrollOffset(1000, 1000),
87 ProgrammaticScroll); 195 ProgrammaticScroll);
88 document().view()->updateAllLifecyclePhasesExceptPaint(); 196 document().view()->updateAllLifecyclePhasesExceptPaint();
89 EXPECT_EQ(LayoutPoint(-1000, -1000), contentLayer->location()); 197 EXPECT_EQ(LayoutPoint(-1000, -1000), contentLayer->location());
90 EXPECT_FALSE(contentLayer->needsRepaint()); 198 EXPECT_FALSE(contentLayer->needsRepaint());
91 EXPECT_FALSE(scrollLayer->needsRepaint()); 199 EXPECT_FALSE(scrollLayer->needsRepaint());
92 document().view()->updateAllLifecyclePhases(); 200 document().view()->updateAllLifecyclePhases();
93 } 201 }
94 202
95 TEST_F(PaintLayerTest, NonCompositedScrollingNeedsRepaint) { 203 TEST_P(PaintLayerTest, NonCompositedScrollingNeedsRepaint) {
96 setBodyInnerHTML( 204 setBodyInnerHTML(
97 "<div id='scroll' style='width: 100px; height: 100px; overflow: scroll'>" 205 "<div id='scroll' style='width: 100px; height: 100px; overflow: scroll'>"
98 " <div id='content' style='position: relative; background: blue;" 206 " <div id='content' style='position: relative; background: blue;"
99 " width: 2000px; height: 2000px'></div>" 207 " width: 2000px; height: 2000px'></div>"
100 "</div>"); 208 "</div>");
101 209
102 PaintLayer* scrollLayer = 210 PaintLayer* scrollLayer =
103 toLayoutBoxModelObject(getLayoutObjectByElementId("scroll"))->layer(); 211 toLayoutBoxModelObject(getLayoutObjectByElementId("scroll"))->layer();
104 EXPECT_EQ(NotComposited, scrollLayer->compositingState()); 212 EXPECT_EQ(NotComposited, scrollLayer->compositingState());
105 213
106 PaintLayer* contentLayer = 214 PaintLayer* contentLayer =
107 toLayoutBoxModelObject(getLayoutObjectByElementId("content"))->layer(); 215 toLayoutBoxModelObject(getLayoutObjectByElementId("content"))->layer();
108 EXPECT_EQ(NotComposited, scrollLayer->compositingState()); 216 EXPECT_EQ(NotComposited, scrollLayer->compositingState());
109 EXPECT_EQ(LayoutPoint(), contentLayer->location()); 217 EXPECT_EQ(LayoutPoint(), contentLayer->location());
110 218
111 scrollLayer->getScrollableArea()->setScrollOffset(ScrollOffset(1000, 1000), 219 scrollLayer->getScrollableArea()->setScrollOffset(ScrollOffset(1000, 1000),
112 ProgrammaticScroll); 220 ProgrammaticScroll);
113 document().view()->updateAllLifecyclePhasesExceptPaint(); 221 document().view()->updateAllLifecyclePhasesExceptPaint();
114 EXPECT_EQ(LayoutPoint(-1000, -1000), contentLayer->location()); 222 EXPECT_EQ(LayoutPoint(-1000, -1000), contentLayer->location());
115 EXPECT_TRUE(contentLayer->needsRepaint()); 223 EXPECT_TRUE(contentLayer->needsRepaint());
116 EXPECT_TRUE(scrollLayer->needsRepaint()); 224 EXPECT_TRUE(scrollLayer->needsRepaint());
117 document().view()->updateAllLifecyclePhases(); 225 document().view()->updateAllLifecyclePhases();
118 } 226 }
119 227
120 TEST_F(PaintLayerTest, HasNonIsolatedDescendantWithBlendMode) { 228 TEST_P(PaintLayerTest, HasNonIsolatedDescendantWithBlendMode) {
121 setBodyInnerHTML( 229 setBodyInnerHTML(
122 "<div id='stacking-grandparent' style='isolation: isolate'>" 230 "<div id='stacking-grandparent' style='isolation: isolate'>"
123 " <div id='stacking-parent' style='isolation: isolate'>" 231 " <div id='stacking-parent' style='isolation: isolate'>"
124 " <div id='non-stacking-parent' style='position:relative'>" 232 " <div id='non-stacking-parent' style='position:relative'>"
125 " <div id='blend-mode' style='mix-blend-mode: overlay'>" 233 " <div id='blend-mode' style='mix-blend-mode: overlay'>"
126 " </div>" 234 " </div>"
127 " </div>" 235 " </div>"
128 " </div>" 236 " </div>"
129 "</div>"); 237 "</div>");
130 PaintLayer* stackingGrandparent = 238 PaintLayer* stackingGrandparent =
131 toLayoutBoxModelObject(getLayoutObjectByElementId("stacking-grandparent")) 239 toLayoutBoxModelObject(getLayoutObjectByElementId("stacking-grandparent"))
132 ->layer(); 240 ->layer();
133 PaintLayer* stackingParent = 241 PaintLayer* stackingParent =
134 toLayoutBoxModelObject(getLayoutObjectByElementId("stacking-parent")) 242 toLayoutBoxModelObject(getLayoutObjectByElementId("stacking-parent"))
135 ->layer(); 243 ->layer();
136 PaintLayer* parent = 244 PaintLayer* parent =
137 toLayoutBoxModelObject(getLayoutObjectByElementId("non-stacking-parent")) 245 toLayoutBoxModelObject(getLayoutObjectByElementId("non-stacking-parent"))
138 ->layer(); 246 ->layer();
139 247
140 EXPECT_TRUE(parent->hasNonIsolatedDescendantWithBlendMode()); 248 EXPECT_TRUE(parent->hasNonIsolatedDescendantWithBlendMode());
141 EXPECT_TRUE(stackingParent->hasNonIsolatedDescendantWithBlendMode()); 249 EXPECT_TRUE(stackingParent->hasNonIsolatedDescendantWithBlendMode());
142 EXPECT_FALSE(stackingGrandparent->hasNonIsolatedDescendantWithBlendMode()); 250 EXPECT_FALSE(stackingGrandparent->hasNonIsolatedDescendantWithBlendMode());
143 251
144 EXPECT_FALSE(parent->hasDescendantWithClipPath()); 252 EXPECT_FALSE(parent->hasDescendantWithClipPath());
145 EXPECT_TRUE(parent->hasVisibleDescendant()); 253 EXPECT_TRUE(parent->hasVisibleDescendant());
146 } 254 }
147 255
148 TEST_F(PaintLayerTest, HasDescendantWithClipPath) { 256 TEST_P(PaintLayerTest, HasDescendantWithClipPath) {
149 setBodyInnerHTML( 257 setBodyInnerHTML(
150 "<div id='parent' style='position:relative'>" 258 "<div id='parent' style='position:relative'>"
151 " <div id='clip-path' style='clip-path: circle(50px at 0 100px)'>" 259 " <div id='clip-path' style='clip-path: circle(50px at 0 100px)'>"
152 " </div>" 260 " </div>"
153 "</div>"); 261 "</div>");
154 PaintLayer* parent = 262 PaintLayer* parent =
155 toLayoutBoxModelObject(getLayoutObjectByElementId("parent"))->layer(); 263 toLayoutBoxModelObject(getLayoutObjectByElementId("parent"))->layer();
156 PaintLayer* clipPath = 264 PaintLayer* clipPath =
157 toLayoutBoxModelObject(getLayoutObjectByElementId("clip-path"))->layer(); 265 toLayoutBoxModelObject(getLayoutObjectByElementId("clip-path"))->layer();
158 266
159 EXPECT_TRUE(parent->hasDescendantWithClipPath()); 267 EXPECT_TRUE(parent->hasDescendantWithClipPath());
160 EXPECT_FALSE(clipPath->hasDescendantWithClipPath()); 268 EXPECT_FALSE(clipPath->hasDescendantWithClipPath());
161 269
162 EXPECT_FALSE(parent->hasNonIsolatedDescendantWithBlendMode()); 270 EXPECT_FALSE(parent->hasNonIsolatedDescendantWithBlendMode());
163 EXPECT_TRUE(parent->hasVisibleDescendant()); 271 EXPECT_TRUE(parent->hasVisibleDescendant());
164 } 272 }
165 273
166 TEST_F(PaintLayerTest, HasVisibleDescendant) { 274 TEST_P(PaintLayerTest, HasVisibleDescendant) {
167 enableCompositing(); 275 enableCompositing();
168 setBodyInnerHTML( 276 setBodyInnerHTML(
169 "<div id='invisible' style='position:relative'>" 277 "<div id='invisible' style='position:relative'>"
170 " <div id='visible' style='visibility: visible; position: relative'>" 278 " <div id='visible' style='visibility: visible; position: relative'>"
171 " </div>" 279 " </div>"
172 "</div>"); 280 "</div>");
173 PaintLayer* invisible = 281 PaintLayer* invisible =
174 toLayoutBoxModelObject(getLayoutObjectByElementId("invisible"))->layer(); 282 toLayoutBoxModelObject(getLayoutObjectByElementId("invisible"))->layer();
175 PaintLayer* visible = 283 PaintLayer* visible =
176 toLayoutBoxModelObject(getLayoutObjectByElementId("visible"))->layer(); 284 toLayoutBoxModelObject(getLayoutObjectByElementId("visible"))->layer();
177 285
178 EXPECT_TRUE(invisible->hasVisibleDescendant()); 286 EXPECT_TRUE(invisible->hasVisibleDescendant());
179 EXPECT_FALSE(visible->hasVisibleDescendant()); 287 EXPECT_FALSE(visible->hasVisibleDescendant());
180 288
181 EXPECT_FALSE(invisible->hasNonIsolatedDescendantWithBlendMode()); 289 EXPECT_FALSE(invisible->hasNonIsolatedDescendantWithBlendMode());
182 EXPECT_FALSE(invisible->hasDescendantWithClipPath()); 290 EXPECT_FALSE(invisible->hasDescendantWithClipPath());
183 } 291 }
184 292
185 TEST_F(PaintLayerTest, DescendantDependentFlagsStopsAtThrottledFrames) { 293 TEST_P(PaintLayerTest, DescendantDependentFlagsStopsAtThrottledFrames) {
186 enableCompositing(); 294 enableCompositing();
187 setBodyInnerHTML( 295 setBodyInnerHTML(
188 "<style>body { margin: 0; }</style>" 296 "<style>body { margin: 0; }</style>"
189 "<div id='transform' style='transform: translate3d(4px, 5px, 6px);'>" 297 "<div id='transform' style='transform: translate3d(4px, 5px, 6px);'>"
190 "</div>" 298 "</div>"
191 "<iframe id='iframe' sandbox></iframe>"); 299 "<iframe id='iframe' sandbox></iframe>");
192 setChildFrameHTML( 300 setChildFrameHTML(
193 "<style>body { margin: 0; }</style>" 301 "<style>body { margin: 0; }</style>"
194 "<div id='iframeTransform'" 302 "<div id='iframeTransform'"
195 " style='transform: translate3d(4px, 5px, 6px);'/>"); 303 " style='transform: translate3d(4px, 5px, 6px);'/>");
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 339
232 document().view()->updateAllLifecyclePhases(); 340 document().view()->updateAllLifecyclePhases();
233 EXPECT_FALSE(childDocument() 341 EXPECT_FALSE(childDocument()
234 .view() 342 .view()
235 ->layoutView() 343 ->layoutView()
236 ->layer() 344 ->layer()
237 ->m_needsDescendantDependentFlagsUpdate); 345 ->m_needsDescendantDependentFlagsUpdate);
238 } 346 }
239 347
240 } // namespace blink 348 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698