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

Unified Diff: content/browser/renderer_host/render_widget_host_view_mus.cc

Issue 1476643002: mustash: Enable connections to mus from the Chrome renderer [take 2] (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: RenderWidgetMus => RenderWidgetMusConnection Created 5 years, 1 month 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/browser/renderer_host/render_widget_host_view_mus.cc
diff --git a/content/browser/renderer_host/render_widget_host_view_mus.cc b/content/browser/renderer_host/render_widget_host_view_mus.cc
index e3710354421139cd1eec7483f6e329692625df93..05a47194d5cbe9f995e42afa72b186fc4db32a52 100644
--- a/content/browser/renderer_host/render_widget_host_view_mus.cc
+++ b/content/browser/renderer_host/render_widget_host_view_mus.cc
@@ -4,7 +4,14 @@
#include "content/browser/renderer_host/render_widget_host_view_mus.h"
+#include "components/mus/public/cpp/window.h"
+#include "components/mus/public/cpp/window_tree_connection.h"
+#include "content/browser/mojo/mojo_shell_client_host.h"
+#include "content/browser/renderer_host/render_process_host_impl.h"
#include "content/browser/renderer_host/render_widget_host_impl.h"
+#include "content/common/render_process_client.mojom.h"
+#include "content/public/common/mojo_shell_connection.h"
+#include "mojo/application/public/cpp/application_impl.h"
namespace blink {
struct WebScreenInfo;
@@ -13,10 +20,19 @@ struct WebScreenInfo;
namespace content {
RenderWidgetHostViewMus::RenderWidgetHostViewMus(
+ mus::Window* parent_window,
RenderWidgetHostImpl* host,
base::WeakPtr<RenderWidgetHostViewBase> platform_view)
: host_(host), platform_view_(platform_view) {
+ DCHECK(parent_window);
+ mus::Window* window = parent_window->connection()->NewWindow();
+ window->SetVisible(true);
+ window->SetBounds(gfx::Rect(300, 300));
+ parent_window->AddChild(window);
+ window_.reset(new mus::ScopedWindowPtr(window));
host_->SetView(this);
+
+ EmbedClient();
}
RenderWidgetHostViewMus::~RenderWidgetHostViewMus() {}
@@ -37,6 +53,7 @@ bool RenderWidgetHostViewMus::IsShowing() {
void RenderWidgetHostViewMus::SetSize(const gfx::Size& size) {
size_ = size;
+ window_->window()->SetBounds(gfx::Rect(size));
host_->WasResized();
}
@@ -91,6 +108,18 @@ void RenderWidgetHostViewMus::SetTooltipText(
// TOOD(fsamuel): Ask window manager for tooltip?
}
+void RenderWidgetHostViewMus::EmbedClient() {
+ std::string url = GetMojoApplicationInstanceURL(host_->GetProcess());
Ben Goodger (Google) 2015/11/25 04:07:28 just put this in the ctor since no one else calls
Fady Samuel 2015/11/25 17:45:52 Done.
+ mojom::RenderProcessClientPtr render_process_client;
+ MojoShellConnection::Get()->GetApplication()->ConnectToService(
+ url, &render_process_client);
+
+ mus::mojom::WindowTreeClientPtr window_tree_client;
+ render_process_client->OnRenderWidgetHostViewCreated(
+ host_->GetRoutingID(), mojo::GetProxy(&window_tree_client));
+ window_->window()->Embed(window_tree_client.Pass());
+}
+
void RenderWidgetHostViewMus::InitAsChild(gfx::NativeView parent_view) {
platform_view_->InitAsChild(parent_view);
}

Powered by Google App Engine
This is Rietveld 408576698