Consider replacing return type of Clipboard::types() from ListHashSet<String> to...
authorrgf748@motorola.com <rgf748@motorola.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 Feb 2013 19:00:56 +0000 (19:00 +0000)
committerrgf748@motorola.com <rgf748@motorola.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 Feb 2013 19:00:56 +0000 (19:00 +0000)
https://bugs.webkit.org/show_bug.cgi?id=82888

Reviewed by Kentaro Hara.

As part of removing custom bindings of types Array Clipboard::types() needs to return
Vector<String> than ListHashSet<String>

No new tests. Existing test should pass with this change as no behavoural changes.

* bindings/js/JSClipboardCustom.cpp: Replace data type from ListHashSet<> to Vector<>.
(WebCore::JSClipboard::types):
* bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
(WebCore::V8Clipboard::typesAccessorGetter): Ditto.
* dom/Clipboard.h: Ditto.
* platform/blackberry/ClipboardBlackBerry.cpp: Ditto.
(WebCore::ClipboardBlackBerry::types):
* platform/blackberry/ClipboardBlackBerry.h: Ditto.
* platform/chromium/ChromiumDataObject.cpp: Ditto.
(WebCore::ChromiumDataObject::types):
* platform/chromium/ChromiumDataObject.h: Ditto.
* platform/chromium/ClipboardChromium.cpp: Ditto.
(WebCore::ClipboardChromium::types):
* platform/chromium/ClipboardChromium.h: Ditto.
* platform/efl/ClipboardEfl.cpp: Ditto.
(WebCore::ClipboardEfl::types):
* platform/efl/ClipboardEfl.h: Ditto.
* platform/gtk/ClipboardGtk.cpp: Ditto.
(WebCore::ClipboardGtk::types):
* platform/gtk/ClipboardGtk.h: Ditto.
* platform/mac/ClipboardMac.h: Ditto.
* platform/mac/ClipboardMac.mm: Ditto.
(WebCore::addHTMLClipboardTypesForCocoaType):
(WebCore::ClipboardMac::types):
* platform/qt/ClipboardQt.cpp: Ditto.
(WebCore::ClipboardQt::types):
* platform/qt/ClipboardQt.h: Ditto.
* platform/win/ClipboardWin.cpp: Ditto.
(WebCore::addMimeTypesForFormat):
(WebCore::ClipboardWin::types):
* platform/win/ClipboardWin.h: Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@142155 268f45cc-cd09-0410-ab3c-d52691b4dbfc

20 files changed:
Source/WebCore/ChangeLog
Source/WebCore/bindings/js/JSClipboardCustom.cpp
Source/WebCore/bindings/v8/custom/V8ClipboardCustom.cpp
Source/WebCore/dom/Clipboard.h
Source/WebCore/platform/blackberry/ClipboardBlackBerry.cpp
Source/WebCore/platform/blackberry/ClipboardBlackBerry.h
Source/WebCore/platform/chromium/ChromiumDataObject.cpp
Source/WebCore/platform/chromium/ChromiumDataObject.h
Source/WebCore/platform/chromium/ClipboardChromium.cpp
Source/WebCore/platform/chromium/ClipboardChromium.h
Source/WebCore/platform/efl/ClipboardEfl.cpp
Source/WebCore/platform/efl/ClipboardEfl.h
Source/WebCore/platform/gtk/ClipboardGtk.cpp
Source/WebCore/platform/gtk/ClipboardGtk.h
Source/WebCore/platform/mac/ClipboardMac.h
Source/WebCore/platform/mac/ClipboardMac.mm
Source/WebCore/platform/qt/ClipboardQt.cpp
Source/WebCore/platform/qt/ClipboardQt.h
Source/WebCore/platform/win/ClipboardWin.cpp
Source/WebCore/platform/win/ClipboardWin.h

