Log Message
[curl] Handling of blob elements is incorrect https://bugs.webkit.org/show_bug.cgi?id=117301
Patch by Peter Gal <[email protected]> on 2013-06-08 Reviewed by Kenneth Rohde Christiansen. No new tests, covered by existing ones: http/tests/fileapi/xhr-send-form-data-filename-escaping.html http/tests/fileapi/xhr-send-form-data-mimetype-normalization.html * platform/network/curl/ResourceHandleManager.cpp: (WebCore::getFormElementsCount): Resolve Blob elements.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (151345 => 151346)
--- trunk/Source/WebCore/ChangeLog 2013-06-08 02:11:54 UTC (rev 151345)
+++ trunk/Source/WebCore/ChangeLog 2013-06-08 11:34:25 UTC (rev 151346)
@@ -1,3 +1,17 @@
+2013-06-08 Peter Gal <[email protected]>
+
+ [curl] Handling of blob elements is incorrect
+ https://bugs.webkit.org/show_bug.cgi?id=117301
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ No new tests, covered by existing ones:
+ http/tests/fileapi/xhr-send-form-data-filename-escaping.html
+ http/tests/fileapi/xhr-send-form-data-mimetype-normalization.html
+
+ * platform/network/curl/ResourceHandleManager.cpp:
+ (WebCore::getFormElementsCount): Resolve Blob elements.
+
2013-06-07 Alexandru Chiculita <[email protected]>
[CSS Regions] Layers inside the RenderFlowThread should be collected by the layer of RenderView
Modified: trunk/Source/WebCore/platform/network/curl/ResourceHandleManager.cpp (151345 => 151346)
--- trunk/Source/WebCore/platform/network/curl/ResourceHandleManager.cpp 2013-06-08 02:11:54 UTC (rev 151345)
+++ trunk/Source/WebCore/platform/network/curl/ResourceHandleManager.cpp 2013-06-08 11:34:25 UTC (rev 151346)
@@ -482,11 +482,18 @@
static inline size_t getFormElementsCount(ResourceHandle* job)
{
- if (!job->firstRequest().httpBody())
+ RefPtr<FormData> formData = job->firstRequest().httpBody();
+
+ if (!formData)
return 0;
- Vector<FormDataElement> elements = job->firstRequest().httpBody()->elements();
- return elements.size();
+#if ENABLE(BLOB)
+ // Resolve the blob elements so the formData can correctly report it's size.
+ formData = formData->resolveBlobReferences();
+ job->firstRequest().setHTTPBody(formData);
+#endif
+
+ return formData->elements().size();
}
static void setupFormData(ResourceHandle* job, CURLoption sizeOption, struct curl_slist** headers)
_______________________________________________ webkit-changes mailing list [email protected] https://lists.webkit.org/mailman/listinfo/webkit-changes
