Chromium Code Reviews| Index: content/renderer/render_thread_impl.cc |
| diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc |
| index b9613aed26ff5b880f64d6b0e4836730d7e3cdad..167fa4ba60e47f7d0b6bc46344c9c42291bbf5f7 100644 |
| --- a/content/renderer/render_thread_impl.cc |
| +++ b/content/renderer/render_thread_impl.cc |
| @@ -70,6 +70,7 @@ |
| #include "content/common/child_process_messages.h" |
| #include "content/common/content_constants_internal.h" |
| #include "content/common/dom_storage/dom_storage_messages.h" |
| +#include "content/common/field_trial_recorder.mojom.h" |
| #include "content/common/frame_messages.h" |
| #include "content/common/frame_owner_properties.h" |
| #include "content/common/render_process_messages.h" |
| @@ -578,7 +579,8 @@ RenderThreadImpl::RenderThreadImpl( |
| renderer_scheduler_(std::move(scheduler)), |
| categorized_worker_pool_(new CategorizedWorkerPool()), |
| renderer_binding_(this), |
| - client_id_(1) { |
| + client_id_(1), |
| + field_trial_syncer_(this) { |
| Init(resource_task_queue); |
| } |
| @@ -596,7 +598,8 @@ RenderThreadImpl::RenderThreadImpl( |
| categorized_worker_pool_(new CategorizedWorkerPool()), |
| is_scroll_animator_enabled_(false), |
| is_surface_synchronization_enabled_(false), |
| - renderer_binding_(this) { |
| + renderer_binding_(this), |
| + field_trial_syncer_(this) { |
| scoped_refptr<base::SingleThreadTaskRunner> test_task_counter; |
| DCHECK(base::CommandLine::ForCurrentProcess()->HasSwitch( |
| switches::kRendererClientId)); |
| @@ -716,6 +719,9 @@ void RenderThreadImpl::Init( |
| GetContentClient()->renderer()->RenderThreadStarted(); |
| + field_trial_syncer_.InitFieldTrialObserving( |
| + *base::CommandLine::ForCurrentProcess(), switches::kSingleProcess); |
| + |
| GetAssociatedInterfaceRegistry()->AddInterface( |
| base::Bind(&RenderThreadImpl::OnRendererInterfaceRequest, |
| base::Unretained(this))); |
| @@ -1485,6 +1491,11 @@ RenderThreadImpl::GetLoadingTaskRunner() { |
| return renderer_scheduler_->LoadingTaskRunner(); |
| } |
| +void RenderThreadImpl::SetFieldTrialGroup(const std::string& trial_name, |
| + const std::string& group_name) { |
| + field_trial_syncer_.OnSetFieldTrialGroup(trial_name, group_name); |
| +} |
| + |
| void RenderThreadImpl::OnAssociatedInterfaceRequest( |
| const std::string& name, |
| mojo::ScopedInterfaceEndpointHandle handle) { |
| @@ -2043,6 +2054,14 @@ gpu::GpuChannelHost* RenderThreadImpl::GetGpuChannel() { |
| return gpu_channel_.get(); |
| } |
| +void RenderThreadImpl::OnFieldTrialGroupFinalized( |
| + const std::string& trial_name, |
| + const std::string& group_name) { |
| + content::mojom::FieldTrialRecorderPtr field_trial_recorder; |
|
jam
2017/03/16 15:33:40
nit: no content::
chiniforooshan
2017/03/16 17:35:46
Done.
|
| + GetRemoteInterfaces()->GetInterface(&field_trial_recorder); |
| + field_trial_recorder->FieldTrialActivated(trial_name); |
| +} |
| + |
| void RenderThreadImpl::CreateView(mojom::CreateViewParamsPtr params) { |
| CompositorDependencies* compositor_deps = this; |
| is_scroll_animator_enabled_ = params->web_preferences.enable_scroll_animator; |