index 5c3e8da..bfdb083 100644 (file)
@@ -1,3 +1,47 @@
+2013-02-07   Vineet Chaudhary  <rgf748@motorola.com>
+
+        Consider replacing return type of Clipboard::types() from ListHashSet<String> to Vector<String>
+        https://bugs.webkit.org/show_bug.cgi?id=82888
+
+        Reviewed by Kentaro Hara.
+
+        As part of removing custom bindings of types Array Clipboard::types() needs to return
+        Vector<String> than ListHashSet<String>
+
+        No new tests. Existing test should pass with this change as no behavoural changes.
+
+        * bindings/js/JSClipboardCustom.cpp: Replace data type from ListHashSet<> to Vector<>.
+        (WebCore::JSClipboard::types):
+        * bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
+        (WebCore::V8Clipboard::typesAccessorGetter): Ditto.
+        * dom/Clipboard.h: Ditto.
+        * platform/blackberry/ClipboardBlackBerry.cpp: Ditto.
+        (WebCore::ClipboardBlackBerry::types):
+        * platform/blackberry/ClipboardBlackBerry.h: Ditto.
+        * platform/chromium/ChromiumDataObject.cpp: Ditto.
+        (WebCore::ChromiumDataObject::types):
+        * platform/chromium/ChromiumDataObject.h: Ditto.
+        * platform/chromium/ClipboardChromium.cpp: Ditto.
+        (WebCore::ClipboardChromium::types):
+        * platform/chromium/ClipboardChromium.h: Ditto.
+        * platform/efl/ClipboardEfl.cpp: Ditto.
+        (WebCore::ClipboardEfl::types):
+        * platform/efl/ClipboardEfl.h: Ditto.
+        * platform/gtk/ClipboardGtk.cpp: Ditto.
+        (WebCore::ClipboardGtk::types):
+        * platform/gtk/ClipboardGtk.h: Ditto.
+        * platform/mac/ClipboardMac.h: Ditto.
+        * platform/mac/ClipboardMac.mm: Ditto.
+        (WebCore::addHTMLClipboardTypesForCocoaType):
+        (WebCore::ClipboardMac::types):
+        * platform/qt/ClipboardQt.cpp: Ditto.
+        (WebCore::ClipboardQt::types):
+        * platform/qt/ClipboardQt.h: Ditto.
+        * platform/win/ClipboardWin.cpp: Ditto.
+        (WebCore::addMimeTypesForFormat):
+        (WebCore::ClipboardWin::types):
+        * platform/win/ClipboardWin.h: Ditto.
+
 2013-02-07  Kentaro Hara  <haraken@chromium.org>
 
         [V8] StringCache::m_stringCache should be HashMap<StringImpl*, Persistent<String>>
index e36c603..f392217 100644 (file)
@@ -51,13 +51,13 @@ JSValue JSClipboard::types(ExecState* exec) const
 {
     Clipboard* clipboard = impl();
 
-    ListHashSet<String> types = clipboard->types();
+    Vector<String> types = clipboard->types();
     if (types.isEmpty())
         return jsNull();
 
     MarkedArgumentBuffer list;
-    ListHashSet<String>::const_iterator end = types.end();
-    for (ListHashSet<String>::const_iterator it = types.begin(); it != end; ++it)
+    Vector<String>::const_iterator end = types.end();
+    for (Vector<String>::const_iterator it = types.begin(); it != end; ++it)
         list.append(jsStringWithCache(exec, *it));
     return constructArray(exec, 0, globalObject(), list);
 }
