Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1024)

Unified Diff: content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc

Issue 1864723003: Make lost context and error message callbacks on GpuControl go to client (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: errorcallback: gputestexpect Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698