Title: [109280] trunk
Revision
109280
Author
dch...@chromium.org
Date
2012-02-29 16:14:42 -0800 (Wed, 29 Feb 2012)

Log Message

[chromium] REGRESSION: Cannot drag a file out
https://bugs.webkit.org/show_bug.cgi?id=79817

Reviewed by Ryosuke Niwa.

Source/WebCore:

Temporary fix for file drag out. This change won't be needed once DataTransferItemList
support is better implemented.

Test: platform/chromium/fast/events/drag-downloadURL.html

* platform/chromium/ChromiumDataObject.cpp:
(WebCore::ChromiumDataObject::types):

LayoutTests:

* platform/chromium/fast/events/drag-downloadURL-expected.txt: Added.
* platform/chromium/fast/events/drag-downloadURL.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (109279 => 109280)


--- trunk/LayoutTests/ChangeLog	2012-03-01 00:11:45 UTC (rev 109279)
+++ trunk/LayoutTests/ChangeLog	2012-03-01 00:14:42 UTC (rev 109280)
@@ -1,3 +1,13 @@
+2012-02-29  Daniel Cheng  <dch...@chromium.org>
+
+        [chromium] REGRESSION: Cannot drag a file out
+        https://bugs.webkit.org/show_bug.cgi?id=79817
+
+        Reviewed by Ryosuke Niwa.
+
+        * platform/chromium/fast/events/drag-downloadURL-expected.txt: Added.
+        * platform/chromium/fast/events/drag-downloadURL.html: Added.
+
 2012-02-29  Gavin Barraclough  <barraclo...@apple.com>
 
         'source' property of RegExp instance cannot be ""

Added: trunk/LayoutTests/platform/chromium/fast/events/drag-downloadURL-expected.txt (0 => 109280)


--- trunk/LayoutTests/platform/chromium/fast/events/drag-downloadURL-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/chromium/fast/events/drag-downloadURL-expected.txt	2012-03-01 00:14:42 UTC (rev 109280)
@@ -0,0 +1,6 @@
+To manually test, drag 'Drag Me' to 'Drop Here' and drop. The word 'SUCCESS' should appear.
+
+Drag Me
+Drop Here
+SUCCESS
+
Property changes on: trunk/LayoutTests/platform/chromium/fast/events/drag-downloadURL-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/platform/chromium/fast/events/drag-downloadURL.html (0 => 109280)


--- trunk/LayoutTests/platform/chromium/fast/events/drag-downloadURL.html	                        (rev 0)
+++ trunk/LayoutTests/platform/chromium/fast/events/drag-downloadURL.html	2012-03-01 00:14:42 UTC (rev 109280)
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+#drag {
+    border: 1px solid black;
+    height: 200px;
+    width: 200px;
+}
+#drop {
+    border: 1px solid black;
+    height: 200px;
+    width: 200px;
+}
+</style>
+<script>
+function log(str)
+{
+    var result = document.getElementById('result');
+    result.appendChild(document.createTextNode(str));
+    result.appendChild(document.createElement('br'));
+}
+function dragstart(event) {
+    event.dataTransfer.setData('DownloadURL', 'http://google.com/');
+}
+function dragenter(event) {
+    event.preventDefault();
+}
+function dragover(event) {
+    event.preventDefault();
+}
+function drop(event) {
+    var failed = false;
+    if (event.dataTransfer.types.indexOf('downloadurl') < 0) {
+        log('types: ' + event.dataTransfer.types);
+        failed = true;
+    }
+    if (event.dataTransfer.getData('DownloadURL') != 'http://google.com/') {
+        log('getData: ' + event.dataTransfer.getData('DownloadURL'));
+        failed = true;
+    }
+    log(failed ? 'FAILURE' : 'SUCCESS');
+    if (window.layoutTestController)
+        layoutTestController.notifyDone();
+}
+window._onload_ = function()
+{
+    if (!window.layoutTestController)
+        return;
+    layoutTestController.dumpAsText();
+    layoutTestController.waitUntilDone();
+
+    var dragElement = document.getElementById('drag');
+    eventSender.mouseMoveTo(dragElement.offsetLeft + dragElement.offsetWidth / 2,
+                            dragElement.offsetTop + dragElement.offsetHeight / 2);
+    eventSender.mouseDown();
+    eventSender.leapForward(100);
+    var dropElement = document.getElementById('drop');
+    eventSender.mouseMoveTo(dropElement.offsetLeft + dropElement.offsetWidth / 2,
+                            dropElement.offsetTop + dropElement.offsetHeight / 2);
+    eventSender.mouseUp();
+}
+</script>
+</head>
+<body>
+<p>To manually test, drag 'Drag Me' to 'Drop Here' and drop. The word 'SUCCESS' should appear.
+<div draggable="true" id="drag" _ondragstart_="dragstart(event)">Drag Me</div>
+<div id="drop" _ondragenter_="dragenter(event)" _ondragover_="dragover(event)" _ondrop_="drop(event)">Drop Here</div>
+</div>
+<div id="result"></div>
+</body>
+</html>
Property changes on: trunk/LayoutTests/platform/chromium/fast/events/drag-downloadURL.html
___________________________________________________________________

Added: svn:eol-style

Modified: trunk/Source/WebCore/ChangeLog (109279 => 109280)


--- trunk/Source/WebCore/ChangeLog	2012-03-01 00:11:45 UTC (rev 109279)
+++ trunk/Source/WebCore/ChangeLog	2012-03-01 00:14:42 UTC (rev 109280)
@@ -1,3 +1,18 @@
+2012-02-29  Daniel Cheng  <dch...@chromium.org>
+
+        [chromium] REGRESSION: Cannot drag a file out
+        https://bugs.webkit.org/show_bug.cgi?id=79817
+
+        Reviewed by Ryosuke Niwa.
+
+        Temporary fix for file drag out. This change won't be needed once DataTransferItemList
+        support is better implemented.
+
+        Test: platform/chromium/fast/events/drag-downloadURL.html
+
+        * platform/chromium/ChromiumDataObject.cpp:
+        (WebCore::ChromiumDataObject::types):
+
 2012-02-29  Luke Macpherson   <macpher...@chromium.org>
 
         Clean up CSSPrimitiveValue::computeLengthDouble().

Modified: trunk/Source/WebCore/platform/chromium/ChromiumDataObject.cpp (109279 => 109280)


--- trunk/Source/WebCore/platform/chromium/ChromiumDataObject.cpp	2012-03-01 00:11:45 UTC (rev 109279)
+++ trunk/Source/WebCore/platform/chromium/ChromiumDataObject.cpp	2012-03-01 00:14:42 UTC (rev 109280)
@@ -122,6 +122,9 @@
     if (!m_textHtml.isEmpty())
         results.add(mimeTypeTextHTML);
 
+    if (!m_downloadMetadata.isEmpty())
+        results.add(mimeTypeDownloadURL);
+
     for (HashMap<String, String>::const_iterator::Keys it = m_customData.begin().keys();
          it != m_customData.end().keys(); ++it) {
         results.add(*it);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to