index f34a326..245c67e 100644 (file)
@@ -47,14 +47,14 @@ v8::Handle<v8::Value> V8Clipboard::typesAccessorGetter(v8::Local<v8::String> nam
 {
     Clipboard* clipboard = V8Clipboard::toNative(info.Holder());
 
-    ListHashSet<String> types = clipboard->types();
+    Vector<String> types = clipboard->types();
     if (types.isEmpty())
         return v8Null(info.GetIsolate());
 
     v8::Local<v8::Array> result = v8::Array::New(types.size());
-    ListHashSet<String>::const_iterator end = types.end();
+    Vector<String>::const_iterator end = types.end();
     int index = 0;
-    for (ListHashSet<String>::const_iterator it = types.begin(); it != end; ++it, ++index)
+    for (Vector<String>::const_iterator it = types.begin(); it != end; ++it, ++index)
         result->Set(v8Integer(index, info.GetIsolate()), v8String(*it, info.GetIsolate()));
 
     return result;
index d11b652..204cb1a 100644 (file)
@@ -66,7 +66,7 @@ namespace WebCore {
         virtual bool setData(const String& type, const String& data) = 0;
     
         // extensions beyond IE's API
-        virtual ListHashSet<String> types() const = 0;
+        virtual Vector<String> types() const = 0;
         virtual PassRefPtr<FileList> files() const = 0;
 
         IntPoint dragLocation() const { return m_dragLoc; }
index ade22ef..7257f52 100644 (file)
@@ -78,16 +78,16 @@ bool ClipboardBlackBerry::setData(const String& type, const String& text)
     return true;
 }
 
-ListHashSet<String> ClipboardBlackBerry::types() const
+Vector<String> ClipboardBlackBerry::types() const
 {
     if (policy() != ClipboardReadable && policy() != ClipboardTypesReadable)
-        return ListHashSet<String>();
+        return Vector<String>();
 
     // We use hardcoded list here since there seems to be no API to get the list.
-    ListHashSet<String> ret;
-    ret.add("text/plain");
-    ret.add("text/html");
-    ret.add("text/url");
+    Vector<String> ret;
+    ret.append(ASCIILiteral("text/plain"));
+    ret.append(ASCIILiteral("text/html"));
+    ret.append(ASCIILiteral("text/url"));
     return ret;
 }
 
index 37da514..c8d8097 100644 (file)
@@ -39,7 +39,7 @@ public:
     bool setData(const String& type, const String& data);
 
     // extensions beyond IE's API
-    virtual ListHashSet<String> types() const;
+    virtual Vector<String> types() const;
     virtual PassRefPtr<FileList> files() const;
     virtual DragImageRef createDragImage(IntPoint&) const;
     virtual void declareAndWriteDragImage(Element*, const KURL&, const String& title, Frame*);
index 9b11f23..4b95bac 100644 (file)
@@ -126,20 +126,20 @@ void ChromiumDataObject::clearAllExceptFiles()
     }
 }
 
-ListHashSet<String> ChromiumDataObject::types() const
+Vector<String> ChromiumDataObject::types() const
 {
-    ListHashSet<String> results;
+    Vector<String> results;
     bool containsFiles = false;
     for (size_t i = 0; i < m_itemList.size(); ++i) {
         if (m_itemList[i]->kind() == DataTransferItem::kindString)
-            results.add(m_itemList[i]->type());
+            results.append(m_itemList[i]->type());
         else if (m_itemList[i]->kind() == DataTransferItem::kindFile)
             containsFiles = true;
         else
             ASSERT_NOT_REACHED();
     }
     if (containsFiles)
-        results.add(mimeTypeFiles);
+        results.append(ASCIILiteral(mimeTypeFiles));
     return results;
 }
 
index 2551c45..123fe77 100644 (file)
@@ -69,7 +69,7 @@ public:
     void clearData(const String& type);
     void clearAllExceptFiles();
 
-    ListHashSet<String> types() const;
+    Vector<String> types() const;
     String getData(const String& type) const;
     bool setData(const String& type, const String& data);
 
index fc37278..ae85c45 100644 (file)
@@ -275,10 +275,10 @@ bool ClipboardChromium::setData(const String& type, const String& data)
 }
 
 // extensions beyond IE's API
-ListHashSet<String> ClipboardChromium::types() const
+Vector<String> ClipboardChromium::types() const
 {
     if (policy() != ClipboardReadable && policy() != ClipboardTypesReadable)
-        return ListHashSet<String>();
+        return Vector<String>();
 
     return m_dataObject->types();
 }
index e41838d..841aae6 100644 (file)
@@ -84,7 +84,7 @@ namespace WebCore {
         bool platformClipboardChanged() const;
 
         // extensions beyond IE's API
-        virtual ListHashSet<String> types() const;
+        virtual Vector<String> types() const;
         virtual PassRefPtr<FileList> files() const;
 
         void setDragImage(CachedImage*, const IntPoint&);
index dd4ac20..0a68d40 100644 (file)
@@ -76,10 +76,10 @@ bool ClipboardEfl::setData(const String&, const String&)
     return false;
 }
 
-ListHashSet<String> ClipboardEfl::types() const
+Vector<String> ClipboardEfl::types() const
 {
     notImplemented();
-    return ListHashSet<String>();
+    return Vector<String>();
 }
 
 PassRefPtr<FileList> ClipboardEfl::files() const
