Chromium Code Reviews| Index: content/browser/loader/resource_dispatcher_host_impl.cc |
| =================================================================== |
| --- content/browser/loader/resource_dispatcher_host_impl.cc (revision 221543) |
| +++ content/browser/loader/resource_dispatcher_host_impl.cc (working copy) |
| @@ -138,7 +138,6 @@ |
| // Aborts a request before an URLRequest has actually been created. |
| void AbortRequestBeforeItStarts(ResourceMessageFilter* filter, |
| IPC::Message* sync_result, |
| - int route_id, |
| int request_id) { |
| if (sync_result) { |
| SyncLoadResult result; |
| @@ -148,7 +147,6 @@ |
| } else { |
| // Tell the renderer that this request was disallowed. |
| filter->Send(new ResourceMsg_RequestComplete( |
| - route_id, |
| request_id, |
| net::ERR_ABORTED, |
| false, |
| @@ -844,6 +842,11 @@ |
| handled = delegate->OnMessageReceived(message, message_was_ok); |
| } |
| } |
| + |
| + // There could be race conditions in receiving ACKs after a request is |
| + // removed. If the control IPC isn't handled here, an assert will fire in |
| + // RenderProcessHostImpl::OnMessageReceived. |
| + handled = true; |
|
awong
2013/09/06 17:04:11
If I read this correctly, any ResourceHostMsg will
jam
2013/09/06 17:12:04
right
jam
2013/09/06 17:22:17
btw I've uploaded a new patchset that does this no
awong
2013/09/06 17:37:34
It's consistent now so that bit is better.
Howeve
jam
2013/09/06 18:00:20
Given the asynchronous nature of our code base, I
|
| } |
| if (message.type() == ViewHostMsg_DidLoadResourceFromMemoryCache::ID) { |
| @@ -929,7 +932,7 @@ |
| if (is_shutdown_ || |
| !ShouldServiceRequest(process_type, child_id, request_data, |
| filter_->file_system_context())) { |
| - AbortRequestBeforeItStarts(filter_, sync_result, route_id, request_id); |
| + AbortRequestBeforeItStarts(filter_, sync_result, request_id); |
| return; |
| } |
| @@ -942,7 +945,7 @@ |
| request_data.url, |
| request_data.resource_type, |
| resource_context)) { |
| - AbortRequestBeforeItStarts(filter_, sync_result, route_id, request_id); |
| + AbortRequestBeforeItStarts(filter_, sync_result, request_id); |
| return; |
| } |
| @@ -1041,8 +1044,7 @@ |
| handler.reset(new SyncResourceHandler( |
| filter_, request, sync_result, this)); |
| } else { |
| - handler.reset(new AsyncResourceHandler( |
| - filter_, route_id, request, this)); |
| + handler.reset(new AsyncResourceHandler(filter_, request, this)); |
| } |
| // The RedirectToFileResourceHandler depends on being next in the chain. |