| 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 |