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

Side by Side Diff: shell/context.cc

Issue 1378303005: Do some plumbing. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: review Created 5 years, 2 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
« no previous file with comments | « shell/child_process_host_unittest.cc ('k') | shell/in_process_native_runner.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 "shell/context.h" 5 #include "shell/context.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/base_switches.h" 9 #include "base/base_switches.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 14 matching lines...) Expand all
25 #include "mojo/common/tracing_impl.h" 25 #include "mojo/common/tracing_impl.h"
26 #include "mojo/edk/embedder/embedder.h" 26 #include "mojo/edk/embedder/embedder.h"
27 #include "mojo/edk/embedder/simple_platform_support.h" 27 #include "mojo/edk/embedder/simple_platform_support.h"
28 #include "mojo/public/cpp/application/application_connection.h" 28 #include "mojo/public/cpp/application/application_connection.h"
29 #include "mojo/public/cpp/application/application_delegate.h" 29 #include "mojo/public/cpp/application/application_delegate.h"
30 #include "mojo/public/cpp/application/application_impl.h" 30 #include "mojo/public/cpp/application/application_impl.h"
31 #include "mojo/public/cpp/bindings/strong_binding.h" 31 #include "mojo/public/cpp/bindings/strong_binding.h"
32 #include "mojo/services/tracing/public/interfaces/tracing.mojom.h" 32 #include "mojo/services/tracing/public/interfaces/tracing.mojom.h"
33 #include "shell/application_manager/application_loader.h" 33 #include "shell/application_manager/application_loader.h"
34 #include "shell/application_manager/application_manager.h" 34 #include "shell/application_manager/application_manager.h"
35 #include "shell/application_manager/native_application_options.h"
35 #include "shell/background_application_loader.h" 36 #include "shell/background_application_loader.h"
36 #include "shell/command_line_util.h" 37 #include "shell/command_line_util.h"
37 #include "shell/filename_util.h" 38 #include "shell/filename_util.h"
38 #include "shell/in_process_native_runner.h" 39 #include "shell/in_process_native_runner.h"
39 #include "shell/out_of_process_native_runner.h" 40 #include "shell/out_of_process_native_runner.h"
40 #include "shell/switches.h" 41 #include "shell/switches.h"
41 #include "shell/tracer.h" 42 #include "shell/tracer.h"
42 #include "url/gurl.h" 43 #include "url/gurl.h"
43 44
44 #if !defined(OS_MACOSX) 45 #if !defined(OS_MACOSX)
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 manager->RegisterContentHandler(parts[i], url); 173 manager->RegisterContentHandler(parts[i], url);
173 } 174 }
174 } 175 }
175 176
176 void InitNativeOptions(ApplicationManager* manager, 177 void InitNativeOptions(ApplicationManager* manager,
177 const base::CommandLine& command_line) { 178 const base::CommandLine& command_line) {
178 std::vector<std::string> force_in_process_url_list; 179 std::vector<std::string> force_in_process_url_list;
179 base::SplitString(command_line.GetSwitchValueASCII(switches::kForceInProcess), 180 base::SplitString(command_line.GetSwitchValueASCII(switches::kForceInProcess),
180 ',', &force_in_process_url_list); 181 ',', &force_in_process_url_list);
181 for (const auto& force_in_process_url : force_in_process_url_list) { 182 for (const auto& force_in_process_url : force_in_process_url_list) {
182 GURL gurl(force_in_process_url); 183 GURL url(force_in_process_url);
183 if (!gurl.is_valid()) { 184 if (!url.is_valid()) {
184 LOG(ERROR) << "Invalid value for switch " << switches::kForceInProcess 185 LOG(ERROR) << "Invalid value for switch " << switches::kForceInProcess
185 << ": '" << force_in_process_url << "'is not a valid URL."; 186 << ": '" << force_in_process_url << "'is not a valid URL.";
186 return; 187 return;
187 } 188 }
188 189
189 NativeRunnerFactory::Options options; 190 manager->GetNativeApplicationOptionsForURL(url)->force_in_process = true;
190 options.force_in_process = true;
191 manager->SetNativeOptionsForURL(options, gurl);
192 } 191 }
192
193 // TODO(vtl): This is a total hack. We should have a systematic way of
194 // configuring options for native apps.
195 manager->GetNativeApplicationOptionsForURL(GURL("mojo:native_support"))
196 ->allow_new_privs = true;
193 } 197 }
194 198
195 class TracingServiceProvider : public ServiceProvider { 199 class TracingServiceProvider : public ServiceProvider {
196 public: 200 public:
197 TracingServiceProvider(Tracer* tracer, 201 TracingServiceProvider(Tracer* tracer,
198 mojo::InterfaceRequest<ServiceProvider> request) 202 mojo::InterfaceRequest<ServiceProvider> request)
199 : tracer_(tracer), binding_(this, request.Pass()) {} 203 : tracer_(tracer), binding_(this, request.Pass()) {}
200 ~TracingServiceProvider() override {} 204 ~TracingServiceProvider() override {}
201 205
202 void ConnectToService(const mojo::String& service_name, 206 void ConnectToService(const mojo::String& service_name,
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 app_urls_.erase(url); 388 app_urls_.erase(url);
385 if (app_urls_.empty() && base::MessageLoop::current()->is_running()) { 389 if (app_urls_.empty() && base::MessageLoop::current()->is_running()) {
386 DCHECK_EQ(base::MessageLoop::current()->task_runner(), 390 DCHECK_EQ(base::MessageLoop::current()->task_runner(),
387 task_runners_->shell_runner()); 391 task_runners_->shell_runner());
388 base::MessageLoop::current()->Quit(); 392 base::MessageLoop::current()->Quit();
389 } 393 }
390 } 394 }
391 } 395 }
392 396
393 } // namespace shell 397 } // namespace shell
OLDNEW
« no previous file with comments | « shell/child_process_host_unittest.cc ('k') | shell/in_process_native_runner.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698