| Index: content/browser/loader/async_resource_handler.cc
|
| diff --git a/content/browser/loader/async_resource_handler.cc b/content/browser/loader/async_resource_handler.cc
|
| index f007a417fb8ffe997e20c439506d9f8a6834c367..9f2e5cfcc70863a0d3bff05c92dcbe2d6b274c85 100644
|
| --- a/content/browser/loader/async_resource_handler.cc
|
| +++ b/content/browser/loader/async_resource_handler.cc
|
| @@ -87,7 +87,8 @@ AsyncResourceHandler::AsyncResourceHandler(
|
| did_defer_(false),
|
| has_checked_for_sufficient_resources_(false),
|
| sent_received_response_msg_(false),
|
| - sent_first_data_msg_(false) {
|
| + sent_first_data_msg_(false),
|
| + detached_reads_(false) {
|
| InitializeResourceBufferConstants();
|
| }
|
|
|
| @@ -247,6 +248,11 @@ bool AsyncResourceHandler::OnReadCompleted(int request_id, int bytes_read,
|
| if (!bytes_read)
|
| return true;
|
|
|
| + if (detached_reads_) {
|
| + buffer_->RecycleLeastRecentlyAllocated();
|
| + return true;
|
| + }
|
| +
|
| const ResourceRequestInfoImpl* info =
|
| ResourceRequestInfoImpl::ForRequest(request_);
|
| if (!info->filter())
|
| @@ -384,4 +390,8 @@ void AsyncResourceHandler::ResumeIfDeferred() {
|
| }
|
| }
|
|
|
| +void AsyncResourceHandler::DetachReads() {
|
| + detached_reads_ = true;
|
| +}
|
| +
|
| } // namespace content
|
|
|