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

Side by Side Diff: ui/compositor/layer_unittest.cc

Issue 2575503003: Getting rid of frame_size_in_dip in Layer::SetShowSurface (Closed)
Patch Set: x 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
« no previous file with comments | « ui/compositor/layer.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ui/compositor/layer.h" 5 #include "ui/compositor/layer.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
(...skipping 1817 matching lines...) Expand 10 before | Expand all | Expand 10 after
1828 // change. 1828 // change.
1829 scoped_refptr<cc::Layer> before = child->cc_layer_for_testing(); 1829 scoped_refptr<cc::Layer> before = child->cc_layer_for_testing();
1830 child->SetShowSolidColorContent(); 1830 child->SetShowSolidColorContent();
1831 EXPECT_TRUE(child->cc_layer_for_testing()); 1831 EXPECT_TRUE(child->cc_layer_for_testing());
1832 EXPECT_EQ(before.get(), child->cc_layer_for_testing()); 1832 EXPECT_EQ(before.get(), child->cc_layer_for_testing());
1833 1833
1834 // Showing surface content changes the underlying cc layer. 1834 // Showing surface content changes the underlying cc layer.
1835 before = child->cc_layer_for_testing(); 1835 before = child->cc_layer_for_testing();
1836 child->SetShowSurface(cc::SurfaceId(), base::Bind(&FakeSatisfyCallback), 1836 child->SetShowSurface(cc::SurfaceId(), base::Bind(&FakeSatisfyCallback),
1837 base::Bind(&FakeRequireCallback), gfx::Size(10, 10), 1837 base::Bind(&FakeRequireCallback), gfx::Size(10, 10),
1838 1.0, gfx::Size(10, 10)); 1838 1.0);
1839 EXPECT_TRUE(child->cc_layer_for_testing()); 1839 EXPECT_TRUE(child->cc_layer_for_testing());
1840 EXPECT_NE(before.get(), child->cc_layer_for_testing()); 1840 EXPECT_NE(before.get(), child->cc_layer_for_testing());
1841 1841
1842 // Changing to painted content should change the underlying cc layer. 1842 // Changing to painted content should change the underlying cc layer.
1843 before = child->cc_layer_for_testing(); 1843 before = child->cc_layer_for_testing();
1844 child->SetShowSolidColorContent(); 1844 child->SetShowSolidColorContent();
1845 EXPECT_TRUE(child->cc_layer_for_testing()); 1845 EXPECT_TRUE(child->cc_layer_for_testing());
1846 EXPECT_NE(before.get(), child->cc_layer_for_testing()); 1846 EXPECT_NE(before.get(), child->cc_layer_for_testing());
1847 } 1847 }
1848 1848
1849 TEST_F(LayerWithDelegateTest, ExternalContentMirroring) { 1849 TEST_F(LayerWithDelegateTest, ExternalContentMirroring) {
1850 std::unique_ptr<Layer> layer(CreateLayer(LAYER_SOLID_COLOR)); 1850 std::unique_ptr<Layer> layer(CreateLayer(LAYER_SOLID_COLOR));
1851 1851
1852 const auto satisfy_callback = base::Bind(&FakeSatisfyCallback); 1852 const auto satisfy_callback = base::Bind(&FakeSatisfyCallback);
1853 const auto require_callback = base::Bind(&FakeRequireCallback); 1853 const auto require_callback = base::Bind(&FakeRequireCallback);
1854 1854
1855 cc::SurfaceId surface_id( 1855 cc::SurfaceId surface_id(
1856 cc::FrameSinkId(0, 1), 1856 cc::FrameSinkId(0, 1),
1857 cc::LocalFrameId(2, base::UnguessableToken::Create())); 1857 cc::LocalFrameId(2, base::UnguessableToken::Create()));
1858 layer->SetShowSurface(surface_id, satisfy_callback, require_callback, 1858 layer->SetShowSurface(surface_id, satisfy_callback, require_callback,
1859 gfx::Size(10, 10), 1.0f, gfx::Size(10, 10)); 1859 gfx::Size(10, 10), 1.0f);
1860 1860
1861 const auto mirror = layer->Mirror(); 1861 const auto mirror = layer->Mirror();
1862 auto* const cc_layer = mirror->cc_layer_for_testing(); 1862 auto* const cc_layer = mirror->cc_layer_for_testing();
1863 const auto* surface = static_cast<cc::SurfaceLayer*>(cc_layer); 1863 const auto* surface = static_cast<cc::SurfaceLayer*>(cc_layer);
1864 1864
1865 // Mirroring preserves surface state. 1865 // Mirroring preserves surface state.
1866 EXPECT_EQ(surface_id, surface->surface_id()); 1866 EXPECT_EQ(surface_id, surface->surface_id());
1867 EXPECT_TRUE(satisfy_callback.Equals(surface->satisfy_callback())); 1867 EXPECT_TRUE(satisfy_callback.Equals(surface->satisfy_callback()));
1868 EXPECT_TRUE(require_callback.Equals(surface->require_callback())); 1868 EXPECT_TRUE(require_callback.Equals(surface->require_callback()));
1869 EXPECT_EQ(gfx::Size(10, 10), surface->surface_size()); 1869 EXPECT_EQ(gfx::Size(10, 10), surface->surface_size());
1870 EXPECT_EQ(1.0f, surface->surface_scale()); 1870 EXPECT_EQ(1.0f, surface->surface_scale());
1871 1871
1872 surface_id = 1872 surface_id =
1873 cc::SurfaceId(cc::FrameSinkId(1, 2), 1873 cc::SurfaceId(cc::FrameSinkId(1, 2),
1874 cc::LocalFrameId(3, base::UnguessableToken::Create())); 1874 cc::LocalFrameId(3, base::UnguessableToken::Create()));
1875 layer->SetShowSurface(surface_id, satisfy_callback, require_callback, 1875 layer->SetShowSurface(surface_id, satisfy_callback, require_callback,
1876 gfx::Size(20, 20), 2.0f, gfx::Size(20, 20)); 1876 gfx::Size(20, 20), 2.0f);
1877 1877
1878 // A new cc::Layer should be created for the mirror. 1878 // A new cc::Layer should be created for the mirror.
1879 EXPECT_NE(cc_layer, mirror->cc_layer_for_testing()); 1879 EXPECT_NE(cc_layer, mirror->cc_layer_for_testing());
1880 surface = static_cast<cc::SurfaceLayer*>(mirror->cc_layer_for_testing()); 1880 surface = static_cast<cc::SurfaceLayer*>(mirror->cc_layer_for_testing());
1881 1881
1882 // Surface updates propagate to the mirror. 1882 // Surface updates propagate to the mirror.
1883 EXPECT_EQ(surface_id, surface->surface_id()); 1883 EXPECT_EQ(surface_id, surface->surface_id());
1884 EXPECT_EQ(gfx::Size(20, 20), surface->surface_size()); 1884 EXPECT_EQ(gfx::Size(20, 20), surface->surface_size());
1885 EXPECT_EQ(2.0f, surface->surface_scale()); 1885 EXPECT_EQ(2.0f, surface->surface_scale());
1886 } 1886 }
1887 1887
1888 // Test if frame size in dip is properly calculated in SetShowSurface
1889 TEST_F(LayerWithDelegateTest, FrameSizeInDip) {
1890 std::unique_ptr<Layer> layer(CreateLayer(LAYER_SOLID_COLOR));
1891
1892 const auto satisfy_callback = base::Bind(&FakeSatisfyCallback);
1893 const auto require_callback = base::Bind(&FakeRequireCallback);
1894
1895 cc::SurfaceId surface_id(
1896 cc::FrameSinkId(0, 1),
1897 cc::LocalFrameId(2, base::UnguessableToken::Create()));
1898
1899 layer->SetShowSurface(surface_id, satisfy_callback, require_callback,
1900 gfx::Size(30, 40), 2.0f);
1901
1902 EXPECT_EQ(layer->frame_size_in_dip_for_testing(), gfx::Size(15, 20));
1903 }
1904
1888 // Verifies that layer filters still attached after changing implementation 1905 // Verifies that layer filters still attached after changing implementation
1889 // layer. 1906 // layer.
1890 TEST_F(LayerWithDelegateTest, LayerFiltersSurvival) { 1907 TEST_F(LayerWithDelegateTest, LayerFiltersSurvival) {
1891 std::unique_ptr<Layer> layer(CreateLayer(LAYER_TEXTURED)); 1908 std::unique_ptr<Layer> layer(CreateLayer(LAYER_TEXTURED));
1892 layer->SetBounds(gfx::Rect(0, 0, 10, 10)); 1909 layer->SetBounds(gfx::Rect(0, 0, 10, 10));
1893 EXPECT_TRUE(layer->cc_layer_for_testing()); 1910 EXPECT_TRUE(layer->cc_layer_for_testing());
1894 EXPECT_EQ(0u, layer->cc_layer_for_testing()->filters().size()); 1911 EXPECT_EQ(0u, layer->cc_layer_for_testing()->filters().size());
1895 1912
1896 layer->SetLayerGrayscale(0.5f); 1913 layer->SetLayerGrayscale(0.5f);
1897 EXPECT_EQ(layer->layer_grayscale(), 0.5f); 1914 EXPECT_EQ(layer->layer_grayscale(), 0.5f);
1898 EXPECT_EQ(1u, layer->cc_layer_for_testing()->filters().size()); 1915 EXPECT_EQ(1u, layer->cc_layer_for_testing()->filters().size());
1899 1916
1900 // Showing surface content changes the underlying cc layer. 1917 // Showing surface content changes the underlying cc layer.
1901 scoped_refptr<cc::Layer> before = layer->cc_layer_for_testing(); 1918 scoped_refptr<cc::Layer> before = layer->cc_layer_for_testing();
1902 layer->SetShowSurface(cc::SurfaceId(), base::Bind(&FakeSatisfyCallback), 1919 layer->SetShowSurface(cc::SurfaceId(), base::Bind(&FakeSatisfyCallback),
1903 base::Bind(&FakeRequireCallback), gfx::Size(10, 10), 1920 base::Bind(&FakeRequireCallback), gfx::Size(10, 10),
1904 1.0, gfx::Size(10, 10)); 1921 1.0);
1905 EXPECT_EQ(layer->layer_grayscale(), 0.5f); 1922 EXPECT_EQ(layer->layer_grayscale(), 0.5f);
1906 EXPECT_TRUE(layer->cc_layer_for_testing()); 1923 EXPECT_TRUE(layer->cc_layer_for_testing());
1907 EXPECT_NE(before.get(), layer->cc_layer_for_testing()); 1924 EXPECT_NE(before.get(), layer->cc_layer_for_testing());
1908 EXPECT_EQ(1u, layer->cc_layer_for_testing()->filters().size()); 1925 EXPECT_EQ(1u, layer->cc_layer_for_testing()->filters().size());
1909 } 1926 }
1910 1927
1911 // Tests Layer::AddThreadedAnimation and Layer::RemoveThreadedAnimation. 1928 // Tests Layer::AddThreadedAnimation and Layer::RemoveThreadedAnimation.
1912 TEST_F(LayerWithRealCompositorTest, AddRemoveThreadedAnimations) { 1929 TEST_F(LayerWithRealCompositorTest, AddRemoveThreadedAnimations) {
1913 std::unique_ptr<Layer> root(CreateLayer(LAYER_TEXTURED)); 1930 std::unique_ptr<Layer> root(CreateLayer(LAYER_TEXTURED));
1914 std::unique_ptr<Layer> l1(CreateLayer(LAYER_TEXTURED)); 1931 std::unique_ptr<Layer> l1(CreateLayer(LAYER_TEXTURED));
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
2217 }; 2234 };
2218 2235
2219 TEST(LayerDelegateTest, DelegatedFrameDamage) { 2236 TEST(LayerDelegateTest, DelegatedFrameDamage) {
2220 std::unique_ptr<Layer> layer(new Layer(LAYER_TEXTURED)); 2237 std::unique_ptr<Layer> layer(new Layer(LAYER_TEXTURED));
2221 gfx::Rect damage_rect(2, 1, 5, 3); 2238 gfx::Rect damage_rect(2, 1, 5, 3);
2222 2239
2223 FrameDamageCheckingDelegate delegate; 2240 FrameDamageCheckingDelegate delegate;
2224 layer->set_delegate(&delegate); 2241 layer->set_delegate(&delegate);
2225 layer->SetShowSurface(cc::SurfaceId(), base::Bind(&FakeSatisfyCallback), 2242 layer->SetShowSurface(cc::SurfaceId(), base::Bind(&FakeSatisfyCallback),
2226 base::Bind(&FakeRequireCallback), gfx::Size(10, 10), 2243 base::Bind(&FakeRequireCallback), gfx::Size(10, 10),
2227 1.0, gfx::Size(10, 10)); 2244 1.0);
2228 2245
2229 EXPECT_FALSE(delegate.delegated_frame_damage_called()); 2246 EXPECT_FALSE(delegate.delegated_frame_damage_called());
2230 layer->OnDelegatedFrameDamage(damage_rect); 2247 layer->OnDelegatedFrameDamage(damage_rect);
2231 EXPECT_TRUE(delegate.delegated_frame_damage_called()); 2248 EXPECT_TRUE(delegate.delegated_frame_damage_called());
2232 EXPECT_EQ(damage_rect, delegate.delegated_frame_damage_rect()); 2249 EXPECT_EQ(damage_rect, delegate.delegated_frame_damage_rect());
2233 } 2250 }
2234 2251
2235 TEST_F(LayerWithRealCompositorTest, CompositorAnimationObserverTest) { 2252 TEST_F(LayerWithRealCompositorTest, CompositorAnimationObserverTest) {
2236 std::unique_ptr<Layer> root(CreateLayer(LAYER_TEXTURED)); 2253 std::unique_ptr<Layer> root(CreateLayer(LAYER_TEXTURED));
2237 2254
(...skipping 16 matching lines...) Expand all
2254 layer.set_name("foo"); 2271 layer.set_name("foo");
2255 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> debug_info = 2272 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> debug_info =
2256 layer.TakeDebugInfo(nullptr); 2273 layer.TakeDebugInfo(nullptr);
2257 std::string trace_format("bar,"); 2274 std::string trace_format("bar,");
2258 debug_info->AppendAsTraceFormat(&trace_format); 2275 debug_info->AppendAsTraceFormat(&trace_format);
2259 std::string expected("bar,{\"layer_name\":\"foo\"}"); 2276 std::string expected("bar,{\"layer_name\":\"foo\"}");
2260 EXPECT_EQ(expected, trace_format); 2277 EXPECT_EQ(expected, trace_format);
2261 } 2278 }
2262 2279
2263 } // namespace ui 2280 } // namespace ui
OLDNEW
« no previous file with comments | « ui/compositor/layer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698