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

Side by Side Diff: mojo/shell/context.cc

Issue 395163002: Bundle the network service in the shell on Android. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « mojo/services/profile/profile_service_impl.cc ('k') | mojo/shell/network_service_loader.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "mojo/shell/context.h" 5 #include "mojo/shell/context.h"
6 6
7 #include "build/build_config.h" 7 #include "build/build_config.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "base/memory/scoped_vector.h" 10 #include "base/memory/scoped_vector.h"
11 #include "mojo/embedder/embedder.h" 11 #include "mojo/embedder/embedder.h"
12 #include "mojo/gles2/gles2_support_impl.h" 12 #include "mojo/gles2/gles2_support_impl.h"
13 #include "mojo/public/cpp/application/application_impl.h" 13 #include "mojo/public/cpp/application/application_impl.h"
14 #include "mojo/service_manager/background_service_loader.h" 14 #include "mojo/service_manager/background_service_loader.h"
15 #include "mojo/service_manager/service_loader.h" 15 #include "mojo/service_manager/service_loader.h"
16 #include "mojo/service_manager/service_manager.h" 16 #include "mojo/service_manager/service_manager.h"
17 #include "mojo/services/native_viewport/native_viewport_service.h" 17 #include "mojo/services/native_viewport/native_viewport_service.h"
18 #include "mojo/shell/dynamic_service_loader.h" 18 #include "mojo/shell/dynamic_service_loader.h"
19 #include "mojo/shell/in_process_dynamic_service_runner.h" 19 #include "mojo/shell/in_process_dynamic_service_runner.h"
20 #include "mojo/shell/out_of_process_dynamic_service_runner.h" 20 #include "mojo/shell/out_of_process_dynamic_service_runner.h"
21 #include "mojo/shell/profile_service_loader.h"
22 #include "mojo/shell/switches.h" 21 #include "mojo/shell/switches.h"
23 #include "mojo/spy/spy.h" 22 #include "mojo/spy/spy.h"
24 23
25 #if defined(OS_LINUX) 24 #if defined(OS_LINUX)
26 #include "mojo/shell/dbus_service_loader_linux.h" 25 #include "mojo/shell/dbus_service_loader_linux.h"
27 #endif // defined(OS_LINUX) 26 #endif // defined(OS_LINUX)
28 27
28 #if defined(OS_ANDROID)
29 #include "mojo/shell/network_service_loader.h"
30 #endif // defined(OS_ANDROID)
31
29 #if defined(USE_AURA) 32 #if defined(USE_AURA)
30 #include "mojo/shell/view_manager_loader.h" 33 #include "mojo/shell/view_manager_loader.h"
31 #endif 34 #endif
32 35
33 namespace mojo { 36 namespace mojo {
34 namespace shell { 37 namespace shell {
35 namespace { 38 namespace {
36 39
37 // These mojo: URLs are loaded directly from the local filesystem. They 40 // These mojo: URLs are loaded directly from the local filesystem. They
38 // correspond to shared libraries bundled alongside the mojo_shell. 41 // correspond to shared libraries bundled alongside the mojo_shell.
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 scoped_ptr<ServiceLoader>(new ViewManagerLoader()), 116 scoped_ptr<ServiceLoader>(new ViewManagerLoader()),
114 GURL("mojo:mojo_view_manager")); 117 GURL("mojo:mojo_view_manager"));
115 #endif 118 #endif
116 119
117 #if defined(OS_LINUX) 120 #if defined(OS_LINUX)
118 service_manager_.SetLoaderForScheme( 121 service_manager_.SetLoaderForScheme(
119 scoped_ptr<ServiceLoader>(new DBusServiceLoader(this)), 122 scoped_ptr<ServiceLoader>(new DBusServiceLoader(this)),
120 "dbus"); 123 "dbus");
121 #endif // defined(OS_LINUX) 124 #endif // defined(OS_LINUX)
122 125
123 service_manager_.SetLoaderForURL(
124 scoped_ptr<ServiceLoader>(new ProfileServiceLoader()),
125 GURL("mojo:profile_service"));
126
127 if (cmdline->HasSwitch(switches::kSpy)) { 126 if (cmdline->HasSwitch(switches::kSpy)) {
128 spy_.reset(new mojo::Spy(&service_manager_, 127 spy_.reset(new mojo::Spy(&service_manager_,
129 cmdline->GetSwitchValueASCII(switches::kSpy))); 128 cmdline->GetSwitchValueASCII(switches::kSpy)));
130 } 129 }
130
131 #if defined(OS_ANDROID)
132 // On android, the network service is bundled with the shell because the
133 // network stack depends on the android runtime.
134 service_manager_.SetLoaderForURL(
135 scoped_ptr<ServiceLoader>(
136 new BackgroundServiceLoader(
137 scoped_ptr<ServiceLoader>(new NetworkServiceLoader()),
138 "network_service",
139 base::MessageLoop::TYPE_IO)),
140 GURL("mojo:mojo_network_service"));
141 #endif
131 } 142 }
132 143
133 Context::~Context() { 144 Context::~Context() {
134 // mojo_view_manager uses native_viewport. Destroy mojo_view_manager first so 145 // mojo_view_manager uses native_viewport. Destroy mojo_view_manager first so
135 // that there aren't shutdown ordering issues. Once native viewport service is 146 // that there aren't shutdown ordering issues. Once native viewport service is
136 // moved into its own process this can likely be nuked. 147 // moved into its own process this can likely be nuked.
137 #if defined(USE_AURA) 148 #if defined(USE_AURA)
138 service_manager_.SetLoaderForURL( 149 service_manager_.SetLoaderForURL(
139 scoped_ptr<ServiceLoader>(), 150 scoped_ptr<ServiceLoader>(),
140 GURL("mojo:mojo_view_manager")); 151 GURL("mojo:mojo_view_manager"));
141 #endif 152 #endif
142 service_manager_.set_default_loader(scoped_ptr<ServiceLoader>()); 153 service_manager_.set_default_loader(scoped_ptr<ServiceLoader>());
143 } 154 }
144 155
145 } // namespace shell 156 } // namespace shell
146 } // namespace mojo 157 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/services/profile/profile_service_impl.cc ('k') | mojo/shell/network_service_loader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698