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

Side by Side Diff: third_party/WebKit/Source/web/tests/CompositorWorkerTest.cpp

Issue 1973083002: Use element id's for animations (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 6 months 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/frame/FrameView.h" 5 #include "core/frame/FrameView.h"
6 #include "core/layout/api/LayoutViewItem.h" 6 #include "core/layout/api/LayoutViewItem.h"
7 #include "core/layout/compositing/CompositedLayerMapping.h" 7 #include "core/layout/compositing/CompositedLayerMapping.h"
8 #include "core/layout/compositing/PaintLayerCompositor.h" 8 #include "core/layout/compositing/PaintLayerCompositor.h"
9 #include "core/page/Page.h" 9 #include "core/page/Page.h"
10 #include "platform/graphics/CompositorMutableProperties.h" 10 #include "platform/graphics/CompositorMutableProperties.h"
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 Document* document = frame()->document(); 133 Document* document = frame()->document();
134 134
135 Element* tallElement = document->getElementById("tall"); 135 Element* tallElement = document->getElementById("tall");
136 WebLayer* tallLayer = webLayerFromElement(tallElement); 136 WebLayer* tallLayer = webLayerFromElement(tallElement);
137 EXPECT_TRUE(!tallLayer); 137 EXPECT_TRUE(!tallLayer);
138 138
139 Element* proxiedElement = document->getElementById("proxied-transform"); 139 Element* proxiedElement = document->getElementById("proxied-transform");
140 WebLayer* proxiedLayer = webLayerFromElement(proxiedElement); 140 WebLayer* proxiedLayer = webLayerFromElement(proxiedElement);
141 EXPECT_TRUE(proxiedLayer->compositorMutableProperties() & CompositorMutableP roperty::kTransform); 141 EXPECT_TRUE(proxiedLayer->compositorMutableProperties() & CompositorMutableP roperty::kTransform);
142 EXPECT_FALSE(proxiedLayer->compositorMutableProperties() & (CompositorMutabl eProperty::kScrollLeft | CompositorMutableProperty::kScrollTop | CompositorMutab leProperty::kOpacity)); 142 EXPECT_FALSE(proxiedLayer->compositorMutableProperties() & (CompositorMutabl eProperty::kScrollLeft | CompositorMutableProperty::kScrollTop | CompositorMutab leProperty::kOpacity));
143 EXPECT_NE(0UL, proxiedLayer->elementId()); 143 EXPECT_TRUE(proxiedLayer->elementId());
144 144
145 Element* scrollElement = document->getElementById("proxied-scroller"); 145 Element* scrollElement = document->getElementById("proxied-scroller");
146 WebLayer* scrollLayer = scrollingWebLayerFromElement(scrollElement); 146 WebLayer* scrollLayer = scrollingWebLayerFromElement(scrollElement);
147 EXPECT_TRUE(scrollLayer->compositorMutableProperties() & (CompositorMutableP roperty::kScrollLeft | CompositorMutableProperty::kScrollTop)); 147 EXPECT_TRUE(scrollLayer->compositorMutableProperties() & (CompositorMutableP roperty::kScrollLeft | CompositorMutableProperty::kScrollTop));
148 EXPECT_FALSE(scrollLayer->compositorMutableProperties() & (CompositorMutable Property::kTransform | CompositorMutableProperty::kOpacity)); 148 EXPECT_FALSE(scrollLayer->compositorMutableProperties() & (CompositorMutable Property::kTransform | CompositorMutableProperty::kOpacity));
149 EXPECT_NE(0UL, scrollLayer->elementId()); 149 EXPECT_TRUE(scrollLayer->elementId());
150 150
151 WebLayer* rootScrollLayer = getRootScrollLayer(); 151 WebLayer* rootScrollLayer = getRootScrollLayer();
152 EXPECT_TRUE(rootScrollLayer->compositorMutableProperties() & (CompositorMuta bleProperty::kScrollLeft | CompositorMutableProperty::kScrollTop)); 152 EXPECT_TRUE(rootScrollLayer->compositorMutableProperties() & (CompositorMuta bleProperty::kScrollLeft | CompositorMutableProperty::kScrollTop));
153 EXPECT_FALSE(rootScrollLayer->compositorMutableProperties() & (CompositorMut ableProperty::kTransform | CompositorMutableProperty::kOpacity)); 153 EXPECT_FALSE(rootScrollLayer->compositorMutableProperties() & (CompositorMut ableProperty::kTransform | CompositorMutableProperty::kOpacity));
154 154
155 EXPECT_NE(0UL, rootScrollLayer->elementId()); 155 EXPECT_TRUE(rootScrollLayer->elementId());
156 } 156 }
157 157
158 TEST_F(CompositorWorkerTest, noProxies) 158 TEST_F(CompositorWorkerTest, noProxies)
159 { 159 {
160 // This case is identical to compositor-proxy-basic, but no proxies have 160 // This case is identical to compositor-proxy-basic, but no proxies have
161 // actually been created. 161 // actually been created.
162 registerMockedHttpURLLoad("compositor-proxy-plumbing-no-proxies.html"); 162 registerMockedHttpURLLoad("compositor-proxy-plumbing-no-proxies.html");
163 navigateTo(m_baseURL + "compositor-proxy-plumbing-no-proxies.html"); 163 navigateTo(m_baseURL + "compositor-proxy-plumbing-no-proxies.html");
164 164
165 forceFullCompositingUpdate(); 165 forceFullCompositingUpdate();
166 166
167 Document* document = frame()->document(); 167 Document* document = frame()->document();
168 168
169 Element* tallElement = document->getElementById("tall"); 169 Element* tallElement = document->getElementById("tall");
170 WebLayer* tallLayer = webLayerFromElement(tallElement); 170 WebLayer* tallLayer = webLayerFromElement(tallElement);
171 EXPECT_TRUE(!tallLayer); 171 EXPECT_TRUE(!tallLayer);
172 172
173 Element* proxiedElement = document->getElementById("proxied"); 173 Element* proxiedElement = document->getElementById("proxied");
174 WebLayer* proxiedLayer = webLayerFromElement(proxiedElement); 174 WebLayer* proxiedLayer = webLayerFromElement(proxiedElement);
175 EXPECT_TRUE(!proxiedLayer); 175 EXPECT_TRUE(!proxiedLayer);
176 176
177 Element* scrollElement = document->getElementById("proxied-scroller"); 177 Element* scrollElement = document->getElementById("proxied-scroller");
178 WebLayer* scrollLayer = scrollingWebLayerFromElement(scrollElement); 178 WebLayer* scrollLayer = scrollingWebLayerFromElement(scrollElement);
179 EXPECT_FALSE(!!scrollLayer->compositorMutableProperties()); 179 EXPECT_FALSE(!!scrollLayer->compositorMutableProperties());
180 EXPECT_EQ(0UL, scrollLayer->elementId());
bokan 2016/06/03 15:09:21 Has the logic here changed somehow? i.e. why aren'
Ian Vollick 2016/06/03 19:31:21 Good question. The logic has changed, yes, and I'v
181 180
182 WebLayer* rootScrollLayer = getRootScrollLayer(); 181 WebLayer* rootScrollLayer = getRootScrollLayer();
183 EXPECT_FALSE(!!rootScrollLayer->compositorMutableProperties()); 182 EXPECT_FALSE(!!rootScrollLayer->compositorMutableProperties());
184 EXPECT_EQ(0UL, rootScrollLayer->elementId());
185 } 183 }
186 184
187 TEST_F(CompositorWorkerTest, disconnectedProxies) 185 TEST_F(CompositorWorkerTest, disconnectedProxies)
188 { 186 {
189 // This case is identical to compositor-proxy-basic, but the proxies are 187 // This case is identical to compositor-proxy-basic, but the proxies are
190 // disconnected (the result should be the same as compositor-proxy-plumbing- no-proxies). 188 // disconnected (the result should be the same as compositor-proxy-plumbing- no-proxies).
191 registerMockedHttpURLLoad("compositor-proxy-basic-disconnected.html"); 189 registerMockedHttpURLLoad("compositor-proxy-basic-disconnected.html");
192 navigateTo(m_baseURL + "compositor-proxy-basic-disconnected.html"); 190 navigateTo(m_baseURL + "compositor-proxy-basic-disconnected.html");
193 191
194 forceFullCompositingUpdate(); 192 forceFullCompositingUpdate();
195 193
196 Document* document = frame()->document(); 194 Document* document = frame()->document();
197 195
198 Element* tallElement = document->getElementById("tall"); 196 Element* tallElement = document->getElementById("tall");
199 WebLayer* tallLayer = webLayerFromElement(tallElement); 197 WebLayer* tallLayer = webLayerFromElement(tallElement);
200 EXPECT_TRUE(!tallLayer); 198 EXPECT_TRUE(!tallLayer);
201 199
202 Element* proxiedElement = document->getElementById("proxied"); 200 Element* proxiedElement = document->getElementById("proxied");
203 WebLayer* proxiedLayer = webLayerFromElement(proxiedElement); 201 WebLayer* proxiedLayer = webLayerFromElement(proxiedElement);
204 EXPECT_TRUE(!proxiedLayer); 202 EXPECT_TRUE(!proxiedLayer);
205 203
206 Element* scrollElement = document->getElementById("proxied-scroller"); 204 Element* scrollElement = document->getElementById("proxied-scroller");
207 WebLayer* scrollLayer = scrollingWebLayerFromElement(scrollElement); 205 WebLayer* scrollLayer = scrollingWebLayerFromElement(scrollElement);
208 EXPECT_FALSE(!!scrollLayer->compositorMutableProperties()); 206 EXPECT_FALSE(!!scrollLayer->compositorMutableProperties());
209 EXPECT_EQ(0UL, scrollLayer->elementId());
210 207
211 WebLayer* rootScrollLayer = getRootScrollLayer(); 208 WebLayer* rootScrollLayer = getRootScrollLayer();
212 EXPECT_FALSE(!!rootScrollLayer->compositorMutableProperties()); 209 EXPECT_FALSE(!!rootScrollLayer->compositorMutableProperties());
213 EXPECT_EQ(0UL, rootScrollLayer->elementId());
214 } 210 }
215 211
216 TEST_F(CompositorWorkerTest, applyingMutationsMultipleElements) 212 TEST_F(CompositorWorkerTest, applyingMutationsMultipleElements)
217 { 213 {
218 registerMockedHttpURLLoad("compositor-proxy-basic.html"); 214 registerMockedHttpURLLoad("compositor-proxy-basic.html");
219 navigateTo(m_baseURL + "compositor-proxy-basic.html"); 215 navigateTo(m_baseURL + "compositor-proxy-basic.html");
220 216
221 Document* document = frame()->document(); 217 Document* document = frame()->document();
222 218
223 { 219 {
224 forceFullCompositingUpdate(); 220 forceFullCompositingUpdate();
225 221
226 Element* proxiedElement = document->getElementById("proxied-transform"); 222 Element* proxiedElement = document->getElementById("proxied-transform");
227 WebLayer* proxiedLayer = webLayerFromElement(proxiedElement); 223 WebLayer* proxiedLayer = webLayerFromElement(proxiedElement);
228 EXPECT_TRUE(proxiedLayer->compositorMutableProperties() & CompositorMuta bleProperty::kTransform); 224 EXPECT_TRUE(proxiedLayer->compositorMutableProperties() & CompositorMuta bleProperty::kTransform);
229 EXPECT_FALSE(proxiedLayer->compositorMutableProperties() & (CompositorMu tableProperty::kScrollLeft | CompositorMutableProperty::kScrollTop | CompositorM utableProperty::kOpacity)); 225 EXPECT_FALSE(proxiedLayer->compositorMutableProperties() & (CompositorMu tableProperty::kScrollLeft | CompositorMutableProperty::kScrollTop | CompositorM utableProperty::kOpacity));
230 uint64_t elementId = proxiedLayer->elementId(); 226 EXPECT_TRUE(proxiedLayer->elementId());
231 EXPECT_NE(0UL, elementId);
232 227
233 TransformationMatrix transformMatrix(11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44); 228 TransformationMatrix transformMatrix(11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44);
234 CompositorMutation mutation; 229 CompositorMutation mutation;
235 mutation.setTransform(TransformationMatrix::toSkMatrix44(transformMatrix )); 230 mutation.setTransform(TransformationMatrix::toSkMatrix44(transformMatrix ));
236 231
237 proxiedElement->updateFromCompositorMutation(mutation); 232 proxiedElement->updateFromCompositorMutation(mutation);
238 233
239 forceFullCompositingUpdate(); 234 forceFullCompositingUpdate();
240 const String& cssValue = document->domWindow()->getComputedStyle(proxied Element, String())->getPropertyValueInternal(CSSPropertyTransform); 235 const String& cssValue = document->domWindow()->getComputedStyle(proxied Element, String())->getPropertyValueInternal(CSSPropertyTransform);
241 EXPECT_EQ("matrix3d(11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44)", cssValue); 236 EXPECT_EQ("matrix3d(11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44)", cssValue);
242 } 237 }
243 { 238 {
244 Element* proxiedElement = document->getElementById("proxied-opacity"); 239 Element* proxiedElement = document->getElementById("proxied-opacity");
245 WebLayer* proxiedLayer = webLayerFromElement(proxiedElement); 240 WebLayer* proxiedLayer = webLayerFromElement(proxiedElement);
246 EXPECT_TRUE(proxiedLayer->compositorMutableProperties() & CompositorMuta bleProperty::kOpacity); 241 EXPECT_TRUE(proxiedLayer->compositorMutableProperties() & CompositorMuta bleProperty::kOpacity);
247 EXPECT_FALSE(proxiedLayer->compositorMutableProperties() & (CompositorMu tableProperty::kScrollLeft | CompositorMutableProperty::kScrollTop | CompositorM utableProperty::kTransform)); 242 EXPECT_FALSE(proxiedLayer->compositorMutableProperties() & (CompositorMu tableProperty::kScrollLeft | CompositorMutableProperty::kScrollTop | CompositorM utableProperty::kTransform));
248 uint64_t elementId = proxiedLayer->elementId(); 243 EXPECT_TRUE(proxiedLayer->elementId());
249 EXPECT_NE(0UL, elementId);
250 244
251 CompositorMutation mutation; 245 CompositorMutation mutation;
252 mutation.setOpacity(0.5); 246 mutation.setOpacity(0.5);
253 247
254 proxiedElement->updateFromCompositorMutation(mutation); 248 proxiedElement->updateFromCompositorMutation(mutation);
255 249
256 forceFullCompositingUpdate(); 250 forceFullCompositingUpdate();
257 const String& cssValue = document->domWindow()->getComputedStyle(proxied Element, String())->getPropertyValueInternal(CSSPropertyOpacity); 251 const String& cssValue = document->domWindow()->getComputedStyle(proxied Element, String())->getPropertyValueInternal(CSSPropertyOpacity);
258 EXPECT_EQ("0.5", cssValue); 252 EXPECT_EQ("0.5", cssValue);
259 } 253 }
260 } 254 }
261 255
262 TEST_F(CompositorWorkerTest, applyingMutationsMultipleProperties) 256 TEST_F(CompositorWorkerTest, applyingMutationsMultipleProperties)
263 { 257 {
264 registerMockedHttpURLLoad("compositor-proxy-basic.html"); 258 registerMockedHttpURLLoad("compositor-proxy-basic.html");
265 navigateTo(m_baseURL + "compositor-proxy-basic.html"); 259 navigateTo(m_baseURL + "compositor-proxy-basic.html");
266 260
267 Document* document = frame()->document(); 261 Document* document = frame()->document();
268 262
269 forceFullCompositingUpdate(); 263 forceFullCompositingUpdate();
270 264
271 Element* proxiedElement = document->getElementById("proxied-transform-and-op acity"); 265 Element* proxiedElement = document->getElementById("proxied-transform-and-op acity");
272 WebLayer* proxiedLayer = webLayerFromElement(proxiedElement); 266 WebLayer* proxiedLayer = webLayerFromElement(proxiedElement);
273 EXPECT_TRUE(proxiedLayer->compositorMutableProperties() & CompositorMutableP roperty::kTransform); 267 EXPECT_TRUE(proxiedLayer->compositorMutableProperties() & CompositorMutableP roperty::kTransform);
274 EXPECT_TRUE(proxiedLayer->compositorMutableProperties() & CompositorMutableP roperty::kOpacity); 268 EXPECT_TRUE(proxiedLayer->compositorMutableProperties() & CompositorMutableP roperty::kOpacity);
275 EXPECT_FALSE(proxiedLayer->compositorMutableProperties() & (CompositorMutabl eProperty::kScrollLeft | CompositorMutableProperty::kScrollTop)); 269 EXPECT_FALSE(proxiedLayer->compositorMutableProperties() & (CompositorMutabl eProperty::kScrollLeft | CompositorMutableProperty::kScrollTop));
276 uint64_t elementId = proxiedLayer->elementId(); 270 EXPECT_TRUE(proxiedLayer->elementId());
277 EXPECT_NE(0UL, elementId);
278 271
279 TransformationMatrix transformMatrix(11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44); 272 TransformationMatrix transformMatrix(11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44);
280 OwnPtr<CompositorMutation> mutation = adoptPtr(new CompositorMutation); 273 OwnPtr<CompositorMutation> mutation = adoptPtr(new CompositorMutation);
281 mutation->setTransform(TransformationMatrix::toSkMatrix44(transformMatrix)); 274 mutation->setTransform(TransformationMatrix::toSkMatrix44(transformMatrix));
282 mutation->setOpacity(0.5); 275 mutation->setOpacity(0.5);
283 276
284 proxiedElement->updateFromCompositorMutation(*mutation); 277 proxiedElement->updateFromCompositorMutation(*mutation);
285 { 278 {
286 const String& transformValue = document->domWindow()->getComputedStyle( proxiedElement, String())->getPropertyValueInternal(CSSPropertyTransform); 279 const String& transformValue = document->domWindow()->getComputedStyle( proxiedElement, String())->getPropertyValueInternal(CSSPropertyTransform);
287 EXPECT_EQ("matrix3d(11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44)", transformValue); 280 EXPECT_EQ("matrix3d(11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44)", transformValue);
(...skipping 10 matching lines...) Expand all
298 { 291 {
299 const String& transformValue = document->domWindow()->getComputedStyle( proxiedElement, String())->getPropertyValueInternal(CSSPropertyTransform); 292 const String& transformValue = document->domWindow()->getComputedStyle( proxiedElement, String())->getPropertyValueInternal(CSSPropertyTransform);
300 EXPECT_EQ("matrix3d(11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44)", transformValue); 293 EXPECT_EQ("matrix3d(11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44)", transformValue);
301 294
302 const String& opacityValue = document->domWindow()->getComputedStyle(pro xiedElement, String())->getPropertyValueInternal(CSSPropertyOpacity); 295 const String& opacityValue = document->domWindow()->getComputedStyle(pro xiedElement, String())->getPropertyValueInternal(CSSPropertyOpacity);
303 EXPECT_EQ("0.8", opacityValue); 296 EXPECT_EQ("0.8", opacityValue);
304 } 297 }
305 } 298 }
306 299
307 } // namespace blink 300 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698