summaryrefslogtreecommitdiffstats
path: root/WebCore/html/Blob.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/html/Blob.h')
-rw-r--r--WebCore/html/Blob.h36
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