unicode-bidi:-webkit-plaintext does not work on <textarea>
authorleviw@chromium.org <leviw@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 27 Jul 2011 23:16:25 +0000 (23:16 +0000)
committerleviw@chromium.org <leviw@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 27 Jul 2011 23:16:25 +0000 (23:16 +0000)
https://bugs.webkit.org/show_bug.cgi?id=65074

Reviewed by Ryosuke Niwa.

Source/WebCore:

Fixing unicode-bidi style propagation into text control shadow trees.

Test: fast/text/international/unicode-bidi-plaintext-in-textarea.html

* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::adjustInnerTextStyle):

LayoutTests:

Fixing unicode-bidi propagation into text controls.

* fast/text/international/unicode-bidi-plaintext-in-textarea.html: Added.
* platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.png: Added.
* platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt: Added.

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

LayoutTests/ChangeLog
LayoutTests/fast/text/international/unicode-bidi-plaintext-in-textarea.html [new file with mode: 0644]
LayoutTests/platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderTextControl.cpp

index 144167d..f7ec0c1 100644 (file)
@@ -1,3 +1,16 @@
+2011-07-27  Levi Weintraub  <leviw@chromium.org>
+
+        unicode-bidi:-webkit-plaintext does not work on <textarea>
+        https://bugs.webkit.org/show_bug.cgi?id=65074
+
+        Reviewed by Ryosuke Niwa.
+
+        Fixing unicode-bidi propagation into text controls.
+
+        * fast/text/international/unicode-bidi-plaintext-in-textarea.html: Added.
+        * platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.png: Added.
+        * platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt: Added.
+
 2011-07-27  Adrienne Walker  <enne@google.com>
 
         [chromium] Mark another webgl flaky test.
