#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 {
// 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) {
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;