Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(134)

Side by Side Diff: Source/core/html/FormDataList.cpp

Issue 176853004: Oilpan: move core/fileapi to oilpan's heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebased Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/core/html/FormDataList.h ('k') | Source/core/html/HTMLInputElement.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved.
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 25 matching lines...) Expand all
36 { 36 {
37 CString encodedString = m_encoding.encode(string, WTF::EntitiesForUnencodabl es); 37 CString encodedString = m_encoding.encode(string, WTF::EntitiesForUnencodabl es);
38 m_items.append(normalizeLineEndingsToCRLF(encodedString)); 38 m_items.append(normalizeLineEndingsToCRLF(encodedString));
39 } 39 }
40 40
41 void FormDataList::appendString(const CString& string) 41 void FormDataList::appendString(const CString& string)
42 { 42 {
43 m_items.append(string); 43 m_items.append(string);
44 } 44 }
45 45
46 void FormDataList::appendBlob(PassRefPtr<Blob> blob, const String& filename) 46 void FormDataList::appendBlob(PassRefPtrWillBeRawPtr<Blob> blob, const String& f ilename)
47 { 47 {
48 m_items.append(Item(blob, filename)); 48 m_items.append(Item(blob, filename));
49 } 49 }
50 50
51 PassRefPtr<FormData> FormDataList::createFormData(const WTF::TextEncoding& encod ing, FormData::EncodingType encodingType) 51 PassRefPtr<FormData> FormDataList::createFormData(const WTF::TextEncoding& encod ing, FormData::EncodingType encodingType)
52 { 52 {
53 RefPtr<FormData> result = FormData::create(); 53 RefPtr<FormData> result = FormData::create();
54 appendKeyValuePairItemsTo(result.get(), encoding, false, encodingType); 54 appendKeyValuePairItemsTo(result.get(), encoding, false, encodingType);
55 return result.release(); 55 return result.release();
56 } 56 }
57 57
58 PassRefPtr<FormData> FormDataList::createMultiPartFormData(const WTF::TextEncodi ng& encoding) 58 PassRefPtr<FormData> FormDataList::createMultiPartFormData(const WTF::TextEncodi ng& encoding)
59 { 59 {
60 RefPtr<FormData> result = FormData::create(); 60 RefPtr<FormData> result = FormData::create();
61 appendKeyValuePairItemsTo(result.get(), encoding, true); 61 appendKeyValuePairItemsTo(result.get(), encoding, true);
62 return result.release(); 62 return result.release();
63 } 63 }
64 64
65 void FormDataList::appendKeyValuePairItemsTo(FormData* formData, const WTF::Text Encoding& encoding, bool isMultiPartForm, FormData::EncodingType encodingType) 65 void FormDataList::appendKeyValuePairItemsTo(FormData* formData, const WTF::Text Encoding& encoding, bool isMultiPartForm, FormData::EncodingType encodingType)
66 { 66 {
67 if (isMultiPartForm) 67 if (isMultiPartForm)
68 formData->setBoundary(FormDataBuilder::generateUniqueBoundaryString()); 68 formData->setBoundary(FormDataBuilder::generateUniqueBoundaryString());
69 69
70 Vector<char> encodedData; 70 Vector<char> encodedData;
71 71
72 const Vector<FormDataList::Item>& items = this->items(); 72 const WillBeHeapVector<Item>& items = this->items();
73 size_t formDataListSize = items.size(); 73 size_t formDataListSize = items.size();
74 ASSERT(!(formDataListSize % 2)); 74 ASSERT(!(formDataListSize % 2));
75 for (size_t i = 0; i < formDataListSize; i += 2) { 75 for (size_t i = 0; i < formDataListSize; i += 2) {
76 const FormDataList::Item& key = items[i]; 76 const FormDataList::Item& key = items[i];
77 const FormDataList::Item& value = items[i + 1]; 77 const FormDataList::Item& value = items[i + 1];
78 if (isMultiPartForm) { 78 if (isMultiPartForm) {
79 Vector<char> header; 79 Vector<char> header;
80 FormDataBuilder::beginMultiPartHeader(header, formData->boundary().d ata(), key.data()); 80 FormDataBuilder::beginMultiPartHeader(header, formData->boundary().d ata(), key.data());
81 81
82 // If the current type is blob, then we also need to include the fil ename 82 // If the current type is blob, then we also need to include the fil ename
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 FormDataBuilder::addKeyValuePairAsFormData(encodedData, key.data(), value.data(), encodingType); 133 FormDataBuilder::addKeyValuePairAsFormData(encodedData, key.data(), value.data(), encodingType);
134 } 134 }
135 } 135 }
136 136
137 if (isMultiPartForm) 137 if (isMultiPartForm)
138 FormDataBuilder::addBoundaryToMultiPartHeader(encodedData, formData->bou ndary().data(), true); 138 FormDataBuilder::addBoundaryToMultiPartHeader(encodedData, formData->bou ndary().data(), true);
139 139
140 formData->appendData(encodedData.data(), encodedData.size()); 140 formData->appendData(encodedData.data(), encodedData.size());
141 } 141 }
142 142
143 void FormDataList::trace(Visitor* visitor)
144 {
145 visitor->trace(m_items);
146 }
147
148 void FormDataList::Item::trace(Visitor* visitor)
149 {
150 visitor->trace(m_blob);
151 }
152
143 } // namespace 153 } // namespace
OLDNEW
« no previous file with comments | « Source/core/html/FormDataList.h ('k') | Source/core/html/HTMLInputElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698