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

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

Issue 1602343002: compositor-worker: cc->blink mutation plumbing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@compositor-worker-ian-patch
Patch Set: Address Vollick comments Created 4 years, 11 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/LayoutView.h" 6 #include "core/layout/LayoutView.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"
11 #include "platform/graphics/CompositorMutation.h"
11 #include "platform/graphics/GraphicsLayer.h" 12 #include "platform/graphics/GraphicsLayer.h"
12 #include "platform/testing/URLTestHelpers.h" 13 #include "platform/testing/URLTestHelpers.h"
13 #include "public/platform/Platform.h" 14 #include "public/platform/Platform.h"
14 #include "public/platform/WebLayer.h" 15 #include "public/platform/WebLayer.h"
15 #include "public/platform/WebLayerTreeView.h" 16 #include "public/platform/WebLayerTreeView.h"
16 #include "public/platform/WebUnitTestSupport.h" 17 #include "public/platform/WebUnitTestSupport.h"
17 #include "public/web/WebSettings.h" 18 #include "public/web/WebSettings.h"
18 #include "public/web/WebViewClient.h" 19 #include "public/web/WebViewClient.h"
19 #include "web/WebLocalFrameImpl.h" 20 #include "web/WebLocalFrameImpl.h"
20 #include "web/WebViewImpl.h" 21 #include "web/WebViewImpl.h"
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 navigateTo(m_baseURL + "compositor-proxy-basic.html"); 127 navigateTo(m_baseURL + "compositor-proxy-basic.html");
127 128
128 forceFullCompositingUpdate(); 129 forceFullCompositingUpdate();
129 130
130 Document* document = frame()->document(); 131 Document* document = frame()->document();
131 132
132 Element* tallElement = document->getElementById("tall"); 133 Element* tallElement = document->getElementById("tall");
133 WebLayer* tallLayer = webLayerFromElement(tallElement); 134 WebLayer* tallLayer = webLayerFromElement(tallElement);
134 EXPECT_TRUE(!tallLayer); 135 EXPECT_TRUE(!tallLayer);
135 136
136 Element* proxiedElement = document->getElementById("proxied"); 137 Element* proxiedElement = document->getElementById("proxied-transform");
137 WebLayer* proxiedLayer = webLayerFromElement(proxiedElement); 138 WebLayer* proxiedLayer = webLayerFromElement(proxiedElement);
138 EXPECT_TRUE(proxiedLayer->compositorMutableProperties() & CompositorMutableP roperty::kTransform); 139 EXPECT_TRUE(proxiedLayer->compositorMutableProperties() & CompositorMutableP roperty::kTransform);
139 EXPECT_FALSE(proxiedLayer->compositorMutableProperties() & (CompositorMutabl eProperty::kScrollLeft | CompositorMutableProperty::kScrollTop | CompositorMutab leProperty::kOpacity)); 140 EXPECT_FALSE(proxiedLayer->compositorMutableProperties() & (CompositorMutabl eProperty::kScrollLeft | CompositorMutableProperty::kScrollTop | CompositorMutab leProperty::kOpacity));
140 EXPECT_NE(0UL, proxiedLayer->elementId()); 141 EXPECT_NE(0UL, proxiedLayer->elementId());
141 142
142 Element* scrollElement = document->getElementById("proxied-scroller"); 143 Element* scrollElement = document->getElementById("proxied-scroller");
143 WebLayer* scrollLayer = scrollingWebLayerFromElement(scrollElement); 144 WebLayer* scrollLayer = scrollingWebLayerFromElement(scrollElement);
144 EXPECT_TRUE(scrollLayer->compositorMutableProperties() & (CompositorMutableP roperty::kScrollLeft | CompositorMutableProperty::kScrollTop)); 145 EXPECT_TRUE(scrollLayer->compositorMutableProperties() & (CompositorMutableP roperty::kScrollLeft | CompositorMutableProperty::kScrollTop));
145 EXPECT_FALSE(scrollLayer->compositorMutableProperties() & (CompositorMutable Property::kTransform | CompositorMutableProperty::kOpacity)); 146 EXPECT_FALSE(scrollLayer->compositorMutableProperties() & (CompositorMutable Property::kTransform | CompositorMutableProperty::kOpacity));
146 EXPECT_NE(0UL, scrollLayer->elementId()); 147 EXPECT_NE(0UL, scrollLayer->elementId());
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 Element* scrollElement = document->getElementById("proxied-scroller"); 204 Element* scrollElement = document->getElementById("proxied-scroller");
204 WebLayer* scrollLayer = scrollingWebLayerFromElement(scrollElement); 205 WebLayer* scrollLayer = scrollingWebLayerFromElement(scrollElement);
205 EXPECT_FALSE(!!scrollLayer->compositorMutableProperties()); 206 EXPECT_FALSE(!!scrollLayer->compositorMutableProperties());
206 EXPECT_EQ(0UL, scrollLayer->elementId()); 207 EXPECT_EQ(0UL, scrollLayer->elementId());
207 208
208 WebLayer* rootScrollLayer = getRootScrollLayer(); 209 WebLayer* rootScrollLayer = getRootScrollLayer();
209 EXPECT_FALSE(!!rootScrollLayer->compositorMutableProperties()); 210 EXPECT_FALSE(!!rootScrollLayer->compositorMutableProperties());
210 EXPECT_EQ(0UL, rootScrollLayer->elementId()); 211 EXPECT_EQ(0UL, rootScrollLayer->elementId());
211 } 212 }
212 213
214 TEST_F(CompositorWorkerTest, applyingMutations)
215 {
216 registerMockedHttpURLLoad("compositor-proxy-basic.html");
217 navigateTo(m_baseURL + "compositor-proxy-basic.html");
218
219 forceFullCompositingUpdate();
220
221 Document* document = frame()->document();
222
223 {
224 Element* proxiedElement = document->getElementById("proxied-transform");
225 WebLayer* proxiedLayer = webLayerFromElement(proxiedElement);
226 EXPECT_TRUE(proxiedLayer->compositorMutableProperties() & CompositorMuta bleProperty::kTransform);
227 EXPECT_FALSE(proxiedLayer->compositorMutableProperties() & (CompositorMu tableProperty::kScrollLeft | CompositorMutableProperty::kScrollTop | CompositorM utableProperty::kOpacity));
228 uint64_t elementId = proxiedLayer->elementId();
229 EXPECT_NE(0UL, elementId);
230
231 TransformationMatrix transformMatrix(11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44);
232 OwnPtr<CompositorMutation> mutation = adoptPtr(new CompositorMutation);
233 mutation->setTransform(TransformationMatrix::toSkMatrix44(transformMatri x));
234
235 CompositorMutations mutations;
236 mutations.map.add(elementId, mutation.release());
237
238 webViewImpl()->applyMutations(mutations);
239 forceFullCompositingUpdate();
240
241 const String& cssValue = proxiedElement->inlineStyle()->getPropertyValue (CSSPropertyTransform);
242 EXPECT_EQ(String("matrix3d(11px, 12px, 13px, 14px, 21px, 22px, 23px, 24p x, 31px, 32px, 33px, 34px, 41px, 42px, 43px, 44px)"), cssValue);
jbroman 2016/01/23 23:55:09 It shouldn't be necessary to wrap in a WTF::String
majidvp 2016/01/25 20:40:11 Done.
243 }
244 {
245 Element* proxiedElement = document->getElementById("proxied-opacity");
246 WebLayer* proxiedLayer = webLayerFromElement(proxiedElement);
247 EXPECT_TRUE(proxiedLayer->compositorMutableProperties() & CompositorMuta bleProperty::kOpacity);
248 EXPECT_FALSE(proxiedLayer->compositorMutableProperties() & (CompositorMu tableProperty::kScrollLeft | CompositorMutableProperty::kScrollTop | CompositorM utableProperty::kTransform));
249 uint64_t elementId = proxiedLayer->elementId();
250 EXPECT_NE(0UL, elementId);
251
252 OwnPtr<CompositorMutation> mutation = adoptPtr(new CompositorMutation);
253 mutation->setOpacity(0.5);
254
255 CompositorMutations mutations;
256 mutations.map.add(elementId, mutation.release());
257
258 webViewImpl()->applyMutations(mutations);
259 forceFullCompositingUpdate();
260
261 const String& cssValue = proxiedElement->inlineStyle()->getPropertyValue (CSSPropertyOpacity);
262 EXPECT_EQ(String("0.5"), cssValue);
263 }
264 }
265
213 } // namespace blink 266 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698