Chromium Code Reviews| Index: content/browser/gpu/gpu_process_host.cc |
| diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc |
| index 367a69d9323fd065203a78416690ba86d09ad846..23e756a50b0948bd557738e31629e7f678596019 100644 |
| --- a/content/browser/gpu/gpu_process_host.cc |
| +++ b/content/browser/gpu/gpu_process_host.cc |
| @@ -48,6 +48,7 @@ |
| #include "content/public/browser/render_widget_host_view_frame_subscriber.h" |
| #include "content/public/common/connection_filter.h" |
| #include "content/public/common/content_client.h" |
| +#include "content/public/common/content_features.h" |
| #include "content/public/common/content_switches.h" |
| #include "content/public/common/mojo_channel_switches.h" |
| #include "content/public/common/mojo_shell_connection.h" |
| @@ -973,8 +974,20 @@ bool GpuProcessHost::LaunchGpuProcess(gpu::GpuPreferences* gpu_preferences) { |
| base::CommandLine* cmd_line = new base::CommandLine(exe_path); |
| #endif |
| + |
| cmd_line->AppendSwitchASCII(switches::kProcessType, switches::kGpuProcess); |
| - BrowserChildProcessHostImpl::CopyFeatureAndFieldTrialFlags(cmd_line); |
| + |
| +#if defined(OS_WIN) |
| + if (base::FeatureList::IsEnabled( |
| + features::kShareFieldTrialStateViaSharedMemory)) |
|
Alexei Svitkine (slow)
2016/10/04 18:49:35
Nit: {}'s
lawrencewu
2016/10/05 20:57:56
Done.
|
| + field_trial_state_.reset(new base::SharedMemory()); |
| +#endif |
| + BrowserChildProcessHostImpl::CopyFeatureAndFieldTrialFlags( |
| + cmd_line, field_trial_state_.get()); |
| +#if defined(OS_WIN) |
| + if (!field_trial_state_.get()->handle().GetHandle()) |
|
Alexei Svitkine (slow)
2016/10/04 18:49:36
Is this just an error case? Needs a comment at the
lawrencewu
2016/10/05 20:57:56
Yes, it is the case when there were no field trial
|
| + field_trial_state_.reset(); |
| +#endif |
| #if defined(OS_WIN) |
| cmd_line->AppendArg(switches::kPrefetchArgumentGpu); |
| @@ -1018,10 +1031,8 @@ bool GpuProcessHost::LaunchGpuProcess(gpu::GpuPreferences* gpu_preferences) { |
| cmd_line->PrependWrapper(gpu_launcher); |
| process_->Launch( |
| - new GpuSandboxedProcessLauncherDelegate(cmd_line, |
| - process_->GetHost()), |
| - cmd_line, |
| - true); |
| + new GpuSandboxedProcessLauncherDelegate(cmd_line, process_->GetHost()), |
| + cmd_line, field_trial_state_.get(), true); |
| process_launched_ = true; |
| UMA_HISTOGRAM_ENUMERATION("GPU.GPUProcessLifetimeEvents", |