Changeset 112448 in webkit
- Timestamp:
- Mar 28, 2012 3:03:41 PM (12 years ago)
- Location:
- trunk/Source
- Files:
-
- 2 deleted
- 7 edited
- 2 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r112446 r112448 1 2012-03-27 Daniel Cheng <dcheng@chromium.org> 2 3 [chromium] Merge ChromiumDataObject and DataTransferItemListChromium. 4 https://bugs.webkit.org/show_bug.cgi?id=82407 5 6 Reviewed by Tony Chang. 7 8 Since ChromiumDataObject is just a very thin wrapper for DataTransferItemListChromium now, 9 combine the two and remove a layer of indirection. 10 11 No functionality change, should be covered by existing tests. 12 13 * WebCore.gypi: 14 * platform/chromium/ChromiumDataObject.cpp: Replacing DataTransferItemListChromium. 15 (WebCore::ChromiumDataObject::createFromPasteboard): 16 (WebCore::ChromiumDataObject::create): 17 (WebCore::ChromiumDataObject::length): 18 (WebCore): 19 (WebCore::ChromiumDataObject::item): 20 (WebCore::ChromiumDataObject::deleteItem): 21 (WebCore::ChromiumDataObject::clearAll): 22 (WebCore::ChromiumDataObject::add): 23 (WebCore::ChromiumDataObject::clearData): 24 (WebCore::ChromiumDataObject::clearAllExceptFiles): 25 (WebCore::ChromiumDataObject::types): 26 (WebCore::ChromiumDataObject::getData): 27 (WebCore::ChromiumDataObject::setData): 28 (WebCore::ChromiumDataObject::urlAndTitle): 29 (WebCore::ChromiumDataObject::setURLAndTitle): 30 (WebCore::ChromiumDataObject::htmlAndBaseURL): 31 (WebCore::ChromiumDataObject::setHTMLAndBaseURL): 32 (WebCore::ChromiumDataObject::containsFilenames): 33 (WebCore::ChromiumDataObject::filenames): 34 (WebCore::ChromiumDataObject::addFilename): 35 (WebCore::ChromiumDataObject::addSharedBuffer): 36 (WebCore::ChromiumDataObject::ChromiumDataObject): 37 (WebCore::ChromiumDataObject::findStringItem): 38 (WebCore::ChromiumDataObject::internalAddStringItem): 39 (WebCore::ChromiumDataObject::internalAddFileItem): 40 * platform/chromium/ChromiumDataObject.h: 41 (WebCore): 42 (ChromiumDataObject): 43 * platform/chromium/ChromiumDataObjectItem.cpp: Renamed from Source/WebCore/platform/chromium/DataTransferItemChromium.cpp. 44 (WebCore): 45 (WebCore::ChromiumDataObjectItem::createFromString): 46 (WebCore::ChromiumDataObjectItem::createFromFile): 47 (WebCore::ChromiumDataObjectItem::createFromURL): 48 (WebCore::ChromiumDataObjectItem::createFromHTML): 49 (WebCore::ChromiumDataObjectItem::createFromSharedBuffer): 50 (WebCore::ChromiumDataObjectItem::createFromPasteboard): 51 (WebCore::ChromiumDataObjectItem::ChromiumDataObjectItem): 52 (WebCore::ChromiumDataObjectItem::getAsString): 53 (WebCore::ChromiumDataObjectItem::getAsFile): 54 (WebCore::ChromiumDataObjectItem::internalGetAsString): 55 (WebCore::ChromiumDataObjectItem::isFilename): 56 * platform/chromium/ChromiumDataObjectItem.h: Renamed from Source/WebCore/platform/chromium/DataTransferItemChromium.h. 57 (WebCore): 58 (ChromiumDataObjectItem): 59 (WebCore::ChromiumDataObjectItem::kind): 60 (WebCore::ChromiumDataObjectItem::type): 61 (WebCore::ChromiumDataObjectItem::sharedBuffer): 62 (WebCore::ChromiumDataObjectItem::title): 63 (WebCore::ChromiumDataObjectItem::baseURL): 64 * platform/chromium/ClipboardChromium.cpp: 65 (WebCore::ClipboardChromium::files): 66 (WebCore::ClipboardChromium::hasData): 67 (WebCore::ClipboardChromium::items): 68 * platform/chromium/DataTransferItemListChromium.cpp: Removed. 69 * platform/chromium/DataTransferItemListChromium.h: Removed. 70 1 71 2012-03-28 Nat Duca <nduca@chromium.org> 2 72 -
trunk/Source/WebCore/WebCore.gypi
r112421 r112448 3199 3199 'platform/chromium/ChromiumDataObject.cpp', 3200 3200 'platform/chromium/ChromiumDataObject.h', 3201 'platform/chromium/ChromiumDataObjectItem.cpp', 3202 'platform/chromium/ChromiumDataObjectItem.h', 3201 3203 'platform/chromium/ClipboardChromium.cpp', 3202 3204 'platform/chromium/ClipboardChromium.h', … … 3210 3212 'platform/chromium/ContextMenuItemChromium.cpp', 3211 3213 'platform/chromium/CursorChromium.cpp', 3212 'platform/chromium/DataTransferItemChromium.cpp',3213 'platform/chromium/DataTransferItemChromium.h',3214 'platform/chromium/DataTransferItemListChromium.cpp',3215 'platform/chromium/DataTransferItemListChromium.h',3216 3214 'platform/chromium/DragDataChromium.cpp', 3217 3215 'platform/chromium/DragDataRef.h', -
trunk/Source/WebCore/platform/chromium/ChromiumDataObject.cpp
r111061 r112448 35 35 #include "ClipboardUtilitiesChromium.h" 36 36 #include "DataTransferItem.h" 37 #include " DataTransferItemListChromium.h"37 #include "ExceptionCode.h" 38 38 #include "ExceptionCodePlaceholder.h" 39 #include "PlatformSupport.h" 39 40 40 41 namespace WebCore { 41 42 42 static PassRefPtr<DataTransferItemChromium> findItem(PassRefPtr<DataTransferItemListChromium> itemList, const String& type)43 {44 for (size_t i = 0; i < itemList->length(); ++i) {45 if (itemList->item(i)->kind() == DataTransferItem::kindString && itemList->item(i)->type() == type)46 return itemList->item(i);47 }48 return 0;49 }50 51 43 PassRefPtr<ChromiumDataObject> ChromiumDataObject::createFromPasteboard() 52 44 { 53 return adoptRef(new ChromiumDataObject(DataTransferItemListChromium::createFromPasteboard())); 45 RefPtr<ChromiumDataObject> dataObject = create(); 46 uint64_t sequenceNumber = PlatformSupport::clipboardSequenceNumber(currentPasteboardBuffer()); 47 bool ignored; 48 HashSet<String> types = PlatformSupport::clipboardReadAvailableTypes(currentPasteboardBuffer(), &ignored); 49 for (HashSet<String>::const_iterator it = types.begin(); it != types.end(); ++it) 50 dataObject->m_itemList.append(ChromiumDataObjectItem::createFromPasteboard(*it, sequenceNumber)); 51 return dataObject.release(); 54 52 } 55 53 56 54 PassRefPtr<ChromiumDataObject> ChromiumDataObject::create() 57 55 { 58 return adoptRef(new ChromiumDataObject( DataTransferItemListChromium::create()));56 return adoptRef(new ChromiumDataObject()); 59 57 } 60 58 … … 64 62 } 65 63 66 PassRefPtr<DataTransferItemListChromium> ChromiumDataObject::items() const 67 { 68 return m_itemList; 64 size_t ChromiumDataObject::length() const 65 { 66 return m_itemList.size(); 67 } 68 69 PassRefPtr<ChromiumDataObjectItem> ChromiumDataObject::item(unsigned long index) 70 { 71 if (index >= length()) 72 return 0; 73 return m_itemList[index]; 74 } 75 76 void ChromiumDataObject::deleteItem(unsigned long index) 77 { 78 if (index >= length()) 79 return; 80 m_itemList.remove(index); 81 } 82 83 void ChromiumDataObject::clearAll() 84 { 85 m_itemList.clear(); 86 } 87 88 void ChromiumDataObject::add(const String& data, const String& type, ExceptionCode& ec) 89 { 90 if (!internalAddStringItem(ChromiumDataObjectItem::createFromString(type, data))) 91 ec = NOT_SUPPORTED_ERR; 92 } 93 94 void ChromiumDataObject::add(PassRefPtr<File> file, ScriptExecutionContext* context) 95 { 96 if (!file) 97 return; 98 99 m_itemList.append(ChromiumDataObjectItem::createFromFile(file)); 69 100 } 70 101 71 102 void ChromiumDataObject::clearData(const String& type) 72 103 { 73 for (size_t i = 0; i < m_itemList ->length(); ++i) {74 if (m_itemList ->item(i)->kind() == DataTransferItem::kindString && m_itemList->item(i)->type() == type) {104 for (size_t i = 0; i < m_itemList.size(); ++i) { 105 if (m_itemList[i]->kind() == DataTransferItem::kindString && m_itemList[i]->type() == type) { 75 106 // Per the spec, type must be unique among all items of kind 'string'. 76 m_itemList ->deleteItem(i);107 m_itemList.remove(i); 77 108 return; 78 109 } … … 80 111 } 81 112 82 void ChromiumDataObject::clearAll()83 {84 m_itemList->clear();85 }86 87 113 void ChromiumDataObject::clearAllExceptFiles() 88 114 { 89 for (size_t i = 0; i < m_itemList ->length(); ) {90 if (m_itemList ->item(i)->kind() != DataTransferItem::kindFile) {91 m_itemList ->deleteItem(i);115 for (size_t i = 0; i < m_itemList.size(); ) { 116 if (m_itemList[i]->kind() != DataTransferItem::kindFile) { 117 m_itemList.remove(i); 92 118 continue; 93 119 } … … 100 126 HashSet<String> results; 101 127 bool containsFiles = false; 102 for (size_t i = 0; i < m_itemList ->length(); ++i) {103 if (m_itemList ->item(i)->kind() == DataTransferItem::kindString)104 results.add(m_itemList ->item(i)->type());105 else if (m_itemList ->item(i)->kind() == DataTransferItem::kindFile)128 for (size_t i = 0; i < m_itemList.size(); ++i) { 129 if (m_itemList[i]->kind() == DataTransferItem::kindString) 130 results.add(m_itemList[i]->type()); 131 else if (m_itemList[i]->kind() == DataTransferItem::kindFile) 106 132 containsFiles = true; 107 133 else … … 115 141 String ChromiumDataObject::getData(const String& type) const 116 142 { 117 for (size_t i = 0; i < m_itemList ->length(); ++i) {118 if (m_itemList ->item(i)->kind() == DataTransferItem::kindString && m_itemList->item(i)->type() == type)119 return m_itemList ->item(i)->internalGetAsString();143 for (size_t i = 0; i < m_itemList.size(); ++i) { 144 if (m_itemList[i]->kind() == DataTransferItem::kindString && m_itemList[i]->type() == type) 145 return m_itemList[i]->internalGetAsString(); 120 146 } 121 147 return String(); … … 125 151 { 126 152 clearData(type); 127 m_itemList->add(data, type, ASSERT_NO_EXCEPTION);153 add(data, type, ASSERT_NO_EXCEPTION); 128 154 return true; 129 155 } … … 131 157 void ChromiumDataObject::urlAndTitle(String& url, String* title) const 132 158 { 133 RefPtr< DataTransferItemChromium> item = findItem(m_itemList,mimeTypeTextURIList);159 RefPtr<ChromiumDataObjectItem> item = findStringItem(mimeTypeTextURIList); 134 160 if (!item) 135 161 return; … … 142 168 { 143 169 clearData(mimeTypeTextURIList); 144 m_itemList->internalAddStringItem(DataTransferItemChromium::createFromURL(url, title));170 internalAddStringItem(ChromiumDataObjectItem::createFromURL(url, title)); 145 171 } 146 172 147 173 void ChromiumDataObject::htmlAndBaseURL(String& html, KURL& baseURL) const 148 174 { 149 RefPtr< DataTransferItemChromium> item = findItem(m_itemList,mimeTypeTextHTML);175 RefPtr<ChromiumDataObjectItem> item = findStringItem(mimeTypeTextHTML); 150 176 if (!item) 151 177 return; … … 157 183 { 158 184 clearData(mimeTypeTextHTML); 159 m_itemList->internalAddStringItem(DataTransferItemChromium::createFromHTML(html, baseURL));185 internalAddStringItem(ChromiumDataObjectItem::createFromHTML(html, baseURL)); 160 186 } 161 187 162 188 bool ChromiumDataObject::containsFilenames() const 163 189 { 164 for (size_t i = 0; i < m_itemList ->length(); ++i)165 if (m_itemList ->item(i)->isFilename())190 for (size_t i = 0; i < m_itemList.size(); ++i) 191 if (m_itemList[i]->isFilename()) 166 192 return true; 167 193 return false; … … 171 197 { 172 198 Vector<String> results; 173 for (size_t i = 0; i < m_itemList ->length(); ++i)174 if (m_itemList ->item(i)->isFilename())175 results.append(static_cast<File*>(m_itemList ->item(i)->getAsFile().get())->path());199 for (size_t i = 0; i < m_itemList.size(); ++i) 200 if (m_itemList[i]->isFilename()) 201 results.append(static_cast<File*>(m_itemList[i]->getAsFile().get())->path()); 176 202 return results; 177 203 } … … 179 205 void ChromiumDataObject::addFilename(const String& filename) 180 206 { 181 m_itemList->internalAddFileItem(DataTransferItemChromium::createFromFile(File::create(filename)));207 internalAddFileItem(ChromiumDataObjectItem::createFromFile(File::create(filename))); 182 208 } 183 209 184 210 void ChromiumDataObject::addSharedBuffer(const String& name, PassRefPtr<SharedBuffer> buffer) 185 211 { 186 m_itemList->internalAddFileItem(DataTransferItemChromium::createFromSharedBuffer(name, buffer)); 187 } 188 189 ChromiumDataObject::ChromiumDataObject(PassRefPtr<DataTransferItemListChromium> itemList) 190 : m_itemList(itemList) 212 internalAddFileItem(ChromiumDataObjectItem::createFromSharedBuffer(name, buffer)); 213 } 214 215 ChromiumDataObject::ChromiumDataObject() 191 216 { 192 217 } … … 198 223 } 199 224 225 PassRefPtr<ChromiumDataObjectItem> ChromiumDataObject::findStringItem(const String& type) const 226 { 227 for (size_t i = 0; i < m_itemList.size(); ++i) { 228 if (m_itemList[i]->kind() == DataTransferItem::kindString && m_itemList[i]->type() == type) 229 return m_itemList[i]; 230 } 231 return 0; 232 } 233 234 bool ChromiumDataObject::internalAddStringItem(PassRefPtr<ChromiumDataObjectItem> item) 235 { 236 ASSERT(item->kind() == DataTransferItem::kindString); 237 for (size_t i = 0; i < m_itemList.size(); ++i) 238 if (m_itemList[i]->kind() == DataTransferItem::kindString && m_itemList[i]->type() == item->type()) 239 return false; 240 241 m_itemList.append(item); 242 return true; 243 } 244 245 void ChromiumDataObject::internalAddFileItem(PassRefPtr<ChromiumDataObjectItem> item) 246 { 247 ASSERT(item->kind() == DataTransferItem::kindFile); 248 m_itemList.append(item); 249 } 250 200 251 } // namespace WebCore -
trunk/Source/WebCore/platform/chromium/ChromiumDataObject.h
r111061 r112448 32 32 #define ChromiumDataObject_h 33 33 34 #include " DataTransferItemListChromium.h"34 #include "ChromiumDataObjectItem.h" 35 35 #include "PlatformString.h" 36 36 #include <wtf/HashSet.h> … … 44 44 class SharedBuffer; 45 45 46 typedef int ExceptionCode; 47 46 48 // A data object for holding data that would be in a clipboard or moved 47 49 // during a drag-n-drop operation. This is the data that WebCore is aware … … 54 56 PassRefPtr<ChromiumDataObject> copy() const; 55 57 56 PassRefPtr<DataTransferItemListChromium> items() const; 58 // DataTransferItemList support. 59 size_t length() const; 60 PassRefPtr<ChromiumDataObjectItem> item(unsigned long index); 61 // FIXME: Implement V8DataTransferItemList::indexedPropertyDeleter to get this called. 62 void deleteItem(unsigned long index); 63 void clearAll(); 64 void add(const String& data, const String& type, ExceptionCode&); 65 void add(PassRefPtr<File>, ScriptExecutionContext*); 57 66 67 // WebCore helpers. 58 68 void clearData(const String& type); 59 void clearAll();60 69 void clearAllExceptFiles(); 61 70 … … 78 87 79 88 private: 80 explicit ChromiumDataObject(PassRefPtr<DataTransferItemListChromium>);89 ChromiumDataObject(); 81 90 explicit ChromiumDataObject(const ChromiumDataObject&); 82 91 83 RefPtr<DataTransferItemListChromium> m_itemList; 92 PassRefPtr<ChromiumDataObjectItem> findStringItem(const String& type) const; 93 bool internalAddStringItem(PassRefPtr<ChromiumDataObjectItem>); 94 void internalAddFileItem(PassRefPtr<ChromiumDataObjectItem>); 95 96 Vector<RefPtr<ChromiumDataObjectItem> > m_itemList; 84 97 }; 85 98 -
trunk/Source/WebCore/platform/chromium/ChromiumDataObjectItem.cpp
-
Property
svn:eol-style
changed from
native
toLF
r112447 r112448 30 30 31 31 #include "config.h" 32 #include " DataTransferItemChromium.h"32 #include "ChromiumDataObjectItem.h" 33 33 34 34 #if ENABLE(DATA_TRANSFER_ITEMS) … … 47 47 namespace WebCore { 48 48 49 PassRefPtr< DataTransferItemChromium> DataTransferItemChromium::createFromString(const String& type, const String& data)49 PassRefPtr<ChromiumDataObjectItem> ChromiumDataObjectItem::createFromString(const String& type, const String& data) 50 50 { 51 RefPtr< DataTransferItemChromium> item = adoptRef(new DataTransferItemChromium(DataTransferItem::kindString, type));51 RefPtr<ChromiumDataObjectItem> item = adoptRef(new ChromiumDataObjectItem(DataTransferItem::kindString, type)); 52 52 item->m_data = data; 53 53 return item.release(); 54 54 } 55 55 56 PassRefPtr< DataTransferItemChromium> DataTransferItemChromium::createFromFile(PassRefPtr<File> file)56 PassRefPtr<ChromiumDataObjectItem> ChromiumDataObjectItem::createFromFile(PassRefPtr<File> file) 57 57 { 58 RefPtr< DataTransferItemChromium> item = adoptRef(new DataTransferItemChromium(DataTransferItem::kindFile, file->type()));58 RefPtr<ChromiumDataObjectItem> item = adoptRef(new ChromiumDataObjectItem(DataTransferItem::kindFile, file->type())); 59 59 item->m_file = file; 60 60 return item.release(); 61 61 } 62 62 63 PassRefPtr< DataTransferItemChromium> DataTransferItemChromium::createFromURL(const String& url, const String& title)63 PassRefPtr<ChromiumDataObjectItem> ChromiumDataObjectItem::createFromURL(const String& url, const String& title) 64 64 { 65 RefPtr< DataTransferItemChromium> item = adoptRef(new DataTransferItemChromium(DataTransferItem::kindString, mimeTypeTextURIList));65 RefPtr<ChromiumDataObjectItem> item = adoptRef(new ChromiumDataObjectItem(DataTransferItem::kindString, mimeTypeTextURIList)); 66 66 item->m_data = url; 67 67 item->m_title = title; … … 69 69 } 70 70 71 PassRefPtr< DataTransferItemChromium> DataTransferItemChromium::createFromHTML(const String& html, const KURL& baseURL)71 PassRefPtr<ChromiumDataObjectItem> ChromiumDataObjectItem::createFromHTML(const String& html, const KURL& baseURL) 72 72 { 73 RefPtr< DataTransferItemChromium> item = adoptRef(new DataTransferItemChromium(DataTransferItem::kindString, mimeTypeTextHTML));73 RefPtr<ChromiumDataObjectItem> item = adoptRef(new ChromiumDataObjectItem(DataTransferItem::kindString, mimeTypeTextHTML)); 74 74 item->m_data = html; 75 75 item->m_baseURL = baseURL; … … 77 77 } 78 78 79 PassRefPtr< DataTransferItemChromium> DataTransferItemChromium::createFromSharedBuffer(const String& name, PassRefPtr<SharedBuffer> buffer)79 PassRefPtr<ChromiumDataObjectItem> ChromiumDataObjectItem::createFromSharedBuffer(const String& name, PassRefPtr<SharedBuffer> buffer) 80 80 { 81 RefPtr< DataTransferItemChromium> item = adoptRef(new DataTransferItemChromium(DataTransferItem::kindFile, String()));81 RefPtr<ChromiumDataObjectItem> item = adoptRef(new ChromiumDataObjectItem(DataTransferItem::kindFile, String())); 82 82 item->m_sharedBuffer = buffer; 83 83 item->m_title = name; … … 85 85 } 86 86 87 PassRefPtr< DataTransferItemChromium> DataTransferItemChromium::createFromPasteboard(const String& type, uint64_t sequenceNumber)87 PassRefPtr<ChromiumDataObjectItem> ChromiumDataObjectItem::createFromPasteboard(const String& type, uint64_t sequenceNumber) 88 88 { 89 89 if (type == mimeTypeImagePng) 90 return adoptRef(new DataTransferItemChromium(DataTransferItem::kindFile, type, sequenceNumber));91 return adoptRef(new DataTransferItemChromium(DataTransferItem::kindString, type, sequenceNumber));90 return adoptRef(new ChromiumDataObjectItem(DataTransferItem::kindFile, type, sequenceNumber)); 91 return adoptRef(new ChromiumDataObjectItem(DataTransferItem::kindString, type, sequenceNumber)); 92 92 } 93 93 94 DataTransferItemChromium::DataTransferItemChromium(const String& kind, const String& type)94 ChromiumDataObjectItem::ChromiumDataObjectItem(const String& kind, const String& type) 95 95 : m_source(InternalSource) 96 96 , m_kind(kind) … … 100 100 } 101 101 102 DataTransferItemChromium::DataTransferItemChromium(const String& kind, const String& type, uint64_t sequenceNumber)102 ChromiumDataObjectItem::ChromiumDataObjectItem(const String& kind, const String& type, uint64_t sequenceNumber) 103 103 : m_source(PasteboardSource) 104 104 , m_kind(kind) … … 108 108 } 109 109 110 void DataTransferItemChromium::getAsString(PassRefPtr<StringCallback> callback, ScriptExecutionContext* context) const110 void ChromiumDataObjectItem::getAsString(PassRefPtr<StringCallback> callback, ScriptExecutionContext* context) const 111 111 { 112 112 if (!callback || kind() != DataTransferItem::kindString) … … 116 116 } 117 117 118 PassRefPtr<Blob> DataTransferItemChromium::getAsFile() const118 PassRefPtr<Blob> ChromiumDataObjectItem::getAsFile() const 119 119 { 120 120 if (kind() != DataTransferItem::kindFile) … … 154 154 } 155 155 156 String DataTransferItemChromium::internalGetAsString() const156 String ChromiumDataObjectItem::internalGetAsString() const 157 157 { 158 158 ASSERT(m_kind == DataTransferItem::kindString); … … 177 177 } 178 178 179 bool DataTransferItemChromium::isFilename() const179 bool ChromiumDataObjectItem::isFilename() const 180 180 { 181 181 // FIXME: https://bugs.webkit.org/show_bug.cgi?id=81261: When we properly support File dragout, -
Property
svn:eol-style
changed from
-
trunk/Source/WebCore/platform/chromium/ChromiumDataObjectItem.h
-
Property
svn:eol-style
changed from
native
toLF
r112447 r112448 29 29 */ 30 30 31 #ifndef DataTransferItemChromium_h32 #define DataTransferItemChromium_h31 #ifndef ChromiumDataObjectItem_h 32 #define ChromiumDataObjectItem_h 33 33 34 34 #if ENABLE(DATA_TRANSFER_ITEMS) … … 47 47 class StringCallback; 48 48 49 class DataTransferItemChromium : public RefCounted<DataTransferItemChromium> {49 class ChromiumDataObjectItem : public RefCounted<ChromiumDataObjectItem> { 50 50 public: 51 static PassRefPtr< DataTransferItemChromium> createFromString(const String& type, const String& data);52 static PassRefPtr< DataTransferItemChromium> createFromFile(PassRefPtr<File>);53 static PassRefPtr< DataTransferItemChromium> createFromURL(const String& url, const String& title);54 static PassRefPtr< DataTransferItemChromium> createFromHTML(const String& html, const KURL& baseURL);55 static PassRefPtr< DataTransferItemChromium> createFromSharedBuffer(const String& filename, PassRefPtr<SharedBuffer>);56 static PassRefPtr< DataTransferItemChromium> createFromPasteboard(const String& type, uint64_t sequenceNumber);51 static PassRefPtr<ChromiumDataObjectItem> createFromString(const String& type, const String& data); 52 static PassRefPtr<ChromiumDataObjectItem> createFromFile(PassRefPtr<File>); 53 static PassRefPtr<ChromiumDataObjectItem> createFromURL(const String& url, const String& title); 54 static PassRefPtr<ChromiumDataObjectItem> createFromHTML(const String& html, const KURL& baseURL); 55 static PassRefPtr<ChromiumDataObjectItem> createFromSharedBuffer(const String& filename, PassRefPtr<SharedBuffer>); 56 static PassRefPtr<ChromiumDataObjectItem> createFromPasteboard(const String& type, uint64_t sequenceNumber); 57 57 58 58 String kind() const { return m_kind; } … … 74 74 }; 75 75 76 DataTransferItemChromium(const String& kind, const String& type);77 DataTransferItemChromium(const String& kind, const String& type, uint64_t sequenceNumber);76 ChromiumDataObjectItem(const String& kind, const String& type); 77 ChromiumDataObjectItem(const String& kind, const String& type, uint64_t sequenceNumber); 78 78 79 79 DataSource m_source; … … 95 95 #endif // ENABLE(DATA_TRANSFER_ITEMS) 96 96 97 #endif // DataTransferItem_h97 #endif // ChromiumDataObjectItem_h -
Property
svn:eol-style
changed from
-
trunk/Source/WebCore/platform/chromium/ClipboardChromium.cpp
r111061 r112448 30 30 #include "CachedImage.h" 31 31 #include "ChromiumDataObject.h" 32 #include "ChromiumDataObjectItem.h" 32 33 #include "ClipboardMimeTypes.h" 33 34 #include "ClipboardUtilitiesChromium.h" 34 35 #include "DataTransferItem.h" 35 #include "DataTransferItemChromium.h"36 36 #include "DataTransferItemList.h" 37 #include "DataTransferItemListChromium.h"38 37 #include "Document.h" 39 38 #include "DragData.h" … … 65 64 public: 66 65 static PassRefPtr<DataTransferItemListPolicyWrapper> create( 67 PassRefPtr<ClipboardChromium>, PassRefPtr< DataTransferItemListChromium>);66 PassRefPtr<ClipboardChromium>, PassRefPtr<ChromiumDataObject>); 68 67 69 68 virtual size_t length() const; … … 75 74 76 75 private: 77 DataTransferItemListPolicyWrapper(PassRefPtr<ClipboardChromium>, PassRefPtr< DataTransferItemListChromium>);76 DataTransferItemListPolicyWrapper(PassRefPtr<ClipboardChromium>, PassRefPtr<ChromiumDataObject>); 78 77 79 78 RefPtr<ClipboardChromium> m_clipboard; 80 RefPtr< DataTransferItemListChromium> m_list;79 RefPtr<ChromiumDataObject> m_dataObject; 81 80 }; 82 81 … … 84 83 public: 85 84 static PassRefPtr<DataTransferItemPolicyWrapper> create( 86 PassRefPtr<ClipboardChromium>, PassRefPtr< DataTransferItemChromium>);85 PassRefPtr<ClipboardChromium>, PassRefPtr<ChromiumDataObjectItem>); 87 86 88 87 virtual String kind() const; … … 93 92 94 93 private: 95 DataTransferItemPolicyWrapper(PassRefPtr<ClipboardChromium>, PassRefPtr< DataTransferItemChromium>);94 DataTransferItemPolicyWrapper(PassRefPtr<ClipboardChromium>, PassRefPtr<ChromiumDataObjectItem>); 96 95 97 96 RefPtr<ClipboardChromium> m_clipboard; 98 RefPtr< DataTransferItemChromium> m_item;97 RefPtr<ChromiumDataObjectItem> m_item; 99 98 }; 100 99 101 100 PassRefPtr<DataTransferItemListPolicyWrapper> DataTransferItemListPolicyWrapper::create( 102 PassRefPtr<ClipboardChromium> clipboard, PassRefPtr< DataTransferItemListChromium> list)101 PassRefPtr<ClipboardChromium> clipboard, PassRefPtr<ChromiumDataObject> list) 103 102 { 104 103 return adoptRef(new DataTransferItemListPolicyWrapper(clipboard, list)); … … 109 108 if (m_clipboard->policy() == ClipboardNumb) 110 109 return 0; 111 return m_ list->length();110 return m_dataObject->length(); 112 111 } 113 112 … … 116 115 if (m_clipboard->policy() == ClipboardNumb) 117 116 return 0; 118 RefPtr< DataTransferItemChromium> item = m_list->item(index);117 RefPtr<ChromiumDataObjectItem> item = m_dataObject->item(index); 119 118 if (!item) 120 119 return 0; … … 128 127 return; 129 128 } 130 m_ list->deleteItem(index);129 m_dataObject->deleteItem(index); 131 130 } 132 131 … … 135 134 if (m_clipboard->policy() != ClipboardWritable) 136 135 return; 137 m_ list->clear();136 m_dataObject->clearAll(); 138 137 } 139 138 … … 142 141 if (m_clipboard->policy() != ClipboardWritable) 143 142 return; 144 m_ list->add(data, type, ec);143 m_dataObject->add(data, type, ec); 145 144 } 146 145 … … 149 148 if (m_clipboard->policy() != ClipboardWritable) 150 149 return; 151 m_ list->add(file, m_clipboard->frame()->document()->scriptExecutionContext());150 m_dataObject->add(file, m_clipboard->frame()->document()->scriptExecutionContext()); 152 151 } 153 152 154 153 DataTransferItemListPolicyWrapper::DataTransferItemListPolicyWrapper( 155 PassRefPtr<ClipboardChromium> clipboard, PassRefPtr< DataTransferItemListChromium> list)154 PassRefPtr<ClipboardChromium> clipboard, PassRefPtr<ChromiumDataObject> dataObject) 156 155 : m_clipboard(clipboard) 157 , m_ list(list)156 , m_dataObject(dataObject) 158 157 { 159 158 } 160 159 161 160 PassRefPtr<DataTransferItemPolicyWrapper> DataTransferItemPolicyWrapper::create( 162 PassRefPtr<ClipboardChromium> clipboard, PassRefPtr< DataTransferItemChromium> item)161 PassRefPtr<ClipboardChromium> clipboard, PassRefPtr<ChromiumDataObjectItem> item) 163 162 { 164 163 return adoptRef(new DataTransferItemPolicyWrapper(clipboard, item)); … … 196 195 197 196 DataTransferItemPolicyWrapper::DataTransferItemPolicyWrapper( 198 PassRefPtr<ClipboardChromium> clipboard, PassRefPtr< DataTransferItemChromium> item)197 PassRefPtr<ClipboardChromium> clipboard, PassRefPtr<ChromiumDataObjectItem> item) 199 198 : m_clipboard(clipboard) 200 199 , m_item(item) … … 321 320 return files.release(); 322 321 323 RefPtr<DataTransferItemListChromium> list = m_dataObject->items(); 324 for (size_t i = 0; i < list->length(); ++i) { 325 if (list->item(i)->kind() == DataTransferItem::kindFile) { 326 RefPtr<Blob> blob = list->item(i)->getAsFile(); 322 for (size_t i = 0; i < m_dataObject->length(); ++i) { 323 if (m_dataObject->item(i)->kind() == DataTransferItem::kindFile) { 324 RefPtr<Blob> blob = m_dataObject->item(i)->getAsFile(); 327 325 if (blob && blob->isFile()) 328 326 files->append(static_cast<File*>(blob.get())); … … 485 483 ASSERT(isForDragAndDrop()); 486 484 487 return m_dataObject-> items()->length() > 0;485 return m_dataObject->length() > 0; 488 486 } 489 487 … … 494 492 // time. We now return a wrapper that always wraps the *same* set of items, so JS shouldn't be 495 493 // able to tell, but we probably still want to fix this. 496 return DataTransferItemListPolicyWrapper::create(this, m_dataObject ->items());494 return DataTransferItemListPolicyWrapper::create(this, m_dataObject); 497 495 } 498 496 #endif -
trunk/Source/WebKit/chromium/ChangeLog
r112446 r112448 1 2012-03-27 Daniel Cheng <dcheng@chromium.org> 2 3 [chromium] Merge ChromiumDataObject and DataTransferItemListChromium. 4 https://bugs.webkit.org/show_bug.cgi?id=82407 5 6 Reviewed by Tony Chang. 7 8 * src/WebDragData.cpp: 9 (WebKit::WebDragData::items): 10 1 11 2012-03-28 Nat Duca <nduca@chromium.org> 2 12 -
trunk/Source/WebKit/chromium/src/WebDragData.cpp
r111919 r112448 71 71 { 72 72 Vector<Item> itemList; 73 for (size_t i = 0; i < m_private-> items()->length(); ++i) {74 DataTransferItemChromium* originalItem = m_private->items()->item(i).get();73 for (size_t i = 0; i < m_private->length(); ++i) { 74 ChromiumDataObjectItem* originalItem = m_private->item(i).get(); 75 75 WebDragData::Item item; 76 76 if (originalItem->kind() == DataTransferItem::kindString) {
Note: See TracChangeset
for help on using the changeset viewer.