Chromium Code Reviews| Index: content/browser/loader/resource_loader.cc |
| diff --git a/content/browser/loader/resource_loader.cc b/content/browser/loader/resource_loader.cc |
| index 02d24a8f982b0c4a32de9acb5b9045d74aebdf60..247f2b05cfa84779092af9073e8d9821fe1c31a6 100644 |
| --- a/content/browser/loader/resource_loader.cc |
| +++ b/content/browser/loader/resource_loader.cc |
| @@ -642,9 +642,18 @@ void ResourceLoader::CompleteResponseStarted() { |
| FROM_HERE_WITH_EXPLICIT_FUNCTION("475761 OnResponseStarted()")); |
| read_deferral_start_time_ = base::TimeTicks::Now(); |
| - ScopedDeferral scoped_deferral(this, DEFERRED_READ); |
| + // Using a ScopedDeferral here would result in calling ReadMore(true) on sync |
| + // success. Calling ReadMore(false) here instead allows small responses to be |
| + // handled completely synchronously, if not ResourceHandler defers handling of |
|
Charlie Harrison
2017/02/02 21:45:21
This sentence is a bit confusing. I think you eith
mmenke
2017/02/02 21:46:49
Actually, it should just be "no" instead of "not".
|
| + // the response. |
| + deferred_stage_ = DEFERRED_SYNC; |
| handler_->OnResponseStarted(response.get(), |
| base::MakeUnique<Controller>(this)); |
| + if (is_deferred()) { |
| + deferred_stage_ = DEFERRED_READ; |
| + } else { |
| + ReadMore(false); |
| + } |
| } |
| void ResourceLoader::ReadMore(bool handle_result_async) { |