OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2006, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2004, 2006, 2008 Apple Inc. All rights reserved. |
3 * Copyright (C) 2005-2007 Alexey Proskuryakov <ap@webkit.org> | 3 * Copyright (C) 2005-2007 Alexey Proskuryakov <ap@webkit.org> |
4 * Copyright (C) 2007, 2008 Julien Chaffraix <jchaffraix@webkit.org> | 4 * Copyright (C) 2007, 2008 Julien Chaffraix <jchaffraix@webkit.org> |
5 * Copyright (C) 2008, 2011 Google Inc. All rights reserved. | 5 * Copyright (C) 2008, 2011 Google Inc. All rights reserved. |
6 * Copyright (C) 2012 Intel Corporation | 6 * Copyright (C) 2012 Intel Corporation |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Lesser General Public | 9 * modify it under the terms of the GNU Lesser General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
481 | 481 |
482 bool XMLHttpRequest::isAllowedHTTPMethod(const String& method) | 482 bool XMLHttpRequest::isAllowedHTTPMethod(const String& method) |
483 { | 483 { |
484 return !equalIgnoringCase(method, "TRACE") | 484 return !equalIgnoringCase(method, "TRACE") |
485 && !equalIgnoringCase(method, "TRACK") | 485 && !equalIgnoringCase(method, "TRACK") |
486 && !equalIgnoringCase(method, "CONNECT"); | 486 && !equalIgnoringCase(method, "CONNECT"); |
487 } | 487 } |
488 | 488 |
489 AtomicString XMLHttpRequest::uppercaseKnownHTTPMethod(const AtomicString& method
) | 489 AtomicString XMLHttpRequest::uppercaseKnownHTTPMethod(const AtomicString& method
) |
490 { | 490 { |
| 491 // http://xhr.spec.whatwg.org/#dom-xmlhttprequest-open |
| 492 // If method is a case-insensitive match for `DELETE`, `GET`, `HEAD`, `OPTIO
NS`, `POST`, or |
| 493 // `PUT`, subtract 0x20 from each byte in the range 0x61 (ASCII a) to 0x7A (
ASCII z). |
| 494 // |
| 495 // If it does not match any of the above, it is passed through literally, in
cluding in the final |
| 496 // request. |
491 const char* const methods[] = { | 497 const char* const methods[] = { |
492 "COPY", | |
493 "DELETE", | 498 "DELETE", |
494 "GET", | 499 "GET", |
495 "HEAD", | 500 "HEAD", |
496 "INDEX", | |
497 "LOCK", | |
498 "M-POST", | |
499 "MKCOL", | |
500 "MOVE", | |
501 "OPTIONS", | 501 "OPTIONS", |
502 "POST", | 502 "POST", |
503 "PROPFIND", | 503 "PUT" |
504 "PROPPATCH", | 504 }; |
505 "PUT", | |
506 "UNLOCK" }; | |
507 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(methods); ++i) { | 505 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(methods); ++i) { |
508 if (equalIgnoringCase(method, methods[i])) { | 506 if (equalIgnoringCase(method, methods[i])) { |
509 // Don't bother allocating a new string if it's already all uppercas
e. | 507 // Don't bother allocating a new string if it's already all uppercas
e. |
510 if (method == methods[i]) | 508 if (method == methods[i]) |
511 return method; | 509 return method; |
512 return methods[i]; | 510 return methods[i]; |
513 } | 511 } |
514 } | 512 } |
515 return method; | 513 return method; |
516 } | 514 } |
(...skipping 897 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1414 } | 1412 } |
1415 | 1413 |
1416 void XMLHttpRequest::trace(Visitor* visitor) | 1414 void XMLHttpRequest::trace(Visitor* visitor) |
1417 { | 1415 { |
1418 visitor->trace(m_responseBlob); | 1416 visitor->trace(m_responseBlob); |
1419 visitor->trace(m_responseStream); | 1417 visitor->trace(m_responseStream); |
1420 visitor->trace(m_progressEventThrottle); | 1418 visitor->trace(m_progressEventThrottle); |
1421 } | 1419 } |
1422 | 1420 |
1423 } // namespace WebCore | 1421 } // namespace WebCore |
OLD | NEW |