Chromium Code Reviews| 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..5f568d521e1b5fa70ed68a6db2b5781f0ad4afbb 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,10 @@ void AsyncResourceHandler::ResumeIfDeferred() { |
| } |
| } |
| +void AsyncResourceHandler::SetDetachedReads(bool detached_reads) { |
| + // We don't support moving from detached to not detached |
| + CHECK(!(detached_reads_ && detached_reads)); |
|
mmenke
2013/10/07 19:16:24
Unless there's some reason to be particularly conc
jkarlin2
2013/10/08 11:53:01
Done.
|
| + detached_reads_ = detached_reads; |
| +} |
| + |
| } // namespace content |