Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Unified Diff: webkit/media/buffered_resource_loader.cc

Issue 9699035: Reduce unnecessary network connections. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webkit/media/buffered_resource_loader.cc
diff --git a/webkit/media/buffered_resource_loader.cc b/webkit/media/buffered_resource_loader.cc
index 53a236e6bfa9ac576fdfc36cddca6c055b270e71..d293f4d7e95a9d56c2e4ff2b8115390a5136768e 100644
--- a/webkit/media/buffered_resource_loader.cc
+++ b/webkit/media/buffered_resource_loader.cc
@@ -382,15 +382,22 @@ void BufferedResourceLoader::didReceiveResponse(
range_supported_ = (accept_ranges.find("bytes") != std::string::npos);
acolwell GONE FROM CHROMIUM 2012/03/14 18:24:49 Should this and the line above be moved into the i
Ami GONE FROM CHROMIUM 2012/03/14 19:37:20 Done.
partial_response = (response.httpStatusCode() == kHttpPartialContent);
+ bool ok_response = (response.httpStatusCode() == kHttpOK);
if (range_requested_) {
// If we have verified the partial response and it is correct, we will
// return net::OK. It's also possible for a server to support range
// requests without advertising Accept-Ranges: bytes.
- if (partial_response && VerifyPartialResponse(response))
+ if (partial_response && VerifyPartialResponse(response)) {
range_supported_ = true;
- else
+ } else if (ok_response && first_byte_position_ == 0 &&
+ last_byte_position_ == kPositionNotSpecified) {
+ // We accept a 200 response for a Range:0- request and down-grade the
+ // data source to streaming.
+ range_supported_ = false;
+ } else {
error = net::ERR_INVALID_RESPONSE;
+ }
} else if (response.httpStatusCode() != kHttpOK) {
// We didn't request a range but server didn't reply with "200 OK".
error = net::ERR_FAILED;
« webkit/media/buffered_data_source.cc ('K') | « webkit/media/buffered_data_source_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698