[MathML] The double bar vertical delimiter does not stretch properly
authormrobinson@webkit.org <mrobinson@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 13 Nov 2013 20:23:47 +0000 (20:23 +0000)
committermrobinson@webkit.org <mrobinson@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 13 Nov 2013 20:23:47 +0000 (20:23 +0000)
https://bugs.webkit.org/show_bug.cgi?id=123543

Reviewed by Chris Fleizach.

Source/WebCore:

* rendering/mathml/RenderMathMLOperator.cpp: Add stretching support for U+2225, which
is another version of the vertical bar.

LayoutTests:

* mathml/presentation/mo-stretch.html: Add &DoubleVerticalBar; to this test,
which covers the other version of the vertical bar.
* platform/gtk/mathml/presentation/mo-stretch-expected.png:
* platform/gtk/mathml/presentation/mo-stretch-expected.txt:

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

LayoutTests/ChangeLog
LayoutTests/mathml/presentation/mo-stretch.html
LayoutTests/platform/gtk/mathml/presentation/mo-stretch-expected.png
LayoutTests/platform/gtk/mathml/presentation/mo-stretch-expected.txt
LayoutTests/platform/mac/mathml/presentation/mo-stretch-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp

index 32dacd3..3ec2f27 100644 (file)
@@ -1,3 +1,15 @@
+2013-11-09  Martin Robinson  <mrobinson@igalia.com>
+
+        [MathML] The double bar vertical delimiter does not stretch properly
+        https://bugs.webkit.org/show_bug.cgi?id=123543
+
+        Reviewed by Chris Fleizach.
+
+        * mathml/presentation/mo-stretch.html: Add &DoubleVerticalBar; to this test,
+        which covers the other version of the vertical bar.
+        * platform/gtk/mathml/presentation/mo-stretch-expected.png:
+        * platform/gtk/mathml/presentation/mo-stretch-expected.txt:
+
 2013-11-13  Roger Fong  <roger_fong@apple.com>
 
         [Windows] Unreviewed gardening of some canvas tests.
index ca60980..74cd8be 100644 (file)
@@ -9,8 +9,8 @@
             <mo>[</mo> <mo>]</mo>
             <mo>&LeftCeiling;</mo> <mo>&RightCeiling;</mo>
             <mo>&LeftFloor;</mo> <mo>&RightFloor;</mo>
-            <mo stretchy="true">&Integral;</mo>
-            <mo>|</mo> <mo>&Verbar;</mo>
+            <mo stretchy="true">&Integral;</mo> <mo>|</mo>
+            <mo>&Verbar;</mo> <mo>&DoubleVerticalBar;</mo>
         </mrow>
     </math>
 
@@ -24,8 +24,8 @@
             <mo>[</mo> <mo>]</mo>
             <mo>&LeftCeiling;</mo> <mo>&RightCeiling;</mo>
             <mo>&LeftFloor;</mo> <mo>&RightFloor;</mo>
-            <mo stretchy="true">&Integral;</mo>
-            <mo>|</mo> <mo>&Verbar;</mo>
+            <mo stretchy="true">&Integral;</mo> <mo>|</mo>
+            <mo>&Verbar;</mo> <mo>&DoubleVerticalBar;</mo>
             <mspace height="75px" depth="1px"/>
         </mrow>
     </math>
@@ -37,8 +37,8 @@
             <mo>[</mo> <mo>]</mo>
             <mo>&LeftCeiling;</mo> <mo>&RightCeiling;</mo>
             <mo>&LeftFloor;</mo> <mo>&RightFloor;</mo>
-            <mo stretchy="true">&Integral;</mo>
-            <mo>|</mo> <mo>&Verbar;</mo>
+            <mo stretchy="true">&Integral;</mo> <mo>|</mo>
+            <mo>&Verbar;</mo> <mo>&DoubleVerticalBar;</mo>
             <mspace height="50px" depth="1px"/>
         </mrow>
     </math>
