OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/ppapi_plugin_process_host.h" | 5 #include "content/browser/ppapi_plugin_process_host.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <utility> | 10 #include <utility> |
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 ChildProcessHost::CHILD_NORMAL; | 366 ChildProcessHost::CHILD_NORMAL; |
367 #else | 367 #else |
368 int flags = ChildProcessHost::CHILD_NORMAL; | 368 int flags = ChildProcessHost::CHILD_NORMAL; |
369 #endif | 369 #endif |
370 base::FilePath exe_path = ChildProcessHost::GetChildPath(flags); | 370 base::FilePath exe_path = ChildProcessHost::GetChildPath(flags); |
371 if (exe_path.empty()) { | 371 if (exe_path.empty()) { |
372 VLOG(1) << "Pepper plugin exe path is empty."; | 372 VLOG(1) << "Pepper plugin exe path is empty."; |
373 return false; | 373 return false; |
374 } | 374 } |
375 | 375 |
376 base::CommandLine* cmd_line = new base::CommandLine(exe_path); | 376 std::unique_ptr<base::CommandLine> cmd_line = |
| 377 base::MakeUnique<base::CommandLine>(exe_path); |
377 cmd_line->AppendSwitchASCII(switches::kProcessType, | 378 cmd_line->AppendSwitchASCII(switches::kProcessType, |
378 is_broker_ ? switches::kPpapiBrokerProcess | 379 is_broker_ ? switches::kPpapiBrokerProcess |
379 : switches::kPpapiPluginProcess); | 380 : switches::kPpapiPluginProcess); |
380 BrowserChildProcessHostImpl::CopyFeatureAndFieldTrialFlags(cmd_line); | 381 BrowserChildProcessHostImpl::CopyFeatureAndFieldTrialFlags(cmd_line.get()); |
381 | 382 |
382 #if defined(OS_WIN) | 383 #if defined(OS_WIN) |
383 cmd_line->AppendArg(is_broker_ ? switches::kPrefetchArgumentPpapiBroker | 384 cmd_line->AppendArg(is_broker_ ? switches::kPrefetchArgumentPpapiBroker |
384 : switches::kPrefetchArgumentPpapi); | 385 : switches::kPrefetchArgumentPpapi); |
385 #endif // defined(OS_WIN) | 386 #endif // defined(OS_WIN) |
386 | 387 |
387 // These switches are forwarded to both plugin and broker pocesses. | 388 // These switches are forwarded to both plugin and broker pocesses. |
388 static const char* const kCommonForwardSwitches[] = { | 389 static const char* const kCommonForwardSwitches[] = { |
389 switches::kVModule | 390 switches::kVModule |
390 }; | 391 }; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 switches::kPpapiSubpixelRenderingSetting, | 430 switches::kPpapiSubpixelRenderingSetting, |
430 base::IntToString(font_params.subpixel_rendering)); | 431 base::IntToString(font_params.subpixel_rendering)); |
431 #endif | 432 #endif |
432 | 433 |
433 if (!plugin_launcher.empty()) | 434 if (!plugin_launcher.empty()) |
434 cmd_line->PrependWrapper(plugin_launcher); | 435 cmd_line->PrependWrapper(plugin_launcher); |
435 | 436 |
436 // On posix, never use the zygote for the broker. Also, only use the zygote if | 437 // On posix, never use the zygote for the broker. Also, only use the zygote if |
437 // we are not using a plugin launcher - having a plugin launcher means we need | 438 // we are not using a plugin launcher - having a plugin launcher means we need |
438 // to use another process instead of just forking the zygote. | 439 // to use another process instead of just forking the zygote. |
439 process_->Launch(new PpapiPluginSandboxedProcessLauncherDelegate(is_broker_), | 440 process_->Launch( |
440 cmd_line, true); | 441 base::MakeUnique<PpapiPluginSandboxedProcessLauncherDelegate>(is_broker_), |
| 442 std::move(cmd_line), true); |
441 return true; | 443 return true; |
442 } | 444 } |
443 | 445 |
444 void PpapiPluginProcessHost::RequestPluginChannel(Client* client) { | 446 void PpapiPluginProcessHost::RequestPluginChannel(Client* client) { |
445 base::ProcessHandle process_handle; | 447 base::ProcessHandle process_handle; |
446 int renderer_child_id; | 448 int renderer_child_id; |
447 client->GetPpapiChannelInfo(&process_handle, &renderer_child_id); | 449 client->GetPpapiChannelInfo(&process_handle, &renderer_child_id); |
448 | 450 |
449 base::ProcessId process_id = base::kNullProcessId; | 451 base::ProcessId process_id = base::kNullProcessId; |
450 if (process_handle != base::kNullProcessHandle) { | 452 if (process_handle != base::kNullProcessHandle) { |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
547 // sent_requests_ queue should be the one that the plugin just created. | 549 // sent_requests_ queue should be the one that the plugin just created. |
548 Client* client = sent_requests_.front(); | 550 Client* client = sent_requests_.front(); |
549 sent_requests_.pop(); | 551 sent_requests_.pop(); |
550 | 552 |
551 const ChildProcessData& data = process_->GetData(); | 553 const ChildProcessData& data = process_->GetData(); |
552 client->OnPpapiChannelOpened(channel_handle, base::GetProcId(data.handle), | 554 client->OnPpapiChannelOpened(channel_handle, base::GetProcId(data.handle), |
553 data.id); | 555 data.id); |
554 } | 556 } |
555 | 557 |
556 } // namespace content | 558 } // namespace content |
OLD | NEW |