| Index: content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc
|
| diff --git a/content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc b/content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc
|
| index 708a3da8ee0a8b2c93894de7eef23006bd2fa062..29dc0e2384d4e29b776072eac60e2d8bfc7b208d 100644
|
| --- a/content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc
|
| +++ b/content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc
|
| @@ -120,7 +120,9 @@ WebGraphicsContext3DCommandBufferImpl::WebGraphicsContext3DCommandBufferImpl(
|
| WebGraphicsContext3DCommandBufferImpl::
|
| ~WebGraphicsContext3DCommandBufferImpl() {
|
| if (real_gl_) {
|
| - real_gl_->SetErrorMessageCallback(NULL);
|
| + real_gl_->SetErrorMessageCallback(
|
| + base::Callback<void(const char*, int32_t)>());
|
| + real_gl_->SetLostContextCallback(base::Closure());
|
| }
|
|
|
| Destroy();
|
| @@ -147,15 +149,15 @@ bool WebGraphicsContext3DCommandBufferImpl::MaybeInitializeGL() {
|
| return false;
|
| }
|
|
|
| - command_buffer_->SetContextLostCallback(
|
| - base::Bind(&WebGraphicsContext3DCommandBufferImpl::OnContextLost,
|
| - weak_ptr_factory_.GetWeakPtr()));
|
| -
|
| - command_buffer_->SetOnConsoleMessageCallback(
|
| + real_gl_->SetErrorMessageCallback(
|
| base::Bind(&WebGraphicsContext3DCommandBufferImpl::OnErrorMessage,
|
| - weak_ptr_factory_.GetWeakPtr()));
|
| + // The callback is unset in the destructor.
|
| + base::Unretained(this)));
|
| + real_gl_->SetLostContextCallback(
|
| + base::Bind(&WebGraphicsContext3DCommandBufferImpl::OnContextLost,
|
| + // The callback is unset in the destructor.
|
| + base::Unretained(this)));
|
|
|
| - real_gl_->SetErrorMessageCallback(getErrorMessageCallback());
|
| real_gl_->TraceBeginCHROMIUM("WebGraphicsContext3D",
|
| "CommandBufferContext");
|
|
|
| @@ -362,4 +364,12 @@ void WebGraphicsContext3DCommandBufferImpl::OnContextLost() {
|
| UmaRecordContextLost(context_type_, state.error, state.context_lost_reason);
|
| }
|
|
|
| +void WebGraphicsContext3DCommandBufferImpl::OnErrorMessage(const char* message,
|
| + int id) {
|
| + if (error_message_callback_) {
|
| + blink::WebString str = blink::WebString::fromUTF8(message);
|
| + error_message_callback_->onErrorMessage(str, id);
|
| + }
|
| +}
|
| +
|
| } // namespace content
|
|
|