Index: content/test/test_render_frame.cc |
diff --git a/content/test/test_render_frame.cc b/content/test/test_render_frame.cc |
index 6c0bb0133b81b4af5f5e4e615a24e6bb8f48f943..812b48780741e1f074bccceb3e6863013d83d9d7 100644 |
--- a/content/test/test_render_frame.cc |
+++ b/content/test/test_render_frame.cc |
@@ -4,14 +4,42 @@ |
#include "content/test/test_render_frame.h" |
+#include "base/memory/ptr_util.h" |
#include "content/common/navigation_params.h" |
#include "content/common/resource_request_body_impl.h" |
+#include "content/public/common/associated_interface_provider.h" |
#include "content/public/common/browser_side_navigation_policy.h" |
#include "content/public/common/resource_response.h" |
+#include "content/public/test/mock_render_thread.h" |
#include "third_party/WebKit/public/web/WebLocalFrame.h" |
namespace content { |
+class MockFrameHostIPC : public mojom::FrameHostIPC { |
+ public: |
+ MockFrameHostIPC() : binding_(this) {} |
+ ~MockFrameHostIPC() override = default; |
+ |
+ void CreateNewWindow(mojom::CreateNewWindowParamsPtr params, |
+ const CreateNewWindowCallback& callback) override { |
+ mojom::CreateNewWindowReplyPtr reply = mojom::CreateNewWindowReply::New(); |
+ MockRenderThread* mock_render_thread = |
+ static_cast<MockRenderThread*>(RenderThread::Get()); |
+ mock_render_thread->OnCreateWindow(*params, reply.get()); |
+ callback.Run(std::move(reply)); |
+ } |
+ |
+ void Bind(mojo::ScopedInterfaceEndpointHandle handle) { |
+ binding_.Bind( |
+ mojo::MakeAssociatedRequest<mojom::FrameHostIPC>(std::move(handle))); |
+ } |
+ |
+ private: |
+ mojo::AssociatedBinding<mojom::FrameHostIPC> binding_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(MockFrameHostIPC); |
+}; |
+ |
// static |
RenderFrameImpl* TestRenderFrame::CreateTestRenderFrame( |
const RenderFrameImpl::CreateParams& params) { |
@@ -19,7 +47,12 @@ RenderFrameImpl* TestRenderFrame::CreateTestRenderFrame( |
} |
TestRenderFrame::TestRenderFrame(const RenderFrameImpl::CreateParams& params) |
- : RenderFrameImpl(params) { |
+ : RenderFrameImpl(params), |
+ mock_frame_host_ipc_(base::MakeUnique<MockFrameHostIPC>()) { |
+ GetRemoteAssociatedInterfaces()->OverrideBinderForTesting( |
+ mojom::FrameHostIPC::Name_, |
+ base::Bind(&MockFrameHostIPC::Bind, |
+ base::Unretained(mock_frame_host_ipc_.get()))); |
} |
TestRenderFrame::~TestRenderFrame() { |