Changeset 80493 in webkit


Ignore:
Timestamp:
Mar 7, 2011 1:31:56 PM (13 years ago)
Author:
dcheng@chromium.org
Message:

2011-03-07 Daniel Cheng <dcheng@chromium.org>

Reviewed by Tony Chang.

Add plumbing for paste support to ChromiumDataObject::types()
https://bugs.webkit.org/show_bug.cgi?id=55792

Add a simple layout test to verify that event.clipboardData.types
reflects the types available in a paste.

  • editing/pasteboard/onpaste-text-html-types-expected.txt: Added.
  • editing/pasteboard/onpaste-text-html-types.html: Added.

2011-03-07 Daniel Cheng <dcheng@chromium.org>

Reviewed by Tony Chang.

Add plumbing for paste support to ChromiumDataObject::types()
https://bugs.webkit.org/show_bug.cgi?id=55792

This is a preliminary patch to support event.dataTransfer.items. This
adds plumbing to support retrieving the types in a paste event. It also
moves the check for files in a drag/paste up to ClipboardChromium, since
internal code needs to be able to differentiate between actual files in
a drag and someone that simply decided to use "Files" as a custom type
string.

Test: editing/pasteboard/onpaste-text-html-types.html

  • platform/chromium/ChromiumDataObject.cpp: (WebCore::ChromiumDataObject::types): (WebCore::ChromiumDataObject::containsFilenames):
  • platform/chromium/ChromiumDataObject.h:
  • platform/chromium/ClipboardChromium.cpp: (WebCore::ClipboardChromium::types):
  • platform/chromium/ClipboardMimeTypes.cpp:
  • platform/chromium/ClipboardMimeTypes.h:

2011-03-07 Daniel Cheng <dcheng@chromium.org>

Reviewed by Tony Chang.

Add plumbing for paste support to ChromiumDataObject::types()
https://bugs.webkit.org/show_bug.cgi?id=55792

This requires a DEPS roll for a Chromium-side change to support DRT testing of
event.dataTransfer.types.

  • DEPS:
