// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/mojo_runner_state.h" #include "components/mus/public/interfaces/window_manager.mojom.h" #include "mojo/application/public/cpp/application_delegate.h" #include "mojo/application/public/cpp/application_impl.h" #include "mojo/converters/network/network_type_converters.h" #include "mojo/runner/child/runner_connection.h" #include "ui/views/mus/window_manager_connection.h" class ChromeApplicationDelegate : public mojo::ApplicationDelegate { public: ChromeApplicationDelegate() {} ~ChromeApplicationDelegate() override {} private: void Initialize(mojo::ApplicationImpl* application) override { mus::mojom::WindowManagerPtr window_manager; application->ConnectToService( mojo::URLRequest::From(std::string("mojo:example_wm")), &window_manager); views::WindowManagerConnection::Create(window_manager.Pass(), application); } bool ConfigureIncomingConnection( mojo::ApplicationConnection* connection) override { return false; } DISALLOW_COPY_AND_ASSIGN(ChromeApplicationDelegate); }; MojoRunnerState::MojoRunnerState() {} MojoRunnerState::~MojoRunnerState() {} void MojoRunnerState::WaitForConnection() { mojo::InterfaceRequest<mojo::Application> application_request; runner_connection_.reset( mojo::runner::RunnerConnection::ConnectToRunner(&application_request)); application_delegate_.reset(new ChromeApplicationDelegate); application_impl_.reset(new mojo::ApplicationImpl( application_delegate_.get(), application_request.Pass())); application_impl_->WaitForInitialize(); }