Changeset 98896 in webkit
- Timestamp:
- Oct 31, 2011 4:02:48 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 5 added
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r98888 r98896 1 2011-10-31 Vineet Chaudhary <vineet.chaudhary@motorola.com> 2 3 text/plain form encoding ignored and incorrectly specified in request header. 4 https://bugs.webkit.org/show_bug.cgi?id=20795 5 6 Reviewed by Darin Adler. 7 8 Added tests for GET and POST methods for text/plain enctype. 9 Forms submitted using GET with a content-type of text/plain actually, 10 send data in URL encoded in the URL. 11 Forms with POST method and content-type of text/plain actually send data in text/plain. 12 Modified expected results for mailto tests as per the new behavior. 13 14 * fast/forms/form-get-textplain-expected.txt: Added. 15 * fast/forms/form-get-textplain.html: Added. 16 * fast/forms/mailto/post-multiple-items-text-plain-expected.txt: 17 * fast/forms/mailto/post-text-plain-expected.txt: 18 * fast/forms/mailto/post-text-plain-with-accept-charset-expected.txt: 19 * http/tests/misc/form-post-textplain-expected.txt: Added. 20 * http/tests/misc/form-post-textplain.html: Added. 21 * http/tests/misc/resources/form-post-textplain.php: Added. 22 * platform/chromium/test_expectations.txt: 23 * platform/gtk/fast/forms/mailto/formenctype-attribute-button-html-expected.txt: 24 * platform/gtk/fast/forms/mailto/formenctype-attribute-input-html-expected.txt: 25 * platform/qt/test_expectations.txt: 26 * platform/win/test_expectations.txt: 27 1 28 2011-10-31 Arko Saha <arko@motorola.com> 2 29 -
trunk/LayoutTests/fast/forms/mailto/post-multiple-items-text-plain-expected.txt
r39178 r98896 1 Policy delegate: attempt to load mailto:?body=to%3Done%40example.org%0D%0Abody%3DLine%201%0D%0ALine%202%0D%0A%40% 26%3D%2C%3B%3F%22%2B%0D%0A with navigation type 'form submitted'1 Policy delegate: attempt to load mailto:?body=to%3Done%40example.org%0D%0Abody%3DLine%201%0D%0ALine%202%0D%0A%40%0D%0A%3D%2C%3B%3F%22%20%0D%0A with navigation type 'form submitted' 2 2 Field 1: Field 2: -
trunk/LayoutTests/fast/forms/mailto/post-text-plain-expected.txt
r39178 r98896 1 Policy delegate: attempt to load mailto:one@example.org?cc=two@example.org&subject=%C3%BC%D0%B0%D1%91&body=Stra%C3% 9Fe%3D%C3%BC%D0%B0%D1%91%0D%0A with navigation type 'form submitted'1 Policy delegate: attempt to load mailto:one@example.org?cc=two@example.org&subject=%C3%BC%D0%B0%D1%91&body=Stra%C3%83%C5%B8e%3D%C3%83%C2%BC%C3%90%C2%B0%C3%91%E2%80%98%0D%0A with navigation type 'form submitted' 2 2 -
trunk/LayoutTests/fast/forms/mailto/post-text-plain-with-accept-charset-expected.txt
r39178 r98896 1 Policy delegate: attempt to load mailto:one@example.org?cc=two@example.org&subject=%C3%BC%D0%B0%D1%91&body=Stra%C3% 9Fe%3D%C3%BC%D0%B0%D1%91%0D%0A with navigation type 'form submitted'1 Policy delegate: attempt to load mailto:one@example.org?cc=two@example.org&subject=%C3%BC%D0%B0%D1%91&body=Stra%C3%83%C5%B8e%3D%C3%83%C2%BC%C3%90%C2%B0%C3%91%E2%80%98%0D%0A with navigation type 'form submitted' 2 2 -
trunk/LayoutTests/platform/chromium/test_expectations.txt
r98884 r98896 3881 3881 BUGWK70641 SNOWLEOPARD : fast/frames/sandboxed-iframe-scripting.html = PASS CRASH 3882 3882 3883 // Needs rebaseline 3884 BUGWK20795 : fast/forms/mailto/formenctype-attribute-input-html.html = TEXT 3885 BUGWK20795 : fast/forms/mailto/formenctype-attribute-button-html.html = TEXT 3886 3883 3887 BUGWK70749 SNOWLEOPARD CPU GPU : fast/ruby/base-shorter-than-text.html = IMAGE+TEXT PASS 3884 3888 -
trunk/LayoutTests/platform/gtk/fast/forms/mailto/formenctype-attribute-button-html-expected.txt
r72015 r98896 1 Policy delegate: attempt to load mailto:?body=to%3Done%40example.org%0D%0Abody%3DLine%201%0D%0ALine%202%0D%0A%40% 26%3D%2C%3B%3F%22%2B%0D%0A with navigation type 'form submitted'1 Policy delegate: attempt to load mailto:?body=to%3Done%40example.org%0D%0Abody%3DLine%201%0D%0ALine%202%0D%0A%40%0D%0A%3D%2C%3B%3F%22%20%0D%0A with navigation type 'form submitted' 2 2 Field 1: Field 2: -
trunk/LayoutTests/platform/gtk/fast/forms/mailto/formenctype-attribute-input-html-expected.txt
r72015 r98896 1 Policy delegate: attempt to load mailto:?body=to%3Done%40example.org%0D%0Abody%3DLine%201%0D%0ALine%202%0D%0A%40% 26%3D%2C%3B%3F%22%2B%0D%0A with navigation type 'form submitted'1 Policy delegate: attempt to load mailto:?body=to%3Done%40example.org%0D%0Abody%3DLine%201%0D%0ALine%202%0D%0A%40%0D%0A%3D%2C%3B%3F%22%20%0D%0A with navigation type 'form submitted' 2 2 Field 1: Field 2: -
trunk/LayoutTests/platform/qt/test_expectations.txt
r98490 r98896 20 20 BUG_QT_SLOW SLOW DEBUG: fast/overflow/lots-of-sibling-inline-boxes.html = PASS 21 21 22 // Needs rebaseline 23 BUGWK20795 : fast/forms/mailto/formenctype-attribute-input-html.html = TEXT 24 BUGWK20795 : fast/forms/mailto/formenctype-attribute-button-html.html = TEXT 25 22 26 BUGWK67007 DEBUG : fast/ruby/after-block-doesnt-crash.html = CRASH 23 27 BUGWK67007 DEBUG : fast/ruby/after-table-doesnt-crash.html = CRASH -
trunk/LayoutTests/platform/win/test_expectations.txt
r96958 r98896 8 8 BUGWK67007 DEBUG : fast/ruby/generated-before-and-after-counter-doesnt-crash.html = CRASH 9 9 10 // Needs rebaseline 11 BUGWK20795 : fast/forms/mailto/formenctype-attribute-input-html.html = TEXT 12 BUGWK20795 : fast/forms/mailto/formenctype-attribute-button-html.html = TEXT 13 10 14 // Need rebaseline 11 15 BUGWK65361 : fast/forms/input-disabled-color.html = IMAGE+TEXT -
trunk/Source/WebCore/ChangeLog
r98895 r98896 1 2011-10-31 Vineet Chaudhary <vineet.chaudhary@motorola.com> 2 3 text/plain form encoding ignored and incorrectly specified in request header. 4 https://bugs.webkit.org/show_bug.cgi?id=20795 5 6 Reviewed by Darin Adler. 7 8 This patch fixes the behaviour of forms where enctype is set to 9 text/plain, encoding is also text/plain. 10 11 Tests: fast/forms/form-get-textplain.html 12 http/tests/misc/form-post-textplain.html 13 14 * loader/FormSubmission.cpp: 15 (WebCore::FormSubmission::create): 16 * platform/network/FormData.cpp: 17 (WebCore::FormData::create): 18 (WebCore::FormData::appendKeyValuePairItems): 19 * platform/network/FormData.h: 20 (WebCore::FormData::parseEncodingType): 21 * platform/network/FormDataBuilder.cpp: 22 (WebCore::FormDataBuilder::addKeyValuePairAsFormData): Modified encoding scheme for text/plain. 23 * platform/network/FormDataBuilder.h: 24 1 25 2011-10-31 John Gregg <johnnyg@google.com> 2 26 -
trunk/Source/WebCore/loader/FormSubmission.cpp
r98172 r98896 200 200 boundary = formData->boundary().data(); 201 201 } else { 202 formData = FormData::create(*(static_cast<FormDataList*>(domFormData.get())), domFormData->encoding() );202 formData = FormData::create(*(static_cast<FormDataList*>(domFormData.get())), domFormData->encoding(), attributes.method() == GetMethod ? FormData::FormURLEncoded : FormData::parseEncodingType(encodingType)); 203 203 if (copiedAttributes.method() == PostMethod && isMailtoForm) { 204 204 // Convert the form data into a string that we put into the URL. -
trunk/Source/WebCore/platform/network/FormData.cpp
r97274 r98896 100 100 } 101 101 102 PassRefPtr<FormData> FormData::create(const FormDataList& list, const TextEncoding& encoding )102 PassRefPtr<FormData> FormData::create(const FormDataList& list, const TextEncoding& encoding, EncodingType encodingType) 103 103 { 104 104 RefPtr<FormData> result = create(); 105 result->appendKeyValuePairItems(list, encoding, false, 0 );105 result->appendKeyValuePairItems(list, encoding, false, 0, encodingType); 106 106 return result.release(); 107 107 } … … 181 181 #endif 182 182 183 void FormData::appendKeyValuePairItems(const FormDataList& list, const TextEncoding& encoding, bool isMultiPartForm, Document* document )183 void FormData::appendKeyValuePairItems(const FormDataList& list, const TextEncoding& encoding, bool isMultiPartForm, Document* document, EncodingType encodingType) 184 184 { 185 185 if (isMultiPartForm) … … 264 264 FormDataBuilder::encodeStringAsFormData(encodedData, value.data()); 265 265 else 266 FormDataBuilder::addKeyValuePairAsFormData(encodedData, key.data(), value.data() );266 FormDataBuilder::addKeyValuePairAsFormData(encodedData, key.data(), value.data(), encodingType); 267 267 } 268 268 } -
trunk/Source/WebCore/platform/network/FormData.h
r75020 r98896 92 92 class FormData : public RefCounted<FormData> { 93 93 public: 94 enum EncodingType { 95 FormURLEncoded, // for application/x-www-form-urlencoded 96 TextPlain, // for text/plain 97 MultipartFormData // for multipart/form-data 98 }; 99 94 100 static PassRefPtr<FormData> create(); 95 101 static PassRefPtr<FormData> create(const void*, size_t); 96 102 static PassRefPtr<FormData> create(const CString&); 97 103 static PassRefPtr<FormData> create(const Vector<char>&); 98 static PassRefPtr<FormData> create(const FormDataList&, const TextEncoding& );104 static PassRefPtr<FormData> create(const FormDataList&, const TextEncoding&, EncodingType = FormURLEncoded); 99 105 static PassRefPtr<FormData> createMultiPart(const FormDataList&, const TextEncoding&, Document*); 100 106 PassRefPtr<FormData> copy() const; … … 130 136 int64_t identifier() const { return m_identifier; } 131 137 138 static EncodingType parseEncodingType(const String& type) 139 { 140 if (equalIgnoringCase(type, "text/plain")) 141 return TextPlain; 142 if (equalIgnoringCase(type, "multipart/form-data")) 143 return MultipartFormData; 144 return FormURLEncoded; 145 } 146 132 147 private: 133 148 FormData(); 134 149 FormData(const FormData&); 135 150 136 void appendKeyValuePairItems(const FormDataList&, const TextEncoding&, bool isMultiPartForm, Document* );151 void appendKeyValuePairItems(const FormDataList&, const TextEncoding&, bool isMultiPartForm, Document*, EncodingType = FormURLEncoded); 137 152 138 153 Vector<FormDataElement> m_elements; -
trunk/Source/WebCore/platform/network/FormDataBuilder.cpp
r95901 r98896 182 182 } 183 183 184 void FormDataBuilder::addKeyValuePairAsFormData(Vector<char>& buffer, const CString& key, const CString& value) 185 { 186 if (!buffer.isEmpty()) 187 append(buffer, '&'); 188 189 encodeStringAsFormData(buffer, key); 190 append(buffer, '='); 191 encodeStringAsFormData(buffer, value); 184 void FormDataBuilder::addKeyValuePairAsFormData(Vector<char>& buffer, const CString& key, const CString& value, FormData::EncodingType encodingType) 185 { 186 if (encodingType == FormData::TextPlain) { 187 if (!buffer.isEmpty()) 188 append(buffer, "\r\n"); 189 append(buffer, key); 190 append(buffer, '='); 191 append(buffer, value); 192 } else { 193 if (!buffer.isEmpty()) 194 append(buffer, '&'); 195 encodeStringAsFormData(buffer, key); 196 append(buffer, '='); 197 encodeStringAsFormData(buffer, value); 198 } 192 199 } 193 200 -
trunk/Source/WebCore/platform/network/FormDataBuilder.h
r95901 r98896 22 22 #define FormDataBuilder_h 23 23 24 #include "FormData.h" 24 25 #include "PlatformString.h" 25 26 #include <wtf/Forward.h> … … 44 45 45 46 // Helper functions used by HTMLFormElement for non multi-part form data 46 static void addKeyValuePairAsFormData(Vector<char>&, const CString& key, const CString& value );47 static void addKeyValuePairAsFormData(Vector<char>&, const CString& key, const CString& value, FormData::EncodingType = FormData::FormURLEncoded); 47 48 static void encodeStringAsFormData(Vector<char>&, const CString&); 48 49
Note: See TracChangeset
for help on using the changeset viewer.