11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved. 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file. 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/at_exit.h" 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/base_paths.h" 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/command_line.h" 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/files/file_path.h" 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/message_loop/message_loop.h" 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/path_service.h" 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "mojo/application/application_runner_chromium.h" 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "mojo/public/c/system/main.h" 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "mojo/public/cpp/application/application_connection.h" 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "mojo/public/cpp/application/application_delegate.h" 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "mojo/public/cpp/application/interface_factory.h" 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "mojo/public/cpp/bindings/interface_ptr.h" 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "mojo/services/clipboard/clipboard_standalone_impl.h" 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass Delegate : public mojo::ApplicationDelegate, 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public mojo::InterfaceFactory<mojo::Clipboard> { 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public: 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci Delegate() {} 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual ~Delegate() {} 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // mojo::ApplicationDelegate implementation. 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual bool ConfigureIncomingConnection( 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci mojo::ApplicationConnection* connection) OVERRIDE { 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci connection->AddService(this); 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return true; 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // mojo::InterfaceFactory<mojo::Clipboard> implementation. 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void Create( 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci mojo::ApplicationConnection* connection, 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci mojo::InterfaceRequest<mojo::Clipboard> request) OVERRIDE { 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // TODO(erg): Write native implementations of the clipboard. For now, we 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // just build a clipboard which doesn't interact with the system. 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci mojo::BindToRequest(new mojo::ClipboardStandaloneImpl(), &request); 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciMojoResult MojoMain(MojoHandle shell_handle) { 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci mojo::ApplicationRunnerChromium runner(new Delegate); 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return runner.Run(shell_handle); 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 46