Index: Source/core/platform/network/BlobData.cpp |
diff --git a/Source/core/platform/network/BlobData.cpp b/Source/core/platform/network/BlobData.cpp |
index 9b9ab9070645290120859ff452f92899e376fe15..2818372880e95d9900a1ee32ed8bfb8331cae381 100644 |
--- a/Source/core/platform/network/BlobData.cpp |
+++ b/Source/core/platform/network/BlobData.cpp |
@@ -32,7 +32,7 @@ |
#include "core/platform/network/BlobData.h" |
#include "core/fileapi/BlobRegistry.h" |
-#include "core/fileapi/BlobURL.h" |
+#include "platform/UUID.h" |
#include "wtf/OwnPtr.h" |
#include "wtf/PassOwnPtr.h" |
#include "wtf/PassRefPtr.h" |
@@ -55,7 +55,7 @@ void BlobDataItem::detachFromCurrentThread() |
{ |
data->detachFromCurrentThread(); |
path = path.isolatedCopy(); |
- url = url.copy(); |
+ fileSystemURL = fileSystemURL.copy(); |
} |
PassOwnPtr<BlobData> BlobData::create() |
@@ -86,12 +86,12 @@ void BlobData::appendFile(const String& path, long long offset, long long length |
m_items.append(BlobDataItem(path, offset, length, expectedModificationTime)); |
} |
-void BlobData::appendBlob(const KURL& url, long long offset, long long length) |
+void BlobData::appendBlob(PassRefPtr<BlobDataHandle> dataHandle, long long offset, long long length) |
{ |
- m_items.append(BlobDataItem(url, offset, length)); |
+ m_items.append(BlobDataItem(dataHandle, offset, length)); |
} |
-void BlobData::appendURL(const KURL& url, long long offset, long long length, double expectedModificationTime) |
+void BlobData::appendFileSystemURL(const KURL& url, long long offset, long long length, double expectedModificationTime) |
{ |
m_items.append(BlobDataItem(url, offset, length, expectedModificationTime)); |
} |
@@ -101,17 +101,32 @@ void BlobData::swapItems(BlobDataItemList& items) |
m_items.swap(items); |
} |
+BlobDataHandle::BlobDataHandle() |
+ : m_uuid(createCanonicalUUIDString()) |
+ , m_size(0) |
+{ |
+ BlobRegistry::registerBlobData(m_uuid, BlobData::create()); |
+} |
BlobDataHandle::BlobDataHandle(PassOwnPtr<BlobData> data, long long size) |
+ : m_uuid(createCanonicalUUIDString()) |
+ , m_type(data->contentType().isolatedCopy()) |
+ , m_size(size) |
+{ |
+ BlobRegistry::registerBlobData(m_uuid, data); |
+} |
+ |
+BlobDataHandle::BlobDataHandle(const String& uuid, const String& type, long long size) |
+ : m_uuid(uuid.isolatedCopy()) |
+ , m_type(type.isolatedCopy()) |
+ , m_size(size) |
{ |
- UNUSED_PARAM(size); |
- m_internalURL = BlobURL::createInternalURL(); |
- BlobRegistry::registerBlobURL(m_internalURL, data); |
+ BlobRegistry::addBlobDataRef(m_uuid); |
} |
BlobDataHandle::~BlobDataHandle() |
{ |
- BlobRegistry::unregisterBlobURL(m_internalURL); |
+ BlobRegistry::removeBlobDataRef(m_uuid); |
} |
} // namespace WebCore |