LayoutTests:
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 3 Aug 2006 15:34:13 +0000 (15:34 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 3 Aug 2006 15:34:13 +0000 (15:34 +0000)
        Reviewed by Adele and Darin.

        - test for http://bugzilla.opendarwin.org/show_bug.cgi?id=10177
          REGRESSION: Successfully dragging text into a disabled field

        * fast/forms/textfield-drag-into-disabled-expected.checksum: Added.
        * fast/forms/textfield-drag-into-disabled-expected.png: Added.
        * fast/forms/textfield-drag-into-disabled-expected.txt: Added.
        * fast/forms/textfield-drag-into-disabled.html: Added.

        * fast/forms/input-disabled-color-expected.txt: Updated.

WebCore:

        Reviewed by Adele and Darin.

        - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=10177
          REGRESSION: Successfully dragging text into a disabled field

        Test: fast/forms/textfield-drag-into-disabled.html

        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::createDivStyle): Changed to set -webkit-user-modify
        to read-only on the inner div if the control is disabled.
        (WebCore::RenderTextControl::updateFromElement): Ditto.

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

LayoutTests/ChangeLog
LayoutTests/fast/forms/input-disabled-color-expected.txt
LayoutTests/fast/forms/textfield-drag-into-disabled-expected.checksum [new file with mode: 0644]
LayoutTests/fast/forms/textfield-drag-into-disabled-expected.png [new file with mode: 0644]
LayoutTests/fast/forms/textfield-drag-into-disabled-expected.txt [new file with mode: 0644]
LayoutTests/fast/forms/textfield-drag-into-disabled.html [new file with mode: 0644]
WebCore/ChangeLog
WebCore/rendering/RenderTextControl.cpp

index 98c69bdea6f24054d943844e755001906289684d..916d9a0142385449eba150fb844bdfb367591e2c 100644 (file)
@@ -1,3 +1,17 @@
+2006-08-03  Mitz Pettel  <opendarwin.org@mitzpettel.com>
+
+        Reviewed by Adele and Darin.
+
+        - test for http://bugzilla.opendarwin.org/show_bug.cgi?id=10177
+          REGRESSION: Successfully dragging text into a disabled field
+
+        * fast/forms/textfield-drag-into-disabled-expected.checksum: Added.
+        * fast/forms/textfield-drag-into-disabled-expected.png: Added.
+        * fast/forms/textfield-drag-into-disabled-expected.txt: Added.
+        * fast/forms/textfield-drag-into-disabled.html: Added.
+
+        * fast/forms/input-disabled-color-expected.txt: Updated.
+
 2006-08-03  Jonathan Johnsson  <jonathanjohnsson@gmail.com>
 
         Reviewed by Darin.