diff --git a/LayoutTests/fast/text/international/unicode-bidi-plaintext-in-textarea.html b/LayoutTests/fast/text/international/unicode-bidi-plaintext-in-textarea.html
new file mode 100644 (file)
index 0000000..3196e6a
--- /dev/null
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html><head>
+<title>unicode-bidi:plaintext</title>
+<style>
+  .plaintext {
+    unicode-bidi:-webkit-plaintext;
+    unicode-bidi:-moz-plaintext;
+    unicode-bidi:plaintext;
+  }
+</style>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+</head><body>
+<div>
+In all four cases below,
+the exclamation mark should be on the left side of the first line
+and on the right side of the second line.
+<div>
+<textarea rows=4 cols=50 dir=auto>
+שלום!
+hello!
+</textarea><br>
+
+<textarea rows=4 cols=50 class="plaintext">
+שלום!
+hello!
+</textarea><br>
+
+<textarea rows=4 cols=50 dir=ltr class="plaintext">
+שלום!
+hello!
+</textarea><br>
+
+<textarea rows=4 cols=50 dir=rtl class="plaintext">
+שלום!
+hello!
+</textarea>
+</body></html>
diff --git a/LayoutTests/platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.png b/LayoutTests/platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.png
new file mode 100644 (file)
index 0000000..1965165
Binary files /dev/null and b/LayoutTests/platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.png differ
diff --git a/LayoutTests/platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt b/LayoutTests/platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt
new file mode 100644 (file)
index 0000000..52753ce
--- /dev/null
@@ -0,0 +1,51 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x316
+  RenderBlock {HTML} at (0,0) size 800x316
+    RenderBody {BODY} at (8,8) size 784x300
+      RenderBlock {DIV} at (0,0) size 784x300
+        RenderBlock (anonymous) at (0,0) size 784x36
+          RenderText {#text} at (0,0) size 761x36
+            text run at (0,0) width 761: "In all four cases below, the exclamation mark should be on the left side of the first line and on the right side of the second"
+            text run at (0,18) width 27: "line."
+        RenderBlock {DIV} at (0,36) size 784x264
+          RenderBR {BR} at (375,48) size 0x18
+          RenderBR {BR} at (375,114) size 0x18
+          RenderBR {BR} at (375,180) size 0x18
+          RenderText {#text} at (0,0) size 0x0
+layer at (10,46) size 371x58 clip at (11,47) size 369x56
+  RenderTextControl {TEXTAREA} at (2,2) size 371x58 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
+    RenderBlock {DIV} at (3,3) size 365x39
+      RenderText {#text} at (336,0) size 30x26
+        text run at (336,0) width 1 RTL: " "
+        text run at (336,0) width 29 RTL: "\x{5E9}\x{5DC}\x{5D5}\x{5DD}!"
+        text run at (335,13) width 30: "hello!"
+        text run at (365,13) width 0: " "
+      RenderBR {BR} at (365,26) size 0x13
+layer at (10,112) size 371x58 clip at (11,113) size 369x56
+  RenderTextControl {TEXTAREA} at (2,68) size 371x58 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
+    RenderBlock {DIV} at (3,3) size 365x39
+      RenderText {#text} at (0,0) size 30x26
+        text run at (0,0) width 0 RTL: " "
+        text run at (0,0) width 29 RTL: "\x{5E9}\x{5DC}\x{5D5}\x{5DD}!"
+        text run at (0,13) width 30: "hello!"
+        text run at (29,13) width 1: " "
+      RenderBR {BR} at (0,26) size 0x13
+layer at (10,178) size 371x58 clip at (11,179) size 369x56
+  RenderTextControl {TEXTAREA} at (2,134) size 371x58 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
+    RenderBlock {DIV} at (3,3) size 365x39
+      RenderText {#text} at (0,0) size 30x26
+        text run at (0,0) width 0 RTL: " "
+        text run at (0,0) width 29 RTL: "\x{5E9}\x{5DC}\x{5D5}\x{5DD}!"
+        text run at (0,13) width 30: "hello!"
+        text run at (29,13) width 1: " "
+      RenderBR {BR} at (0,26) size 0x13
+layer at (10,244) size 371x58 clip at (11,245) size 369x56
+  RenderTextControl {TEXTAREA} at (2,200) size 371x58 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
+    RenderBlock {DIV} at (3,3) size 365x39
+      RenderText {#text} at (336,0) size 30x26
+        text run at (336,0) width 1 RTL: " "
+        text run at (336,0) width 29 RTL: "\x{5E9}\x{5DC}\x{5D5}\x{5DD}!"
+        text run at (335,13) width 30: "hello!"
+        text run at (365,13) width 0: " "
+      RenderBR {BR} at (365,26) size 0x13
index d8ab671..89c8a7f 100644 (file)
@@ -1,3 +1,17 @@
+2011-07-27  Levi Weintraub  <leviw@chromium.org>
+
+        unicode-bidi:-webkit-plaintext does not work on <textarea>
+        https://bugs.webkit.org/show_bug.cgi?id=65074
+
+        Reviewed by Ryosuke Niwa.
+
+        Fixing unicode-bidi style propagation into text control shadow trees.
+
+        Test: fast/text/international/unicode-bidi-plaintext-in-textarea.html
+
+        * rendering/RenderTextControl.cpp:
+        (WebCore::RenderTextControl::adjustInnerTextStyle):
+
 2011-07-27  Eric Carlson  <eric.carlson@apple.com>
 
         Load delegate not consulted before loading some poster images
index c1f8ac6..2e6983f 100644 (file)
@@ -123,8 +123,9 @@ static inline bool updateUserModifyProperty(Node* node, RenderStyle* style)
 void RenderTextControl::adjustInnerTextStyle(const RenderStyle* startStyle, RenderStyle* textBlockStyle) const
 {
     // The inner block, if present, always has its direction set to LTR,
-    // so we need to inherit the direction from the element.
+    // so we need to inherit the direction and unicode-bidi style from the element.
     textBlockStyle->setDirection(style()->direction());
+    textBlockStyle->setUnicodeBidi(style()->unicodeBidi());
 
     bool disabled = updateUserModifyProperty(node(), textBlockStyle);
     if (disabled)