Index: content/renderer/pepper/pepper_video_encoder_host.cc |
diff --git a/content/renderer/pepper/pepper_video_encoder_host.cc b/content/renderer/pepper/pepper_video_encoder_host.cc |
index afdc33d63f73e5e3cca786ab76ce18a2c5303ea5..e1a6080093531d6eddcd4cbd4777487a6fc49a19 100644 |
--- a/content/renderer/pepper/pepper_video_encoder_host.cc |
+++ b/content/renderer/pepper/pepper_video_encoder_host.cc |
@@ -232,6 +232,15 @@ int32_t PepperVideoEncoderHost::OnResourceMessageReceived( |
return PP_ERROR_FAILED; |
} |
+void PepperVideoEncoderHost::OnGpuControlLostContext() { |
+#if DCHECK_IS_ON() |
+ // This should never occur more than once. |
+ DCHECK(!lost_context_); |
+ lost_context_ = true; |
+#endif |
+ NotifyPepperError(PP_ERROR_RESOURCE_FAILED); |
+} |
+ |
int32_t PepperVideoEncoderHost::OnHostMsgGetSupportedProfiles( |
ppapi::host::HostMessageContext* context) { |
std::vector<PP_VideoProfileDescription> pp_profiles; |
@@ -519,9 +528,8 @@ bool PepperVideoEncoderHost::EnsureGpuChannel() { |
return false; |
} |
- command_buffer_->SetContextLostCallback(media::BindToCurrentLoop( |
- base::Bind(&PepperVideoEncoderHost::NotifyPepperError, |
- weak_ptr_factory_.GetWeakPtr(), PP_ERROR_RESOURCE_FAILED))); |
+ command_buffer_->SetGpuControlClient(this); |
+ |
if (!command_buffer_->Initialize()) { |
Close(); |
return false; |