Location:
trunk
Files:
2 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r80492 r80493  
     12011-03-07  Daniel Cheng  <dcheng@chromium.org>
     2
     3        Reviewed by Tony Chang.
     4
     5        Add plumbing for paste support to ChromiumDataObject::types()
     6        https://bugs.webkit.org/show_bug.cgi?id=55792
     7
     8        Add a simple layout test to verify that event.clipboardData.types
     9        reflects the types available in a paste.
     10
     11        * editing/pasteboard/onpaste-text-html-types-expected.txt: Added.
     12        * editing/pasteboard/onpaste-text-html-types.html: Added.
     13
    1142011-03-07  Xiaomei Ji  <xji@chromium.org>
    215
  • trunk/Source/WebCore/ChangeLog

    r80489 r80493  
     12011-03-07  Daniel Cheng  <dcheng@chromium.org>
     2
     3        Reviewed by Tony Chang.
     4
     5        Add plumbing for paste support to ChromiumDataObject::types()
     6        https://bugs.webkit.org/show_bug.cgi?id=55792
     7
     8        This is a preliminary patch to support event.dataTransfer.items. This
     9        adds plumbing to support retrieving the types in a paste event. It also
     10        moves the check for files in a drag/paste up to ClipboardChromium, since
     11        internal code needs to be able to differentiate between actual files in
     12        a drag and someone that simply decided to use "Files" as a custom type
     13        string.
     14
     15        Test: editing/pasteboard/onpaste-text-html-types.html
     16
     17        * platform/chromium/ChromiumDataObject.cpp:
     18        (WebCore::ChromiumDataObject::types):
     19        (WebCore::ChromiumDataObject::containsFilenames):
     20        * platform/chromium/ChromiumDataObject.h:
     21        * platform/chromium/ClipboardChromium.cpp:
     22        (WebCore::ClipboardChromium::types):
     23        * platform/chromium/ClipboardMimeTypes.cpp:
     24        * platform/chromium/ClipboardMimeTypes.h:
     25
    1262011-03-07  Takayoshi Kochi  <kochi@chromium.org>
    227
  • trunk/Source/WebCore/platform/chromium/ChromiumDataObject.cpp

    r80486 r80493  
    102102HashSet<String> ChromiumDataObject::types() const
    103103{
    104     // This is currently broken for pasteboard events, and always has been.
     104    if (m_clipboardType == Clipboard::CopyAndPaste) {
     105        bool ignoredContainsFilenames;
     106        return PlatformBridge::clipboardReadAvailableTypes(PasteboardPrivate::StandardBuffer,
     107                                                           &ignoredContainsFilenames);
     108    }
     109
    105110    HashSet<String> results;
    106111
     
    118123    if (!m_textHtml.isEmpty())
    119124        results.add(mimeTypeTextHTML);
    120 
    121     if (!m_filenames.isEmpty())
    122         results.add("Files");
    123125
    124126    return results;
     
    225227}
    226228
     229bool ChromiumDataObject::containsFilenames() const
     230{
     231    bool containsFilenames;
     232    if (m_clipboardType == Clipboard::CopyAndPaste) {
     233        HashSet<String> ignoredResults =
     234            PlatformBridge::clipboardReadAvailableTypes(PasteboardPrivate::StandardBuffer,
     235                                                        &containsFilenames);
     236    } else
     237        containsFilenames = !m_filenames.isEmpty();
     238    return containsFilenames;
     239}
     240
    227241ChromiumDataObject::ChromiumDataObject(Clipboard::ClipboardType clipboardType)
    228242    : m_clipboardType(clipboardType)
  • trunk/Source/WebCore/platform/chromium/ChromiumDataObject.h

    r80486 r80493  
    7575
    7676    // Used to handle files being dragged in.
    77     bool containsFilenames() const { return !m_filenames.isEmpty(); }
     77    bool containsFilenames() const;
    7878    Vector<String> filenames() const { return m_filenames; }
    7979    void setFilenames(const Vector<String>& filenames) { m_filenames = filenames; }
  • trunk/Source/WebCore/platform/chromium/ClipboardChromium.cpp

    r80486 r80493  
    133133    results = m_dataObject->types();
    134134
     135    if (m_dataObject->containsFilenames())
     136        results.add(mimeTypeFiles);
     137
    135138    return results;
    136139}
  • trunk/Source/WebCore/platform/chromium/ClipboardMimeTypes.cpp

    r80486 r80493  
    4141const char mimeTypeTextURIList[] = "text/uri-list";
    4242const char mimeTypeDownloadURL[] = "downloadurl";
     43const char mimeTypeFiles[] = "Files";
    4344
    4445} // namespace WebCore
  • trunk/Source/WebCore/platform/chromium/ClipboardMimeTypes.h

    r80486 r80493  
    4141extern const char mimeTypeTextURIList[];
    4242extern const char mimeTypeDownloadURL[];
     43extern const char mimeTypeFiles[];
    4344
    4445} // namespace WebCore
  • trunk/Source/WebKit/chromium/ChangeLog

    r80489 r80493  
     12011-03-07  Daniel Cheng  <dcheng@chromium.org>
     2
     3        Reviewed by Tony Chang.
     4
     5        Add plumbing for paste support to ChromiumDataObject::types()
     6        https://bugs.webkit.org/show_bug.cgi?id=55792
     7
     8        This requires a DEPS roll for a Chromium-side change to support DRT testing of
     9        event.dataTransfer.types.
     10
     11        * DEPS:
     12
    1132011-03-07  Takayoshi Kochi  <kochi@chromium.org>
    214
  • trunk/Source/WebKit/chromium/DEPS

    r80361 r80493  
    3333vars = {
    3434  'chromium_svn': 'http://src.chromium.org/svn/trunk/src',
    35   'chromium_rev': '76885'
     35  'chromium_rev': '77152'
    3636}
    3737
Note: See TracChangeset for help on using the changeset viewer.