[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75

dbates at webkit.org dbates at webkit.org
Thu Oct 29 20:46:20 UTC 2009


The following commit has been merged in the webkit-1.1 branch:
commit 82be77f2f90ae8a673768a031e15e3ab83952803
Author: dbates at webkit.org <dbates at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Oct 16 21:33:58 2009 +0000

    2009-10-16  Daniel Bates  <dbates at webkit.org>
    
            Reviewed by Darin Adler.
    
            https://bugs.webkit.org/show_bug.cgi?id=30266
    
            Tests that the JavaScript array event.dataTransfer.types can be accessed
            within an ondrop handler without causing a crash.
    
            Although this issue has been resolved as of nightly r49550 we should add a
            test case so that we can prevent a regression of this issue.
    
            * fast/events/drag-and-drop-dataTransfer-types-nocrash-expected.txt: Added.
            * fast/events/drag-and-drop-dataTransfer-types-nocrash.html: Added.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49701 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 2730669..b2b1875 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,18 @@
+2009-10-16  Daniel Bates  <dbates at webkit.org>
+
+        Reviewed by Darin Adler.
+
+        https://bugs.webkit.org/show_bug.cgi?id=30266
+        
+        Tests that the JavaScript array event.dataTransfer.types can be accessed 
+        within an ondrop handler without causing a crash.
+        
+        Although this issue has been resolved as of nightly r49550 we should add a
+        test case so that we can prevent a regression of this issue.
+
+        * fast/events/drag-and-drop-dataTransfer-types-nocrash-expected.txt: Added.
+        * fast/events/drag-and-drop-dataTransfer-types-nocrash.html: Added.
+
 2009-10-16  Adam Barth  <abarth at webkit.org>
 
         Reviewed by Eric Seidel.
diff --git a/LayoutTests/fast/events/drag-and-drop-dataTransfer-types-nocrash-expected.txt b/LayoutTests/fast/events/drag-and-drop-dataTransfer-types-nocrash-expected.txt
new file mode 100644
index 0000000..6b5a134
--- /dev/null
+++ b/LayoutTests/fast/events/drag-and-drop-dataTransfer-types-nocrash-expected.txt
@@ -0,0 +1,9 @@
+This test checks that on a successful drop we can access event.dataTransfer.types without crashing.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS event.dataTransfer.types[0] is "text"
+
+TEST COMPLETE
+
diff --git a/LayoutTests/fast/events/drag-and-drop-dataTransfer-types-nocrash.html b/LayoutTests/fast/events/drag-and-drop-dataTransfer-types-nocrash.html
new file mode 100644
index 0000000..034b829
--- /dev/null
+++ b/LayoutTests/fast/events/drag-and-drop-dataTransfer-types-nocrash.html
@@ -0,0 +1,132 @@
+<html>
+<head>
+<link rel="stylesheet" href="../js/resources/js-test-style.css">
+<script src="../js/resources/js-test-pre.js"></script>
+<style>
+#dropTarget, #dragMe { text-align: center; display: table-cell; vertical-align: middle }
+#dropTarget {width: 256px; height: 256px; border: 1px dashed}
+#dragMe {-webkit-user-drag: element; -webkit-user-select: none; background: #ff0000; width: 64px; height: 64px; color: white}
+</style>
+<script>
+    var dragMe;
+    var dropTarget;
+    var consoleElm;
+    var event;
+    
+    var FORMAT_TYPE = 'text';
+    var ALLOWED_EFFECT = 'copy';
+    var DROP_EFFECT = 'copy';
+    
+    window.onload = function()
+    {
+        dragMe = document.getElementById("dragMe");
+        dropTarget = document.getElementById("dropTarget");
+        consoleElm = document.getElementById("console");
+        
+        if (!dragMe || !dropTarget || !consoleElm)
+            return;
+        
+        dragMe.ondragstart = dragStart;
+        dragMe.ondragend = dragEnd;
+        
+        dropTarget.ondragenter = dragEntered;
+        dropTarget.ondragover = dragOver;
+        dropTarget.ondrop = drop;
+        
+        runTest();
+    }
+    
+    function dragStart(e)
+    {
+        event = e;
+        e.dataTransfer.effectAllowed = ALLOWED_EFFECT;
+        e.dataTransfer.setData(FORMAT_TYPE, e.target.textContent);
+    }
+    
+    function dragEnd(e)
+    {
+        return;
+    }
+    
+    function dragEntered(e)
+    {
+        dragEnteredAndUpdated(e);
+    }
+    
+    function dragOver(e)
+    {
+        dragEnteredAndUpdated(e);
+    }
+    
+    function dragEnteredAndUpdated(e)
+    {
+        event = e;
+        e.dataTransfer.dropEffect = DROP_EFFECT;
+        cancelDrag(e);
+    }
+    
+    function drop(e)
+    {
+        checkFormatType(e);
+        cancelDrag(e);
+    }
+    
+    function cancelDrag(e)
+    {
+        if (e.preventDefault)
+            e.preventDefault();
+        else {
+            // Assume this script is executing within Internet Explorer
+            e.returnValue = false;
+        }
+    }
+    
+    function checkFormatType(e)
+    {
+        event = e;
+        var formatTypes = e.dataTransfer.types; // This line causes the crash.
+        shouldBeEqualToString('event.dataTransfer.types[0]', FORMAT_TYPE);
+    }
+
+    function runTest()
+    {
+        if (!window.eventSender)
+            return;
+            
+        if (window.layoutTestController)
+            layoutTestController.dumpAsText();
+            
+        var startX = dragMe.offsetLeft + 10;
+        var startY = dragMe.offsetTop + dragMe.offsetHeight / 2;
+        var endX = dropTarget.offsetLeft + 10;
+        var endY = dropTarget.offsetTop + dropTarget.offsetHeight / 2;
+        
+        eventSender.mouseMoveTo(startX, startY);
+        eventSender.mouseDown();
+        eventSender.leapForward(100);
+        eventSender.mouseMoveTo(endX, endY);
+        eventSender.mouseUp();
+        
+        var testContainer = document.getElementById("test-container");
+        if (testContainer)
+            document.body.removeChild(testContainer);
+        debug('<br /><span class="pass">TEST COMPLETE</span>');
+    }
+</script>
+</head>
+<body>
+    <p id="description"></p>
+    <div id="test-container">
+        <div id="dropTarget">Drop the red square onto me.</div>
+        <hr/>
+        <p>Items that can be dragged to the drop target:</p>
+        <div id="dragMe" draggable="true">Square</div>
+        <hr/>
+    </div>
+    <div id="console"></div>
+    <script>
+        description("This test checks that on a successful drop we can access <code>event.dataTransfer.types</code> without crashing.");
+        var successfullyParsed = true;
+    </script>
+</body>
+</html>

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list