@@ -50,8 +50,8 @@
             <mo>[</mo> <mo>]</mo>
             <mo>&LeftCeiling;</mo> <mo>&RightCeiling;</mo>
             <mo>&LeftFloor;</mo> <mo>&RightFloor;</mo>
-            <mo stretchy="true">&Integral;</mo>
-            <mo>|</mo> <mo>&Verbar;</mo>
+            <mo stretchy="true">&Integral;</mo> <mo>|</mo>
+            <mo>&Verbar;</mo> <mo>&DoubleVerticalBar;</mo>
             <mspace height="20px" depth="1px"/>
         </mrow>
     </math>
@@ -66,8 +66,8 @@
             <mo>[</mo> <mo>]</mo>
             <mo>&LeftCeiling;</mo> <mo>&RightCeiling;</mo>
             <mo>&LeftFloor;</mo> <mo>&RightFloor;</mo>
-            <mo stretchy="true">&Integral;</mo>
-            <mo>|</mo> <mo>&Verbar;</mo>
+            <mo stretchy="true">&Integral;</mo> <mo>|</mo>
+            <mo>&Verbar;</mo> <mo>&DoubleVerticalBar;</mo>
             <mspace height="40px" depth="1px"/>
       </msqrt>
     </math>
index 55932b9..01e4be4 100644 (file)
Binary files a/LayoutTests/platform/gtk/mathml/presentation/mo-stretch-expected.png and b/LayoutTests/platform/gtk/mathml/presentation/mo-stretch-expected.png differ
index 2cc442e..cff8bdf 100644 (file)
@@ -3,8 +3,8 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x216
   RenderBlock {HTML} at (0,0) size 800x216
     RenderBody {BODY} at (8,8) size 784x200
-      RenderMathMLMath {math} at (0,0) size 181x20 [padding: 0 1 0 1]
-        RenderMathMLRow {mrow} at (1,0) size 179x20
+      RenderMathMLMath {math} at (0,0) size 195x20 [padding: 0 1 0 1]
+        RenderMathMLRow {mrow} at (1,0) size 193x20
           RenderMathMLOperator {mo} at (1,3) size 8x14
             RenderMathMLBlock (flex) {mo} at (0,0) size 7x14
               RenderBlock (anonymous) at (0,0) size 5x14
@@ -65,16 +65,21 @@ layer at (0,0) size 800x216
               RenderBlock (anonymous) at (0,0) size 3x12
                 RenderText at (0,-6) size 3x25
                   text run at (0,-6) width 3: "|"
-          RenderMathMLOperator {mo} at (168,2) size 9x16
+          RenderMathMLOperator {mo} at (170,2) size 9x16
             RenderMathMLBlock (flex) {mo} at (0,0) size 8x16
               RenderBlock (anonymous) at (0,0) size 8x16
                 RenderText at (0,-5) size 8x25
                   text run at (0,-5) width 8: "\x{2016}"
