Changeset 112448 in webkit


Ignore:
Timestamp:
Mar 28, 2012 3:03:41 PM (12 years ago)
Author:
dcheng@chromium.org
Message:

[chromium] Merge ChromiumDataObject and DataTransferItemListChromium.
https://bugs.webkit.org/show_bug.cgi?id=82407

Reviewed by Tony Chang.

Source/WebCore:

Since ChromiumDataObject is just a very thin wrapper for DataTransferItemListChromium now,
combine the two and remove a layer of indirection.

No functionality change, should be covered by existing tests.

  • WebCore.gypi:
  • platform/chromium/ChromiumDataObject.cpp: Replacing DataTransferItemListChromium.

(WebCore::ChromiumDataObject::createFromPasteboard):
(WebCore::ChromiumDataObject::create):
(WebCore::ChromiumDataObject::length):
(WebCore):
(WebCore::ChromiumDataObject::item):
(WebCore::ChromiumDataObject::deleteItem):
(WebCore::ChromiumDataObject::clearAll):
(WebCore::ChromiumDataObject::add):
(WebCore::ChromiumDataObject::clearData):
(WebCore::ChromiumDataObject::clearAllExceptFiles):
(WebCore::ChromiumDataObject::types):
(WebCore::ChromiumDataObject::getData):
(WebCore::ChromiumDataObject::setData):
(WebCore::ChromiumDataObject::urlAndTitle):
(WebCore::ChromiumDataObject::setURLAndTitle):
(WebCore::ChromiumDataObject::htmlAndBaseURL):
(WebCore::ChromiumDataObject::setHTMLAndBaseURL):
(WebCore::ChromiumDataObject::containsFilenames):
(WebCore::ChromiumDataObject::filenames):
(WebCore::ChromiumDataObject::addFilename):
(WebCore::ChromiumDataObject::addSharedBuffer):
(WebCore::ChromiumDataObject::ChromiumDataObject):
(WebCore::ChromiumDataObject::findStringItem):
(WebCore::ChromiumDataObject::internalAddStringItem):
(WebCore::ChromiumDataObject::internalAddFileItem):

  • platform/chromium/ChromiumDataObject.h:

(WebCore):
(ChromiumDataObject):

  • platform/chromium/ChromiumDataObjectItem.cpp: Renamed from Source/WebCore/platform/chromium/DataTransferItemChromium.cpp.

(WebCore):
(WebCore::ChromiumDataObjectItem::createFromString):
(WebCore::ChromiumDataObjectItem::createFromFile):
(WebCore::ChromiumDataObjectItem::createFromURL):
(WebCore::ChromiumDataObjectItem::createFromHTML):
(WebCore::ChromiumDataObjectItem::createFromSharedBuffer):
(WebCore::ChromiumDataObjectItem::createFromPasteboard):
(WebCore::ChromiumDataObjectItem::ChromiumDataObjectItem):
(WebCore::ChromiumDataObjectItem::getAsString):
(WebCore::ChromiumDataObjectItem::getAsFile):
(WebCore::ChromiumDataObjectItem::internalGetAsString):
(WebCore::ChromiumDataObjectItem::isFilename):

  • platform/chromium/ChromiumDataObjectItem.h: Renamed from Source/WebCore/platform/chromium/DataTransferItemChromium.h.

(WebCore):
(ChromiumDataObjectItem):
(WebCore::ChromiumDataObjectItem::kind):
(WebCore::ChromiumDataObjectItem::type):
(WebCore::ChromiumDataObjectItem::sharedBuffer):
(WebCore::ChromiumDataObjectItem::title):
(WebCore::ChromiumDataObjectItem::baseURL):

  • platform/chromium/ClipboardChromium.cpp:

(WebCore::ClipboardChromium::files):
(WebCore::ClipboardChromium::hasData):
(WebCore::ClipboardChromium::items):

  • platform/chromium/DataTransferItemListChromium.cpp: Removed.
  • platform/chromium/DataTransferItemListChromium.h: Removed.

Source/WebKit/chromium:

  • src/WebDragData.cpp:

(WebKit::WebDragData::items):