index 208a8a932483250e3934bb636252244748e8224f..3b52e81c8f30f1b992ed5e1dcd4afed3d58b1d28 100644 (file)
@@ -61,7 +61,7 @@ layer at (0,0) size 800x600
         text run at (152,250) width 4: " "
       RenderTextField {INPUT} at (158,250) size 148x19 [color=#808080] [bgcolor=#FF0000] [border: (2px inset #808080)]
       RenderBR {BR} at (308,264) size 0x0
-layer at (13,31) size 142x13 scrollWidth 357
+layer at (13,31) size 142x13 scrollWidth 356
   RenderBlock {DIV} at (3,3) size 142x13 [color=#545454]
     RenderText {#text} at (1,0) size 355x13
       text run at (1,0) width 355: "The text in this disabled field should displayed as dimmed or grey"
@@ -69,7 +69,7 @@ layer at (169,31) size 142x13 scrollWidth 158
   RenderBlock {DIV} at (3,3) size 142x13
     RenderText {#text} at (1,0) size 156x13
       text run at (1,0) width 156: "This text field is not disabled"
-layer at (13,54) size 142x13 scrollWidth 357
+layer at (13,54) size 142x13 scrollWidth 356
   RenderBlock {DIV} at (3,3) size 142x13
     RenderText {#text} at (1,0) size 355x13
       text run at (1,0) width 355: "The text in this disabled field should displayed as dimmed or grey"
@@ -77,7 +77,7 @@ layer at (169,54) size 142x13 scrollWidth 158
   RenderBlock {DIV} at (3,3) size 142x13
     RenderText {#text} at (1,0) size 156x13
       text run at (1,0) width 156: "This text field is not disabled"
-layer at (13,77) size 142x13 scrollWidth 357
+layer at (13,77) size 142x13 scrollWidth 356
   RenderBlock {DIV} at (3,3) size 142x13 [color=#545454]
     RenderText {#text} at (1,0) size 355x13
       text run at (1,0) width 355: "The text in this disabled field should displayed as dimmed or grey"
@@ -85,7 +85,7 @@ layer at (169,77) size 142x13 scrollWidth 158
   RenderBlock {DIV} at (3,3) size 142x13
     RenderText {#text} at (1,0) size 156x13
       text run at (1,0) width 156: "This text field is not disabled"
-layer at (13,100) size 142x13 scrollWidth 357
+layer at (13,100) size 142x13 scrollWidth 356
   RenderBlock {DIV} at (3,3) size 142x13 [color=#AB0000]
     RenderText {#text} at (1,0) size 355x13
       text run at (1,0) width 355: "The text in this disabled field should displayed as dimmed or grey"
@@ -93,7 +93,7 @@ layer at (169,100) size 142x13 scrollWidth 158
   RenderBlock {DIV} at (3,3) size 142x13
     RenderText {#text} at (1,0) size 156x13
       text run at (1,0) width 156: "This text field is not disabled"
-layer at (13,123) size 142x13 scrollWidth 357
+layer at (13,123) size 142x13 scrollWidth 356
   RenderBlock {DIV} at (3,3) size 142x13
     RenderText {#text} at (1,0) size 355x13
       text run at (1,0) width 355: "The text in this disabled field should displayed as dimmed or grey"
@@ -101,7 +101,7 @@ layer at (169,123) size 142x13 scrollWidth 158
   RenderBlock {DIV} at (3,3) size 142x13
     RenderText {#text} at (1,0) size 156x13
       text run at (1,0) width 156: "This text field is not disabled"
-layer at (13,146) size 142x13 scrollWidth 357
+layer at (13,146) size 142x13 scrollWidth 356
   RenderBlock {DIV} at (3,3) size 142x13 [color=#ABABAB]
     RenderText {#text} at (1,0) size 355x13
       text run at (1,0) width 355: "The text in this disabled field should displayed as dimmed or grey"
@@ -109,7 +109,7 @@ layer at (169,146) size 142x13 scrollWidth 158
   RenderBlock {DIV} at (3,3) size 142x13
     RenderText {#text} at (1,0) size 156x13
       text run at (1,0) width 156: "This text field is not disabled"
-layer at (13,169) size 142x13 scrollWidth 357
+layer at (13,169) size 142x13 scrollWidth 356
   RenderBlock {DIV} at (3,3) size 142x13 [color=#545454]
     RenderText {#text} at (1,0) size 355x13
       text run at (1,0) width 355: "The text in this disabled field should displayed as dimmed or grey"
@@ -117,7 +117,7 @@ layer at (169,169) size 142x13 scrollWidth 158
   RenderBlock {DIV} at (3,3) size 142x13
     RenderText {#text} at (1,0) size 156x13
       text run at (1,0) width 156: "This text field is not disabled"
-layer at (13,192) size 142x13 scrollWidth 357
+layer at (13,192) size 142x13 scrollWidth 356
   RenderBlock {DIV} at (3,3) size 142x13 [color=#ABABAB]
     RenderText {#text} at (1,0) size 355x13
       text run at (1,0) width 355: "The text in this disabled field should displayed as dimmed or grey"
@@ -125,7 +125,7 @@ layer at (169,192) size 142x13 scrollWidth 158
   RenderBlock {DIV} at (3,3) size 142x13
     RenderText {#text} at (1,0) size 156x13
       text run at (1,0) width 156: "This text field is not disabled"
-layer at (13,215) size 142x13 scrollWidth 357
+layer at (13,215) size 142x13 scrollWidth 356
   RenderBlock {DIV} at (3,3) size 142x13 [color=#2C2C2C]
     RenderText {#text} at (1,0) size 355x13
       text run at (1,0) width 355: "The text in this disabled field should displayed as dimmed or grey"
@@ -133,7 +133,7 @@ layer at (169,215) size 142x13 scrollWidth 158
   RenderBlock {DIV} at (3,3) size 142x13
     RenderText {#text} at (1,0) size 156x13
       text run at (1,0) width 156: "This text field is not disabled"
-layer at (13,238) size 142x13 scrollWidth 357
+layer at (13,238) size 142x13 scrollWidth 356
   RenderBlock {DIV} at (3,3) size 142x13
     RenderText {#text} at (1,0) size 355x13
       text run at (1,0) width 355: "The text in this disabled field should displayed as dimmed or grey"
@@ -141,7 +141,7 @@ layer at (169,238) size 142x13 scrollWidth 158
   RenderBlock {DIV} at (3,3) size 142x13
     RenderText {#text} at (1,0) size 156x13
       text run at (1,0) width 156: "This text field is not disabled"
-layer at (13,261) size 142x13 scrollWidth 357
+layer at (13,261) size 142x13 scrollWidth 356
   RenderBlock {DIV} at (3,3) size 142x13 [color=#2C2C2C]
     RenderText {#text} at (1,0) size 355x13
       text run at (1,0) width 355: "The text in this disabled field should displayed as dimmed or grey"
diff --git a/LayoutTests/fast/forms/textfield-drag-into-disabled-expected.checksum b/LayoutTests/fast/forms/textfield-drag-into-disabled-expected.checksum
new file mode 100644 (file)
index 0000000..21ca9c0
--- /dev/null
@@ -0,0 +1 @@
+1539eb2b49367a71818edeca4a8c5883
\ No newline at end of file
diff --git a/LayoutTests/fast/forms/textfield-drag-into-disabled-expected.png b/LayoutTests/fast/forms/textfield-drag-into-disabled-expected.png
new file mode 100644 (file)
index 0000000..e52516d
Binary files /dev/null and b/LayoutTests/fast/forms/textfield-drag-into-disabled-expected.png differ
diff --git a/LayoutTests/fast/forms/textfield-drag-into-disabled-expected.txt b/LayoutTests/fast/forms/textfield-drag-into-disabled-expected.txt
new file mode 100644 (file)
index 0000000..cb8e59d
--- /dev/null
@@ -0,0 +1,35 @@
+EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (0,0) size 800x600
+      RenderBlock {P} at (0,0) size 800x36
+        RenderText {#text} at (0,0) size 104x18
+          text run at (0,0) width 104: "This is a test for "
+        RenderInline {I} at (0,0) size 773x36
+          RenderInline {A} at (0,0) size 356x18 [color=#0000EE]
+            RenderText {#text} at (104,0) size 356x18
+              text run at (104,0) width 356: "http://bugzilla.opendarwin.org/show_bug.cgi?id=10177"
+          RenderText {#text} at (460,0) size 773x36
+            text run at (460,0) width 4: " "
+            text run at (464,0) width 309: "REGRESSION: Successfully dragging text into a"
+            text run at (0,18) width 84: "disabled field"
+        RenderText {#text} at (84,18) size 4x18
+          text run at (84,18) width 4: "."
+      RenderBlock {HR} at (0,52) size 800x2 [border: (1px inset #000000)]
+      RenderBlock (anonymous) at (0,62) size 800x23
+        RenderTextField {INPUT} at (2,2) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+        RenderText {#text} at (152,2) size 64x18
+          text run at (152,2) width 64: " dragging "
+        RenderInline {SPAN} at (0,0) size 49x18
+          RenderText {#text} at (216,2) size 49x18
+            text run at (216,2) width 49: "this text"
+        RenderText {#text} at (265,2) size 238x18
+          text run at (265,2) width 238: " into the text field should not succeed."
+        RenderText {#text} at (0,0) size 0x0
+        RenderText {#text} at (0,0) size 0x0
+layer at (5,67) size 142x13
+  RenderBlock {DIV} at (3,3) size 142x13 [color=#545454]
+selection start: position 0 of child 0 {#text} of child 7 {SPAN} of child 0 {BODY} of child 0 {HTML} of document
+selection end:   position 9 of child 0 {#text} of child 7 {SPAN} of child 0 {BODY} of child 0 {HTML} of document
diff --git a/LayoutTests/fast/forms/textfield-drag-into-disabled.html b/LayoutTests/fast/forms/textfield-drag-into-disabled.html
new file mode 100644 (file)
index 0000000..7c0f534
--- /dev/null
@@ -0,0 +1,42 @@
+<body style="margin: 0;">
+<p>
+    This is a test for <i><a href="http://bugzilla.opendarwin.org/show_bug.cgi?id=10177">http://bugzilla.opendarwin.org/show_bug.cgi?id=10177</a>
+    REGRESSION: Successfully dragging text into a disabled field</i>.
+</p>
+<hr>
+<input id="field" disabled>
+dragging <span id="text">this text</span> into the text field should not succeed.
+<script>
+function runTest() {
+    var text = document.getElementById("text");
+
+    window.getSelection().setBaseAndExtent(text, 0, text, 1);
+    
+    if (!window.layoutTestController)
+        return;
+
+    layoutTestController.waitUntilDone();
+
+    var x = text.offsetLeft + text.offsetWidth / 2;
+    var y = text.offsetTop + text.offsetHeight / 2;
+
+    eventSender.mouseMoveTo(x, y);
+    eventSender.mouseDown();
+    // Wait a moment so that the mouseDown will kick off a drag instead of starting a new selection.
+    eventSender.leapForward(1000);
+    
+    // We will to go to great length to prove that we're dragging!
+    eventSender.mouseMoveTo(x + 400, y);
+
+    var field = document.getElementById("field");
+    
+    x = field.offsetLeft + field.offsetWidth / 2;
+    y = field.offsetTop + field.offsetHeight / 2;
+    eventSender.mouseMoveTo(x, y);
+    eventSender.mouseUp();
+    setTimeout('layoutTestController.notifyDone();', 5000);
+}
+
+runTest();
+</script>
+</body>
index 40a54d05363de487a29cad0dfae87199c398a6ff..6e98e87ef9e435ed6d7989cf924a289b48bcc92f 100644 (file)
@@ -1,3 +1,17 @@
+2006-08-03  Mitz Pettel  <opendarwin.org@mitzpettel.com>
+
+        Reviewed by Adele and Darin.
+
+        - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=10177
+          REGRESSION: Successfully dragging text into a disabled field
+
+        Test: fast/forms/textfield-drag-into-disabled.html
+
+        * rendering/RenderTextControl.cpp:
+        (WebCore::RenderTextControl::createDivStyle): Changed to set -webkit-user-modify
+        to read-only on the inner div if the control is disabled.       
+        (WebCore::RenderTextControl::updateFromElement): Ditto.
+
 2006-08-03  Mitz Pettel  <opendarwin.org@mitzpettel.com>
 
         Reviewed by Darin.
index 59c09b10c97dd338fb1c60c3525dec7f25c299c4..dfffd61cfeffb1ecd778a2d2293a5a91772f8ca2 100644 (file)
@@ -80,7 +80,7 @@ RenderStyle* RenderTextControl::createDivStyle(RenderStyle* startStyle)
     divStyle->inheritFrom(startStyle);
     divStyle->setDisplay(BLOCK);
     divStyle->setBoxFlex(1.0f);
-    divStyle->setUserModify(element->isReadOnlyControl() ? READ_ONLY : READ_WRITE_PLAINTEXT_ONLY);
+    divStyle->setUserModify(element->isReadOnlyControl() || element->disabled() ? READ_ONLY : READ_WRITE_PLAINTEXT_ONLY);
 
     if (m_multiLine) {
         // Forward overflow properties.
@@ -143,7 +143,7 @@ void RenderTextControl::updateFromElement()
     }
 
     HTMLGenericFormElement* element = static_cast<HTMLGenericFormElement*>(node());
-    m_div->renderer()->style()->setUserModify(element->isReadOnlyControl() ? READ_ONLY : READ_WRITE_PLAINTEXT_ONLY);
+    m_div->renderer()->style()->setUserModify(element->isReadOnlyControl() || element->disabled() ? READ_ONLY : READ_WRITE_PLAINTEXT_ONLY);
     String value;
     if (m_multiLine)
         value = static_cast<HTMLTextAreaElement*>(element)->value().copy();