| 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 "content/browser/renderer_host/render_widget_host_view_aura.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_aura.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <tuple> | 10 #include <tuple> |
| (...skipping 1650 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1661 // Swapping a frame should trigger a swap ACK IPC because we have reset the | 1661 // Swapping a frame should trigger a swap ACK IPC because we have reset the |
| 1662 // compositor. | 1662 // compositor. |
| 1663 view_->OnSwapCompositorFrame(0, | 1663 view_->OnSwapCompositorFrame(0, |
| 1664 MakeDelegatedFrame(1.f, view_size, view_rect)); | 1664 MakeDelegatedFrame(1.f, view_size, view_rect)); |
| 1665 EXPECT_EQ(1u, sink_->message_count()); | 1665 EXPECT_EQ(1u, sink_->message_count()); |
| 1666 { | 1666 { |
| 1667 const IPC::Message* msg = sink_->GetMessageAt(0); | 1667 const IPC::Message* msg = sink_->GetMessageAt(0); |
| 1668 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, msg->type()); | 1668 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, msg->type()); |
| 1669 ViewMsg_ReclaimCompositorResources::Param params; | 1669 ViewMsg_ReclaimCompositorResources::Param params; |
| 1670 ViewMsg_ReclaimCompositorResources::Read(msg, ¶ms); | 1670 ViewMsg_ReclaimCompositorResources::Read(msg, ¶ms); |
| 1671 EXPECT_EQ(0u, std::get<0>(params)); // output_surface_id | 1671 EXPECT_EQ(0u, std::get<0>(params)); // compositor_frame_sink_id |
| 1672 EXPECT_TRUE(std::get<1>(params)); // is_swap_ack | 1672 EXPECT_TRUE(std::get<1>(params)); // is_swap_ack |
| 1673 } | 1673 } |
| 1674 manager->RemoveObserver(&damage_observer); | 1674 manager->RemoveObserver(&damage_observer); |
| 1675 } | 1675 } |
| 1676 | 1676 |
| 1677 // This test verifies that returned resources do not require a pending ack. | 1677 // This test verifies that returned resources do not require a pending ack. |
| 1678 TEST_F(RenderWidgetHostViewAuraTest, ReturnedResources) { | 1678 TEST_F(RenderWidgetHostViewAuraTest, ReturnedResources) { |
| 1679 gfx::Size view_size(100, 100); | 1679 gfx::Size view_size(100, 100); |
| 1680 gfx::Rect view_rect(view_size); | 1680 gfx::Rect view_rect(view_size); |
| 1681 | 1681 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1692 cc::ReturnedResource resource; | 1692 cc::ReturnedResource resource; |
| 1693 resource.id = 1; | 1693 resource.id = 1; |
| 1694 resources.push_back(resource); | 1694 resources.push_back(resource); |
| 1695 view_->ReturnResources(resources); | 1695 view_->ReturnResources(resources); |
| 1696 EXPECT_EQ(1u, sink_->message_count()); | 1696 EXPECT_EQ(1u, sink_->message_count()); |
| 1697 { | 1697 { |
| 1698 const IPC::Message* msg = sink_->GetMessageAt(0); | 1698 const IPC::Message* msg = sink_->GetMessageAt(0); |
| 1699 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, msg->type()); | 1699 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, msg->type()); |
| 1700 ViewMsg_ReclaimCompositorResources::Param params; | 1700 ViewMsg_ReclaimCompositorResources::Param params; |
| 1701 ViewMsg_ReclaimCompositorResources::Read(msg, ¶ms); | 1701 ViewMsg_ReclaimCompositorResources::Read(msg, ¶ms); |
| 1702 EXPECT_EQ(0u, std::get<0>(params)); // output_surface_id | 1702 EXPECT_EQ(0u, std::get<0>(params)); // compositor_frame_sink_id |
| 1703 EXPECT_FALSE(std::get<1>(params)); // is_swap_ack | 1703 EXPECT_FALSE(std::get<1>(params)); // is_swap_ack |
| 1704 } | 1704 } |
| 1705 } | 1705 } |
| 1706 | 1706 |
| 1707 // This test verifies that when the output_surface_id changes, then | 1707 // This test verifies that when the compositor_frame_sink_id changes, then |
| 1708 // DelegateFrameHost returns compositor resources without a swap ack. | 1708 // DelegateFrameHost returns compositor resources without a swap ack. |
| 1709 TEST_F(RenderWidgetHostViewAuraTest, TwoOutputSurfaces) { | 1709 TEST_F(RenderWidgetHostViewAuraTest, TwoOutputSurfaces) { |
| 1710 FakeSurfaceDamageObserver damage_observer; | 1710 FakeSurfaceDamageObserver damage_observer; |
| 1711 ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); | 1711 ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); |
| 1712 cc::SurfaceManager* manager = factory->GetSurfaceManager(); | 1712 cc::SurfaceManager* manager = factory->GetSurfaceManager(); |
| 1713 manager->AddObserver(&damage_observer); | 1713 manager->AddObserver(&damage_observer); |
| 1714 | 1714 |
| 1715 gfx::Size view_size(100, 100); | 1715 gfx::Size view_size(100, 100); |
| 1716 gfx::Rect view_rect(view_size); | 1716 gfx::Rect view_rect(view_size); |
| 1717 | 1717 |
| 1718 view_->InitAsChild(nullptr); | 1718 view_->InitAsChild(nullptr); |
| 1719 aura::client::ParentWindowWithContext( | 1719 aura::client::ParentWindowWithContext( |
| 1720 view_->GetNativeView(), parent_view_->GetNativeView()->GetRootWindow(), | 1720 view_->GetNativeView(), parent_view_->GetNativeView()->GetRootWindow(), |
| 1721 gfx::Rect()); | 1721 gfx::Rect()); |
| 1722 view_->SetSize(view_size); | 1722 view_->SetSize(view_size); |
| 1723 view_->Show(); | 1723 view_->Show(); |
| 1724 sink_->ClearMessages(); | 1724 sink_->ClearMessages(); |
| 1725 | 1725 |
| 1726 view_->OnSwapCompositorFrame(0, | 1726 view_->OnSwapCompositorFrame(0, |
| 1727 MakeDelegatedFrame(1.f, view_size, view_rect)); | 1727 MakeDelegatedFrame(1.f, view_size, view_rect)); |
| 1728 | 1728 |
| 1729 // Accumulate some returned resources. This should not trigger an IPC. | 1729 // Accumulate some returned resources. This should not trigger an IPC. |
| 1730 cc::ReturnedResourceArray resources; | 1730 cc::ReturnedResourceArray resources; |
| 1731 cc::ReturnedResource resource; | 1731 cc::ReturnedResource resource; |
| 1732 resource.id = 1; | 1732 resource.id = 1; |
| 1733 resources.push_back(resource); | 1733 resources.push_back(resource); |
| 1734 view_->ReturnResources(resources); | 1734 view_->ReturnResources(resources); |
| 1735 EXPECT_EQ(0u, sink_->message_count()); | 1735 EXPECT_EQ(0u, sink_->message_count()); |
| 1736 | 1736 |
| 1737 // Swap another CompositorFrame but this time from another output_surface_id. | 1737 // Swap another CompositorFrame but this time from another |
| 1738 // compositor_frame_sink_id. |
| 1738 // This should trigger a non-ACK ReclaimCompositorResources IPC. | 1739 // This should trigger a non-ACK ReclaimCompositorResources IPC. |
| 1739 view_->OnSwapCompositorFrame(1, | 1740 view_->OnSwapCompositorFrame(1, |
| 1740 MakeDelegatedFrame(1.f, view_size, view_rect)); | 1741 MakeDelegatedFrame(1.f, view_size, view_rect)); |
| 1741 EXPECT_EQ(1u, sink_->message_count()); | 1742 EXPECT_EQ(1u, sink_->message_count()); |
| 1742 { | 1743 { |
| 1743 const IPC::Message* msg = sink_->GetMessageAt(0); | 1744 const IPC::Message* msg = sink_->GetMessageAt(0); |
| 1744 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, msg->type()); | 1745 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, msg->type()); |
| 1745 ViewMsg_ReclaimCompositorResources::Param params; | 1746 ViewMsg_ReclaimCompositorResources::Param params; |
| 1746 ViewMsg_ReclaimCompositorResources::Read(msg, ¶ms); | 1747 ViewMsg_ReclaimCompositorResources::Read(msg, ¶ms); |
| 1747 EXPECT_EQ(0u, std::get<0>(params)); // output_surface_id | 1748 EXPECT_EQ(0u, std::get<0>(params)); // compositor_frame_sink_id |
| 1748 EXPECT_FALSE(std::get<1>(params)); // is_swap_ack | 1749 EXPECT_FALSE(std::get<1>(params)); // is_swap_ack |
| 1749 } | 1750 } |
| 1750 sink_->ClearMessages(); | 1751 sink_->ClearMessages(); |
| 1751 | 1752 |
| 1752 // Report that the surface is drawn to trigger an ACK. | 1753 // Report that the surface is drawn to trigger an ACK. |
| 1753 cc::Surface* surface = manager->GetSurfaceForId(view_->surface_id()); | 1754 cc::Surface* surface = manager->GetSurfaceForId(view_->surface_id()); |
| 1754 EXPECT_TRUE(surface); | 1755 EXPECT_TRUE(surface); |
| 1755 surface->RunDrawCallbacks(); | 1756 surface->RunDrawCallbacks(); |
| 1756 EXPECT_EQ(1u, sink_->message_count()); | 1757 EXPECT_EQ(1u, sink_->message_count()); |
| 1757 { | 1758 { |
| 1758 const IPC::Message* msg = sink_->GetMessageAt(0); | 1759 const IPC::Message* msg = sink_->GetMessageAt(0); |
| 1759 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, msg->type()); | 1760 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, msg->type()); |
| 1760 ViewMsg_ReclaimCompositorResources::Param params; | 1761 ViewMsg_ReclaimCompositorResources::Param params; |
| 1761 ViewMsg_ReclaimCompositorResources::Read(msg, ¶ms); | 1762 ViewMsg_ReclaimCompositorResources::Read(msg, ¶ms); |
| 1762 EXPECT_EQ(1u, std::get<0>(params)); // output_surface_id | 1763 EXPECT_EQ(1u, std::get<0>(params)); // compositor_frame_sink_id |
| 1763 EXPECT_EQ(true, std::get<1>(params)); // is_swap_ack | 1764 EXPECT_EQ(true, std::get<1>(params)); // is_swap_ack |
| 1764 } | 1765 } |
| 1765 | 1766 |
| 1766 manager->RemoveObserver(&damage_observer); | 1767 manager->RemoveObserver(&damage_observer); |
| 1767 } | 1768 } |
| 1768 | 1769 |
| 1769 // Resizing in fullscreen mode should send the up-to-date screen info. | 1770 // Resizing in fullscreen mode should send the up-to-date screen info. |
| 1770 // http://crbug.com/324350 | 1771 // http://crbug.com/324350 |
| 1771 TEST_F(RenderWidgetHostViewAuraTest, DISABLED_FullscreenResize) { | 1772 TEST_F(RenderWidgetHostViewAuraTest, DISABLED_FullscreenResize) { |
| 1772 aura::Window* root_window = aura_test_helper_->root_window(); | 1773 aura::Window* root_window = aura_test_helper_->root_window(); |
| (...skipping 2814 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4587 | 4588 |
| 4588 // Retrieve the selected text from clipboard and verify it is as expected. | 4589 // Retrieve the selected text from clipboard and verify it is as expected. |
| 4589 base::string16 result_text; | 4590 base::string16 result_text; |
| 4590 clipboard->ReadText(ui::CLIPBOARD_TYPE_SELECTION, &result_text); | 4591 clipboard->ReadText(ui::CLIPBOARD_TYPE_SELECTION, &result_text); |
| 4591 EXPECT_EQ(expected_text, result_text); | 4592 EXPECT_EQ(expected_text, result_text); |
| 4592 } | 4593 } |
| 4593 } | 4594 } |
| 4594 #endif | 4595 #endif |
| 4595 | 4596 |
| 4596 } // namespace content | 4597 } // namespace content |
| OLD | NEW |