Commit cb8cb890 authored by tkent@chromium.org's avatar tkent@chromium.org

Remove FormDataList::Entry.

Fold FormDataList::getEntry() and getAll() into DOMFormData.  So, no one uses
FormDataList::Entry.
This CL has no behavior changes.

BUG=528840

Review URL: https://codereview.chromium.org/1312333005

git-svn-id: svn://svn.chromium.org/blink/trunk@201966 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent c8c02414
...@@ -137,13 +137,18 @@ void DOMFormData::get(const String& name, FormDataEntryValue& result) ...@@ -137,13 +137,18 @@ void DOMFormData::get(const String& name, FormDataEntryValue& result)
{ {
if (m_opaque) if (m_opaque)
return; return;
Entry entry = getEntry(name); const CString encodedName = encodeAndNormalize(name);
if (entry.isString()) for (const Item& entry : items()) {
result.setUSVString(entry.string()); if (entry.key() == encodedName) {
else if (entry.isFile()) if (entry.isString()) {
result.setFile(entry.file()); result.setUSVString(decode(entry.data()));
else } else {
ASSERT(entry.isNone()); ASSERT(entry.isFile());
result.setFile(entry.file());
}
return;
}
}
} }
HeapVector<FormDataEntryValue> DOMFormData::getAll(const String& name) HeapVector<FormDataEntryValue> DOMFormData::getAll(const String& name)
...@@ -153,19 +158,19 @@ HeapVector<FormDataEntryValue> DOMFormData::getAll(const String& name) ...@@ -153,19 +158,19 @@ HeapVector<FormDataEntryValue> DOMFormData::getAll(const String& name)
if (m_opaque) if (m_opaque)
return results; return results;
HeapVector<FormDataList::Entry> entries = FormDataList::getAll(name); const CString encodedName = encodeAndNormalize(name);
for (const FormDataList::Entry& entry : entries) { for (const Item& entry : items()) {
ASSERT(entry.name() == name); if (entry.key() != encodedName)
continue;
FormDataEntryValue value; FormDataEntryValue value;
if (entry.isString()) if (entry.isString()) {
value.setUSVString(entry.string()); value.setUSVString(decode(entry.data()));
else if (entry.isFile()) } else {
ASSERT(entry.isFile());
value.setFile(entry.file()); value.setFile(entry.file());
else }
ASSERT_NOT_REACHED();
results.append(value); results.append(value);
} }
ASSERT(results.size() == entries.size());
return results; return results;
} }
......
...@@ -20,8 +20,9 @@ TEST(DOMFormDataTest, opacityGet) ...@@ -20,8 +20,9 @@ TEST(DOMFormDataTest, opacityGet)
EXPECT_TRUE(result.isUSVString()); EXPECT_TRUE(result.isUSVString());
EXPECT_EQ("value1", result.getAsUSVString()); EXPECT_EQ("value1", result.getAsUSVString());
FormDataList::Entry entry = fd->getEntry("name1"); const FormDataList::Item& entry = fd->items()[0];
EXPECT_EQ("value1", entry.string()); EXPECT_STREQ("name1", entry.key().data());
EXPECT_STREQ("value1", entry.data().data());
fd->makeOpaque(); fd->makeOpaque();
...@@ -31,8 +32,9 @@ TEST(DOMFormDataTest, opacityGet) ...@@ -31,8 +32,9 @@ TEST(DOMFormDataTest, opacityGet)
EXPECT_TRUE(opaqueResult.isNull()); EXPECT_TRUE(opaqueResult.isNull());
// Internal interface should be uneffected. // Internal interface should be uneffected.
FormDataList::Entry opaqueEntry = fd->getEntry("name1"); const FormDataList::Item& entry2 = fd->items()[0];
EXPECT_EQ("value1", opaqueEntry.string()); EXPECT_STREQ("name1", entry2.key().data());
EXPECT_STREQ("value1", entry2.data().data());
} }
TEST(DOMFormDataTest, opacityGetAll) TEST(DOMFormDataTest, opacityGetAll)
......
...@@ -38,41 +38,6 @@ void FormDataList::appendItem(const FormDataList::Item& item) ...@@ -38,41 +38,6 @@ void FormDataList::appendItem(const FormDataList::Item& item)
m_items.append(item); m_items.append(item);
} }
FormDataList::Entry FormDataList::getEntry(const String& key) const
{
const CString keyData = encodeAndNormalize(key);
for (const Item& item : items()) {
if (item.key() == keyData)
return itemsToEntry(item);
}
return Entry();
}
HeapVector<FormDataList::Entry> FormDataList::getAll(const String& key) const
{
HeapVector<FormDataList::Entry> matches;
const CString keyData = encodeAndNormalize(key);
for (const Item& item : items()) {
if (item.key() == keyData)
matches.append(itemsToEntry(item));
}
return matches;
}
FormDataList::Entry FormDataList::itemsToEntry(const FormDataList::Item& item) const
{
const CString nameData = item.key();
const String name = m_encoding.decode(nameData.data(), nameData.length());
if (!item.blob()) {
const CString valueData = item.data();
return Entry(name, m_encoding.decode(valueData.data(), valueData.length()));
}
return Entry(name, item.file());
}
File* FormDataList::Item::file() const File* FormDataList::Item::file() const
{ {
ASSERT(blob()); ASSERT(blob());
...@@ -194,12 +159,6 @@ DEFINE_TRACE(FormDataList) ...@@ -194,12 +159,6 @@ DEFINE_TRACE(FormDataList)
visitor->trace(m_items); visitor->trace(m_items);
} }
DEFINE_TRACE(FormDataList::Entry)
{
visitor->trace(m_file);
}
DEFINE_TRACE(FormDataList::Item) DEFINE_TRACE(FormDataList::Item)
{ {
visitor->trace(m_blob); visitor->trace(m_blob);
......
...@@ -35,33 +35,6 @@ namespace blink { ...@@ -35,33 +35,6 @@ namespace blink {
// TODO(tkent): Merge FormDataList into DOMFormData. // TODO(tkent): Merge FormDataList into DOMFormData.
class CORE_EXPORT FormDataList : public GarbageCollected<FormDataList> { class CORE_EXPORT FormDataList : public GarbageCollected<FormDataList> {
public: public:
// TODO(tkent): Merge Entry and Item.
class Entry final {
ALLOW_ONLY_INLINE_ALLOCATION();
public:
enum Type { None, StringType, FileType };
Entry() : m_type(None) { }
Entry(const String& name, const String& value) : m_type(StringType), m_name(name), m_string(value) { }
Entry(const String& name, File* value) : m_type(FileType), m_name(name), m_file(value) { }
bool isNone() const { return m_type == None; }
bool isString() const { return m_type == StringType; }
bool isFile() const { return m_type == FileType; }
const String& name() const { ASSERT(m_type != None); return m_name; }
const String& string() const { ASSERT(m_type == StringType); return m_string; }
File* file() const { ASSERT(m_type == FileType); return m_file; }
DECLARE_TRACE();
private:
const Type m_type;
const String m_name;
const String m_string;
const Member<File> m_file;
};
class Item { class Item {
ALLOW_ONLY_INLINE_ALLOCATION(); ALLOW_ONLY_INLINE_ALLOCATION();
public: public:
...@@ -105,8 +78,6 @@ public: ...@@ -105,8 +78,6 @@ public:
appendItem(Item(encodeAndNormalize(key), blob, filename)); appendItem(Item(encodeAndNormalize(key), blob, filename));
} }
Entry getEntry(const String& key) const;
HeapVector<Entry> getAll(const String& key) const;
size_t size() const { return m_items.size(); } size_t size() const { return m_items.size(); }
const FormDataListItems& items() const { return m_items; } const FormDataListItems& items() const { return m_items; }
...@@ -127,14 +98,12 @@ private: ...@@ -127,14 +98,12 @@ private:
void appendKeyValuePairItemsTo(EncodedFormData*, const WTF::TextEncoding&, bool isMultiPartForm, EncodedFormData::EncodingType = EncodedFormData::FormURLEncoded); void appendKeyValuePairItemsTo(EncodedFormData*, const WTF::TextEncoding&, bool isMultiPartForm, EncodedFormData::EncodingType = EncodedFormData::FormURLEncoded);
void appendItem(const Item&); void appendItem(const Item&);
Entry itemsToEntry(const Item&) const;
WTF::TextEncoding m_encoding; WTF::TextEncoding m_encoding;
}; };
} // namespace blink } // namespace blink
WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::FormDataList::Entry);
WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::FormDataList::Item); WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::FormDataList::Item);
#endif // FormDataList_h #endif // FormDataList_h
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment