diff options
author | gavinp@chromium.org <gavinp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-06 19:16:33 +0000 |
---|---|---|
committer | gavinp@chromium.org <gavinp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-06 19:16:33 +0000 |
commit | 68a7e4fdad09f8c5415ac1b3fc3286b9b38eeed6 (patch) | |
tree | 79fabd84109fbeaabe9a198e0d02a3d0093e8677 | |
parent | f90b6ed5f2e8bb7a6d942191dad7abe293a0c7cb (diff) | |
download | chromium_src-68a7e4fdad09f8c5415ac1b3fc3286b9b38eeed6.zip chromium_src-68a7e4fdad09f8c5415ac1b3fc3286b9b38eeed6.tar.gz chromium_src-68a7e4fdad09f8c5415ac1b3fc3286b9b38eeed6.tar.bz2 |
Add a CHECK to narrow down http://crbug.com/124680
R=jam@chromium.org
BUG=124680
Review URL: https://chromiumcodereview.appspot.com/10690093
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145611 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | content/browser/renderer_host/async_resource_handler.cc | 12 | ||||
-rw-r--r-- | content/browser/renderer_host/async_resource_handler.h | 2 |
2 files changed, 13 insertions, 1 deletions
diff --git a/content/browser/renderer_host/async_resource_handler.cc b/content/browser/renderer_host/async_resource_handler.cc index 03366cb..8628e75 100644 --- a/content/browser/renderer_host/async_resource_handler.cc +++ b/content/browser/renderer_host/async_resource_handler.cc @@ -93,7 +93,8 @@ AsyncResourceHandler::AsyncResourceHandler( rdh_(rdh), next_buffer_size_(kInitialReadBufSize), pending_data_count_(0), - did_defer_(false) { + did_defer_(false), + sent_received_response_msg_(false) { // Set a back-pointer from ResourceRequestInfoImpl to |this|, so that the // ResourceDispatcherHostImpl can send us IPC messages. // TODO(darin): Implement an IPC message filter instead? @@ -183,6 +184,7 @@ bool AsyncResourceHandler::OnResponseStarted(int request_id, response->head.response_start = TimeTicks::Now(); filter_->Send(new ResourceMsg_ReceivedResponse( routing_id_, request_id, response->head)); + sent_received_response_msg_ = true; if (request_->response_info().metadata) { std::vector<char> copy(request_->response_info().metadata->data(), @@ -282,6 +284,14 @@ bool AsyncResourceHandler::OnResponseCompleted( base::strlcpy(url_buf, request_->url().spec().c_str(), arraysize(url_buf)); base::debug::Alias(url_buf); + // TODO(gavinp): Remove this CHECK when we figure out the cause of + // http://crbug.com/124680 . This check mirrors closely check in + // WebURLLoaderImpl::OnCompletedRequest that routes this message to a WebCore + // ResourceHandleInternal which asserts on its state and crashes. By crashing + // when the message is sent, we should get better crash reports. + CHECK(status.status() != net::URLRequestStatus::SUCCESS || + sent_received_response_msg_); + TimeTicks completion_time = TimeTicks::Now(); filter_->Send(new ResourceMsg_RequestComplete(routing_id_, request_id, diff --git a/content/browser/renderer_host/async_resource_handler.h b/content/browser/renderer_host/async_resource_handler.h index 53911db..9e9e374 100644 --- a/content/browser/renderer_host/async_resource_handler.h +++ b/content/browser/renderer_host/async_resource_handler.h @@ -91,6 +91,8 @@ class AsyncResourceHandler : public ResourceHandler { bool did_defer_; + bool sent_received_response_msg_; + DISALLOW_COPY_AND_ASSIGN(AsyncResourceHandler); }; |