index 904eb52..b7b3287 100644 (file)
@@ -39,7 +39,7 @@ public:
     String getData(const String&) const;
     bool setData(const String&, const String&);
 
-    ListHashSet<String> types() const;
+    Vector<String> types() const;
     virtual PassRefPtr<FileList> files() const;
 
     IntPoint dragLocation() const;
index 263b6cf..dad7823 100644 (file)
@@ -188,31 +188,31 @@ bool ClipboardGtk::setData(const String& typeString, const String& data)
     return success;
 }
 
-ListHashSet<String> ClipboardGtk::types() const
+Vector<String> ClipboardGtk::types() const
 {
     if (policy() != ClipboardReadable && policy() != ClipboardTypesReadable)
-        return ListHashSet<String>();
+        return Vector<String>();
 
     if (m_clipboard)
         PasteboardHelper::defaultPasteboardHelper()->getClipboardContents(m_clipboard);
 
-    ListHashSet<String> types;
+    Vector<String> types;
     if (m_dataObject->hasText()) {
-        types.add("text/plain");
-        types.add("Text");
-        types.add("text");
+        types.append(ASCIILiteral("text/plain"));
+        types.append(ASCIILiteral("Text"));
+        types.append(ASCIILiteral("text"));
     }
 
     if (m_dataObject->hasMarkup())
-        types.add("text/html");
+        types.append(ASCIILiteral("text/html"));
 
     if (m_dataObject->hasURIList()) {
-        types.add("text/uri-list");
-        types.add("URL");
+        types.append(ASCIILiteral("text/uri-list"));
+        types.append(ASCIILiteral("URL"));
     }
 
     if (m_dataObject->hasFilenames())
-        types.add("Files");
+        types.append(ASCIILiteral("Files"));
 
     return types;
 }
index ee9d63c..7a6117d 100644 (file)
@@ -57,7 +57,7 @@ namespace WebCore {
         String getData(const String&) const;
         bool setData(const String&, const String&);
 
-        virtual ListHashSet<String> types() const;
+        virtual Vector<String> types() const;
         virtual PassRefPtr<FileList> files() const;
 
         void setDragImage(CachedImage*, const IntPoint&);
index 305a92f..72e6a36 100644 (file)
@@ -62,7 +62,7 @@ public:
     virtual bool hasData();
     
     // extensions beyond IE's API
-    virtual ListHashSet<String> types() const;
+    virtual Vector<String> types() const;
     virtual PassRefPtr<FileList> files() const;
 
     void setDragImage(CachedImage*, const IntPoint&);
index 0107732..f54e579 100644 (file)
@@ -118,15 +118,15 @@ static String utiTypeFromCocoaType(const String& type)
     return String();
 }
 
-static void addHTMLClipboardTypesForCocoaType(ListHashSet<String>& resultTypes, const String& cocoaType, const String& pasteboardName)
+static void addHTMLClipboardTypesForCocoaType(Vector<String>& resultTypes, const String& cocoaType, const String& pasteboardName)
 {
     // UTI may not do these right, so make sure we get the right, predictable result
     if (cocoaType == String(NSStringPboardType)) {
-        resultTypes.add("text/plain");
+        resultTypes.append(ASCIILiteral("text/plain"));
         return;
     }
     if (cocoaType == String(NSURLPboardType)) {
-        resultTypes.add("text/uri-list");
+        resultTypes.append(ASCIILiteral("text/uri-list"));
         return;
     }
     if (cocoaType == String(NSFilenamesPboardType)) {
@@ -138,18 +138,18 @@ static void addHTMLClipboardTypesForCocoaType(ListHashSet<String>& resultTypes,
         if (!fileList.isEmpty()) {
             // It is unknown if NSFilenamesPboardType always implies NSURLPboardType in Cocoa,
             // but NSFilenamesPboardType should imply both 'text/uri-list' and 'Files'
-            resultTypes.add("text/uri-list");
-            resultTypes.add("Files");
+            resultTypes.append(ASCIILiteral("text/uri-list"));
+            resultTypes.append(ASCIILiteral("Files"));
         }
         return;
     }
     String utiType = utiTypeFromCocoaType(cocoaType);
     if (!utiType.isEmpty()) {
-        resultTypes.add(utiType);
+        resultTypes.append(utiType);
         return;
     }
     // No mapping, just pass the whole string though
-    resultTypes.add(cocoaType);
+    resultTypes.append(cocoaType);
 }
 
 void ClipboardMac::clearData(const String& type)
@@ -280,10 +280,10 @@ bool ClipboardMac::setData(const String &type, const String &data)
     return false;
 }
 