-      RenderText {#text} at (180,0) size 5x17
-        text run at (180,0) width 5: " "
+          RenderMathMLOperator {mo} at (183,2) size 9x16
+            RenderMathMLBlock (flex) {mo} at (0,0) size 8x16
+              RenderBlock (anonymous) at (0,0) size 8x16
+                RenderText at (0,-5) size 8x25
+                  text run at (0,-5) width 8: "\x{2225}"
+      RenderText {#text} at (194,0) size 5x17
+        text run at (194,0) width 5: " "
       RenderBR {BR} at (0,0) size 0x0
-      RenderMathMLMath {math} at (0,20) size 184x114 [padding: 0 1 0 1]
-        RenderMathMLRow {mrow} at (1,0) size 182x114
+      RenderMathMLMath {math} at (0,20) size 199x114 [padding: 0 1 0 1]
+        RenderMathMLRow {mrow} at (1,0) size 197x114
           RenderMathMLOperator {mo} at (1,22) size 8x92
             RenderMathMLBlock (flex) {mo} at (0,0) size 7x14
               RenderBlock (anonymous) at (0,0) size 5x14
@@ -140,11 +145,16 @@ layer at (0,0) size 800x216
               RenderBlock (anonymous) at (0,0) size 8x16
                 RenderText at (0,-5) size 8x25
                   text run at (0,-5) width 8: "\x{2016}"
-          RenderMathMLSpace {mspace} at (181,0) size 1x76
-      RenderText {#text} at (183,81) size 5x17
-        text run at (183,81) width 5: " "
-      RenderMathMLMath {math} at (187,45) size 185x77 [padding: 0 1 0 1]
-        RenderMathMLRow {mrow} at (1,0) size 182x77
+          RenderMathMLOperator {mo} at (184,22) size 9x92
+            RenderMathMLBlock (flex) {mo} at (0,0) size 8x16
+              RenderBlock (anonymous) at (0,0) size 8x16
+                RenderText at (0,-5) size 8x25
+                  text run at (0,-5) width 8: "\x{2225}"
+          RenderMathMLSpace {mspace} at (196,0) size 1x76
+      RenderText {#text} at (198,81) size 5x17
+        text run at (198,81) width 5: " "
+      RenderMathMLMath {math} at (202,45) size 199x77 [padding: 0 1 0 1]
+        RenderMathMLRow {mrow} at (1,0) size 197x77
           RenderMathMLOperator {mo} at (1,15) size 8x62
             RenderMathMLBlock (flex) {mo} at (0,0) size 7x14
               RenderBlock (anonymous) at (0,0) size 5x14
@@ -210,11 +220,16 @@ layer at (0,0) size 800x216
               RenderBlock (anonymous) at (0,0) size 8x16
                 RenderText at (0,-5) size 8x25
                   text run at (0,-5) width 8: "\x{2016}"
-          RenderMathMLSpace {mspace} at (181,0) size 1x51
-      RenderText {#text} at (371,81) size 5x17
-        text run at (371,81) width 5: " "
-      RenderMathMLMath {math} at (375,75) size 185x32 [padding: 0 1 0 1]
-        RenderMathMLRow {mrow} at (1,0) size 182x32
+          RenderMathMLOperator {mo} at (184,15) size 9x62
+            RenderMathMLBlock (flex) {mo} at (0,0) size 8x16
+              RenderBlock (anonymous) at (0,0) size 8x16
+                RenderText at (0,-5) size 8x25
+                  text run at (0,-5) width 8: "\x{2225}"
+          RenderMathMLSpace {mspace} at (196,0) size 1x51
+      RenderText {#text} at (400,81) size 5x17
+        text run at (400,81) width 5: " "
+      RenderMathMLMath {math} at (404,75) size 199x32 [padding: 0 1 0 1]
+        RenderMathMLRow {mrow} at (1,0) size 197x32
           RenderMathMLOperator {mo} at (1,9) size 8x14
             RenderMathMLBlock (flex) {mo} at (0,0) size 7x14
               RenderBlock (anonymous) at (0,0) size 5x14
@@ -280,13 +295,18 @@ layer at (0,0) size 800x216
               RenderBlock (anonymous) at (0,0) size 8x16
                 RenderText at (0,-5) size 8x25
                   text run at (0,-5) width 8: "\x{2016}"
-          RenderMathMLSpace {mspace} at (181,0) size 1x21
-      RenderText {#text} at (559,81) size 5x17
-        text run at (559,81) width 5: " "
+          RenderMathMLOperator {mo} at (184,8) size 9x16
+            RenderMathMLBlock (flex) {mo} at (0,0) size 8x16
+              RenderBlock (anonymous) at (0,0) size 8x16
+                RenderText at (0,-5) size 8x25
+                  text run at (0,-5) width 8: "\x{2225}"
+          RenderMathMLSpace {mspace} at (196,0) size 1x21
+      RenderText {#text} at (602,81) size 5x17
+        text run at (602,81) width 5: " "
       RenderBR {BR} at (0,0) size 0x0
-      RenderMathMLMath {math} at (0,133) size 196x68 [padding: 0 1 0 1]
-        RenderMathMLSquareRoot {msqrt} at (1,0) size 194x68 [intrinsic padding: 3 0 3 12]
-          RenderMathMLRow (anonymous) at (12,3) size 182x62
+      RenderMathMLMath {math} at (0,133) size 211x68 [padding: 0 1 0 1]
+        RenderMathMLSquareRoot {msqrt} at (1,0) size 209x68 [intrinsic padding: 3 0 3 12]
+          RenderMathMLRow (anonymous) at (12,3) size 197x62
             RenderMathMLOperator {mo} at (1,12) size 8x50
               RenderMathMLBlock (flex) {mo} at (0,0) size 7x14
                 RenderBlock (anonymous) at (0,0) size 5x14
@@ -352,5 +372,10 @@ layer at (0,0) size 800x216
                 RenderBlock (anonymous) at (0,0) size 8x16
                   RenderText at (0,-5) size 8x25
                     text run at (0,-5) width 8: "\x{2016}"
-            RenderMathMLSpace {mspace} at (181,0) size 1x41
+            RenderMathMLOperator {mo} at (184,12) size 9x50
+              RenderMathMLBlock (flex) {mo} at (0,0) size 8x16
+                RenderBlock (anonymous) at (0,0) size 8x16
+                  RenderText at (0,-5) size 8x25
+                    text run at (0,-5) width 8: "\x{2225}"
+            RenderMathMLSpace {mspace} at (196,0) size 1x41
       RenderText {#text} at (0,0) size 0x0
index 8a953f8..ed36126 100644 (file)
@@ -3,8 +3,8 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x216
   RenderBlock {HTML} at (0,0) size 800x216
     RenderBody {BODY} at (8,8) size 784x200
-      RenderMathMLMath {math} at (0,0) size 174x20 [padding: 0 1 0 1]
-        RenderMathMLRow {mrow} at (1,0) size 172x20
+      RenderMathMLMath {math} at (0,0) size 188x20 [padding: 0 1 0 1]
+        RenderMathMLRow {mrow} at (1,0) size 186x20
           RenderMathMLOperator {mo} at (1,3) size 7x14
             RenderMathMLBlock (flex) {mo} at (0,0) size 7x14
               RenderBlock (anonymous) at (0,0) size 5x14
@@ -65,16 +65,21 @@ layer at (0,0) size 800x216
               RenderBlock (anonymous) at (0,0) size 3x12
                 RenderText at (0,-6) size 3x24
                   text run at (0,-6) width 3: "|"
-          RenderMathMLOperator {mo} at (163,2) size 8x16
+          RenderMathMLOperator {mo} at (165,2) size 8x16
             RenderMathMLBlock (flex) {mo} at (0,0) size 8x16
               RenderBlock (anonymous) at (0,0) size 8x16
                 RenderText at (0,-5) size 8x24
                   text run at (0,-5) width 8: "\x{2016}"
-      RenderText {#text} at (174,0) size 4x18
-        text run at (174,0) width 4: " "
+          RenderMathMLOperator {mo} at (177,2) size 8x16
+            RenderMathMLBlock (flex) {mo} at (0,0) size 8x16
+              RenderBlock (anonymous) at (0,0) size 8x16
+                RenderText at (0,-5) size 8x24
+                  text run at (0,-5) width 8: "\x{2225}"
+      RenderText {#text} at (188,0) size 4x18
+        text run at (188,0) width 4: " "
       RenderBR {BR} at (0,0) size 0x0
-      RenderMathMLMath {math} at (0,20) size 178x113 [padding: 0 1 0 1]
-        RenderMathMLRow {mrow} at (1,0) size 176x113
+      RenderMathMLMath {math} at (0,20) size 192x113 [padding: 0 1 0 1]
+        RenderMathMLRow {mrow} at (1,0) size 190x113
           RenderMathMLOperator {mo} at (1,22) size 7x91
             RenderMathMLBlock (flex) {mo} at (0,0) size 7x14
               RenderBlock (anonymous) at (0,0) size 5x14
@@ -140,11 +145,16 @@ layer at (0,0) size 800x216
               RenderBlock (anonymous) at (0,0) size 8x16
                 RenderText at (0,-5) size 8x24
                   text run at (0,-5) width 8: "\x{2016}"
-          RenderMathMLSpace {mspace} at (176,0) size 0x76
-      RenderText {#text} at (178,81) size 4x18
-        text run at (178,81) width 4: " "
-      RenderMathMLMath {math} at (182,45) size 178x76 [padding: 0 1 0 1]
-        RenderMathMLRow {mrow} at (1,0) size 176x76
+          RenderMathMLOperator {mo} at (179,22) size 8x91
+            RenderMathMLBlock (flex) {mo} at (0,0) size 8x16
+              RenderBlock (anonymous) at (0,0) size 8x16
+                RenderText at (0,-5) size 8x24
+                  text run at (0,-5) width 8: "\x{2225}"
+          RenderMathMLSpace {mspace} at (190,0) size 0x76
+      RenderText {#text} at (192,81) size 4x18
+        text run at (192,81) width 4: " "
+      RenderMathMLMath {math} at (196,45) size 192x76 [padding: 0 1 0 1]
+        RenderMathMLRow {mrow} at (1,0) size 190x76
           RenderMathMLOperator {mo} at (1,15) size 7x61
             RenderMathMLBlock (flex) {mo} at (0,0) size 7x14
               RenderBlock (anonymous) at (0,0) size 5x14
@@ -210,11 +220,16 @@ layer at (0,0) size 800x216
               RenderBlock (anonymous) at (0,0) size 8x16
                 RenderText at (0,-5) size 8x24
                   text run at (0,-5) width 8: "\x{2016}"
-          RenderMathMLSpace {mspace} at (176,0) size 0x51
-      RenderText {#text} at (360,81) size 4x18
-        text run at (360,81) width 4: " "
-      RenderMathMLMath {math} at (364,75) size 178x31 [padding: 0 1 0 1]
-        RenderMathMLRow {mrow} at (1,0) size 176x31
+          RenderMathMLOperator {mo} at (179,15) size 8x61
+            RenderMathMLBlock (flex) {mo} at (0,0) size 8x16
+              RenderBlock (anonymous) at (0,0) size 8x16
+                RenderText at (0,-5) size 8x24
+                  text run at (0,-5) width 8: "\x{2225}"
+          RenderMathMLSpace {mspace} at (190,0) size 0x51
+      RenderText {#text} at (388,81) size 4x18
+        text run at (388,81) width 4: " "
+      RenderMathMLMath {math} at (392,75) size 192x31 [padding: 0 1 0 1]
+        RenderMathMLRow {mrow} at (1,0) size 190x31
           RenderMathMLOperator {mo} at (1,9) size 7x14
             RenderMathMLBlock (flex) {mo} at (0,0) size 7x14
               RenderBlock (anonymous) at (0,0) size 5x14
@@ -280,13 +295,18 @@ layer at (0,0) size 800x216
               RenderBlock (anonymous) at (0,0) size 8x16
                 RenderText at (0,-5) size 8x24
                   text run at (0,-5) width 8: "\x{2016}"
-          RenderMathMLSpace {mspace} at (176,0) size 0x21
-      RenderText {#text} at (542,81) size 4x18
-        text run at (542,81) width 4: " "
+          RenderMathMLOperator {mo} at (179,8) size 8x16
+            RenderMathMLBlock (flex) {mo} at (0,0) size 8x16
+              RenderBlock (anonymous) at (0,0) size 8x16
+                RenderText at (0,-5) size 8x24
+                  text run at (0,-5) width 8: "\x{2225}"
+          RenderMathMLSpace {mspace} at (190,0) size 0x21
+      RenderText {#text} at (584,81) size 4x18
+        text run at (584,81) width 4: " "
       RenderBR {BR} at (0,0) size 0x0
-      RenderMathMLMath {math} at (0,133) size 190x67 [padding: 0 1 0 1]
-        RenderMathMLSquareRoot {msqrt} at (1,0) size 188x67 [intrinsic padding: 3 0 3 12]
-          RenderMathMLRow (anonymous) at (12,3) size 176x61
+      RenderMathMLMath {math} at (0,133) size 204x67 [padding: 0 1 0 1]
+        RenderMathMLSquareRoot {msqrt} at (1,0) size 202x67 [intrinsic padding: 3 0 3 12]
+          RenderMathMLRow (anonymous) at (12,3) size 190x61
             RenderMathMLOperator {mo} at (1,12) size 7x49
               RenderMathMLBlock (flex) {mo} at (0,0) size 7x14
                 RenderBlock (anonymous) at (0,0) size 5x14
@@ -352,5 +372,10 @@ layer at (0,0) size 800x216
                 RenderBlock (anonymous) at (0,0) size 8x16
                   RenderText at (0,-5) size 8x24
                     text run at (0,-5) width 8: "\x{2016}"
-            RenderMathMLSpace {mspace} at (176,0) size 0x41
+            RenderMathMLOperator {mo} at (179,12) size 8x49
+              RenderMathMLBlock (flex) {mo} at (0,0) size 8x16
+                RenderBlock (anonymous) at (0,0) size 8x16
+                  RenderText at (0,-5) size 8x24
+                    text run at (0,-5) width 8: "\x{2225}"
+            RenderMathMLSpace {mspace} at (190,0) size 0x41
       RenderText {#text} at (0,0) size 0x0
index 028888f..4e0bc1b 100644 (file)
@@ -1,3 +1,13 @@
+2013-11-09  Martin Robinson  <mrobinson@igalia.com>
+
+        [MathML] The double bar vertical delimiter does not stretch properly
+        https://bugs.webkit.org/show_bug.cgi?id=123543
+
+        Reviewed by Chris Fleizach.
+
+        * rendering/mathml/RenderMathMLOperator.cpp: Add stretching support for U+2225, which
+        is another version of the vertical bar.
+
 2013-11-13  Simon Fraser  <simon.fraser@apple.com>
 
         ASSERTION FAILED: m_repaintRect == renderer().clippedOverflowRectForRepaint(renderer().containerForRepaint()) after r135816
index e88f63c..30054c4 100644 (file)
@@ -46,7 +46,7 @@ namespace WebCore {
 using namespace MathMLNames;
 
 // FIXME: The OpenType MATH table contains information that should override this table (http://wkbug/122297).
-static RenderMathMLOperator::StretchyCharacter stretchyCharacters[13] = {
+static RenderMathMLOperator::StretchyCharacter stretchyCharacters[14] = {
     { 0x28  , 0x239b, 0x239c, 0x239d, 0x0    }, // left parenthesis
     { 0x29  , 0x239e, 0x239f, 0x23a0, 0x0    }, // right parenthesis
     { 0x5b  , 0x23a1, 0x23a2, 0x23a3, 0x0    }, // left square bracket
@@ -58,6 +58,7 @@ static RenderMathMLOperator::StretchyCharacter stretchyCharacters[13] = {
     { 0x7b  , 0x23a7, 0x23aa, 0x23a9, 0x23a8 }, // left curly bracket
     { 0x7c  , 0x7c,   0x7c,   0x7c,   0x0    }, // vertical bar
     { 0x2016, 0x2016, 0x2016, 0x2016, 0x0    }, // double vertical line
+    { 0x2225, 0x2225, 0x2225, 0x2225, 0x0    }, // parallel to
     { 0x7d  , 0x23ab, 0x23aa, 0x23ad, 0x23ac }, // right curly bracket
     { 0x222b, 0x2320, 0x23ae, 0x2321, 0x0    } // integral sign
 };