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..a74ab69d2c080c4aee7ec699be58cdea6987fecf 100644 |
--- a/content/test/test_render_frame.cc |
+++ b/content/test/test_render_frame.cc |
@@ -4,14 +4,47 @@ |
#include "content/test/test_render_frame.h" |
+#include "base/memory/ptr_util.h" |
+#include "content/common/frame.mojom.h" |
#include "content/common/navigation_params.h" |
#include "content/common/resource_request_body_impl.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() = default; |
+ ~MockFrameHostIPC() override = default; |
+ |
+ void CreateNewWindow(mojom::CreateNewWindowParamsPtr params, |
+ const CreateNewWindowCallback& callback) override { |
+ // NOTE: This implementation of mojom::FrameHostIPC 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(); |
+ } |
+ |
+ bool CreateNewWindow(mojom::CreateNewWindowParamsPtr params, |
+ mojom::CreateNewWindowReplyPtr* reply) override { |
+ *reply = mojom::CreateNewWindowReply::New(); |
+ |
+ // It is not very nice to reach directly into the MockRenderThread here. The |
+ // logic to create mock frames/windows should potentially live here. |
+ MockRenderThread* mock_render_thread = |
+ static_cast<MockRenderThread*>(RenderThread::Get()); |
+ mock_render_thread->OnCreateWindow(*params, reply->get()); |
+ return true; |
+ } |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(MockFrameHostIPC); |
+}; |
+ |
// static |
RenderFrameImpl* TestRenderFrame::CreateTestRenderFrame( |
const RenderFrameImpl::CreateParams& params) { |
@@ -20,6 +53,7 @@ RenderFrameImpl* TestRenderFrame::CreateTestRenderFrame( |
TestRenderFrame::TestRenderFrame(const RenderFrameImpl::CreateParams& params) |
: RenderFrameImpl(params) { |
+ mock_frame_host_ipc_ = base::MakeUnique<MockFrameHostIPC>(); |
} |
TestRenderFrame::~TestRenderFrame() { |
@@ -89,4 +123,8 @@ blink::WebNavigationPolicy TestRenderFrame::DecidePolicyForNavigation( |
return RenderFrameImpl::DecidePolicyForNavigation(info); |
} |
+mojom::FrameHostIPC* TestRenderFrame::GetFrameHostIPC() { |
+ return mock_frame_host_ipc_.get(); |
+} |
+ |
} // namespace content |