[Mac] Remove call to ClipboardMac::create from EventHandler::createDraggingClipboard
https://bugs.webkit.org/show_bug.cgi?id=116161

Reviewed by Andreas Kling.

* dom/Clipboard.h: Added createForDragAndDrop function.

* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::createDraggingClipboard): Changed to use new Clipboard function
instead of ClipboardMac::create.

* platform/mac/ClipboardMac.mm:
(WebCore::Clipboard::createForDragAndDrop): Added. For now it does exactly what the
EventHandler::createDraggingClipboard function did, soon to be refactored better.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150124 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 223ac19..8161b43 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,5 +1,22 @@
 2013-05-15  Darin Adler  <darin@apple.com>
 
+        [Mac] Remove call to ClipboardMac::create from EventHandler::createDraggingClipboard
+        https://bugs.webkit.org/show_bug.cgi?id=116161
+
+        Reviewed by Andreas Kling.
+
+        * dom/Clipboard.h: Added createForDragAndDrop function.
+
+        * page/mac/EventHandlerMac.mm:
+        (WebCore::EventHandler::createDraggingClipboard): Changed to use new Clipboard function
+        instead of ClipboardMac::create.
+
+        * platform/mac/ClipboardMac.mm:
+        (WebCore::Clipboard::createForDragAndDrop): Added. For now it does exactly what the
+        EventHandler::createDraggingClipboard function did, soon to be refactored better.
+
+2013-05-15  Darin Adler  <darin@apple.com>
+
         [Mac] Thin out the ClipboardMac class and header file to prepare for deleting them
         https://bugs.webkit.org/show_bug.cgi?id=116159
 
diff --git a/Source/WebCore/dom/Clipboard.h b/Source/WebCore/dom/Clipboard.h
index c8dcf3f..5f63e58 100644
--- a/Source/WebCore/dom/Clipboard.h
+++ b/Source/WebCore/dom/Clipboard.h
@@ -132,6 +132,8 @@
 #endif
 
 #if !USE(LEGACY_STYLE_ABSTRACT_CLIPBOARD_CLASS) && ENABLE(DRAG_SUPPORT)
+        static PassRefPtr<Clipboard> createForDragAndDrop();
+
         void updateDragImage();
 #endif
 
diff --git a/Source/WebCore/page/mac/EventHandlerMac.mm b/Source/WebCore/page/mac/EventHandlerMac.mm
index e51d0df..2c56b88 100644
--- a/Source/WebCore/page/mac/EventHandlerMac.mm
+++ b/Source/WebCore/page/mac/EventHandlerMac.mm
@@ -674,10 +674,10 @@
 PassRefPtr<Clipboard> EventHandler::createDraggingClipboard() const
 {
     // Must be done before ondragstart adds types and data to the pboard,
-    // also done for security, as it erases data from the last drag
-    Pasteboard pasteboard(NSDragPboard);
-    pasteboard.clear();
-    return ClipboardMac::create(Clipboard::DragAndDrop, String(NSDragPboard), ClipboardWritable, ClipboardMac::DragAndDropData, m_frame);
+    // also done for security, as it erases data from the last drag.
+    OwnPtr<Pasteboard> pasteboard = Pasteboard::create(NSDragPboard);
+    pasteboard->clear();
+    return Clipboard::createForDragAndDrop();
 }
 
 #endif
diff --git a/Source/WebCore/platform/mac/ClipboardMac.mm b/Source/WebCore/platform/mac/ClipboardMac.mm
index 5b0ced0..b1d16b9 100644
--- a/Source/WebCore/platform/mac/ClipboardMac.mm
+++ b/Source/WebCore/platform/mac/ClipboardMac.mm
@@ -46,6 +46,11 @@
 }
 #endif
 
+PassRefPtr<Clipboard> Clipboard::createForDragAndDrop()
+{
+    return ClipboardMac::create(Clipboard::DragAndDrop, NSDragPboard, ClipboardWritable, ClipboardMac::DragAndDropData, 0);
+}
+
 ClipboardMac::ClipboardMac(ClipboardType clipboardType, const String& pasteboardName, ClipboardAccessPolicy policy, ClipboardContents clipboardContents)
     : Clipboard(policy, clipboardType, Pasteboard::create(pasteboardName), clipboardContents == DragAndDropFiles)
 {