Chromium Code Reviews| Index: content/public/test/mock_render_thread.cc |
| diff --git a/content/public/test/mock_render_thread.cc b/content/public/test/mock_render_thread.cc |
| index ceeac534f8a171be31e881f60998b0bf67afe166..ce24527a6b9134666b5b34ae7c58222409d2aa41 100644 |
| --- a/content/public/test/mock_render_thread.cc |
| +++ b/content/public/test/mock_render_thread.cc |
| @@ -9,8 +9,10 @@ |
| #include "base/threading/thread_task_runner_handle.h" |
| #include "build/build_config.h" |
| #include "content/common/frame_messages.h" |
| +#include "content/common/render_message_filter.mojom.h" |
| #include "content/common/view_messages.h" |
| #include "content/public/renderer/render_thread_observer.h" |
| +#include "content/renderer/render_thread_impl.h" |
| #include "content/renderer/render_view_impl.h" |
| #include "ipc/ipc_message_utils.h" |
| #include "ipc/ipc_sync_message.h" |
| @@ -22,13 +24,54 @@ |
| namespace content { |
| +namespace { |
| + |
| +class MockRenderMessageFilterImpl : public mojom::RenderMessageFilter { |
| + public: |
| + explicit MockRenderMessageFilterImpl(MockRenderThread* thread) |
| + : thread_(thread) {} |
| + ~MockRenderMessageFilterImpl() override {} |
| + |
| + // mojom::RenderMessageFilter: |
| + void GenerateRoutingID(const GenerateRoutingIDCallback& callback) override { |
| + NOTREACHED(); |
| + callback.Run(MSG_ROUTING_NONE); |
| + } |
| + |
| + void CreateNewWindow(mojom::CreateNewWindowParamsPtr params, |
| + const CreateNewWindowCallback& callback) override { |
| + // NOTE: This implementation of mojom::RenderMessageFilter is used client- |
| + // side only. Because sync mojom methods have a different interface for |
| + // bindings- and client-side, we only implement the client-side interface |
| + // on this object. |
| + NOTREACHED(); |
| + } |
| + |
| + // Note that |
|
ncarter (slow)
2016/09/27 20:32:41
?
Ken Rockot(use gerrit already)
2016/09/27 21:05:41
Oops. :> Removed - this was going to be the comm
|
| + bool CreateNewWindow(mojom::CreateNewWindowParamsPtr params, |
| + mojom::CreateNewWindowReplyPtr* reply) override { |
| + *reply = mojom::CreateNewWindowReply::New(); |
| + thread_->OnCreateWindow(*params, reply->get()); |
| + return true; |
| + } |
| + |
| + private: |
| + MockRenderThread* const thread_; |
| +}; |
| + |
| +} // namespace |
| + |
| MockRenderThread::MockRenderThread() |
| : routing_id_(0), |
| opener_id_(0), |
| new_window_routing_id_(0), |
| new_window_main_frame_routing_id_(0), |
| new_window_main_frame_widget_routing_id_(0), |
| - new_frame_routing_id_(0) {} |
| + new_frame_routing_id_(0), |
| + mock_render_message_filter_(new MockRenderMessageFilterImpl(this)) { |
| + RenderThreadImpl::SetRenderMessageFilterForTesting( |
| + mock_render_message_filter_.get()); |
| +} |
| MockRenderThread::~MockRenderThread() { |
| while (!filters_.empty()) { |
| @@ -218,16 +261,6 @@ void MockRenderThread::OnCreateWidget(int opener_id, |
| *route_id = routing_id_; |
| } |
| -// The View expects to be returned a valid route_id different from its own. |
| -void MockRenderThread::OnCreateWindow( |
| - const ViewHostMsg_CreateWindow_Params& params, |
| - ViewHostMsg_CreateWindow_Reply* reply) { |
| - reply->route_id = new_window_routing_id_; |
| - reply->main_frame_route_id = new_window_main_frame_routing_id_; |
| - reply->main_frame_widget_route_id = new_window_main_frame_widget_routing_id_; |
| - reply->cloned_session_storage_namespace_id = 0; |
| -} |
| - |
| // The Frame expects to be returned a valid route_id different from its own. |
| void MockRenderThread::OnCreateChildFrame( |
| const FrameHostMsg_CreateChildFrame_Params& params, |
| @@ -252,7 +285,6 @@ bool MockRenderThread::OnMessageReceived(const IPC::Message& msg) { |
| bool handled = true; |
| IPC_BEGIN_MESSAGE_MAP(MockRenderThread, msg) |
| IPC_MESSAGE_HANDLER(ViewHostMsg_CreateWidget, OnCreateWidget) |
| - IPC_MESSAGE_HANDLER(ViewHostMsg_CreateWindow, OnCreateWindow) |
| IPC_MESSAGE_HANDLER(FrameHostMsg_CreateChildFrame, OnCreateChildFrame) |
| IPC_MESSAGE_UNHANDLED(handled = false) |
| IPC_END_MESSAGE_MAP() |
| @@ -269,4 +301,14 @@ void MockRenderThread::OnDuplicateSection( |
| } |
| #endif // defined(OS_WIN) |
| +// The View expects to be returned a valid route_id different from its own. |
| +void MockRenderThread::OnCreateWindow( |
| + const mojom::CreateNewWindowParams& params, |
| + mojom::CreateNewWindowReply* reply) { |
| + reply->route_id = new_window_routing_id_; |
| + reply->main_frame_route_id = new_window_main_frame_routing_id_; |
| + reply->main_frame_widget_route_id = new_window_main_frame_widget_routing_id_; |
| + reply->cloned_session_storage_namespace_id = 0; |
| +} |
| + |
| } // namespace content |