OLD | NEW |
1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2016 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/compositor/test/no_transport_image_transport_factory.h
" | 5 #include "content/browser/compositor/test/no_transport_image_transport_factory.h
" |
6 #include "content/browser/renderer_host/offscreen_canvas_surface_impl.h" | 6 #include "content/browser/renderer_host/offscreen_canvas_surface_impl.h" |
7 #include "content/browser/renderer_host/offscreen_canvas_surface_manager.h" | 7 #include "content/browser/renderer_host/offscreen_canvas_surface_manager.h" |
8 #include "content/public/test/test_browser_thread.h" | 8 #include "content/public/test/test_browser_thread.h" |
9 #include "mojo/public/cpp/bindings/binding.h" | 9 #include "mojo/public/cpp/bindings/binding.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 // This test mimics the workflow of OffscreenCanvas.commit() on renderer | 68 // This test mimics the workflow of OffscreenCanvas.commit() on renderer |
69 // process. | 69 // process. |
70 TEST_F(OffscreenCanvasSurfaceManagerTest, | 70 TEST_F(OffscreenCanvasSurfaceManagerTest, |
71 SingleHTMLCanvasElementTransferToOffscreen) { | 71 SingleHTMLCanvasElementTransferToOffscreen) { |
72 blink::mojom::OffscreenCanvasSurfaceClientPtr client; | 72 blink::mojom::OffscreenCanvasSurfaceClientPtr client; |
73 cc::FrameSinkId frame_sink_id(3, 3); | 73 cc::FrameSinkId frame_sink_id(3, 3); |
74 cc::SurfaceIdAllocator surface_id_allocator; | 74 cc::SurfaceIdAllocator surface_id_allocator; |
75 cc::LocalSurfaceId current_local_surface_id( | 75 cc::LocalSurfaceId current_local_surface_id( |
76 surface_id_allocator.GenerateId()); | 76 surface_id_allocator.GenerateId()); |
77 | 77 |
78 auto surface_impl = base::WrapUnique( | 78 auto surface_impl = base::WrapUnique(new OffscreenCanvasSurfaceImpl( |
79 new OffscreenCanvasSurfaceImpl(frame_sink_id, std::move(client))); | 79 cc::FrameSinkId(), frame_sink_id, std::move(client))); |
80 EXPECT_EQ(1, this->getNumSurfaceImplInstances()); | 80 EXPECT_EQ(1, this->getNumSurfaceImplInstances()); |
81 EXPECT_EQ(surface_impl.get(), | 81 EXPECT_EQ(surface_impl.get(), |
82 OffscreenCanvasSurfaceManager::GetInstance()->GetSurfaceInstance( | 82 OffscreenCanvasSurfaceManager::GetInstance()->GetSurfaceInstance( |
83 frame_sink_id)); | 83 frame_sink_id)); |
84 | 84 |
85 this->OnSurfaceCreated( | 85 this->OnSurfaceCreated( |
86 cc::SurfaceId(frame_sink_id, current_local_surface_id)); | 86 cc::SurfaceId(frame_sink_id, current_local_surface_id)); |
87 EXPECT_EQ(current_local_surface_id, surface_impl->current_local_surface_id()); | 87 EXPECT_EQ(current_local_surface_id, surface_impl->current_local_surface_id()); |
88 | 88 |
89 surface_impl = nullptr; | 89 surface_impl = nullptr; |
90 EXPECT_EQ(0, this->getNumSurfaceImplInstances()); | 90 EXPECT_EQ(0, this->getNumSurfaceImplInstances()); |
91 } | 91 } |
92 | 92 |
93 TEST_F(OffscreenCanvasSurfaceManagerTest, | 93 TEST_F(OffscreenCanvasSurfaceManagerTest, |
94 MultiHTMLCanvasElementTransferToOffscreen) { | 94 MultiHTMLCanvasElementTransferToOffscreen) { |
95 blink::mojom::OffscreenCanvasSurfaceClientPtr client_a; | 95 blink::mojom::OffscreenCanvasSurfaceClientPtr client_a; |
| 96 cc::FrameSinkId dummy_parent_frame_sink_id(0, 0); |
96 cc::FrameSinkId frame_sink_id_a(3, 3); | 97 cc::FrameSinkId frame_sink_id_a(3, 3); |
97 cc::SurfaceIdAllocator surface_id_allocator; | 98 cc::SurfaceIdAllocator surface_id_allocator; |
98 auto surface_impl_a = base::WrapUnique( | 99 auto surface_impl_a = base::WrapUnique(new OffscreenCanvasSurfaceImpl( |
99 new OffscreenCanvasSurfaceImpl(frame_sink_id_a, std::move(client_a))); | 100 dummy_parent_frame_sink_id, frame_sink_id_a, std::move(client_a))); |
100 | 101 |
101 blink::mojom::OffscreenCanvasSurfaceClientPtr client_b; | 102 blink::mojom::OffscreenCanvasSurfaceClientPtr client_b; |
102 cc::FrameSinkId frame_sink_id_b(4, 4); | 103 cc::FrameSinkId frame_sink_id_b(4, 4); |
103 | 104 |
104 auto surface_impl_b = base::WrapUnique( | 105 auto surface_impl_b = base::WrapUnique(new OffscreenCanvasSurfaceImpl( |
105 new OffscreenCanvasSurfaceImpl(frame_sink_id_b, std::move(client_b))); | 106 dummy_parent_frame_sink_id, frame_sink_id_b, std::move(client_b))); |
106 | 107 |
107 EXPECT_EQ(2, this->getNumSurfaceImplInstances()); | 108 EXPECT_EQ(2, this->getNumSurfaceImplInstances()); |
108 EXPECT_EQ(surface_impl_a.get(), | 109 EXPECT_EQ(surface_impl_a.get(), |
109 OffscreenCanvasSurfaceManager::GetInstance()->GetSurfaceInstance( | 110 OffscreenCanvasSurfaceManager::GetInstance()->GetSurfaceInstance( |
110 frame_sink_id_a)); | 111 frame_sink_id_a)); |
111 EXPECT_EQ(surface_impl_b.get(), | 112 EXPECT_EQ(surface_impl_b.get(), |
112 OffscreenCanvasSurfaceManager::GetInstance()->GetSurfaceInstance( | 113 OffscreenCanvasSurfaceManager::GetInstance()->GetSurfaceInstance( |
113 frame_sink_id_b)); | 114 frame_sink_id_b)); |
114 | 115 |
115 surface_impl_a = nullptr; | 116 surface_impl_a = nullptr; |
116 EXPECT_EQ(1, this->getNumSurfaceImplInstances()); | 117 EXPECT_EQ(1, this->getNumSurfaceImplInstances()); |
117 surface_impl_b = nullptr; | 118 surface_impl_b = nullptr; |
118 EXPECT_EQ(0, this->getNumSurfaceImplInstances()); | 119 EXPECT_EQ(0, this->getNumSurfaceImplInstances()); |
119 } | 120 } |
120 | 121 |
121 } // namespace content | 122 } // namespace content |
OLD | NEW |