Index: Source/core/html/FormDataList.h |
diff --git a/Source/core/html/FormDataList.h b/Source/core/html/FormDataList.h |
index a02fb79621c924b9ead709a69ee7bf7a0d2a75dd..2d4914e33f422917fe5e92b03682bdf6b19c34e8 100644 |
--- a/Source/core/html/FormDataList.h |
+++ b/Source/core/html/FormDataList.h |
@@ -22,6 +22,7 @@ |
#define FormDataList_h |
#include "core/fileapi/Blob.h" |
+#include "core/fileapi/File.h" |
#include "platform/heap/Handle.h" |
#include "platform/network/FormData.h" |
#include "wtf/Forward.h" |
@@ -32,6 +33,27 @@ namespace blink { |
class FormDataList { |
public: |
+ class EntryValue { |
sof
2014/09/12 15:21:26
Add FINAL
sof
2014/09/12 15:21:26
Add ALLOW_ONLY_INLINE_ALLOCATION();
jsbell
2014/09/12 16:30:09
Done.
jsbell
2014/09/12 16:30:10
Done.
|
+ public: |
+ enum Type { None, StringType, FileType }; |
+ |
+ EntryValue() : m_type(None) { } |
+ EntryValue(const String& string) : m_type(StringType), m_string(string) { } |
+ EntryValue(PassRefPtrWillBeRawPtr<File> file) : m_type(FileType), m_file(file) { } |
+ |
+ bool isNone() const { return m_type == None; } |
+ bool isString() const { return m_type == StringType; } |
+ bool isFile() const { return m_type == FileType; } |
+ |
+ const String& string() const { ASSERT(m_type == StringType); return m_string; } |
+ PassRefPtrWillBeRawPtr<File> file() const { ASSERT(m_type == FileType); return m_file; } |
+ |
sof
2014/09/12 15:21:26
Add
void trace(Visitor*);
and define it as
jsbell
2014/09/12 16:30:09
Done.
|
+ private: |
+ Type m_type; |
+ String m_string; |
+ RefPtrWillBeMember<File> m_file; |
+ }; |
+ |
class Item { |
ALLOW_ONLY_INLINE_ALLOCATION(); |
public: |
@@ -74,6 +96,13 @@ public: |
appendBlob(blob, filename); |
} |
+ void deleteItem(const String& key); |
+ EntryValue getItem(const String& key) const; |
+ Vector<EntryValue> getAll(const String& key) const; |
sof
2014/09/12 15:21:26
Vector => WillBeHeapVector
jsbell
2014/09/12 16:30:10
Done.
|
+ bool hasItem(const String& key) const; |
+ void setBlob(const String& key, PassRefPtrWillBeRawPtr<Blob>, const String& filename); |
+ void setData(const String& key, const String& value); |
+ |
const WillBeHeapVector<Item>& items() const { return m_items; } |
const WTF::TextEncoding& encoding() const { return m_encoding; } |
@@ -88,6 +117,9 @@ private: |
void appendString(const CString&); |
void appendString(const String&); |
void appendBlob(PassRefPtrWillBeRawPtr<Blob>, const String& filename); |
+ void setItem(const String& key, const Item&); |
+ EntryValue itemToEntryValue(const Item&) const; |
+ CString encodeAndNormalize(const String& key) const; |
WTF::TextEncoding m_encoding; |
WillBeHeapVector<Item> m_items; |