Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(145)

Side by Side Diff: mojo/public/cpp/application/lib/application_runner_chromium.cc

Issue 565323002: Move application:chromium bindings to mojo/application/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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 "mojo/public/cpp/application/application_runner_chromium.h"
6
7 #include "base/at_exit.h"
8 #include "base/command_line.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "base/message_loop/message_loop.h"
11 #include "mojo/common/message_pump_mojo.h"
12 #include "mojo/public/cpp/application/application_delegate.h"
13 #include "mojo/public/cpp/application/application_impl.h"
14
15 namespace mojo {
16
17 // static
18 void ApplicationImpl::Terminate() {
19 if (base::MessageLoop::current()->is_running())
20 base::MessageLoop::current()->Quit();
21 }
22
23 ApplicationRunnerChromium::ApplicationRunnerChromium(
24 ApplicationDelegate* delegate)
25 : delegate_(scoped_ptr<ApplicationDelegate>(delegate)),
26 message_loop_type_(base::MessageLoop::TYPE_CUSTOM),
27 has_run_(false) {}
28
29 ApplicationRunnerChromium::~ApplicationRunnerChromium() {}
30
31 void ApplicationRunnerChromium::set_message_loop_type(
32 base::MessageLoop::Type type) {
33 DCHECK_NE(base::MessageLoop::TYPE_CUSTOM, type);
34 DCHECK(!has_run_);
35
36 message_loop_type_ = type;
37 }
38
39 MojoResult ApplicationRunnerChromium::Run(MojoHandle shell_handle) {
40 DCHECK(!has_run_);
41 has_run_ = true;
42
43 base::CommandLine::Init(0, NULL);
44 #if !defined(COMPONENT_BUILD)
45 base::AtExitManager at_exit;
46 #endif
47
48 {
49 scoped_ptr<base::MessageLoop> loop;
50 if (message_loop_type_ == base::MessageLoop::TYPE_CUSTOM)
51 loop.reset(new base::MessageLoop(common::MessagePumpMojo::Create()));
52 else
53 loop.reset(new base::MessageLoop(message_loop_type_));
54
55 ApplicationImpl impl(delegate_.get(),
56 MakeScopedHandle(MessagePipeHandle(shell_handle)));
57 loop->Run();
58 }
59 delegate_.reset();
60 return MOJO_RESULT_OK;
61 }
62
63 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/public/cpp/application/application_runner_chromium.h ('k') | mojo/services/html_viewer/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698