Index: content/common/gpu/gpu_channel_test_common.h |
diff --git a/content/common/gpu/gpu_channel_test_common.h b/content/common/gpu/gpu_channel_test_common.h |
index d3243b5175293be2cb93839d5722013040633856..fc56738f3e177aaeb3e279d42795d9fe69e6deb2 100644 |
--- a/content/common/gpu/gpu_channel_test_common.h |
+++ b/content/common/gpu/gpu_channel_test_common.h |
@@ -7,6 +7,8 @@ |
#include "base/memory/scoped_ptr.h" |
#include "content/common/gpu/gpu_channel.h" |
#include "content/common/gpu/gpu_channel_manager.h" |
+#include "content/common/gpu/gpu_channel_manager_delegate.h" |
+#include "ipc/ipc_test_sink.h" |
#include "testing/gtest/include/gtest/gtest.h" |
namespace base { |
@@ -21,18 +23,54 @@ namespace content { |
class SyncPointManager; |
+class TestGpuChannelManagerDelegate : public GpuChannelManagerDelegate { |
+ public: |
+ TestGpuChannelManagerDelegate(); |
+ ~TestGpuChannelManagerDelegate() override; |
+ |
+ const IPC::ChannelHandle& last_established_channel_handle() const { |
+ return last_established_channel_handle_; |
+ } |
+ |
+ private: |
+ // GpuChannelManagerDelegate implementation: |
+ void AddSubscription(int32_t client_id, unsigned int target) override; |
+ void ChannelEstablished(const IPC::ChannelHandle& channel_handle) override; |
+ void DidCreateOffscreenContext(const GURL& active_url) override; |
+ void DidDestroyChannel(int client_id) override; |
+ void DidDestroyOffscreenContext(const GURL& active_url) override; |
+ void DidLoseContext(bool offscreen, |
+ gpu::error::ContextLostReason reason, |
+ const GURL& active_url) override; |
+ void GpuMemoryUmaStats(const GPUMemoryUmaStats& params) override; |
+ void RemoveSubscription(int32_t client_id, unsigned int target) override; |
+ void StoreShaderToDisk(int32_t client_id, |
+ const std::string& key, |
+ const std::string& shader) override; |
+#if defined(OS_MACOSX) |
+ void SendAcceleratedSurfaceBuffersSwapped( |
+ const AcceleratedSurfaceBuffersSwappedParams& params) override; |
+#endif |
+#if defined(OS_WIN) |
+ void SendAcceleratedSurfaceCreatedChildWindow( |
+ const gfx::PluginWindowHandle& parent_window, |
+ const gfx::PluginWindowHandle& child_window) override; |
+#endif |
+ |
+ IPC::ChannelHandle last_established_channel_handle_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(TestGpuChannelManagerDelegate); |
+}; |
+ |
class TestGpuChannelManager : public GpuChannelManager { |
public: |
- TestGpuChannelManager(IPC::TestSink* sink, |
+ TestGpuChannelManager(GpuChannelManagerDelegate* delegate, |
base::SingleThreadTaskRunner* task_runner, |
base::SingleThreadTaskRunner* io_task_runner, |
gpu::SyncPointManager* sync_point_manager, |
GpuMemoryBufferFactory* gpu_memory_buffer_factory); |
~TestGpuChannelManager() override; |
- // IPC::Sender implementation. |
- bool Send(IPC::Message* msg) override; |
- |
protected: |
scoped_ptr<GpuChannel> CreateGpuChannel( |
int client_id, |
@@ -40,15 +78,11 @@ class TestGpuChannelManager : public GpuChannelManager { |
bool preempts, |
bool allow_view_command_buffers, |
bool allow_real_time_streams) override; |
- |
- private: |
- IPC::TestSink* const sink_; |
}; |
class TestGpuChannel : public GpuChannel { |
public: |
- TestGpuChannel(IPC::TestSink* sink, |
- GpuChannelManager* gpu_channel_manager, |
+ TestGpuChannel(GpuChannelManager* gpu_channel_manager, |
gpu::SyncPointManager* sync_point_manager, |
gfx::GLShareGroup* share_group, |
gpu::gles2::MailboxManager* mailbox_manager, |
@@ -62,6 +96,7 @@ class TestGpuChannel : public GpuChannel { |
bool allow_real_time_streams); |
~TestGpuChannel() override; |
+ IPC::TestSink* sink() { return &sink_; } |
base::ProcessId GetClientPID() const override; |
IPC::ChannelHandle Init(base::WaitableEvent* shutdown_event) override; |
@@ -70,7 +105,7 @@ class TestGpuChannel : public GpuChannel { |
bool Send(IPC::Message* msg) override; |
private: |
- IPC::TestSink* const sink_; |
+ IPC::TestSink sink_; |
}; |
class GpuChannelTestCommon : public testing::Test { |
@@ -79,15 +114,17 @@ class GpuChannelTestCommon : public testing::Test { |
~GpuChannelTestCommon() override; |
protected: |
- IPC::TestSink* sink() { return sink_.get(); } |
GpuChannelManager* channel_manager() { return channel_manager_.get(); } |
+ TestGpuChannelManagerDelegate* channel_manager_delegate() { |
+ return channel_manager_delegate_.get(); |
+ } |
base::TestSimpleTaskRunner* task_runner() { return task_runner_.get(); } |
private: |
- scoped_ptr<IPC::TestSink> sink_; |
scoped_refptr<base::TestSimpleTaskRunner> task_runner_; |
scoped_refptr<base::TestSimpleTaskRunner> io_task_runner_; |
scoped_ptr<gpu::SyncPointManager> sync_point_manager_; |
+ scoped_ptr<TestGpuChannelManagerDelegate> channel_manager_delegate_; |
scoped_ptr<GpuChannelManager> channel_manager_; |
}; |