Commit e1cd7313 authored by battre@chromium.org's avatar battre@chromium.org

Don't call CancelPendingRequest for synchronously answered requests


BUG=106032
TEST=no


Review URL: http://codereview.chromium.org/8773007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112657 0039d316-1c4b-4281-b951-d872f2087c98
parent ee0be77a
......@@ -73,6 +73,8 @@ class IPCResourceLoaderBridge : public ResourceLoaderBridge {
// The routing id used when sending IPC messages.
int routing_id_;
bool is_synchronous_request_;
};
IPCResourceLoaderBridge::IPCResourceLoaderBridge(
......@@ -81,7 +83,8 @@ IPCResourceLoaderBridge::IPCResourceLoaderBridge(
: peer_(NULL),
dispatcher_(dispatcher),
request_id_(-1),
routing_id_(request_info.routing_id) {
routing_id_(request_info.routing_id),
is_synchronous_request_(false) {
DCHECK(dispatcher_) << "no resource dispatcher";
request_.method = request_info.method;
request_.url = request_info.url;
......@@ -190,7 +193,8 @@ void IPCResourceLoaderBridge::Cancel() {
return;
}
dispatcher_->CancelPendingRequest(routing_id_, request_id_);
if (!is_synchronous_request_)
dispatcher_->CancelPendingRequest(routing_id_, request_id_);
// We can't remove the request ID from the resource dispatcher because more
// data might be pending. Sending the cancel message may cause more data
......@@ -214,6 +218,7 @@ void IPCResourceLoaderBridge::SyncLoad(SyncLoadResponse* response) {
}
request_id_ = MakeRequestID();
is_synchronous_request_ = true;
content::SyncLoadResult result;
IPC::SyncMessage* msg = new ResourceHostMsg_SyncLoad(routing_id_, request_id_,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment