• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "base/at_exit.h"
6 #include "base/base_paths.h"
7 #include "base/command_line.h"
8 #include "base/files/file_path.h"
9 #include "base/message_loop/message_loop.h"
10 #include "base/path_service.h"
11 #include "mojo/application/application_runner_chromium.h"
12 #include "mojo/public/c/system/main.h"
13 #include "mojo/public/cpp/application/application_connection.h"
14 #include "mojo/public/cpp/application/application_delegate.h"
15 #include "mojo/public/cpp/application/interface_factory.h"
16 #include "mojo/public/cpp/bindings/interface_ptr.h"
17 #include "mojo/services/clipboard/clipboard_standalone_impl.h"
18 
19 class Delegate : public mojo::ApplicationDelegate,
20                  public mojo::InterfaceFactory<mojo::Clipboard> {
21  public:
Delegate()22   Delegate() {}
~Delegate()23   virtual ~Delegate() {}
24 
25   // mojo::ApplicationDelegate implementation.
ConfigureIncomingConnection(mojo::ApplicationConnection * connection)26   virtual bool ConfigureIncomingConnection(
27       mojo::ApplicationConnection* connection) OVERRIDE {
28     connection->AddService(this);
29     return true;
30   }
31 
32   // mojo::InterfaceFactory<mojo::Clipboard> implementation.
Create(mojo::ApplicationConnection * connection,mojo::InterfaceRequest<mojo::Clipboard> request)33   virtual void Create(
34       mojo::ApplicationConnection* connection,
35       mojo::InterfaceRequest<mojo::Clipboard> request) OVERRIDE {
36     // TODO(erg): Write native implementations of the clipboard. For now, we
37     // just build a clipboard which doesn't interact with the system.
38     mojo::BindToRequest(new mojo::ClipboardStandaloneImpl(), &request);
39   }
40 };
41 
MojoMain(MojoHandle shell_handle)42 MojoResult MojoMain(MojoHandle shell_handle) {
43   mojo::ApplicationRunnerChromium runner(new Delegate);
44   return runner.Run(shell_handle);
45 }
46