diff options
Diffstat (limited to 'WebCore/html/Blob.h')
-rw-r--r-- | WebCore/html/Blob.h | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/WebCore/html/Blob.h b/WebCore/html/Blob.h index 7afc7a0..374a401 100644 --- a/WebCore/html/Blob.h +++ b/WebCore/html/Blob.h @@ -32,39 +32,45 @@ #define Blob_h #include "BlobItem.h" +#include "KURL.h" #include "PlatformString.h" +#include <wtf/PassOwnPtr.h> #include <wtf/PassRefPtr.h> #include <wtf/RefCounted.h> #include <wtf/Vector.h> namespace WebCore { +class BlobData; class ScriptExecutionContext; class Blob : public RefCounted<Blob> { public: + // FIXME: To be removed when we switch to using BlobData. static PassRefPtr<Blob> create(ScriptExecutionContext* scriptExecutionContext, const String& type, const BlobItemList& items) { return adoptRef(new Blob(scriptExecutionContext, type, items)); } - // FIXME: Deprecated method. This is called only from - // bindings/v8/SerializedScriptValue.cpp and the usage in it will become invalid once - // BlobBuilder is introduced. - static PassRefPtr<Blob> create(ScriptExecutionContext* scriptExecutionContext, const String& path) + // For deserialization. + static PassRefPtr<Blob> create(ScriptExecutionContext* scriptExecutionContext, const KURL& srcURL, const String& type, long long size) { - return adoptRef(new Blob(scriptExecutionContext, path)); + return adoptRef(new Blob(scriptExecutionContext, srcURL, type, size)); } - virtual ~Blob() { } + virtual ~Blob(); + void contextDestroyed(); + + const KURL& url() const { return m_url; } unsigned long long size() const; const String& type() const { return m_type; } virtual bool isFile() const { return false; } - // FIXME: Deprecated method. + // FIXME: To be removed when we switch to using BlobData. const String& path() const; + // FIXME: To be removed when we switch to using BlobData. const BlobItemList& items() const { return m_items; } #if ENABLE(BLOB) @@ -72,14 +78,26 @@ public: #endif protected: + // FIXME: To be removed when we switch to using BlobData. Blob(ScriptExecutionContext*, const String& type, const BlobItemList&); Blob(ScriptExecutionContext*, const PassRefPtr<BlobItem>&); - - // FIXME: Deprecated constructor. See also the comment for Blob::create(path). Blob(ScriptExecutionContext*, const String& path); + Blob(ScriptExecutionContext*, PassOwnPtr<BlobData>, long long size); + + // For deserialization. + Blob(ScriptExecutionContext*, const KURL& srcURL, const String& type, long long size); + + // FIXME: To be removed when we switch to using BlobData. BlobItemList m_items; + + // This is an internal URL referring to the blob data associated with this object. + // It is only used by FileReader to read the blob data via loading from the blob URL resource. + KURL m_url; + + ScriptExecutionContext* m_scriptExecutionContext; String m_type; + long long m_size; }; } // namespace WebCore |