| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "media/blink/resource_multibuffer_data_provider.h" | 5 #include "media/blink/resource_multibuffer_data_provider.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 FROM_HERE, base::Bind(&ResourceMultiBufferDataProvider::Terminate, | 77 FROM_HERE, base::Bind(&ResourceMultiBufferDataProvider::Terminate, |
| 78 weak_factory_.GetWeakPtr())); | 78 weak_factory_.GetWeakPtr())); |
| 79 return; | 79 return; |
| 80 } | 80 } |
| 81 | 81 |
| 82 request.setHTTPHeaderField( | 82 request.setHTTPHeaderField( |
| 83 WebString::fromUTF8(net::HttpRequestHeaders::kRange), | 83 WebString::fromUTF8(net::HttpRequestHeaders::kRange), |
| 84 WebString::fromUTF8( | 84 WebString::fromUTF8( |
| 85 net::HttpByteRange::RightUnbounded(byte_pos()).GetHeaderValue())); | 85 net::HttpByteRange::RightUnbounded(byte_pos()).GetHeaderValue())); |
| 86 | 86 |
| 87 if (!url_data_->etag().empty()) { |
| 88 request.setHTTPHeaderField(WebString::fromUTF8("If-Match"), |
| 89 WebString::fromUTF8(url_data_->etag())); |
| 90 } |
| 91 |
| 87 url_data_->frame()->setReferrerForRequest(request, blink::WebURL()); | 92 url_data_->frame()->setReferrerForRequest(request, blink::WebURL()); |
| 88 | 93 |
| 89 // Disable compression, compression for audio/video doesn't make sense... | 94 // Disable compression, compression for audio/video doesn't make sense... |
| 90 request.setHTTPHeaderField( | 95 request.setHTTPHeaderField( |
| 91 WebString::fromUTF8(net::HttpRequestHeaders::kAcceptEncoding), | 96 WebString::fromUTF8(net::HttpRequestHeaders::kAcceptEncoding), |
| 92 WebString::fromUTF8("identity;q=1, *;q=0")); | 97 WebString::fromUTF8("identity;q=1, *;q=0")); |
| 93 | 98 |
| 94 // Check for our test WebURLLoader. | 99 // Check for our test WebURLLoader. |
| 95 std::unique_ptr<WebURLLoader> loader; | 100 std::unique_ptr<WebURLLoader> loader; |
| 96 if (test_loader_) { | 101 if (test_loader_) { |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 234 redirects_to_ = GURL(); | 239 redirects_to_ = GURL(); |
| 235 } | 240 } |
| 236 | 241 |
| 237 base::Time last_modified; | 242 base::Time last_modified; |
| 238 if (base::Time::FromString( | 243 if (base::Time::FromString( |
| 239 response.httpHeaderField("Last-Modified").utf8().data(), | 244 response.httpHeaderField("Last-Modified").utf8().data(), |
| 240 &last_modified)) { | 245 &last_modified)) { |
| 241 destination_url_data->set_last_modified(last_modified); | 246 destination_url_data->set_last_modified(last_modified); |
| 242 } | 247 } |
| 243 | 248 |
| 249 destination_url_data->set_etag( |
| 250 response.httpHeaderField("ETag").utf8().data()); |
| 251 |
| 244 destination_url_data->set_valid_until(base::Time::Now() + | 252 destination_url_data->set_valid_until(base::Time::Now() + |
| 245 GetCacheValidUntil(response)); | 253 GetCacheValidUntil(response)); |
| 246 | 254 |
| 247 uint32_t reasons = GetReasonsForUncacheability(response); | 255 uint32_t reasons = GetReasonsForUncacheability(response); |
| 248 destination_url_data->set_cacheable(reasons == 0); | 256 destination_url_data->set_cacheable(reasons == 0); |
| 249 UMA_HISTOGRAM_BOOLEAN("Media.CacheUseful", reasons == 0); | 257 UMA_HISTOGRAM_BOOLEAN("Media.CacheUseful", reasons == 0); |
| 250 int shift = 0; | 258 int shift = 0; |
| 251 int max_enum = base::bits::Log2Ceiling(kMaxReason); | 259 int max_enum = base::bits::Log2Ceiling(kMaxReason); |
| 252 while (reasons) { | 260 while (reasons) { |
| 253 DCHECK_LT(shift, max_enum); // Sanity check. | 261 DCHECK_LT(shift, max_enum); // Sanity check. |
| (...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 539 } | 547 } |
| 540 | 548 |
| 541 if (byte_pos() != first_byte_position) { | 549 if (byte_pos() != first_byte_position) { |
| 542 return false; | 550 return false; |
| 543 } | 551 } |
| 544 | 552 |
| 545 return true; | 553 return true; |
| 546 } | 554 } |
| 547 | 555 |
| 548 } // namespace media | 556 } // namespace media |
| OLD | NEW |