OLD | NEW |
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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/bind.h" | 6 #include "base/bind.h" |
7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
8 #include "base/debug/trace_event.h" | 8 #include "base/debug/trace_event.h" |
9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
646 | 646 |
647 DISALLOW_COPY_AND_ASSIGN(LayerWithNullDelegateTest); | 647 DISALLOW_COPY_AND_ASSIGN(LayerWithNullDelegateTest); |
648 }; | 648 }; |
649 | 649 |
650 TEST_F(LayerWithNullDelegateTest, EscapedDebugNames) { | 650 TEST_F(LayerWithNullDelegateTest, EscapedDebugNames) { |
651 scoped_ptr<Layer> layer(CreateLayer(LAYER_NOT_DRAWN)); | 651 scoped_ptr<Layer> layer(CreateLayer(LAYER_NOT_DRAWN)); |
652 std::string name = "\"\'\\/\b\f\n\r\t\n"; | 652 std::string name = "\"\'\\/\b\f\n\r\t\n"; |
653 layer->set_name(name); | 653 layer->set_name(name); |
654 scoped_refptr<base::debug::ConvertableToTraceFormat> debug_info = | 654 scoped_refptr<base::debug::ConvertableToTraceFormat> debug_info = |
655 layer->TakeDebugInfo(); | 655 layer->TakeDebugInfo(); |
656 EXPECT_TRUE(!!debug_info); | 656 EXPECT_TRUE(!!debug_info.get()); |
657 std::string json; | 657 std::string json; |
658 debug_info->AppendAsTraceFormat(&json); | 658 debug_info->AppendAsTraceFormat(&json); |
659 base::JSONReader json_reader; | 659 base::JSONReader json_reader; |
660 scoped_ptr<base::Value> debug_info_value(json_reader.ReadToValue(json)); | 660 scoped_ptr<base::Value> debug_info_value(json_reader.ReadToValue(json)); |
661 EXPECT_TRUE(!!debug_info_value); | 661 EXPECT_TRUE(!!debug_info_value); |
662 EXPECT_TRUE(debug_info_value->IsType(base::Value::TYPE_DICTIONARY)); | 662 EXPECT_TRUE(debug_info_value->IsType(base::Value::TYPE_DICTIONARY)); |
663 base::DictionaryValue* dictionary = 0; | 663 base::DictionaryValue* dictionary = 0; |
664 EXPECT_TRUE(debug_info_value->GetAsDictionary(&dictionary)); | 664 EXPECT_TRUE(debug_info_value->GetAsDictionary(&dictionary)); |
665 std::string roundtrip; | 665 std::string roundtrip; |
666 EXPECT_TRUE(dictionary->GetString("layer_name", &roundtrip)); | 666 EXPECT_TRUE(dictionary->GetString("layer_name", &roundtrip)); |
(...skipping 701 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1368 root->Add(child.get()); | 1368 root->Add(child.get()); |
1369 DrawTree(root.get()); | 1369 DrawTree(root.get()); |
1370 | 1370 |
1371 scoped_refptr<cc::DelegatedFrameResourceCollection> resource_collection = | 1371 scoped_refptr<cc::DelegatedFrameResourceCollection> resource_collection = |
1372 new cc::DelegatedFrameResourceCollection; | 1372 new cc::DelegatedFrameResourceCollection; |
1373 scoped_refptr<cc::DelegatedFrameProvider> frame_provider; | 1373 scoped_refptr<cc::DelegatedFrameProvider> frame_provider; |
1374 | 1374 |
1375 // Content matches layer size. | 1375 // Content matches layer size. |
1376 frame_provider = new cc::DelegatedFrameProvider( | 1376 frame_provider = new cc::DelegatedFrameProvider( |
1377 resource_collection.get(), MakeFrameData(gfx::Size(10, 10))); | 1377 resource_collection.get(), MakeFrameData(gfx::Size(10, 10))); |
1378 child->SetShowDelegatedContent(frame_provider, gfx::Size(10, 10)); | 1378 child->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10)); |
1379 EXPECT_EQ(child->cc_layer()->bounds().ToString(), | 1379 EXPECT_EQ(child->cc_layer()->bounds().ToString(), |
1380 gfx::Size(10, 10).ToString()); | 1380 gfx::Size(10, 10).ToString()); |
1381 | 1381 |
1382 // Content larger than layer. | 1382 // Content larger than layer. |
1383 child->SetBounds(gfx::Rect(0, 0, 5, 5)); | 1383 child->SetBounds(gfx::Rect(0, 0, 5, 5)); |
1384 EXPECT_EQ(child->cc_layer()->bounds().ToString(), | 1384 EXPECT_EQ(child->cc_layer()->bounds().ToString(), |
1385 gfx::Size(5, 5).ToString()); | 1385 gfx::Size(5, 5).ToString()); |
1386 | 1386 |
1387 // Content smaller than layer. | 1387 // Content smaller than layer. |
1388 child->SetBounds(gfx::Rect(0, 0, 10, 10)); | 1388 child->SetBounds(gfx::Rect(0, 0, 10, 10)); |
1389 frame_provider = new cc::DelegatedFrameProvider( | 1389 frame_provider = new cc::DelegatedFrameProvider( |
1390 resource_collection.get(), MakeFrameData(gfx::Size(5, 5))); | 1390 resource_collection.get(), MakeFrameData(gfx::Size(5, 5))); |
1391 child->SetShowDelegatedContent(frame_provider, gfx::Size(5, 5)); | 1391 child->SetShowDelegatedContent(frame_provider.get(), gfx::Size(5, 5)); |
1392 EXPECT_EQ(child->cc_layer()->bounds().ToString(), gfx::Size(5, 5).ToString()); | 1392 EXPECT_EQ(child->cc_layer()->bounds().ToString(), gfx::Size(5, 5).ToString()); |
1393 | 1393 |
1394 // Hi-DPI content on low-DPI layer. | 1394 // Hi-DPI content on low-DPI layer. |
1395 frame_provider = new cc::DelegatedFrameProvider( | 1395 frame_provider = new cc::DelegatedFrameProvider( |
1396 resource_collection.get(), MakeFrameData(gfx::Size(20, 20))); | 1396 resource_collection.get(), MakeFrameData(gfx::Size(20, 20))); |
1397 child->SetShowDelegatedContent(frame_provider, gfx::Size(10, 10)); | 1397 child->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10)); |
1398 EXPECT_EQ(child->cc_layer()->bounds().ToString(), | 1398 EXPECT_EQ(child->cc_layer()->bounds().ToString(), |
1399 gfx::Size(10, 10).ToString()); | 1399 gfx::Size(10, 10).ToString()); |
1400 | 1400 |
1401 // Hi-DPI content on hi-DPI layer. | 1401 // Hi-DPI content on hi-DPI layer. |
1402 compositor()->SetScaleAndSize(2.f, gfx::Size(1000, 1000)); | 1402 compositor()->SetScaleAndSize(2.f, gfx::Size(1000, 1000)); |
1403 EXPECT_EQ(child->cc_layer()->bounds().ToString(), | 1403 EXPECT_EQ(child->cc_layer()->bounds().ToString(), |
1404 gfx::Size(10, 10).ToString()); | 1404 gfx::Size(10, 10).ToString()); |
1405 | 1405 |
1406 // Low-DPI content on hi-DPI layer. | 1406 // Low-DPI content on hi-DPI layer. |
1407 frame_provider = new cc::DelegatedFrameProvider( | 1407 frame_provider = new cc::DelegatedFrameProvider( |
1408 resource_collection.get(), MakeFrameData(gfx::Size(10, 10))); | 1408 resource_collection.get(), MakeFrameData(gfx::Size(10, 10))); |
1409 child->SetShowDelegatedContent(frame_provider, gfx::Size(10, 10)); | 1409 child->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10)); |
1410 EXPECT_EQ(child->cc_layer()->bounds().ToString(), | 1410 EXPECT_EQ(child->cc_layer()->bounds().ToString(), |
1411 gfx::Size(10, 10).ToString()); | 1411 gfx::Size(10, 10).ToString()); |
1412 } | 1412 } |
1413 | 1413 |
1414 TEST_F(LayerWithDelegateTest, ExternalContent) { | 1414 TEST_F(LayerWithDelegateTest, ExternalContent) { |
1415 scoped_ptr<Layer> root(CreateNoTextureLayer(gfx::Rect(0, 0, 1000, 1000))); | 1415 scoped_ptr<Layer> root(CreateNoTextureLayer(gfx::Rect(0, 0, 1000, 1000))); |
1416 scoped_ptr<Layer> child(CreateLayer(LAYER_TEXTURED)); | 1416 scoped_ptr<Layer> child(CreateLayer(LAYER_TEXTURED)); |
1417 | 1417 |
1418 child->SetBounds(gfx::Rect(0, 0, 10, 10)); | 1418 child->SetBounds(gfx::Rect(0, 0, 10, 10)); |
1419 child->SetVisible(true); | 1419 child->SetVisible(true); |
1420 root->Add(child.get()); | 1420 root->Add(child.get()); |
1421 | 1421 |
1422 // The layer is already showing painted content, so the cc layer won't change. | 1422 // The layer is already showing painted content, so the cc layer won't change. |
1423 scoped_refptr<cc::Layer> before = child->cc_layer(); | 1423 scoped_refptr<cc::Layer> before = child->cc_layer(); |
1424 child->SetShowPaintedContent(); | 1424 child->SetShowPaintedContent(); |
1425 EXPECT_TRUE(child->cc_layer()); | 1425 EXPECT_TRUE(child->cc_layer()); |
1426 EXPECT_EQ(before, child->cc_layer()); | 1426 EXPECT_EQ(before.get(), child->cc_layer()); |
1427 | 1427 |
1428 scoped_refptr<cc::DelegatedFrameResourceCollection> resource_collection = | 1428 scoped_refptr<cc::DelegatedFrameResourceCollection> resource_collection = |
1429 new cc::DelegatedFrameResourceCollection; | 1429 new cc::DelegatedFrameResourceCollection; |
1430 scoped_refptr<cc::DelegatedFrameProvider> frame_provider = | 1430 scoped_refptr<cc::DelegatedFrameProvider> frame_provider = |
1431 new cc::DelegatedFrameProvider(resource_collection.get(), | 1431 new cc::DelegatedFrameProvider(resource_collection.get(), |
1432 MakeFrameData(gfx::Size(10, 10))); | 1432 MakeFrameData(gfx::Size(10, 10))); |
1433 | 1433 |
1434 // Showing delegated content changes the underlying cc layer. | 1434 // Showing delegated content changes the underlying cc layer. |
1435 before = child->cc_layer(); | 1435 before = child->cc_layer(); |
1436 child->SetShowDelegatedContent(frame_provider, gfx::Size(10, 10)); | 1436 child->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10)); |
1437 EXPECT_TRUE(child->cc_layer()); | 1437 EXPECT_TRUE(child->cc_layer()); |
1438 EXPECT_NE(before, child->cc_layer()); | 1438 EXPECT_NE(before.get(), child->cc_layer()); |
1439 | 1439 |
1440 // Changing to painted content should change the underlying cc layer. | 1440 // Changing to painted content should change the underlying cc layer. |
1441 before = child->cc_layer(); | 1441 before = child->cc_layer(); |
1442 child->SetShowPaintedContent(); | 1442 child->SetShowPaintedContent(); |
1443 EXPECT_TRUE(child->cc_layer()); | 1443 EXPECT_TRUE(child->cc_layer()); |
1444 EXPECT_NE(before, child->cc_layer()); | 1444 EXPECT_NE(before.get(), child->cc_layer()); |
1445 } | 1445 } |
1446 | 1446 |
1447 // Tests Layer::AddThreadedAnimation and Layer::RemoveThreadedAnimation. | 1447 // Tests Layer::AddThreadedAnimation and Layer::RemoveThreadedAnimation. |
1448 TEST_F(LayerWithRealCompositorTest, AddRemoveThreadedAnimations) { | 1448 TEST_F(LayerWithRealCompositorTest, AddRemoveThreadedAnimations) { |
1449 scoped_ptr<Layer> root(CreateLayer(LAYER_TEXTURED)); | 1449 scoped_ptr<Layer> root(CreateLayer(LAYER_TEXTURED)); |
1450 scoped_ptr<Layer> l1(CreateLayer(LAYER_TEXTURED)); | 1450 scoped_ptr<Layer> l1(CreateLayer(LAYER_TEXTURED)); |
1451 scoped_ptr<Layer> l2(CreateLayer(LAYER_TEXTURED)); | 1451 scoped_ptr<Layer> l2(CreateLayer(LAYER_TEXTURED)); |
1452 | 1452 |
1453 l1->SetAnimator(LayerAnimator::CreateImplicitAnimator()); | 1453 l1->SetAnimator(LayerAnimator::CreateImplicitAnimator()); |
1454 l2->SetAnimator(LayerAnimator::CreateImplicitAnimator()); | 1454 l2->SetAnimator(LayerAnimator::CreateImplicitAnimator()); |
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1630 scoped_ptr<Layer> layer(new Layer(LAYER_TEXTURED)); | 1630 scoped_ptr<Layer> layer(new Layer(LAYER_TEXTURED)); |
1631 gfx::Rect damage_rect(2, 1, 5, 3); | 1631 gfx::Rect damage_rect(2, 1, 5, 3); |
1632 | 1632 |
1633 FrameDamageCheckingDelegate delegate; | 1633 FrameDamageCheckingDelegate delegate; |
1634 layer->set_delegate(&delegate); | 1634 layer->set_delegate(&delegate); |
1635 scoped_refptr<cc::DelegatedFrameResourceCollection> resource_collection = | 1635 scoped_refptr<cc::DelegatedFrameResourceCollection> resource_collection = |
1636 new cc::DelegatedFrameResourceCollection; | 1636 new cc::DelegatedFrameResourceCollection; |
1637 scoped_refptr<cc::DelegatedFrameProvider> frame_provider( | 1637 scoped_refptr<cc::DelegatedFrameProvider> frame_provider( |
1638 new cc::DelegatedFrameProvider(resource_collection.get(), | 1638 new cc::DelegatedFrameProvider(resource_collection.get(), |
1639 MakeFrameData(gfx::Size(10, 10)))); | 1639 MakeFrameData(gfx::Size(10, 10)))); |
1640 layer->SetShowDelegatedContent(frame_provider, gfx::Size(10, 10)); | 1640 layer->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10)); |
1641 | 1641 |
1642 EXPECT_FALSE(delegate.delegated_frame_damage_called()); | 1642 EXPECT_FALSE(delegate.delegated_frame_damage_called()); |
1643 layer->OnDelegatedFrameDamage(damage_rect); | 1643 layer->OnDelegatedFrameDamage(damage_rect); |
1644 EXPECT_TRUE(delegate.delegated_frame_damage_called()); | 1644 EXPECT_TRUE(delegate.delegated_frame_damage_called()); |
1645 EXPECT_EQ(damage_rect, delegate.delegated_frame_damage_rect()); | 1645 EXPECT_EQ(damage_rect, delegate.delegated_frame_damage_rect()); |
1646 } | 1646 } |
1647 | 1647 |
1648 } // namespace ui | 1648 } // namespace ui |
OLD | NEW |