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

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_aura_unittest.cc

Issue 2403573002: cc: Introduce mechanism to observe CompositorFrames submitted to new surfaceIDs (Closed)
Patch Set: Updated changes missed Created 4 years, 2 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
« no previous file with comments | « cc/surfaces/surface_observer.h ('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 "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 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 private: 241 private:
242 // Window that we're observing, or nullptr if it's been destroyed. 242 // Window that we're observing, or nullptr if it's been destroyed.
243 aura::Window* window_; 243 aura::Window* window_;
244 244
245 // Was |window_| destroyed? 245 // Was |window_| destroyed?
246 bool destroyed_; 246 bool destroyed_;
247 247
248 DISALLOW_COPY_AND_ASSIGN(TestWindowObserver); 248 DISALLOW_COPY_AND_ASSIGN(TestWindowObserver);
249 }; 249 };
250 250
251 class FakeSurfaceDamageObserver : public cc::SurfaceDamageObserver { 251 class FakeSurfaceObserver : public cc::SurfaceObserver {
252 public: 252 public:
253 void OnSurfaceCreated(const cc::SurfaceId& surface_id,
254 const gfx::Size& frame,
255 float device_scale_factor) override {}
256
253 void OnSurfaceDamaged(const cc::SurfaceId& id, bool* changed) override { 257 void OnSurfaceDamaged(const cc::SurfaceId& id, bool* changed) override {
254 *changed = true; 258 *changed = true;
255 } 259 }
256 }; 260 };
257 261
258 class FakeFrameSubscriber : public RenderWidgetHostViewFrameSubscriber { 262 class FakeFrameSubscriber : public RenderWidgetHostViewFrameSubscriber {
259 public: 263 public:
260 FakeFrameSubscriber(gfx::Size size, base::Callback<void(bool)> callback) 264 FakeFrameSubscriber(gfx::Size size, base::Callback<void(bool)> callback)
261 : size_(size), callback_(callback), should_capture_(true) {} 265 : size_(size), callback_(callback), should_capture_(true) {}
262 266
(...skipping 1405 matching lines...) Expand 10 before | Expand all | Expand 10 after
1668 resource.id = 1; 1672 resource.id = 1;
1669 frame.delegated_frame_data->resource_list.push_back(std::move(resource)); 1673 frame.delegated_frame_data->resource_list.push_back(std::move(resource));
1670 } 1674 }
1671 return frame; 1675 return frame;
1672 } 1676 }
1673 1677
1674 // If the ui::Compositor has been reset then resources are returned back to the 1678 // If the ui::Compositor has been reset then resources are returned back to the
1675 // client in response to the swap. This test verifies that the returned 1679 // client in response to the swap. This test verifies that the returned
1676 // resources are indeed reported as being in response to a swap. 1680 // resources are indeed reported as being in response to a swap.
1677 TEST_F(RenderWidgetHostViewAuraTest, ResettingCompositorReturnsResources) { 1681 TEST_F(RenderWidgetHostViewAuraTest, ResettingCompositorReturnsResources) {
1678 FakeSurfaceDamageObserver damage_observer; 1682 FakeSurfaceObserver manager_observer;
1679 ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); 1683 ImageTransportFactory* factory = ImageTransportFactory::GetInstance();
1680 cc::SurfaceManager* manager = factory->GetSurfaceManager(); 1684 cc::SurfaceManager* manager = factory->GetSurfaceManager();
1681 manager->AddObserver(&damage_observer); 1685 manager->AddObserver(&manager_observer);
1682 1686
1683 gfx::Size view_size(100, 100); 1687 gfx::Size view_size(100, 100);
1684 gfx::Rect view_rect(view_size); 1688 gfx::Rect view_rect(view_size);
1685 1689
1686 view_->InitAsChild(nullptr); 1690 view_->InitAsChild(nullptr);
1687 aura::client::ParentWindowWithContext( 1691 aura::client::ParentWindowWithContext(
1688 view_->GetNativeView(), parent_view_->GetNativeView()->GetRootWindow(), 1692 view_->GetNativeView(), parent_view_->GetNativeView()->GetRootWindow(),
1689 gfx::Rect()); 1693 gfx::Rect());
1690 view_->SetSize(view_size); 1694 view_->SetSize(view_size);
1691 view_->Show(); 1695 view_->Show();
1692 sink_->ClearMessages(); 1696 sink_->ClearMessages();
1693 1697
1694 view_->ResetCompositor(); 1698 view_->ResetCompositor();
1695 1699
1696 // Swapping a frame should trigger a swap ACK IPC because we have reset the 1700 // Swapping a frame should trigger a swap ACK IPC because we have reset the
1697 // compositor. 1701 // compositor.
1698 view_->OnSwapCompositorFrame(0, 1702 view_->OnSwapCompositorFrame(0,
1699 MakeDelegatedFrame(1.f, view_size, view_rect)); 1703 MakeDelegatedFrame(1.f, view_size, view_rect));
1700 EXPECT_EQ(1u, sink_->message_count()); 1704 EXPECT_EQ(1u, sink_->message_count());
1701 { 1705 {
1702 const IPC::Message* msg = sink_->GetMessageAt(0); 1706 const IPC::Message* msg = sink_->GetMessageAt(0);
1703 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, msg->type()); 1707 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, msg->type());
1704 ViewMsg_ReclaimCompositorResources::Param params; 1708 ViewMsg_ReclaimCompositorResources::Param params;
1705 ViewMsg_ReclaimCompositorResources::Read(msg, &params); 1709 ViewMsg_ReclaimCompositorResources::Read(msg, &params);
1706 EXPECT_EQ(0u, std::get<0>(params)); // compositor_frame_sink_id 1710 EXPECT_EQ(0u, std::get<0>(params)); // compositor_frame_sink_id
1707 EXPECT_TRUE(std::get<1>(params)); // is_swap_ack 1711 EXPECT_TRUE(std::get<1>(params)); // is_swap_ack
1708 } 1712 }
1709 manager->RemoveObserver(&damage_observer); 1713 manager->RemoveObserver(&manager_observer);
1710 } 1714 }
1711 1715
1712 // This test verifies that returned resources do not require a pending ack. 1716 // This test verifies that returned resources do not require a pending ack.
1713 TEST_F(RenderWidgetHostViewAuraTest, ReturnedResources) { 1717 TEST_F(RenderWidgetHostViewAuraTest, ReturnedResources) {
1714 gfx::Size view_size(100, 100); 1718 gfx::Size view_size(100, 100);
1715 gfx::Rect view_rect(view_size); 1719 gfx::Rect view_rect(view_size);
1716 1720
1717 view_->InitAsChild(nullptr); 1721 view_->InitAsChild(nullptr);
1718 aura::client::ParentWindowWithContext( 1722 aura::client::ParentWindowWithContext(
1719 view_->GetNativeView(), parent_view_->GetNativeView()->GetRootWindow(), 1723 view_->GetNativeView(), parent_view_->GetNativeView()->GetRootWindow(),
(...skipping 15 matching lines...) Expand all
1735 ViewMsg_ReclaimCompositorResources::Param params; 1739 ViewMsg_ReclaimCompositorResources::Param params;
1736 ViewMsg_ReclaimCompositorResources::Read(msg, &params); 1740 ViewMsg_ReclaimCompositorResources::Read(msg, &params);
1737 EXPECT_EQ(0u, std::get<0>(params)); // compositor_frame_sink_id 1741 EXPECT_EQ(0u, std::get<0>(params)); // compositor_frame_sink_id
1738 EXPECT_FALSE(std::get<1>(params)); // is_swap_ack 1742 EXPECT_FALSE(std::get<1>(params)); // is_swap_ack
1739 } 1743 }
1740 } 1744 }
1741 1745
1742 // This test verifies that when the compositor_frame_sink_id changes, then 1746 // This test verifies that when the compositor_frame_sink_id changes, then
1743 // DelegateFrameHost returns compositor resources without a swap ack. 1747 // DelegateFrameHost returns compositor resources without a swap ack.
1744 TEST_F(RenderWidgetHostViewAuraTest, TwoOutputSurfaces) { 1748 TEST_F(RenderWidgetHostViewAuraTest, TwoOutputSurfaces) {
1745 FakeSurfaceDamageObserver damage_observer; 1749 FakeSurfaceObserver manager_observer;
1746 ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); 1750 ImageTransportFactory* factory = ImageTransportFactory::GetInstance();
1747 cc::SurfaceManager* manager = factory->GetSurfaceManager(); 1751 cc::SurfaceManager* manager = factory->GetSurfaceManager();
1748 manager->AddObserver(&damage_observer); 1752 manager->AddObserver(&manager_observer);
1749 1753
1750 gfx::Size view_size(100, 100); 1754 gfx::Size view_size(100, 100);
1751 gfx::Rect view_rect(view_size); 1755 gfx::Rect view_rect(view_size);
1752 1756
1753 view_->InitAsChild(nullptr); 1757 view_->InitAsChild(nullptr);
1754 aura::client::ParentWindowWithContext( 1758 aura::client::ParentWindowWithContext(
1755 view_->GetNativeView(), parent_view_->GetNativeView()->GetRootWindow(), 1759 view_->GetNativeView(), parent_view_->GetNativeView()->GetRootWindow(),
1756 gfx::Rect()); 1760 gfx::Rect());
1757 view_->SetSize(view_size); 1761 view_->SetSize(view_size);
1758 view_->Show(); 1762 view_->Show();
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1792 EXPECT_EQ(1u, sink_->message_count()); 1796 EXPECT_EQ(1u, sink_->message_count());
1793 { 1797 {
1794 const IPC::Message* msg = sink_->GetMessageAt(0); 1798 const IPC::Message* msg = sink_->GetMessageAt(0);
1795 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, msg->type()); 1799 EXPECT_EQ(ViewMsg_ReclaimCompositorResources::ID, msg->type());
1796 ViewMsg_ReclaimCompositorResources::Param params; 1800 ViewMsg_ReclaimCompositorResources::Param params;
1797 ViewMsg_ReclaimCompositorResources::Read(msg, &params); 1801 ViewMsg_ReclaimCompositorResources::Read(msg, &params);
1798 EXPECT_EQ(1u, std::get<0>(params)); // compositor_frame_sink_id 1802 EXPECT_EQ(1u, std::get<0>(params)); // compositor_frame_sink_id
1799 EXPECT_EQ(true, std::get<1>(params)); // is_swap_ack 1803 EXPECT_EQ(true, std::get<1>(params)); // is_swap_ack
1800 } 1804 }
1801 1805
1802 manager->RemoveObserver(&damage_observer); 1806 manager->RemoveObserver(&manager_observer);
1803 } 1807 }
1804 1808
1805 // Resizing in fullscreen mode should send the up-to-date screen info. 1809 // Resizing in fullscreen mode should send the up-to-date screen info.
1806 // http://crbug.com/324350 1810 // http://crbug.com/324350
1807 TEST_F(RenderWidgetHostViewAuraTest, DISABLED_FullscreenResize) { 1811 TEST_F(RenderWidgetHostViewAuraTest, DISABLED_FullscreenResize) {
1808 aura::Window* root_window = aura_test_helper_->root_window(); 1812 aura::Window* root_window = aura_test_helper_->root_window();
1809 root_window->SetLayoutManager(new FullscreenLayoutManager(root_window)); 1813 root_window->SetLayoutManager(new FullscreenLayoutManager(root_window));
1810 view_->InitAsFullscreen(parent_view_); 1814 view_->InitAsFullscreen(parent_view_);
1811 view_->Show(); 1815 view_->Show();
1812 widget_host_->ResetSizeAndRepaintPendingFlags(); 1816 widget_host_->ResetSizeAndRepaintPendingFlags();
(...skipping 2865 matching lines...) Expand 10 before | Expand all | Expand 10 after
4678 4682
4679 // Retrieve the selected text from clipboard and verify it is as expected. 4683 // Retrieve the selected text from clipboard and verify it is as expected.
4680 base::string16 result_text; 4684 base::string16 result_text;
4681 clipboard->ReadText(ui::CLIPBOARD_TYPE_SELECTION, &result_text); 4685 clipboard->ReadText(ui::CLIPBOARD_TYPE_SELECTION, &result_text);
4682 EXPECT_EQ(expected_text, result_text); 4686 EXPECT_EQ(expected_text, result_text);
4683 } 4687 }
4684 } 4688 }
4685 #endif 4689 #endif
4686 4690
4687 } // namespace content 4691 } // namespace content
OLDNEW
« no previous file with comments | « cc/surfaces/surface_observer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698