summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/renderer_host/sync_resource_handler.cc9
-rw-r--r--chrome/browser/renderer_host/sync_resource_handler.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/chrome/browser/renderer_host/sync_resource_handler.cc b/chrome/browser/renderer_host/sync_resource_handler.cc
index c21e7e7..cc74b2d 100644
--- a/chrome/browser/renderer_host/sync_resource_handler.cc
+++ b/chrome/browser/renderer_host/sync_resource_handler.cc
@@ -16,6 +16,14 @@ SyncResourceHandler::SyncResourceHandler(
result_.filter_policy = FilterPolicy::DONT_FILTER;
}
+SyncResourceHandler::~SyncResourceHandler() {
+ if (!result_message_)
+ return;
+
+ result_message_->set_reply_error();
+ receiver_->Send(result_message_);
+}
+
bool SyncResourceHandler::OnRequestRedirected(int request_id,
const GURL& new_url) {
result_.final_url = new_url;
@@ -52,5 +60,6 @@ bool SyncResourceHandler::OnResponseCompleted(int request_id,
ViewHostMsg_SyncLoad::WriteReplyParams(result_message_, result_);
receiver_->Send(result_message_);
+ result_message_ = NULL;
return true;
}
diff --git a/chrome/browser/renderer_host/sync_resource_handler.h b/chrome/browser/renderer_host/sync_resource_handler.h
index 82cebbc..deb7746 100644
--- a/chrome/browser/renderer_host/sync_resource_handler.h
+++ b/chrome/browser/renderer_host/sync_resource_handler.h
@@ -16,6 +16,7 @@ class SyncResourceHandler : public ResourceHandler {
SyncResourceHandler(ResourceDispatcherHost::Receiver* receiver,
const GURL& url,
IPC::Message* result_message);
+ ~SyncResourceHandler();
bool OnRequestRedirected(int request_id, const GURL& new_url);
bool OnResponseStarted(int request_id, ResourceResponse* response);