| Index: WebCore/platform/network/FormData.cpp
|
| ===================================================================
|
| --- WebCore/platform/network/FormData.cpp (revision 140218)
|
| +++ WebCore/platform/network/FormData.cpp (working copy)
|
| @@ -23,9 +23,6 @@
|
|
|
| #include "FormData.h"
|
|
|
| -#include "BlobData.h"
|
| -#include "BlobRegistryImpl.h"
|
| -#include "BlobURL.h"
|
| #include "Chrome.h"
|
| #include "ChromeClient.h"
|
| #include "Document.h"
|
| @@ -41,6 +38,12 @@
|
| #include <wtf/Encoder.h>
|
| #include <wtf/MemoryInstrumentationVector.h>
|
|
|
| +#if PLATFORM(CHROMIUM)
|
| +// Chromium doesn't store blob data in renderer processes.
|
| +#else
|
| +#include "BlobRegistryImpl.h"
|
| +#endif
|
| +
|
| namespace WebCore {
|
|
|
| inline FormData::FormData()
|
| @@ -147,12 +150,12 @@
|
| break;
|
| #if ENABLE(BLOB)
|
| case FormDataElement::encodedBlob:
|
| - formData->m_elements.append(FormDataElement(e.m_url));
|
| + formData->m_elements.append(FormDataElement(e.m_blobUUID, e.m_optionalBlobDataHandle));
|
| break;
|
| #endif
|
| #if ENABLE(FILE_SYSTEM)
|
| - case FormDataElement::encodedURL:
|
| - formData->m_elements.append(FormDataElement(e.m_url, e.m_fileStart, e.m_fileLength, e.m_expectedFileModificationTime));
|
| + case FormDataElement::encodedFileSystemURL:
|
| + formData->m_elements.append(FormDataElement(e.m_fileSystemURL, e.m_fileStart, e.m_fileLength, e.m_expectedFileModificationTime));
|
| break;
|
| #endif
|
| }
|
| @@ -185,9 +188,9 @@
|
| m_elements.append(FormDataElement(filename, start, length, expectedModificationTime, shouldGenerateFile));
|
| }
|
|
|
| -void FormData::appendBlob(const KURL& blobURL)
|
| +void FormData::appendBlob(const String& blobUUID, PassRefPtr<BlobDataHandle> optionalBlobDataHandle)
|
| {
|
| - m_elements.append(FormDataElement(blobURL));
|
| + m_elements.append(FormDataElement(blobUUID, optionalBlobDataHandle));
|
| }
|
| #endif
|
| #if ENABLE(FILE_SYSTEM)
|
| @@ -279,7 +282,7 @@
|
| }
|
| #if ENABLE(BLOB)
|
| else
|
| - appendBlob(value.blob()->url());
|
| + appendBlob(value.blob()->uuid(), value.blob()->blobDataHandle());
|
| #endif
|
| } else
|
| appendData(value.data().data(), value.data().length());
|
| @@ -320,9 +323,12 @@
|
| }
|
|
|
| #if ENABLE(BLOB)
|
| -static void appendBlobResolved(FormData* formData, const KURL& url)
|
| +#if PLATFORM(CHROMIUM)
|
| +// Chromium doesn't store blob data in renderer processes.
|
| +#else
|
| +static void appendBlobResolved(FormData* formData, const String& blobUUID)
|
| {
|
| - RefPtr<BlobStorageData> blobData = static_cast<BlobRegistryImpl&>(blobRegistry()).getBlobDataFromURL(KURL(ParsedURLString, url));
|
| + RefPtr<BlobStorageData> blobData = static_cast<BlobRegistryImpl&>(blobRegistry()).getBlobDataFromUUID(blobUUID);
|
| if (!blobData)
|
| return;
|
|
|
| @@ -335,7 +341,7 @@
|
| else if (blobItem.type == BlobDataItem::File)
|
| formData->appendFileRange(blobItem.path, blobItem.offset, blobItem.length, blobItem.expectedModificationTime);
|
| else if (blobItem.type == BlobDataItem::Blob)
|
| - appendBlobResolved(formData, blobItem.url);
|
| + appendBlobResolved(formData, blobItem.blobDataHandle->uuid());
|
| else
|
| ASSERT_NOT_REACHED();
|
| }
|
| @@ -369,13 +375,14 @@
|
| else if (element.m_type == FormDataElement::encodedFile)
|
| newFormData->appendFileRange(element.m_filename, element.m_fileStart, element.m_fileLength, element.m_expectedFileModificationTime, element.m_shouldGenerateFile);
|
| else if (element.m_type == FormDataElement::encodedBlob)
|
| - appendBlobResolved(newFormData.get(), element.m_url);
|
| + appendBlobResolved(newFormData.get(), element.m_blobUUID);
|
| else
|
| ASSERT_NOT_REACHED();
|
| }
|
| return newFormData.release();
|
| }
|
| -#endif
|
| +#endif // CHROMIUM
|
| +#endif // BLOB
|
|
|
| void FormData::generateFiles(Document* document)
|
| {
|
| @@ -431,7 +438,7 @@
|
| info.addMember(m_data);
|
| info.addMember(m_filename);
|
| #if ENABLE(BLOB)
|
| - info.addMember(m_url);
|
| + info.addMember(m_blobUUID);
|
| #endif
|
| info.addMember(m_generatedFilename);
|
| }
|
| @@ -462,13 +469,13 @@
|
|
|
| #if ENABLE(BLOB)
|
| case FormDataElement::encodedBlob:
|
| - encoder.encodeString(element.m_url.string());
|
| + encoder.encodeString(element.m_blobUUID);
|
| return;
|
| #endif
|
|
|
| #if ENABLE(FILE_SYSTEM)
|
| - case FormDataElement::encodedURL:
|
| - encoder.encodeString(element.m_url.string());
|
| + case FormDataElement::encodedFileSystemURL:
|
| + encoder.encodeString(element.m_fileSystemURL.string());
|
| encoder.encodeInt64(element.m_fileStart);
|
| encoder.encodeInt64(element.m_fileLength);
|
| encoder.encodeDouble(element.m_expectedFileModificationTime);
|
| @@ -499,7 +506,7 @@
|
|
|
| case FormDataElement::encodedFile:
|
| #if ENABLE(FILE_SYSTEM)
|
| - case FormDataElement::encodedURL:
|
| + case FormDataElement::encodedFileSystemURL:
|
| #endif
|
| {
|
| element.m_type = static_cast<FormDataElement::Type>(type);
|
| @@ -527,8 +534,8 @@
|
| return false;
|
|
|
| #if ENABLE(FILE_SYSTEM)
|
| - if (type == FormDataElement::encodedURL)
|
| - element.m_url = KURL(KURL(), filenameOrURL);
|
| + if (type == FormDataElement::encodedFileSystemURL)
|
| + element.m_fileSystemURL = KURL(KURL(), filenameOrURL);
|
| else
|
| #endif
|
| element.m_filename = filenameOrURL;
|
| @@ -544,10 +551,11 @@
|
| #if ENABLE(BLOB)
|
| case FormDataElement::encodedBlob:
|
| element.m_type = FormDataElement::encodedBlob;
|
| - String blobURLString;
|
| - if (!decoder.decodeString(blobURLString))
|
| + String blobUUID;
|
| + if (!decoder.decodeString(blobUUID))
|
| return false;
|
| - element.m_url = KURL(KURL(), blobURLString);
|
| + element.m_blobUUID = blobUUID;
|
| + // Note we're not setting the optionalBlobDataHandle here.
|
| return true;
|
| #endif
|
|
|
|
|