summaryrefslogtreecommitdiffstats
path: root/content/browser/renderer_host/async_resource_handler.cc
diff options
context:
space:
mode:
authordarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-21 03:55:22 +0000
committerdarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-21 03:55:22 +0000
commitbeb74d0097990df6f70a90af7ff7f87cfa340953 (patch)
tree779f1e371ef70dec59f6fed70cdf5c336e4757d5 /content/browser/renderer_host/async_resource_handler.cc
parent8796bce490ae6e35611eb2ed18bf67fffc57e109 (diff)
downloadchromium_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.cc7
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() {