Location:
trunk/Source
Files:
2 deleted
7 edited
2 moved

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r112446 r112448  
     12012-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
    1712012-03-28  Nat Duca  <nduca@chromium.org>
    272
  • trunk/Source/WebCore/WebCore.gypi

    r112421 r112448  
    31993199            'platform/chromium/ChromiumDataObject.cpp',
    32003200            'platform/chromium/ChromiumDataObject.h',
     3201            'platform/chromium/ChromiumDataObjectItem.cpp',
     3202            'platform/chromium/ChromiumDataObjectItem.h',
    32013203            'platform/chromium/ClipboardChromium.cpp',
    32023204            'platform/chromium/ClipboardChromium.h',
     
    32103212            'platform/chromium/ContextMenuItemChromium.cpp',
    32113213            'platform/chromium/CursorChromium.cpp',
    3212             'platform/chromium/DataTransferItemChromium.cpp',
    3213             'platform/chromium/DataTransferItemChromium.h',
    3214             'platform/chromium/DataTransferItemListChromium.cpp',
    3215             'platform/chromium/DataTransferItemListChromium.h',
    32163214            'platform/chromium/DragDataChromium.cpp',
    32173215            'platform/chromium/DragDataRef.h',
  • trunk/Source/WebCore/platform/chromium/ChromiumDataObject.cpp

    r111061 r112448  
    3535#include "ClipboardUtilitiesChromium.h"
    3636#include "DataTransferItem.h"
    37 #include "DataTransferItemListChromium.h"
     37#include "ExceptionCode.h"
    3838#include "ExceptionCodePlaceholder.h"
     39#include "PlatformSupport.h"
    3940
    4041namespace WebCore {
    4142
    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 
    5143PassRefPtr<ChromiumDataObject> ChromiumDataObject::createFromPasteboard()
    5244{
    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();
    5452}
    5553
    5654PassRefPtr<ChromiumDataObject> ChromiumDataObject::create()
    5755{
    58     return adoptRef(new ChromiumDataObject(DataTransferItemListChromium::create()));
     56    return adoptRef(new ChromiumDataObject());
    5957}
    6058
     
    6462}
    6563
    66 PassRefPtr<DataTransferItemListChromium> ChromiumDataObject::items() const
    67 {
    68     return m_itemList;
     64size_t ChromiumDataObject::length() const
     65{
     66    return m_itemList.size();
     67}
     68
     69PassRefPtr<ChromiumDataObjectItem> ChromiumDataObject::item(unsigned long index)
     70{
     71    if (index >= length())
     72        return 0;
     73    return m_itemList[index];
     74}
     75
     76void ChromiumDataObject::deleteItem(unsigned long index)
     77{
     78    if (index >= length())
     79        return;
     80    m_itemList.remove(index);
     81}
     82
     83void ChromiumDataObject::clearAll()
     84{
     85    m_itemList.clear();
     86}
     87
     88void 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
     94void ChromiumDataObject::add(PassRefPtr<File> file, ScriptExecutionContext* context)
     95{
     96    if (!file)
     97        return;
     98
     99    m_itemList.append(ChromiumDataObjectItem::createFromFile(file));
    69100}
    70101
    71102void ChromiumDataObject::clearData(const String& type)
    72103{
    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) {
    75106            // Per the spec, type must be unique among all items of kind 'string'.
    76             m_itemList->deleteItem(i);
     107            m_itemList.remove(i);
    77108            return;
    78109        }
     
    80111}
    81112
    82 void ChromiumDataObject::clearAll()
    83 {
    84     m_itemList->clear();
    85 }
    86 
    87113void ChromiumDataObject::clearAllExceptFiles()
    88114{
    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);
    92118            continue;
    93119        }
     
    100126    HashSet<String> results;
    101127    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)
    106132            containsFiles = true;
    107133        else
     
    115141String ChromiumDataObject::getData(const String& type) const
    116142{
    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();
    120146    }
    121147    return String();
     
    125151{
    126152    clearData(type);
    127     m_itemList->add(data, type, ASSERT_NO_EXCEPTION);
     153    add(data, type, ASSERT_NO_EXCEPTION);
    128154    return true;
    129155}
     
    131157void ChromiumDataObject::urlAndTitle(String& url, String* title) const
    132158{
    133     RefPtr<DataTransferItemChromium> item = findItem(m_itemList, mimeTypeTextURIList);
     159    RefPtr<ChromiumDataObjectItem> item = findStringItem(mimeTypeTextURIList);
    134160    if (!item)
    135161        return;
     
    142168{
    143169    clearData(mimeTypeTextURIList);
    144     m_itemList->internalAddStringItem(DataTransferItemChromium::createFromURL(url, title));
     170    internalAddStringItem(ChromiumDataObjectItem::createFromURL(url, title));
    145171}
    146172
    147173void ChromiumDataObject::htmlAndBaseURL(String& html, KURL& baseURL) const
    148174{
    149     RefPtr<DataTransferItemChromium> item = findItem(m_itemList, mimeTypeTextHTML);
     175    RefPtr<ChromiumDataObjectItem> item = findStringItem(mimeTypeTextHTML);
    150176    if (!item)
    151177        return;
     
    157183{
    158184    clearData(mimeTypeTextHTML);
    159     m_itemList->internalAddStringItem(DataTransferItemChromium::createFromHTML(html, baseURL));
     185    internalAddStringItem(ChromiumDataObjectItem::createFromHTML(html, baseURL));
    160186}
    161187
    162188bool ChromiumDataObject::containsFilenames() const
    163189{
    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())
    166192            return true;
    167193    return false;
     
    171197{
    172198    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());
    176202    return results;
    177203}
     
    179205void ChromiumDataObject::addFilename(const String& filename)
    180206{
    181     m_itemList->internalAddFileItem(DataTransferItemChromium::createFromFile(File::create(filename)));
     207    internalAddFileItem(ChromiumDataObjectItem::createFromFile(File::create(filename)));
    182208}
    183209
    184210void ChromiumDataObject::addSharedBuffer(const String& name, PassRefPtr<SharedBuffer> buffer)
    185211{
    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
     215ChromiumDataObject::ChromiumDataObject()
    191216{
    192217}
     
    198223}
    199224
     225PassRefPtr<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
     234bool 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
     245void ChromiumDataObject::internalAddFileItem(PassRefPtr<ChromiumDataObjectItem> item)
     246{
     247    ASSERT(item->kind() == DataTransferItem::kindFile);
     248    m_itemList.append(item);
     249}
     250
    200251} // namespace WebCore
  • trunk/Source/WebCore/platform/chromium/ChromiumDataObject.h

    r111061 r112448  
    3232#define ChromiumDataObject_h
    3333
    34 #include "DataTransferItemListChromium.h"
     34#include "ChromiumDataObjectItem.h"
    3535#include "PlatformString.h"
    3636#include <wtf/HashSet.h>
     
    4444class SharedBuffer;
    4545
     46typedef int ExceptionCode;
     47
    4648// A data object for holding data that would be in a clipboard or moved
    4749// during a drag-n-drop operation.  This is the data that WebCore is aware
     
    5456    PassRefPtr<ChromiumDataObject> copy() const;
    5557
    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*);
    5766
     67    // WebCore helpers.
    5868    void clearData(const String& type);
    59     void clearAll();
    6069    void clearAllExceptFiles();
    6170
     
    7887
    7988private:
    80     explicit ChromiumDataObject(PassRefPtr<DataTransferItemListChromium>);
     89    ChromiumDataObject();
    8190    explicit ChromiumDataObject(const ChromiumDataObject&);
    8291
    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;
    8497};
    8598
  • trunk/Source/WebCore/platform/chromium/ChromiumDataObjectItem.cpp

    • Property svn:eol-style changed from native to LF
    r112447 r112448  
    3030
    3131#include "config.h"
    32 #include "DataTransferItemChromium.h"
     32#include "ChromiumDataObjectItem.h"
    3333
    3434#if ENABLE(DATA_TRANSFER_ITEMS)
     
    4747namespace WebCore {
    4848
    49 PassRefPtr<DataTransferItemChromium> DataTransferItemChromium::createFromString(const String& type, const String& data)
     49PassRefPtr<ChromiumDataObjectItem> ChromiumDataObjectItem::createFromString(const String& type, const String& data)
    5050{
    51     RefPtr<DataTransferItemChromium> item = adoptRef(new DataTransferItemChromium(DataTransferItem::kindString, type));
     51    RefPtr<ChromiumDataObjectItem> item = adoptRef(new ChromiumDataObjectItem(DataTransferItem::kindString, type));
    5252    item->m_data = data;
    5353    return item.release();
    5454}
    5555
    56 PassRefPtr<DataTransferItemChromium> DataTransferItemChromium::createFromFile(PassRefPtr<File> file)
     56PassRefPtr<ChromiumDataObjectItem> ChromiumDataObjectItem::createFromFile(PassRefPtr<File> file)
    5757{
    58     RefPtr<DataTransferItemChromium> item = adoptRef(new DataTransferItemChromium(DataTransferItem::kindFile, file->type()));
     58    RefPtr<ChromiumDataObjectItem> item = adoptRef(new ChromiumDataObjectItem(DataTransferItem::kindFile, file->type()));
    5959    item->m_file = file;
    6060    return item.release();
    6161}
    6262
    63 PassRefPtr<DataTransferItemChromium> DataTransferItemChromium::createFromURL(const String& url, const String& title)
     63PassRefPtr<ChromiumDataObjectItem> ChromiumDataObjectItem::createFromURL(const String& url, const String& title)
    6464{
    65     RefPtr<DataTransferItemChromium> item = adoptRef(new DataTransferItemChromium(DataTransferItem::kindString, mimeTypeTextURIList));
     65    RefPtr<ChromiumDataObjectItem> item = adoptRef(new ChromiumDataObjectItem(DataTransferItem::kindString, mimeTypeTextURIList));
    6666    item->m_data = url;
    6767    item->m_title = title;
     
    6969}
    7070
    71 PassRefPtr<DataTransferItemChromium> DataTransferItemChromium::createFromHTML(const String& html, const KURL& baseURL)
     71PassRefPtr<ChromiumDataObjectItem> ChromiumDataObjectItem::createFromHTML(const String& html, const KURL& baseURL)
    7272{
    73     RefPtr<DataTransferItemChromium> item = adoptRef(new DataTransferItemChromium(DataTransferItem::kindString, mimeTypeTextHTML));
     73    RefPtr<ChromiumDataObjectItem> item = adoptRef(new ChromiumDataObjectItem(DataTransferItem::kindString, mimeTypeTextHTML));
    7474    item->m_data = html;
    7575    item->m_baseURL = baseURL;
     
    7777}
    7878
    79 PassRefPtr<DataTransferItemChromium> DataTransferItemChromium::createFromSharedBuffer(const String& name, PassRefPtr<SharedBuffer> buffer)
     79PassRefPtr<ChromiumDataObjectItem> ChromiumDataObjectItem::createFromSharedBuffer(const String& name, PassRefPtr<SharedBuffer> buffer)
    8080{
    81     RefPtr<DataTransferItemChromium> item = adoptRef(new DataTransferItemChromium(DataTransferItem::kindFile, String()));
     81    RefPtr<ChromiumDataObjectItem> item = adoptRef(new ChromiumDataObjectItem(DataTransferItem::kindFile, String()));
    8282    item->m_sharedBuffer = buffer;
    8383    item->m_title = name;
     
    8585}
    8686
    87 PassRefPtr<DataTransferItemChromium> DataTransferItemChromium::createFromPasteboard(const String& type, uint64_t sequenceNumber)
     87PassRefPtr<ChromiumDataObjectItem> ChromiumDataObjectItem::createFromPasteboard(const String& type, uint64_t sequenceNumber)
    8888{
    8989    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));
    9292}
    9393
    94 DataTransferItemChromium::DataTransferItemChromium(const String& kind, const String& type)
     94ChromiumDataObjectItem::ChromiumDataObjectItem(const String& kind, const String& type)
    9595    : m_source(InternalSource)
    9696    , m_kind(kind)
     
    100100}
    101101
    102 DataTransferItemChromium::DataTransferItemChromium(const String& kind, const String& type, uint64_t sequenceNumber)
     102ChromiumDataObjectItem::ChromiumDataObjectItem(const String& kind, const String& type, uint64_t sequenceNumber)
    103103    : m_source(PasteboardSource)
    104104    , m_kind(kind)
     
    108108}
    109109
    110 void DataTransferItemChromium::getAsString(PassRefPtr<StringCallback> callback, ScriptExecutionContext* context) const
     110void ChromiumDataObjectItem::getAsString(PassRefPtr<StringCallback> callback, ScriptExecutionContext* context) const
    111111{
    112112    if (!callback || kind() != DataTransferItem::kindString)
     
    116116}
    117117
    118 PassRefPtr<Blob> DataTransferItemChromium::getAsFile() const
     118PassRefPtr<Blob> ChromiumDataObjectItem::getAsFile() const
    119119{
    120120    if (kind() != DataTransferItem::kindFile)
     
    154154}
    155155
    156 String DataTransferItemChromium::internalGetAsString() const
     156String ChromiumDataObjectItem::internalGetAsString() const
    157157{
    158158    ASSERT(m_kind == DataTransferItem::kindString);
     
    177177}
    178178
    179 bool DataTransferItemChromium::isFilename() const
     179bool ChromiumDataObjectItem::isFilename() const
    180180{
    181181    // FIXME: https://bugs.webkit.org/show_bug.cgi?id=81261: When we properly support File dragout,
  • trunk/Source/WebCore/platform/chromium/ChromiumDataObjectItem.h

    • Property svn:eol-style changed from native to LF
    r112447 r112448  
    2929 */
    3030
    31 #ifndef DataTransferItemChromium_h
    32 #define DataTransferItemChromium_h
     31#ifndef ChromiumDataObjectItem_h
     32#define ChromiumDataObjectItem_h
    3333
    3434#if ENABLE(DATA_TRANSFER_ITEMS)
     
    4747class StringCallback;
    4848
    49 class DataTransferItemChromium : public RefCounted<DataTransferItemChromium> {
     49class ChromiumDataObjectItem : public RefCounted<ChromiumDataObjectItem> {
    5050public:
    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);
    5757
    5858    String kind() const { return m_kind; }
     
    7474    };
    7575
    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);
    7878
    7979    DataSource m_source;
     
    9595#endif // ENABLE(DATA_TRANSFER_ITEMS)
    9696
    97 #endif // DataTransferItem_h
     97#endif // ChromiumDataObjectItem_h
  • trunk/Source/WebCore/platform/chromium/ClipboardChromium.cpp

    r111061 r112448  
    3030#include "CachedImage.h"
    3131#include "ChromiumDataObject.h"
     32#include "ChromiumDataObjectItem.h"
    3233#include "ClipboardMimeTypes.h"
    3334#include "ClipboardUtilitiesChromium.h"
    3435#include "DataTransferItem.h"
    35 #include "DataTransferItemChromium.h"
    3636#include "DataTransferItemList.h"
    37 #include "DataTransferItemListChromium.h"
    3837#include "Document.h"
    3938#include "DragData.h"
     
    6564public:
    6665    static PassRefPtr<DataTransferItemListPolicyWrapper> create(
    67         PassRefPtr<ClipboardChromium>, PassRefPtr<DataTransferItemListChromium>);
     66        PassRefPtr<ClipboardChromium>, PassRefPtr<ChromiumDataObject>);
    6867
    6968    virtual size_t length() const;
     
    7574
    7675private:
    77     DataTransferItemListPolicyWrapper(PassRefPtr<ClipboardChromium>, PassRefPtr<DataTransferItemListChromium>);
     76    DataTransferItemListPolicyWrapper(PassRefPtr<ClipboardChromium>, PassRefPtr<ChromiumDataObject>);
    7877
    7978    RefPtr<ClipboardChromium> m_clipboard;
    80     RefPtr<DataTransferItemListChromium> m_list;
     79    RefPtr<ChromiumDataObject> m_dataObject;
    8180};
    8281
     
    8483public:
    8584    static PassRefPtr<DataTransferItemPolicyWrapper> create(
    86         PassRefPtr<ClipboardChromium>, PassRefPtr<DataTransferItemChromium>);
     85        PassRefPtr<ClipboardChromium>, PassRefPtr<ChromiumDataObjectItem>);
    8786
    8887    virtual String kind() const;
     
    9392
    9493private:
    95     DataTransferItemPolicyWrapper(PassRefPtr<ClipboardChromium>, PassRefPtr<DataTransferItemChromium>);
     94    DataTransferItemPolicyWrapper(PassRefPtr<ClipboardChromium>, PassRefPtr<ChromiumDataObjectItem>);
    9695
    9796    RefPtr<ClipboardChromium> m_clipboard;
    98     RefPtr<DataTransferItemChromium> m_item;
     97    RefPtr<ChromiumDataObjectItem> m_item;
    9998};
    10099
    101100PassRefPtr<DataTransferItemListPolicyWrapper> DataTransferItemListPolicyWrapper::create(
    102     PassRefPtr<ClipboardChromium> clipboard, PassRefPtr<DataTransferItemListChromium> list)
     101    PassRefPtr<ClipboardChromium> clipboard, PassRefPtr<ChromiumDataObject> list)
    103102{
    104103    return adoptRef(new DataTransferItemListPolicyWrapper(clipboard, list));
     
    109108    if (m_clipboard->policy() == ClipboardNumb)
    110109        return 0;
    111     return m_list->length();
     110    return m_dataObject->length();
    112111}
    113112
     
    116115    if (m_clipboard->policy() == ClipboardNumb)
    117116        return 0;
    118     RefPtr<DataTransferItemChromium> item = m_list->item(index);
     117    RefPtr<ChromiumDataObjectItem> item = m_dataObject->item(index);
    119118    if (!item)
    120119        return 0;
     
    128127        return;
    129128    }
    130     m_list->deleteItem(index);
     129    m_dataObject->deleteItem(index);
    131130}
    132131
     
    135134    if (m_clipboard->policy() != ClipboardWritable)
    136135        return;
    137     m_list->clear();
     136    m_dataObject->clearAll();
    138137}
    139138
     
    142141    if (m_clipboard->policy() != ClipboardWritable)
    143142        return;
    144     m_list->add(data, type, ec);
     143    m_dataObject->add(data, type, ec);
    145144}
    146145
     
    149148    if (m_clipboard->policy() != ClipboardWritable)
    150149        return;
    151     m_list->add(file, m_clipboard->frame()->document()->scriptExecutionContext());
     150    m_dataObject->add(file, m_clipboard->frame()->document()->scriptExecutionContext());
    152151}
    153152
    154153DataTransferItemListPolicyWrapper::DataTransferItemListPolicyWrapper(
    155     PassRefPtr<ClipboardChromium> clipboard, PassRefPtr<DataTransferItemListChromium> list)
     154    PassRefPtr<ClipboardChromium> clipboard, PassRefPtr<ChromiumDataObject> dataObject)
    156155    : m_clipboard(clipboard)
    157     , m_list(list)
     156    , m_dataObject(dataObject)
    158157{
    159158}
    160159
    161160PassRefPtr<DataTransferItemPolicyWrapper> DataTransferItemPolicyWrapper::create(
    162     PassRefPtr<ClipboardChromium> clipboard, PassRefPtr<DataTransferItemChromium> item)
     161    PassRefPtr<ClipboardChromium> clipboard, PassRefPtr<ChromiumDataObjectItem> item)
    163162{
    164163    return adoptRef(new DataTransferItemPolicyWrapper(clipboard, item));
     
    196195
    197196DataTransferItemPolicyWrapper::DataTransferItemPolicyWrapper(
    198     PassRefPtr<ClipboardChromium> clipboard, PassRefPtr<DataTransferItemChromium> item)
     197    PassRefPtr<ClipboardChromium> clipboard, PassRefPtr<ChromiumDataObjectItem> item)
    199198    : m_clipboard(clipboard)
    200199    , m_item(item)
     
    321320        return files.release();
    322321
    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();
    327325            if (blob && blob->isFile())
    328326                files->append(static_cast<File*>(blob.get()));
     
    485483    ASSERT(isForDragAndDrop());
    486484
    487     return m_dataObject->items()->length() > 0;
     485    return m_dataObject->length() > 0;
    488486}
    489487
     
    494492    // time. We now return a wrapper that always wraps the *same* set of items, so JS shouldn't be
    495493    // 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);
    497495}
    498496#endif
  • trunk/Source/WebKit/chromium/ChangeLog

    r112446 r112448  
     12012-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
    1112012-03-28  Nat Duca  <nduca@chromium.org>
    212
  • trunk/Source/WebKit/chromium/src/WebDragData.cpp

    r111919 r112448  
    7171{
    7272    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();
    7575        WebDragData::Item item;
    7676        if (originalItem->kind() == DataTransferItem::kindString) {
Note: See TracChangeset for help on using the changeset viewer.