| Index: content/browser/renderer_host/render_message_filter.cc
|
| diff --git a/content/browser/renderer_host/render_message_filter.cc b/content/browser/renderer_host/render_message_filter.cc
|
| index 9d8392778e136044efe6c051f04ee55e8bc9bd0a..449afb4d4ea29a453fdb0a6758417dd59337218a 100644
|
| --- a/content/browser/renderer_host/render_message_filter.cc
|
| +++ b/content/browser/renderer_host/render_message_filter.cc
|
| @@ -131,6 +131,12 @@ class RenderMessageCompletionCallback {
|
| }
|
|
|
| virtual ~RenderMessageCompletionCallback() {
|
| + if (reply_msg_) {
|
| + // If the owner of this class failed to call SendReplyAndDeleteThis(),
|
| + // send an error reply to prevent the renderer from being hung.
|
| + reply_msg_->set_reply_error();
|
| + filter_->Send(reply_msg_);
|
| + }
|
| }
|
|
|
| RenderMessageFilter* filter() { return filter_.get(); }
|
| @@ -138,6 +144,7 @@ class RenderMessageCompletionCallback {
|
|
|
| void SendReplyAndDeleteThis() {
|
| filter_->Send(reply_msg_);
|
| + reply_msg_ = NULL;
|
| delete this;
|
| }
|
|
|
|
|