| 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) 2009 Google Inc. All rights reserved. | 3 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 4 * Copyright (C) 2011 Apple Inc. All Rights Reserved. | 4 * Copyright (C) 2011 Apple Inc. All Rights Reserved. |
| 5 * | 5 * |
| 6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
| 8 * are met: | 8 * are met: |
| 9 * | 9 * |
| 10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| 28 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 */ | 29 */ |
| 30 | 30 |
| 31 #ifndef HTTPParsers_h | 31 #ifndef HTTPParsers_h |
| 32 #define HTTPParsers_h | 32 #define HTTPParsers_h |
| 33 | 33 |
| 34 #include "platform/PlatformExport.h" | 34 #include "platform/PlatformExport.h" |
| 35 #include "wtf/Forward.h" | 35 #include "wtf/Forward.h" |
| 36 #include "wtf/HashSet.h" |
| 36 #include "wtf/Vector.h" | 37 #include "wtf/Vector.h" |
| 38 #include "wtf/text/StringHash.h" |
| 37 | 39 |
| 38 namespace blink { | 40 namespace blink { |
| 39 | 41 |
| 40 typedef enum { | 42 typedef enum { |
| 41 ContentDispositionNone, | 43 ContentDispositionNone, |
| 42 ContentDispositionInline, | 44 ContentDispositionInline, |
| 43 ContentDispositionAttachment, | 45 ContentDispositionAttachment, |
| 44 ContentDispositionOther | 46 ContentDispositionOther |
| 45 } ContentDispositionType; | 47 } ContentDispositionType; |
| 46 | 48 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 60 | 62 |
| 61 // Be sure to update the behavior of XSSAuditor::combineXSSProtectionHeaderAndCS
P whenever you change this enum's content or ordering. | 63 // Be sure to update the behavior of XSSAuditor::combineXSSProtectionHeaderAndCS
P whenever you change this enum's content or ordering. |
| 62 enum ReflectedXSSDisposition { | 64 enum ReflectedXSSDisposition { |
| 63 ReflectedXSSUnset = 0, | 65 ReflectedXSSUnset = 0, |
| 64 AllowReflectedXSS, | 66 AllowReflectedXSS, |
| 65 ReflectedXSSInvalid, | 67 ReflectedXSSInvalid, |
| 66 FilterReflectedXSS, | 68 FilterReflectedXSS, |
| 67 BlockReflectedXSS | 69 BlockReflectedXSS |
| 68 }; | 70 }; |
| 69 | 71 |
| 72 using CommaDelimitedHeaderSet = HashSet<String, CaseFoldingHash>; |
| 73 |
| 70 struct CacheControlHeader { | 74 struct CacheControlHeader { |
| 71 bool parsed : 1; | 75 bool parsed : 1; |
| 72 bool containsNoCache : 1; | 76 bool containsNoCache : 1; |
| 73 bool containsNoStore : 1; | 77 bool containsNoStore : 1; |
| 74 bool containsMustRevalidate : 1; | 78 bool containsMustRevalidate : 1; |
| 75 double maxAge; | 79 double maxAge; |
| 76 | 80 |
| 77 CacheControlHeader() | 81 CacheControlHeader() |
| 78 : parsed(false) | 82 : parsed(false) |
| 79 , containsNoCache(false) | 83 , containsNoCache(false) |
| (...skipping 10 matching lines...) Expand all Loading... |
| 90 PLATFORM_EXPORT bool parseHTTPRefresh(const String& refresh, bool fromHttpEquivM
eta, double& delay, String& url); | 94 PLATFORM_EXPORT bool parseHTTPRefresh(const String& refresh, bool fromHttpEquivM
eta, double& delay, String& url); |
| 91 PLATFORM_EXPORT double parseDate(const String&); | 95 PLATFORM_EXPORT double parseDate(const String&); |
| 92 PLATFORM_EXPORT String filenameFromHTTPContentDisposition(const String&); | 96 PLATFORM_EXPORT String filenameFromHTTPContentDisposition(const String&); |
| 93 PLATFORM_EXPORT AtomicString extractMIMETypeFromMediaType(const AtomicString&); | 97 PLATFORM_EXPORT AtomicString extractMIMETypeFromMediaType(const AtomicString&); |
| 94 PLATFORM_EXPORT String extractCharsetFromMediaType(const String&); | 98 PLATFORM_EXPORT String extractCharsetFromMediaType(const String&); |
| 95 PLATFORM_EXPORT void findCharsetInMediaType(const String& mediaType, unsigned& c
harsetPos, unsigned& charsetLen, unsigned start = 0); | 99 PLATFORM_EXPORT void findCharsetInMediaType(const String& mediaType, unsigned& c
harsetPos, unsigned& charsetLen, unsigned start = 0); |
| 96 PLATFORM_EXPORT ReflectedXSSDisposition parseXSSProtectionHeader(const String& h
eader, String& failureReason, unsigned& failurePosition, String& reportURL); | 100 PLATFORM_EXPORT ReflectedXSSDisposition parseXSSProtectionHeader(const String& h
eader, String& failureReason, unsigned& failurePosition, String& reportURL); |
| 97 PLATFORM_EXPORT String extractReasonPhraseFromHTTPStatusLine(const String&); | 101 PLATFORM_EXPORT String extractReasonPhraseFromHTTPStatusLine(const String&); |
| 98 PLATFORM_EXPORT XFrameOptionsDisposition parseXFrameOptionsHeader(const String&)
; | 102 PLATFORM_EXPORT XFrameOptionsDisposition parseXFrameOptionsHeader(const String&)
; |
| 99 PLATFORM_EXPORT CacheControlHeader parseCacheControlDirectives(const AtomicStrin
g& cacheControlHeader, const AtomicString& pragmaHeader); | 103 PLATFORM_EXPORT CacheControlHeader parseCacheControlDirectives(const AtomicStrin
g& cacheControlHeader, const AtomicString& pragmaHeader); |
| 104 PLATFORM_EXPORT void parseCommaDelimitedHeader(const String& headerValue, CommaD
elimitedHeaderSet&); |
| 100 | 105 |
| 101 // -1 could be set to one of the return parameters to indicate the value is not
specified. | 106 // -1 could be set to one of the return parameters to indicate the value is not
specified. |
| 102 PLATFORM_EXPORT bool parseRange(const String&, long long& rangeOffset, long long
& rangeEnd, long long& rangeSuffixLength); | 107 PLATFORM_EXPORT bool parseRange(const String&, long long& rangeOffset, long long
& rangeEnd, long long& rangeSuffixLength); |
| 103 | 108 |
| 104 PLATFORM_EXPORT ContentTypeOptionsDisposition parseContentTypeOptionsHeader(cons
t String& header); | 109 PLATFORM_EXPORT ContentTypeOptionsDisposition parseContentTypeOptionsHeader(cons
t String& header); |
| 105 | 110 |
| 106 // Parsing Complete HTTP Messages. | 111 // Parsing Complete HTTP Messages. |
| 107 enum HTTPVersion { Unknown, HTTP_1_0, HTTP_1_1 }; | 112 enum HTTPVersion { Unknown, HTTP_1_0, HTTP_1_1 }; |
| 108 PLATFORM_EXPORT size_t parseHTTPRequestLine(const char* data, size_t length, Str
ing& failureReason, String& method, String& url, HTTPVersion&); | 113 PLATFORM_EXPORT size_t parseHTTPRequestLine(const char* data, size_t length, Str
ing& failureReason, String& method, String& url, HTTPVersion&); |
| 109 PLATFORM_EXPORT size_t parseHTTPHeader(const char* data, size_t length, String&
failureReason, AtomicString& nameStr, AtomicString& valueStr); | 114 PLATFORM_EXPORT size_t parseHTTPHeader(const char* data, size_t length, String&
failureReason, AtomicString& nameStr, AtomicString& valueStr); |
| 110 PLATFORM_EXPORT size_t parseHTTPRequestBody(const char* data, size_t length, Vec
tor<unsigned char>& body); | 115 PLATFORM_EXPORT size_t parseHTTPRequestBody(const char* data, size_t length, Vec
tor<unsigned char>& body); |
| 111 | 116 |
| 112 } | 117 } |
| 113 | 118 |
| 114 #endif | 119 #endif |
| OLD | NEW |