X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fcontent%2Fbrowser%2Floader%2Fdetachable_resource_handler.cc;h=ab7e240b1ee0b9f8d8703892c361bbf5c933b146;hb=3545e9f2671f595d2a2f3ee75ca0393b01e35ef6;hp=1fe9f0624d06597b35d85dd2b2451d6eaa9133e6;hpb=7d210d4c7e9ba36e635eabc5b5780495f8a63292;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/content/browser/loader/detachable_resource_handler.cc b/src/content/browser/loader/detachable_resource_handler.cc index 1fe9f06..ab7e240 100644 --- a/src/content/browser/loader/detachable_resource_handler.cc +++ b/src/content/browser/loader/detachable_resource_handler.cc @@ -9,6 +9,7 @@ #include "content/browser/loader/resource_request_info_impl.h" #include "net/base/io_buffer.h" #include "net/base/net_errors.h" +#include "net/url_request/url_request.h" #include "net/url_request/url_request_status.h" namespace { @@ -69,8 +70,12 @@ void DetachableResourceHandler::Detach() { // Resume if necessary. The request may have been deferred, say, waiting on a // full buffer in AsyncResourceHandler. Now that it has been detached, resume // and drain it. - if (is_deferred_) + if (is_deferred_) { + // The nested ResourceHandler may have logged that it's blocking the + // request. Log it as no longer doing so, to avoid a DCHECK on resume. + request()->LogUnblocked(); Resume(); + } } void DetachableResourceHandler::SetController(ResourceController* controller) { @@ -146,7 +151,7 @@ bool DetachableResourceHandler::OnWillRead(scoped_refptr* buf, int min_size) { if (!next_handler_) { DCHECK_EQ(-1, min_size); - if (!read_buffer_) + if (!read_buffer_.get()) read_buffer_ = new net::IOBuffer(kReadBufSize); *buf = read_buffer_; *buf_size = kReadBufSize;