-ListHashSet<String> ClipboardMac::types() const
+Vector<String> ClipboardMac::types() const
 {
     if (policy() != ClipboardReadable && policy() != ClipboardTypesReadable)
-        return ListHashSet<String>();
+        return Vector<String>();
 
     Vector<String> types;
     platformStrategies()->pasteboardStrategy()->getTypes(types, m_pasteboardName);
@@ -291,9 +291,9 @@ ListHashSet<String> ClipboardMac::types() const
     // Enforce changeCount ourselves for security.  We check after reading instead of before to be
     // sure it doesn't change between our testing the change count and accessing the data.
     if (m_changeCount != platformStrategies()->pasteboardStrategy()->changeCount(m_pasteboardName))
-        return ListHashSet<String>();
+        return Vector<String>();
 
-    ListHashSet<String> result;
+    Vector<String> result;
     // FIXME: This loop could be split into two stages. One which adds all the HTML5 specified types
     // and a second which adds all the extra types from the cocoa clipboard (which is Mac-only behavior).
     for (size_t i = 0; i < types.size(); i++) {
index 71c91cb..38ad15f 100644 (file)
@@ -182,16 +182,16 @@ bool ClipboardQt::setData(const String& type, const String& data)
 }
 
 // extensions beyond IE's API
-ListHashSet<String> ClipboardQt::types() const
+Vector<String> ClipboardQt::types() const
 {
     if (policy() != ClipboardReadable && policy() != ClipboardTypesReadable)
-        return ListHashSet<String>();
+        return Vector<String>();
 
     ASSERT(m_readableData);
-    ListHashSet<String> result;
+    Vector<String> result;
     QStringList formats = m_readableData->formats();
     for (int i = 0; i < formats.count(); ++i)
-        result.add(formats.at(i));
+        result.append(formats.at(i));
     return result;
 }
 
index b81c148..4a9952a 100644 (file)
@@ -57,7 +57,7 @@ public:
     bool setData(const String& type, const String& data);
 
     // extensions beyond IE's API
-    virtual ListHashSet<String> types() const;
+    virtual Vector<String> types() const;
     virtual PassRefPtr<FileList> files() const;
 
     void setDragImage(CachedImage*, const IntPoint&);
index c2f9964..9c68a29 100644 (file)
@@ -484,24 +484,24 @@ bool ClipboardWin::setData(const String& type, const String& data)
     return false;
 }
 
-static void addMimeTypesForFormat(ListHashSet<String>& results, const FORMATETC& format)
+static void addMimeTypesForFormat(Vector<String>& results, const FORMATETC& format)
 {
     // URL and Text are provided for compatibility with IE's model
     if (format.cfFormat == urlFormat()->cfFormat || format.cfFormat == urlWFormat()->cfFormat) {
-        results.add("URL");
-        results.add("text/uri-list");
+        results.append(ASCIILiteral("URL"));
+        results.append(ASCIILiteral("text/uri-list"));
     }
 
     if (format.cfFormat == plainTextWFormat()->cfFormat || format.cfFormat == plainTextFormat()->cfFormat) {
-        results.add("Text");
-        results.add("text/plain");
+        results.append(ASCIILiteral("Text"));
+        results.append(ASCIILiteral("text/plain"));
     }
 }
 
 // extensions beyond IE's API
-ListHashSet<String> ClipboardWin::types() const
+Vector<String> ClipboardWin::types() const
 { 
-    ListHashSet<String> results;
+    Vector<String> results;
     if (policy() != ClipboardReadable && policy() != ClipboardTypesReadable)
         return results;
 
index 114bd40..8db1862 100644 (file)
@@ -64,7 +64,7 @@ public:
     bool setData(const String& type, const String& data);
 
     // extensions beyond IE's API
-    virtual ListHashSet<String> types() const;
+    virtual Vector<String> types() const;
     virtual PassRefPtr<FileList> files() const;
 
     void setDragImage(CachedImage*, const IntPoint&);