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

Side by Side Diff: webkit/glue/multipart_response_delegate.cc

Issue 8349009: Support playback & seeking in media files over 2G. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 2 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 "webkit/glue/multipart_response_delegate.h" 5 #include "webkit/glue/multipart_response_delegate.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/string_number_conversions.h" 8 #include "base/string_number_conversions.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "net/base/net_util.h" 10 #include "net/base/net_util.h"
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 content_type.substr(boundary_start_offset, boundary_length); 318 content_type.substr(boundary_start_offset, boundary_length);
319 // The byte range response can have quoted boundary strings. This is legal 319 // The byte range response can have quoted boundary strings. This is legal
320 // as per MIME specifications. Individual data fragements however don't 320 // as per MIME specifications. Individual data fragements however don't
321 // contain quoted boundary strings. 321 // contain quoted boundary strings.
322 TrimString(*multipart_boundary, "\"", multipart_boundary); 322 TrimString(*multipart_boundary, "\"", multipart_boundary);
323 return true; 323 return true;
324 } 324 }
325 325
326 bool MultipartResponseDelegate::ReadContentRanges( 326 bool MultipartResponseDelegate::ReadContentRanges(
327 const WebURLResponse& response, 327 const WebURLResponse& response,
328 int* content_range_lower_bound, 328 int64* content_range_lower_bound,
329 int* content_range_upper_bound, 329 int64* content_range_upper_bound,
330 int* content_range_instance_size) { 330 int64* content_range_instance_size) {
331 331
332 std::string content_range = response.httpHeaderField("Content-Range").utf8(); 332 std::string content_range = response.httpHeaderField("Content-Range").utf8();
333 if (content_range.empty()) { 333 if (content_range.empty()) {
334 content_range = response.httpHeaderField("Range").utf8(); 334 content_range = response.httpHeaderField("Range").utf8();
335 } 335 }
336 336
337 if (content_range.empty()) { 337 if (content_range.empty()) {
338 DLOG(WARNING) << "Failed to read content range from response."; 338 DLOG(WARNING) << "Failed to read content range from response.";
339 return false; 339 return false;
340 } 340 }
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 size_t byte_range_instance_size_end_offset = 383 size_t byte_range_instance_size_end_offset =
384 content_range.length(); 384 content_range.length();
385 385
386 size_t byte_range_instance_size_characters = 386 size_t byte_range_instance_size_characters =
387 byte_range_instance_size_end_offset - 387 byte_range_instance_size_end_offset -
388 byte_range_instance_size_start_offset; 388 byte_range_instance_size_start_offset;
389 std::string byte_range_instance_size = 389 std::string byte_range_instance_size =
390 content_range.substr(byte_range_instance_size_start_offset, 390 content_range.substr(byte_range_instance_size_start_offset,
391 byte_range_instance_size_characters); 391 byte_range_instance_size_characters);
392 392
393 if (!base::StringToInt(byte_range_lower_bound, content_range_lower_bound)) 393 if (!base::StringToInt64(byte_range_lower_bound, content_range_lower_bound))
394 return false; 394 return false;
395 if (!base::StringToInt(byte_range_upper_bound, content_range_upper_bound)) 395 if (!base::StringToInt64(byte_range_upper_bound, content_range_upper_bound))
396 return false; 396 return false;
397 if (!base::StringToInt(byte_range_instance_size, content_range_instance_size)) 397 if (!base::StringToInt64(byte_range_instance_size,
398 content_range_instance_size)) {
398 return false; 399 return false;
400 }
399 return true; 401 return true;
400 } 402 }
401 403
402 } // namespace webkit_glue 404 } // namespace webkit_glue
OLDNEW
« no previous file with comments | « webkit/glue/multipart_response_delegate.h ('k') | webkit/glue/multipart_response_delegate_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698