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

Side by Side Diff: content/browser/mojo/mojo_shell_context.cc

Issue 1874893002: Convert //content/browser from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 | « content/browser/mojo/mojo_shell_context.h ('k') | content/browser/mojo_shell_browsertest.cc » ('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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "content/browser/mojo/mojo_shell_context.h" 5 #include "content/browser/mojo/mojo_shell_context.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "base/lazy_instance.h" 11 #include "base/lazy_instance.h"
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "base/memory/ptr_util.h"
13 #include "base/path_service.h" 14 #include "base/path_service.h"
14 #include "base/single_thread_task_runner.h" 15 #include "base/single_thread_task_runner.h"
15 #include "base/thread_task_runner_handle.h" 16 #include "base/thread_task_runner_handle.h"
16 #include "components/profile_service/profile_app.h" 17 #include "components/profile_service/profile_app.h"
17 #include "content/browser/gpu/gpu_process_host.h" 18 #include "content/browser/gpu/gpu_process_host.h"
18 #include "content/browser/mojo/constants.h" 19 #include "content/browser/mojo/constants.h"
19 #include "content/common/gpu_process_launch_causes.h" 20 #include "content/common/gpu_process_launch_causes.h"
20 #include "content/common/mojo/current_thread_loader.h" 21 #include "content/common/mojo/current_thread_loader.h"
21 #include "content/common/mojo/mojo_shell_connection_impl.h" 22 #include "content/common/mojo/mojo_shell_connection_impl.h"
22 #include "content/common/mojo/static_loader.h" 23 #include "content/common/mojo/static_loader.h"
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 } 229 }
229 230
230 private: 231 private:
231 MojoShellContext* shell_context_; 232 MojoShellContext* shell_context_;
232 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; 233 scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
233 234
234 DISALLOW_COPY_AND_ASSIGN(Proxy); 235 DISALLOW_COPY_AND_ASSIGN(Proxy);
235 }; 236 };
236 237
237 // static 238 // static
238 base::LazyInstance<scoped_ptr<MojoShellContext::Proxy>> 239 base::LazyInstance<std::unique_ptr<MojoShellContext::Proxy>>
239 MojoShellContext::proxy_ = LAZY_INSTANCE_INITIALIZER; 240 MojoShellContext::proxy_ = LAZY_INSTANCE_INITIALIZER;
240 241
241 void MojoShellContext::SetApplicationsForTest( 242 void MojoShellContext::SetApplicationsForTest(
242 const StaticApplicationMap* apps) { 243 const StaticApplicationMap* apps) {
243 g_applications_for_test = apps; 244 g_applications_for_test = apps;
244 } 245 }
245 246
246 MojoShellContext::MojoShellContext( 247 MojoShellContext::MojoShellContext(
247 scoped_refptr<base::SingleThreadTaskRunner> file_thread, 248 scoped_refptr<base::SingleThreadTaskRunner> file_thread,
248 scoped_refptr<base::SingleThreadTaskRunner> db_thread) { 249 scoped_refptr<base::SingleThreadTaskRunner> db_thread) {
249 proxy_.Get().reset(new Proxy(this)); 250 proxy_.Get().reset(new Proxy(this));
250 251
251 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner = 252 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner =
252 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE); 253 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE);
253 scoped_ptr<mojo::shell::NativeRunnerFactory> native_runner_factory( 254 std::unique_ptr<mojo::shell::NativeRunnerFactory> native_runner_factory(
254 new mojo::shell::InProcessNativeRunnerFactory( 255 new mojo::shell::InProcessNativeRunnerFactory(
255 BrowserThread::GetBlockingPool())); 256 BrowserThread::GetBlockingPool()));
256 manifest_provider_.reset(new BuiltinManifestProvider); 257 manifest_provider_.reset(new BuiltinManifestProvider);
257 catalog_.reset(new catalog::Factory(file_task_runner.get(), nullptr, 258 catalog_.reset(new catalog::Factory(file_task_runner.get(), nullptr,
258 manifest_provider_.get())); 259 manifest_provider_.get()));
259 shell_.reset(new mojo::shell::Shell(std::move(native_runner_factory), 260 shell_.reset(new mojo::shell::Shell(std::move(native_runner_factory),
260 catalog_->TakeShellClient())); 261 catalog_->TakeShellClient()));
261 shell_->set_default_loader( 262 shell_->set_default_loader(
262 scoped_ptr<mojo::shell::Loader>(new DefaultLoader)); 263 std::unique_ptr<mojo::shell::Loader>(new DefaultLoader));
263 264
264 StaticApplicationMap apps; 265 StaticApplicationMap apps;
265 GetContentClient()->browser()->RegisterInProcessMojoApplications(&apps); 266 GetContentClient()->browser()->RegisterInProcessMojoApplications(&apps);
266 if (g_applications_for_test) { 267 if (g_applications_for_test) {
267 // Add testing apps to the map, potentially overwriting whatever the 268 // Add testing apps to the map, potentially overwriting whatever the
268 // browser client registered. 269 // browser client registered.
269 for (const auto& entry : *g_applications_for_test) 270 for (const auto& entry : *g_applications_for_test)
270 apps[entry.first] = entry.second; 271 apps[entry.first] = entry.second;
271 } 272 }
272 for (const auto& entry : apps) { 273 for (const auto& entry : apps) {
273 shell_->SetLoaderForName( 274 shell_->SetLoaderForName(base::WrapUnique(new StaticLoader(entry.second)),
274 make_scoped_ptr(new StaticLoader(entry.second)), entry.first); 275 entry.first);
275 } 276 }
276 277
277 ContentBrowserClient::OutOfProcessMojoApplicationMap sandboxed_apps; 278 ContentBrowserClient::OutOfProcessMojoApplicationMap sandboxed_apps;
278 GetContentClient() 279 GetContentClient()
279 ->browser() 280 ->browser()
280 ->RegisterOutOfProcessMojoApplications(&sandboxed_apps); 281 ->RegisterOutOfProcessMojoApplications(&sandboxed_apps);
281 for (const auto& app : sandboxed_apps) { 282 for (const auto& app : sandboxed_apps) {
282 shell_->SetLoaderForName( 283 shell_->SetLoaderForName(base::WrapUnique(new UtilityProcessLoader(
283 make_scoped_ptr( 284 app.second, true /* use_sandbox */)),
284 new UtilityProcessLoader(app.second, true /* use_sandbox */)), 285 app.first);
285 app.first);
286 } 286 }
287 287
288 ContentBrowserClient::OutOfProcessMojoApplicationMap unsandboxed_apps; 288 ContentBrowserClient::OutOfProcessMojoApplicationMap unsandboxed_apps;
289 GetContentClient() 289 GetContentClient()
290 ->browser() 290 ->browser()
291 ->RegisterUnsandboxedOutOfProcessMojoApplications(&unsandboxed_apps); 291 ->RegisterUnsandboxedOutOfProcessMojoApplications(&unsandboxed_apps);
292 for (const auto& app : unsandboxed_apps) { 292 for (const auto& app : unsandboxed_apps) {
293 shell_->SetLoaderForName( 293 shell_->SetLoaderForName(base::WrapUnique(new UtilityProcessLoader(
294 make_scoped_ptr( 294 app.second, false /* use_sandbox */)),
295 new UtilityProcessLoader(app.second, false /* use_sandbox */)), 295 app.first);
296 app.first);
297 } 296 }
298 297
299 #if (ENABLE_MOJO_MEDIA_IN_GPU_PROCESS) 298 #if (ENABLE_MOJO_MEDIA_IN_GPU_PROCESS)
300 shell_->SetLoaderForName(make_scoped_ptr(new GpuProcessLoader), "mojo:media"); 299 shell_->SetLoaderForName(base::WrapUnique(new GpuProcessLoader),
300 "mojo:media");
301 #endif 301 #endif
302 302
303 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 303 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
304 switches::kMojoLocalStorage)) { 304 switches::kMojoLocalStorage)) {
305 base::Callback<scoped_ptr<mojo::ShellClient>()> profile_callback = 305 base::Callback<std::unique_ptr<mojo::ShellClient>()> profile_callback =
306 base::Bind(&profile::CreateProfileApp, file_thread, db_thread); 306 base::Bind(&profile::CreateProfileApp, file_thread, db_thread);
307 shell_->SetLoaderForName( 307 shell_->SetLoaderForName(
308 make_scoped_ptr(new CurrentThreadLoader(profile_callback)), 308 base::WrapUnique(new CurrentThreadLoader(profile_callback)),
309 "mojo:profile"); 309 "mojo:profile");
310 } 310 }
311 311
312 if (!IsRunningInMojoShell()) { 312 if (!IsRunningInMojoShell()) {
313 MojoShellConnection::Create( 313 MojoShellConnection::Create(
314 shell_->InitInstanceForEmbedder(kBrowserMojoApplicationName), 314 shell_->InitInstanceForEmbedder(kBrowserMojoApplicationName),
315 false /* is_external */); 315 false /* is_external */);
316 } 316 }
317 } 317 }
318 318
(...skipping 15 matching lines...) Expand all
334 std::move(exposed_services), callback); 334 std::move(exposed_services), callback);
335 } 335 }
336 336
337 void MojoShellContext::ConnectToApplicationOnOwnThread( 337 void MojoShellContext::ConnectToApplicationOnOwnThread(
338 const std::string& user_id, 338 const std::string& user_id,
339 const std::string& name, 339 const std::string& name,
340 const std::string& requestor_name, 340 const std::string& requestor_name,
341 mojo::shell::mojom::InterfaceProviderRequest request, 341 mojo::shell::mojom::InterfaceProviderRequest request,
342 mojo::shell::mojom::InterfaceProviderPtr exposed_services, 342 mojo::shell::mojom::InterfaceProviderPtr exposed_services,
343 const mojo::shell::mojom::Connector::ConnectCallback& callback) { 343 const mojo::shell::mojom::Connector::ConnectCallback& callback) {
344 scoped_ptr<mojo::shell::ConnectParams> params(new mojo::shell::ConnectParams); 344 std::unique_ptr<mojo::shell::ConnectParams> params(
345 new mojo::shell::ConnectParams);
345 mojo::Identity source_id(requestor_name, user_id); 346 mojo::Identity source_id(requestor_name, user_id);
346 params->set_source(source_id); 347 params->set_source(source_id);
347 params->set_target(mojo::Identity(name, user_id)); 348 params->set_target(mojo::Identity(name, user_id));
348 params->set_remote_interfaces(std::move(request)); 349 params->set_remote_interfaces(std::move(request));
349 params->set_local_interfaces(std::move(exposed_services)); 350 params->set_local_interfaces(std::move(exposed_services));
350 params->set_connect_callback(callback); 351 params->set_connect_callback(callback);
351 shell_->Connect(std::move(params)); 352 shell_->Connect(std::move(params));
352 } 353 }
353 354
354 } // namespace content 355 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/mojo/mojo_shell_context.h ('k') | content/browser/mojo_shell_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698