Chromium Code Reviews| 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); |
| } |