| Index: content/gpu/gpu_child_thread.cc
|
| diff --git a/content/gpu/gpu_child_thread.cc b/content/gpu/gpu_child_thread.cc
|
| index 804daefbe5a1b279e92e8f1ea3164012d86b5efd..b0783c4df312e8b52c5ec32eb6199e1a1f7920d3 100644
|
| --- a/content/gpu/gpu_child_thread.cc
|
| +++ b/content/gpu/gpu_child_thread.cc
|
| @@ -8,6 +8,7 @@
|
| #include <utility>
|
|
|
| #include "base/bind.h"
|
| +#include "base/callback_helpers.h"
|
| #include "base/lazy_instance.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/threading/thread_local.h"
|
| @@ -299,6 +300,14 @@ bool GpuChildThread::AcceptConnection(shell::Connection* connection) {
|
| GetContentClient()->gpu()->ExposeInterfacesToBrowser(
|
| connection->GetInterfaceRegistry());
|
| }
|
| +
|
| + // We don't want to process any incoming interface requests until
|
| + // OnInitialize().
|
| + connection->GetInterfaceRegistry()->PauseBinding();
|
| + resume_interface_bindings_callback_ = base::Bind(
|
| + &shell::InterfaceRegistry::ResumeBinding,
|
| + connection->GetInterfaceRegistry()->GetWeakPtr());
|
| +
|
| return true;
|
| }
|
|
|
| @@ -353,6 +362,9 @@ void GpuChildThread::StoreShaderToDisk(int32_t client_id,
|
| }
|
|
|
| void GpuChildThread::OnInitialize(const gpu::GpuPreferences& gpu_preferences) {
|
| + if (!resume_interface_bindings_callback_.is_null())
|
| + base::ResetAndReturn(&resume_interface_bindings_callback_).Run();
|
| +
|
| gpu_preferences_ = gpu_preferences;
|
|
|
| gpu_info_.video_decode_accelerator_capabilities =
|
|
|