| 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 8df1594b79e4a8ed650c48ce343c72cfa73b041e..4fdb6c48223f48e9a63624cb5283742c12340a81 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_mus.cc
|
| +++ b/content/browser/renderer_host/render_widget_host_view_mus.cc
|
| @@ -28,9 +28,15 @@ struct WebScreenInfo;
|
|
|
| namespace content {
|
|
|
| +namespace {
|
| +
|
| +void OnEventAck(bool handled) {}
|
| +
|
| +} // namespace
|
| +
|
| RenderWidgetHostViewMus::RenderWidgetHostViewMus(mus::Window* parent_window,
|
| RenderWidgetHostImpl* host)
|
| - : host_(host), aura_window_(nullptr) {
|
| + : host_(host), aura_window_(nullptr), weak_factory_(this) {
|
| DCHECK(parent_window);
|
| mus::Window* window = parent_window->window_tree()->NewWindow();
|
| window->SetVisible(true);
|
| @@ -49,7 +55,9 @@ RenderWidgetHostViewMus::RenderWidgetHostViewMus(mus::Window* parent_window,
|
| factory->CreateWindowTreeClientForRenderWidget(
|
| host_->GetRoutingID(), mojo::GetProxy(&window_tree_client));
|
| mus_window_->window()->Embed(std::move(window_tree_client),
|
| - mus::mojom::kEmbedFlagEmbedderInterceptsEvents);
|
| + base::Bind(&RenderWidgetHostViewMus::OnEmbed,
|
| + weak_factory_.GetWeakPtr()),
|
| + mus::mojom::kEmbedFlagEmbedderInterceptsEvents);
|
| }
|
|
|
| RenderWidgetHostViewMus::~RenderWidgetHostViewMus() {}
|
| @@ -61,6 +69,18 @@ void RenderWidgetHostViewMus::InternalSetBounds(const gfx::Rect& rect) {
|
| host_->WasResized();
|
| }
|
|
|
| +void X() {
|
| +}
|
| +
|
| +void RenderWidgetHostViewMus::OnEmbed(
|
| + bool success,
|
| + mus::mojom::InputEventHandlerPtr handler) {
|
| + DCHECK(success);
|
| + LOG(ERROR) << "Binding";
|
| + event_handler_ = std::move(handler);
|
| + event_handler_.set_connection_error_handler(base::Bind(&X));
|
| +}
|
| +
|
| void RenderWidgetHostViewMus::Show() {
|
| // TODO(fsamuel): Update visibility in Mus.
|
| // There is some interstitial complexity that we'll need to figure out here.
|
| @@ -315,6 +335,20 @@ void RenderWidgetHostViewMus::OnWindowInputEvent(
|
| std::unique_ptr<base::Callback<void(mus::mojom::EventResult)>>*
|
| ack_callback) {
|
| // TODO(sad): Dispatch |event| to the RenderWidgetHost.
|
| + std::unique_ptr<ui::Event> send;
|
| + if (event.IsMouseEvent()) {
|
| + send = ui::Event::Clone(
|
| + ui::PointerEvent(static_cast<const ui::MouseEvent&>(event)));
|
| + } else {
|
| + send = ui::Event::Clone(event);
|
| + }
|
| + LOG(ERROR) << "X: " << window->server_id() << " vs. "
|
| + << mus_window_->window()->server_id();
|
| + event_handler_->OnInputEvent(mus_window_->window()->server_id(),
|
| + std::move(send),
|
| + base::Bind(&OnEventAck));
|
| + (*ack_callback)->Run(mus::mojom::EventResult::HANDLED);
|
| + ack_callback->reset();
|
| }
|
|
|
| } // namespace content
|
|
|