| Index: WebCore/platform/network/FormData.h
|
| ===================================================================
|
| --- WebCore/platform/network/FormData.h (revision 140218)
|
| +++ WebCore/platform/network/FormData.h (working copy)
|
| @@ -20,6 +20,7 @@
|
| #ifndef FormData_h
|
| #define FormData_h
|
|
|
| +#include "BlobData.h"
|
| #include "KURL.h"
|
| #include <wtf/Forward.h>
|
| #include <wtf/RefCounted.h>
|
| @@ -28,6 +29,7 @@
|
|
|
| namespace WebCore {
|
|
|
| +class BlobDataHandle;
|
| class Document;
|
| class FormDataList;
|
| class TextEncoding;
|
| @@ -39,12 +41,12 @@
|
|
|
| #if ENABLE(BLOB)
|
| FormDataElement(const String& filename, long long fileStart, long long fileLength, double expectedFileModificationTime, bool shouldGenerateFile) : m_type(encodedFile), m_filename(filename), m_fileStart(fileStart), m_fileLength(fileLength), m_expectedFileModificationTime(expectedFileModificationTime), m_shouldGenerateFile(shouldGenerateFile) { }
|
| - explicit FormDataElement(const KURL& blobURL) : m_type(encodedBlob), m_url(blobURL) { }
|
| + explicit FormDataElement( const String& blobUUID, PassRefPtr<BlobDataHandle> optionalblobDataHandle) : m_type(encodedBlob), m_optionalBlobDataHandle(optionalblobDataHandle) { }
|
| #else
|
| FormDataElement(const String& filename, bool shouldGenerateFile) : m_type(encodedFile), m_filename(filename), m_shouldGenerateFile(shouldGenerateFile) { }
|
| #endif
|
| #if ENABLE(FILE_SYSTEM)
|
| - FormDataElement(const KURL& url, long long start, long long length, double expectedFileModificationTime) : m_type(encodedURL), m_url(url), m_fileStart(start), m_fileLength(length), m_expectedFileModificationTime(expectedFileModificationTime), m_shouldGenerateFile(false) { }
|
| + FormDataElement(const KURL& fileSystemURL, long long start, long long length, double expectedFileModificationTime) : m_type(encodedFileSystemURL), m_fileSystemURL(fileSystemURL), m_fileStart(start), m_fileLength(length), m_expectedFileModificationTime(expectedFileModificationTime), m_shouldGenerateFile(false) { }
|
| #endif
|
|
|
| void reportMemoryUsage(MemoryObjectInfo*) const;
|
| @@ -56,13 +58,15 @@
|
| , encodedBlob
|
| #endif
|
| #if ENABLE(FILE_SYSTEM)
|
| - , encodedURL
|
| + , encodedFileSystemURL
|
| #endif
|
| } m_type;
|
| Vector<char> m_data;
|
| String m_filename;
|
| #if ENABLE(BLOB)
|
| - KURL m_url; // For Blob or URL.
|
| + String m_blobUUID;
|
| + RefPtr<BlobDataHandle> m_optionalBlobDataHandle;
|
| + KURL m_fileSystemURL;
|
| long long m_fileStart;
|
| long long m_fileLength;
|
| double m_expectedFileModificationTime;
|
| @@ -84,13 +88,13 @@
|
| #if ENABLE(BLOB)
|
| return a.m_filename == b.m_filename && a.m_fileStart == b.m_fileStart && a.m_fileLength == b.m_fileLength && a.m_expectedFileModificationTime == b.m_expectedFileModificationTime;
|
| if (a.m_type == FormDataElement::encodedBlob)
|
| - return a.m_url == b.m_url;
|
| + return a.m_blobUUID == b.m_blobUUID;
|
| #else
|
| return a.m_filename == b.m_filename;
|
| #endif
|
| #if ENABLE(FILE_SYSTEM)
|
| - if (a.m_type == FormDataElement::encodedURL)
|
| - return a.m_url == b.m_url;
|
| + if (a.m_type == FormDataElement::encodedFileSystemURL)
|
| + return a.m_fileSystemURL == b.m_fileSystemURL;
|
| #endif
|
|
|
| return true;
|
| @@ -126,7 +130,7 @@
|
| void appendFile(const String& filePath, bool shouldGenerateFile = false);
|
| #if ENABLE(BLOB)
|
| void appendFileRange(const String& filename, long long start, long long length, double expectedModificationTime, bool shouldGenerateFile = false);
|
| - void appendBlob(const KURL& blobURL);
|
| + void appendBlob(const String& blobUUID, PassRefPtr<BlobDataHandle> optionalBlobDataHandle);
|
| #endif
|
| #if ENABLE(FILE_SYSTEM)
|
| void appendURL(const KURL&);
|
| @@ -137,10 +141,14 @@
|
| String flattenToString() const; // omits files
|
|
|
| #if ENABLE(BLOB)
|
| +#if PLATFORM(CHROMIUM)
|
| + // Chromium doesn't store blob data in renderer processes.
|
| +#else
|
| // Resolve all blob references so we only have file and data.
|
| // If the FormData has no blob references to resolve, this is returned.
|
| PassRefPtr<FormData> resolveBlobReferences();
|
| #endif
|
| +#endif
|
|
|
| bool isEmpty() const { return m_elements.isEmpty(); }
|
| const Vector<FormDataElement>& elements() const { return m_elements; }
|
|
|