Changeset 38755 in webkit
- Timestamp:
- Nov 25, 2008 11:31:32 AM (15 years ago)
- Location:
- trunk
- Files:
-
- 18 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r38751 r38755 1 2008-11-25 Jungshik Shin <jshin@chromium.org> 2 3 Reviewed by Darin Adler. 4 5 For Unicode encodings other than UTF-8, use UTF-8 for 6 form submission and URL query part encoding. 7 8 See https://bugs.webkit.org/show_bug.cgi?id=21635 9 10 * http/tests/misc/submit-get-in-utf16be-expected.txt: Added. 11 * http/tests/misc/submit-get-in-utf16be.html: Added. 12 * http/tests/misc/submit-get-in-utf16le-expected.txt: Added. 13 * http/tests/misc/submit-get-in-utf16le.html: Added. 14 * http/tests/misc/submit-get-in-utf32be-expected.txt: Added. 15 * http/tests/misc/submit-get-in-utf32be.html: Added. 16 * http/tests/misc/submit-get-in-utf32le-expected.txt: Added. 17 * http/tests/misc/submit-get-in-utf32le.html: Added. 18 * http/tests/misc/submit-get-in-utf7-expected.txt: Added. 19 * http/tests/misc/submit-get-in-utf7.html: Added. 20 * http/tests/misc/submit-post-in-utf16be-expected.txt: Added. 21 * http/tests/misc/submit-post-in-utf16be.html: Added. 22 * http/tests/misc/submit-post-in-utf16le-expected.txt: Added. 23 * http/tests/misc/submit-post-in-utf16le.html: Added. 24 * http/tests/misc/submit-post-in-utf32be-expected.txt: Added. 25 * http/tests/misc/submit-post-in-utf32be.html: Added. 26 * http/tests/misc/submit-post-in-utf32le-expected.txt: Added. 27 * http/tests/misc/submit-post-in-utf32le.html: Added. 28 * http/tests/misc/submit-post-in-utf7-expected.txt: Added. 29 * http/tests/misc/submit-post-in-utf7.html: Added. 30 * http/tests/misc/url-in-utf16be-expected.txt: Added. 31 * http/tests/misc/url-in-utf16be.html: Added. 32 * http/tests/misc/url-in-utf16le-expected.txt: Added. 33 * http/tests/misc/url-in-utf16le.html: Added. 34 * http/tests/misc/url-in-utf32be-expected.txt: Added. 35 * http/tests/misc/url-in-utf32be.html: Added. 36 * http/tests/misc/url-in-utf32le-expected.txt: Added. 37 * http/tests/misc/url-in-utf32le.html: Added. 38 * http/tests/misc/url-in-utf7-expected.txt: Added. 39 * http/tests/misc/url-in-utf7.html: Added. 40 1 41 2008-11-25 Alexey Proskuryakov <ap@webkit.org> 2 42 -
trunk/WebCore/ChangeLog
r38754 r38755 1 2008-11-24 Jungshik Shin <jshin@chromium.org> 2 3 Reviewed by Darin Adler. 4 5 For Unicode encodings other than UTF-8, use UTF-8 for 6 form submission and URL query part encoding. 7 8 See https://bugs.webkit.org/show_bug.cgi?id=21635 9 10 Tests: http/tests/misc/submit-get-in-utf16be.html 11 http/tests/misc/submit-get-in-utf16le.html 12 http/tests/misc/submit-get-in-utf32be.html 13 http/tests/misc/submit-get-in-utf32le.html 14 http/tests/misc/submit-get-in-utf7.html 15 http/tests/misc/submit-post-in-utf16be.html 16 http/tests/misc/submit-post-in-utf16le.html 17 http/tests/misc/submit-post-in-utf32be.html 18 http/tests/misc/submit-post-in-utf32le.html 19 http/tests/misc/submit-post-in-utf7.html 20 http/tests/misc/url-in-utf16be.html 21 http/tests/misc/url-in-utf16le.html 22 http/tests/misc/url-in-utf32be.html 23 http/tests/misc/url-in-utf32le.html 24 http/tests/misc/url-in-utf7.html 25 26 * html/HTMLFormElement.cpp: 27 (WebCore::HTMLFormElement::formData): 28 * loader/TextResourceDecoder.cpp: 29 (WebCore::TextResourceDecoder::setEncoding): 30 * platform/KURL.cpp: 31 (WebCore::KURL::KURL): 32 * platform/text/TextEncoding.cpp: 33 (WebCore::UTF7Encoding): 34 (WebCore::TextEncoding::isNonByteBasedEncoding): 35 (WebCore::TextEncoding::closestByteBasedEquivalent): 36 (WebCore::TextEncoding::encodingForFormSubmission): 37 * platform/text/TextEncoding.h: 38 1 39 2008-11-24 Julien Chaffraix <jchaffraix@webkit.org> 2 40 -
trunk/WebCore/html/HTMLFormElement.cpp
r38094 r38755 237 237 { 238 238 Vector<char> encodedData; 239 TextEncoding encoding = dataEncoding() ;239 TextEncoding encoding = dataEncoding().encodingForFormSubmission(); 240 240 241 241 RefPtr<FormData> result = FormData::create(); -
trunk/WebCore/loader/TextResourceDecoder.cpp
r38240 r38755 347 347 m_decoder.reset("windows-1252"); 348 348 else if (source == EncodingFromMetaTag || source == EncodingFromXMLHeader || source == EncodingFromCSSCharset) 349 m_decoder.reset(encoding.closest 8BitEquivalent());349 m_decoder.reset(encoding.closestByteBasedEquivalent()); 350 350 else 351 351 m_decoder.reset(encoding); -
trunk/WebCore/platform/KURL.cpp
r38746 r38755 321 321 KURL::KURL(const KURL& base, const String& relative, const TextEncoding& encoding) 322 322 { 323 init(base, relative, encoding); 323 // For UTF-{7,16,32}, we want to use UTF-8 for the query part as 324 // we do when submitting a form. A form with GET method 325 // has its contents added to a URL as query params and it makes sense 326 // to be consistent. 327 init(base, relative, encoding.encodingForFormSubmission()); 324 328 } 325 329 -
trunk/WebCore/platform/text/TextEncoding.cpp
r38418 r38755 51 51 } 52 52 53 static const TextEncoding& UTF7Encoding() 54 { 55 static TextEncoding globalUTF7Encoding("UTF-7"); 56 return globalUTF7Encoding; 57 } 58 53 59 TextEncoding::TextEncoding(const char* name) 54 60 : m_name(atomicCanonicalTextEncodingName(name)) … … 156 162 } 157 163 158 const TextEncoding& TextEncoding::closest8BitEquivalent() const 159 { 160 if (*this == UTF16BigEndianEncoding() || *this == UTF16LittleEndianEncoding()) 164 bool TextEncoding::isNonByteBasedEncoding() const 165 { 166 return *this == UTF16LittleEndianEncoding() 167 || *this == UTF16BigEndianEncoding() 168 || *this == UTF32BigEndianEncoding() 169 || *this == UTF32LittleEndianEncoding(); 170 } 171 172 const TextEncoding& TextEncoding::closestByteBasedEquivalent() const 173 { 174 if (isNonByteBasedEncoding()) 175 return UTF8Encoding(); 176 return *this; 177 } 178 179 // HTML5 specifies that UTF-8 be used in form submission when a form is 180 // is a part of a document in UTF-16 probably because UTF-16 is not a 181 // byte-based encoding and can contain 0x00. By extension, the same 182 // should be done for UTF-32. In case of UTF-7, it is a byte-based encoding, 183 // but it's fraught with problems and we'd rather steer clear of it. 184 const TextEncoding& TextEncoding::encodingForFormSubmission() const 185 { 186 if (isNonByteBasedEncoding() || *this == UTF7Encoding()) 161 187 return UTF8Encoding(); 162 188 return *this; … … 199 225 } 200 226 201 202 227 const TextEncoding& UTF8Encoding() 203 228 { -
trunk/WebCore/platform/text/TextEncoding.h
r31316 r38755 46 46 bool isJapanese() const; 47 47 UChar backslashAsCurrencySymbol() const; 48 const TextEncoding& closest8BitEquivalent() const; 48 const TextEncoding& closestByteBasedEquivalent() const; 49 const TextEncoding& encodingForFormSubmission() const; 49 50 50 51 String decode(const char* str, size_t length) const … … 58 59 private: 59 60 const char* m_name; 61 bool isNonByteBasedEncoding() const; 60 62 }; 61 63
Note: See TracChangeset
for help on using the changeset viewer.