| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 2 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 3 * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. | 3 * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. |
| 4 * Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/ | 4 * Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/ |
| 5 * Copyright (C) 2009 Google Inc. All rights reserved. | 5 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 6 * Copyright (C) 2011 Apple Inc. All Rights Reserved. | 6 * Copyright (C) 2011 Apple Inc. All Rights Reserved. |
| 7 * | 7 * |
| 8 * Redistribution and use in source and binary forms, with or without | 8 * Redistribution and use in source and binary forms, with or without |
| 9 * modification, are permitted provided that the following conditions | 9 * modification, are permitted provided that the following conditions |
| 10 * are met: | 10 * are met: |
| (...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 447 pos += 7; | 447 pos += 7; |
| 448 | 448 |
| 449 // skip whitespace | 449 // skip whitespace |
| 450 while (pos != length && mediaType[pos] <= ' ') | 450 while (pos != length && mediaType[pos] <= ' ') |
| 451 ++pos; | 451 ++pos; |
| 452 | 452 |
| 453 if (mediaType[pos++] != '=') // this "charset" substring wasn't a parameter | 453 if (mediaType[pos++] != '=') // this "charset" substring wasn't a parameter |
| 454 // name, but there may be others | 454 // name, but there may be others |
| 455 continue; | 455 continue; |
| 456 | 456 |
| 457 while (pos != length && (mediaType[pos] <= ' ' || mediaType[pos] == '"' || | 457 while (pos != length && |
| 458 mediaType[pos] == '\'')) | 458 (mediaType[pos] <= ' ' || mediaType[pos] == '"' || |
| 459 mediaType[pos] == '\'')) |
| 459 ++pos; | 460 ++pos; |
| 460 | 461 |
| 461 // we don't handle spaces within quoted parameter values, because charset | 462 // we don't handle spaces within quoted parameter values, because charset |
| 462 // names cannot have any | 463 // names cannot have any |
| 463 unsigned endpos = pos; | 464 unsigned endpos = pos; |
| 464 while (pos != length && mediaType[endpos] > ' ' && | 465 while (pos != length && mediaType[endpos] > ' ' && |
| 465 mediaType[endpos] != '"' && mediaType[endpos] != '\'' && | 466 mediaType[endpos] != '"' && mediaType[endpos] != '\'' && |
| 466 mediaType[endpos] != ';') | 467 mediaType[endpos] != ';') |
| 467 ++endpos; | 468 ++endpos; |
| 468 | 469 |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 632 .stripWhiteSpace()); | 633 .stripWhiteSpace()); |
| 633 pos += nextEqualSignPosition - pos + 1; | 634 pos += nextEqualSignPosition - pos + 1; |
| 634 | 635 |
| 635 String value = safeHeader.substring(pos, max - pos).stripWhiteSpace(); | 636 String value = safeHeader.substring(pos, max - pos).stripWhiteSpace(); |
| 636 if (value[0] == '"') { | 637 if (value[0] == '"') { |
| 637 // The value is a quoted string | 638 // The value is a quoted string |
| 638 size_t nextDoubleQuotePosition = value.find('"', 1); | 639 size_t nextDoubleQuotePosition = value.find('"', 1); |
| 639 if (nextDoubleQuotePosition != kNotFound) { | 640 if (nextDoubleQuotePosition != kNotFound) { |
| 640 // Store the value as a quoted string without quotes | 641 // Store the value as a quoted string without quotes |
| 641 result.push_back(std::pair<String, String>( | 642 result.push_back(std::pair<String, String>( |
| 642 directive, value.substring(1, nextDoubleQuotePosition - 1) | 643 directive, |
| 643 .stripWhiteSpace())); | 644 value.substring(1, nextDoubleQuotePosition - 1) |
| 645 .stripWhiteSpace())); |
| 644 pos += | 646 pos += |
| 645 (safeHeader.find('"', pos) - pos) + nextDoubleQuotePosition + 1; | 647 (safeHeader.find('"', pos) - pos) + nextDoubleQuotePosition + 1; |
| 646 // Move past next comma, if there is one | 648 // Move past next comma, if there is one |
| 647 size_t nextCommaPosition2 = safeHeader.find(',', pos); | 649 size_t nextCommaPosition2 = safeHeader.find(',', pos); |
| 648 if (nextCommaPosition2 != kNotFound) | 650 if (nextCommaPosition2 != kNotFound) |
| 649 pos += nextCommaPosition2 - pos + 1; | 651 pos += nextCommaPosition2 - pos + 1; |
| 650 else | 652 else |
| 651 return; // Parse error if there is anything left with no comma | 653 return; // Parse error if there is anything left with no comma |
| 652 } else { | 654 } else { |
| 653 // Parse error; just use the rest as the value | 655 // Parse error; just use the rest as the value |
| (...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 879 bool parseContentRangeHeaderFor206(const String& contentRange, | 881 bool parseContentRangeHeaderFor206(const String& contentRange, |
| 880 int64_t* firstBytePosition, | 882 int64_t* firstBytePosition, |
| 881 int64_t* lastBytePosition, | 883 int64_t* lastBytePosition, |
| 882 int64_t* instanceLength) { | 884 int64_t* instanceLength) { |
| 883 return net::HttpUtil::ParseContentRangeHeaderFor206( | 885 return net::HttpUtil::ParseContentRangeHeaderFor206( |
| 884 StringUTF8Adaptor(contentRange).asStringPiece(), firstBytePosition, | 886 StringUTF8Adaptor(contentRange).asStringPiece(), firstBytePosition, |
| 885 lastBytePosition, instanceLength); | 887 lastBytePosition, instanceLength); |
| 886 } | 888 } |
| 887 | 889 |
| 888 } // namespace blink | 890 } // namespace blink |
| OLD | NEW |