Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2103)

Unified Diff: content/test/test_render_frame.cc

Issue 2821473002: Service CreateNewWindow on the UI thread with a new mojo interface (Closed)
Patch Set: Move over to render frame (but not WebFrameClient yet) + a bunch of cleanups Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698