diff options
author | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-21 03:55:22 +0000 |
---|---|---|
committer | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-21 03:55:22 +0000 |
commit | beb74d0097990df6f70a90af7ff7f87cfa340953 (patch) | |
tree | 779f1e371ef70dec59f6fed70cdf5c336e4757d5 /content/browser/renderer_host/async_resource_handler.cc | |
parent | 8796bce490ae6e35611eb2ed18bf67fffc57e109 (diff) | |
download | chromium_src-beb74d0097990df6f70a90af7ff7f87cfa340953.zip chromium_src-beb74d0097990df6f70a90af7ff7f87cfa340953.tar.gz chromium_src-beb74d0097990df6f70a90af7ff7f87cfa340953.tar.bz2 |
Fix HTML5 video streaming.
AsyncResourceHandler was clearing the back-pointer stored on the
request info prematurely. This caused us to miss many of the
DataReceived_ACK messages. As a result, we'd get into a state
where we'd never resume downloading.
BUG=133808
R=jam@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10599002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143341 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/renderer_host/async_resource_handler.cc')
-rw-r--r-- | content/browser/renderer_host/async_resource_handler.cc | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/content/browser/renderer_host/async_resource_handler.cc b/content/browser/renderer_host/async_resource_handler.cc index 3cfc4d3..859f9a82 100644 --- a/content/browser/renderer_host/async_resource_handler.cc +++ b/content/browser/renderer_host/async_resource_handler.cc @@ -97,6 +97,8 @@ AsyncResourceHandler::AsyncResourceHandler( } AsyncResourceHandler::~AsyncResourceHandler() { + // Cleanup back-pointer stored on the request info. + ResourceRequestInfoImpl::ForRequest(request_)->set_async_handler(NULL); } void AsyncResourceHandler::OnFollowRedirect( @@ -334,11 +336,8 @@ void AsyncResourceHandler::MarkAsDeferred(bool deferred) { ResourceRequestInfoImpl* info = ResourceRequestInfoImpl::ForRequest(request_); - if (deferred) { + if (deferred) info->set_async_handler(this); - } else { - info->set_async_handler(NULL); - } } void AsyncResourceHandler::ResumeIfDeferred() { |