[EFL] Hyphenation is not supported
authorryuan.choi@navercorp.com <ryuan.choi@navercorp.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 23 Jun 2015 05:23:57 +0000 (05:23 +0000)
committerryuan.choi@navercorp.com <ryuan.choi@navercorp.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 23 Jun 2015 05:23:57 +0000 (05:23 +0000)
https://bugs.webkit.org/show_bug.cgi?id=89830

Reviewed by Gyuyoung Kim.

.:

* Source/cmake/OptionsEfl.cmake: Added an option for LibHyphen.

Source/WebCore:

Share libHyphen backend of GTK port.

Rebased fast/text/hyphenate-*.html

* PlatformEfl.cmake:
* PlatformGTK.cmake:
* platform/efl/FileSystemEfl.cpp:
(WebCore::listDirectory): Deleted because of lack of functionality.
eina_file_ls returns full directory path so fnmatch fails to check dict file.
This patch reuse Posix implementation instead of EFL port specific function.
* platform/posix/FileSystemPOSIX.cpp: Ditto.
* platform/text/gtk/HyphenationLibHyphen.cpp: Moved to platform/text/hyphen
* platform/text/hyphen/HyphenationLibHyphen.cpp:
Renamed from Source/WebCore/platform/text/gtk/HyphenationLibHyphen.cpp.
(WebCore::scanTestDictionariesDirectoryIfNecessary):
Added PLATFORM guard and EFL implementation for the test directory

Tools:

* efl/jhbuild.modules: Added webkitgtk-test-dicts for layout test.

LayoutTests:

Rebaseline expected results which is related to hyphenation.

* platform/efl/TestExpectations: Unskip hyphenate-locale.html
* platform/efl/fast/text/hyphenate-character-expected.png:
* platform/efl/fast/text/hyphenate-character-expected.txt:
* platform/efl/fast/text/hyphenate-first-word-expected.png:
* platform/efl/fast/text/hyphenate-first-word-expected.txt:
* platform/efl/fast/text/hyphenate-limit-before-after-expected.png:
* platform/efl/fast/text/hyphenate-limit-before-after-expected.txt:
* platform/efl/fast/text/hyphenate-limit-lines-expected.png:
* platform/efl/fast/text/hyphenate-limit-lines-expected.txt:
* platform/efl/fast/text/hyphenate-locale-expected.png: Added.
* platform/efl/fast/text/hyphenate-locale-expected.txt: Added.
* platform/efl/fast/text/hyphens-expected.png:
* platform/efl/fast/text/hyphens-expected.txt:

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

24 files changed:
ChangeLog
LayoutTests/ChangeLog
LayoutTests/platform/efl/TestExpectations
LayoutTests/platform/efl/fast/text/hyphenate-character-expected.png
LayoutTests/platform/efl/fast/text/hyphenate-character-expected.txt
LayoutTests/platform/efl/fast/text/hyphenate-first-word-expected.png
LayoutTests/platform/efl/fast/text/hyphenate-first-word-expected.txt
LayoutTests/platform/efl/fast/text/hyphenate-limit-before-after-expected.png
LayoutTests/platform/efl/fast/text/hyphenate-limit-before-after-expected.txt
LayoutTests/platform/efl/fast/text/hyphenate-limit-lines-expected.png
LayoutTests/platform/efl/fast/text/hyphenate-limit-lines-expected.txt
LayoutTests/platform/efl/fast/text/hyphenate-locale-expected.png [new file with mode: 0644]
LayoutTests/platform/efl/fast/text/hyphenate-locale-expected.txt [new file with mode: 0644]
LayoutTests/platform/efl/fast/text/hyphens-expected.png
LayoutTests/platform/efl/fast/text/hyphens-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/PlatformEfl.cmake
Source/WebCore/PlatformGTK.cmake
Source/WebCore/platform/efl/FileSystemEfl.cpp
Source/WebCore/platform/posix/FileSystemPOSIX.cpp
Source/WebCore/platform/text/hyphen/HyphenationLibHyphen.cpp [moved from Source/WebCore/platform/text/gtk/HyphenationLibHyphen.cpp with 98% similarity]
Source/cmake/OptionsEfl.cmake
Tools/ChangeLog
Tools/efl/jhbuild.modules

index de0680e..dd2bf5a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2015-06-22  Ryuan Choi  <ryuan.choi@navercorp.com>
+
+        [EFL] Hyphenation is not supported
+        https://bugs.webkit.org/show_bug.cgi?id=89830
+
+        Reviewed by Gyuyoung Kim.
+
+        * Source/cmake/OptionsEfl.cmake: Added an option for LibHyphen.
+
 2015-06-22  Zan Dobersek  <zdobersek@igalia.com>
 
         [CMake] Add support for building with various sanitizer tools
index 3c66786..02f4830 100644 (file)
@@ -1,3 +1,26 @@
+2015-06-22  Ryuan Choi  <ryuan.choi@navercorp.com>
+
+        [EFL] Hyphenation is not supported
+        https://bugs.webkit.org/show_bug.cgi?id=89830
+
+        Reviewed by Gyuyoung Kim.
+
+        Rebaseline expected results which is related to hyphenation.
+
+        * platform/efl/TestExpectations: Unskip hyphenate-locale.html
+        * platform/efl/fast/text/hyphenate-character-expected.png:
+        * platform/efl/fast/text/hyphenate-character-expected.txt:
+        * platform/efl/fast/text/hyphenate-first-word-expected.png:
+        * platform/efl/fast/text/hyphenate-first-word-expected.txt:
+        * platform/efl/fast/text/hyphenate-limit-before-after-expected.png:
+        * platform/efl/fast/text/hyphenate-limit-before-after-expected.txt:
+        * platform/efl/fast/text/hyphenate-limit-lines-expected.png:
+        * platform/efl/fast/text/hyphenate-limit-lines-expected.txt:
+        * platform/efl/fast/text/hyphenate-locale-expected.png: Added.
+        * platform/efl/fast/text/hyphenate-locale-expected.txt: Added.
+        * platform/efl/fast/text/hyphens-expected.png:
+        * platform/efl/fast/text/hyphens-expected.txt:
+
 2015-06-22  Yusuke Suzuki  <utatane.tea@gmail.com>
 
         [ES6] Allow trailing comma in ArrayBindingPattern and ObjectBindingPattern
index f127d96..5858ea6 100644 (file)
@@ -1454,9 +1454,6 @@ webkit.org/b/49964 fast/canvas/canvas-fillPath-shadow.html [ Failure ]
 # Failing after r119268 on GTK and EFL
 webkit.org/b/88138 http/tests/media/video-buffered.html [ Failure ]
 
-# EFL port does not support hyphenation
-webkit.org/b/89830 fast/text/hyphenate-locale.html [ Skip ]
-
 # ENABLE_INPUT_TYPE_* are not enabled on EFL port.
 webkit.org/b/29359 fast/forms/date [ Skip ]
 webkit.org/b/29359 fast/forms/datetime [ Skip ]
index 399ddc0..836f40d 100644 (file)
Binary files a/LayoutTests/platform/efl/fast/text/hyphenate-character-expected.png and b/LayoutTests/platform/efl/fast/text/hyphenate-character-expected.png differ
index 90cd109..d5758dc 100644 (file)
@@ -17,12 +17,13 @@ layer at (0,0) size 800x600
           RenderText {#text} at (7,7) size 330x209
             text run at (7,7) width 245: "The chief difficulty Alice found"
             text run at (7,28) width 245: "at first was in managing her"
-            text run at (7,49) width 245: "flamingo: she succeeded in"
-            text run at (7,70) width 245: "getting its body tucked away,"
-            text run at (7,91) width 245: "comfortably enough, under her"
-            text run at (7,112) width 307: "arm, with its legs hanging down, "
-            text run at (314,112) width 23: "but"
-            text run at (7,133) width 330: "generally, just as she had got its neck nicely"
+            text run at (7,49) width 245: "flamingo: she succeeded in ge" + hyphen string "\x{2010}"
+            text run at (7,70) width 222: "tting its body tucked away, "
+            text run at (229,70) width 23: "co" + hyphen string "\x{2010}"
+            text run at (7,91) width 245: "mfortably enough, under her"
+            text run at (7,112) width 248: "arm, with its legs hanging down, "
+            text run at (254,112) width 83: "but genera" + hyphen string "\x{2010}"
+            text run at (7,133) width 330: "lly, just as she had got its neck nicely"
             text run at (7,154) width 96: "straightened "
             text run at (102,154) width 235: "out, and was going to give the"
             text run at (7,175) width 285: "hedgehog a blow with its head, it "
@@ -42,12 +43,13 @@ layer at (0,0) size 800x600
           RenderText {#text} at (7,7) size 330x209
             text run at (7,7) width 245: "The chief difficulty Alice found"
             text run at (7,28) width 245: "at first was in managing her"
-            text run at (7,49) width 245: "flamingo: she succeeded in"
-            text run at (7,70) width 245: "getting its body tucked away,"
-            text run at (7,91) width 245: "comfortably enough, under her"
-            text run at (7,112) width 307: "arm, with its legs hanging down, "
-            text run at (314,112) width 23: "but"
-            text run at (7,133) width 330: "generally, just as she had got its neck nicely"
+            text run at (7,49) width 245: "flamingo: she succeeded in ge" + hyphen string "\x{2010}"
+            text run at (7,70) width 222: "tting its body tucked away, "
+            text run at (229,70) width 23: "co" + hyphen string "\x{2010}"
+            text run at (7,91) width 245: "mfortably enough, under her"
+            text run at (7,112) width 248: "arm, with its legs hanging down, "
+            text run at (254,112) width 83: "but genera" + hyphen string "\x{2010}"
+            text run at (7,133) width 330: "lly, just as she had got its neck nicely"
             text run at (7,154) width 96: "straightened "
             text run at (102,154) width 235: "out, and was going to give the"
             text run at (7,175) width 285: "hedgehog a blow with its head, it "
@@ -67,12 +69,13 @@ layer at (0,0) size 800x600
           RenderText {#text} at (7,7) size 330x209
             text run at (7,7) width 245: "The chief difficulty Alice found"
             text run at (7,28) width 245: "at first was in managing her"
-            text run at (7,49) width 245: "flamingo: she succeeded in"
-            text run at (7,70) width 245: "getting its body tucked away,"
-            text run at (7,91) width 245: "comfortably enough, under her"
-            text run at (7,112) width 307: "arm, with its legs hanging down, "
-            text run at (314,112) width 23: "but"
-            text run at (7,133) width 330: "generally, just as she had got its neck nicely"
+            text run at (7,49) width 245: "flamingo: she succeeded in ge" + hyphen string "\x{2022}"
+            text run at (7,70) width 222: "tting its body tucked away, "
+            text run at (229,70) width 23: "co" + hyphen string "\x{2022}"
+            text run at (7,91) width 245: "mfortably enough, under her"
+            text run at (7,112) width 248: "arm, with its legs hanging down, "
+            text run at (254,112) width 83: "but genera" + hyphen string "\x{2022}"
+            text run at (7,133) width 330: "lly, just as she had got its neck nicely"
             text run at (7,154) width 96: "straightened "
             text run at (102,154) width 235: "out, and was going to give the"
             text run at (7,175) width 285: "hedgehog a blow with its head, it "
@@ -92,12 +95,13 @@ layer at (0,0) size 800x600
           RenderText {#text} at (7,7) size 330x209
             text run at (7,7) width 245: "The chief difficulty Alice found"
             text run at (7,28) width 245: "at first was in managing her"
-            text run at (7,49) width 245: "flamingo: she succeeded in"
-            text run at (7,70) width 245: "getting its body tucked away,"
-            text run at (7,91) width 245: "comfortably enough, under her"
-            text run at (7,112) width 307: "arm, with its legs hanging down, "
-            text run at (314,112) width 23: "but"
-            text run at (7,133) width 330: "generally, just as she had got its neck nicely"
+            text run at (7,49) width 245: "flamingo: she succeeded in ge" + hyphen string "\x{B7}~"
+            text run at (7,70) width 213: "tting its body tucked away, "
+            text run at (220,70) width 32: "co" + hyphen string "\x{B7}~"
+            text run at (7,91) width 245: "mfortably enough, under her"
+            text run at (7,112) width 252: "arm, with its legs hanging down, "
+            text run at (258,112) width 79: "but gene" + hyphen string "\x{B7}~"
+            text run at (7,133) width 330: "rally, just as she had got its neck nicely"
             text run at (7,154) width 96: "straightened "
             text run at (102,154) width 235: "out, and was going to give the"
             text run at (7,175) width 285: "hedgehog a blow with its head, it "
index bb3cfdf..e5ce40b 100644 (file)
Binary files a/LayoutTests/platform/efl/fast/text/hyphenate-first-word-expected.png and b/LayoutTests/platform/efl/fast/text/hyphenate-first-word-expected.png differ
index e05ec15..766c611 100644 (file)
@@ -3,6 +3,8 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
-      RenderBlock {DIV} at (0,0) size 226x116 [border: (3px solid #000000)]
-        RenderText {#text} at (3,4) size 429x107
-          text run at (3,4) width 429: "declination"
+      RenderBlock {DIV} at (0,0) size 226x336 [border: (3px solid #000000)]
+        RenderText {#text} at (3,4) size 193x327
+          text run at (3,4) width 193: "decl" + hyphen string "\x{2010}"
+          text run at (3,114) width 107: "in" + hyphen string "\x{2010}"
+          text run at (3,224) width 193: "ation"
index e0cfda0..952cfe5 100644 (file)
Binary files a/LayoutTests/platform/efl/fast/text/hyphenate-limit-before-after-expected.png and b/LayoutTests/platform/efl/fast/text/hyphenate-limit-before-after-expected.png differ
index 33a8403..38a4f92 100644 (file)
@@ -3,25 +3,22 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
-      RenderBlock {DIV} at (8,8) size 126x60 [border: (3px solid #000000)]
-        RenderText {#text} at (3,3) size 70x53
-          text run at (3,3) width 51: "There is"
-          text run at (3,21) width 70: "remarkable"
-          text run at (3,39) width 60: "evidence."
+      RenderBlock {DIV} at (8,26) size 126x42 [border: (3px solid #000000)]
+        RenderText {#text} at (3,3) size 98x35
+          text run at (3,3) width 96: "There is remar" + hyphen string "\x{2010}"
+          text run at (3,21) width 98: "kable evidence."
       RenderText {#text} at (142,47) size 4x17
         text run at (142,47) width 4: " "
-      RenderBlock {DIV} at (154,8) size 126x60 [border: (3px solid #000000)]
-        RenderText {#text} at (3,3) size 70x53
-          text run at (3,3) width 51: "There is"
-          text run at (3,21) width 70: "remarkable"
-          text run at (3,39) width 60: "evidence."
+      RenderBlock {DIV} at (154,26) size 126x42 [border: (3px solid #000000)]
+        RenderText {#text} at (3,3) size 98x35
+          text run at (3,3) width 96: "There is remar" + hyphen string "\x{2010}"
+          text run at (3,21) width 98: "kable evidence."
       RenderText {#text} at (288,47) size 4x17
         text run at (288,47) width 4: " "
-      RenderBlock {DIV} at (300,8) size 126x60 [border: (3px solid #000000)]
-        RenderText {#text} at (3,3) size 70x53
-          text run at (3,3) width 51: "There is"
-          text run at (3,21) width 70: "remarkable"
-          text run at (3,39) width 60: "evidence."
+      RenderBlock {DIV} at (300,26) size 126x42 [border: (3px solid #000000)]
+        RenderText {#text} at (3,3) size 98x35
+          text run at (3,3) width 96: "There is remar" + hyphen string "\x{2010}"
+          text run at (3,21) width 98: "kable evidence."
       RenderText {#text} at (434,47) size 4x17
         text run at (434,47) width 4: " "
       RenderBlock {DIV} at (446,8) size 126x60 [border: (3px solid #000000)]
@@ -38,37 +35,32 @@ layer at (0,0) size 800x600
           text run at (3,39) width 60: "evidence."
       RenderText {#text} at (726,47) size 4x17
         text run at (726,47) width 4: " "
-      RenderBlock {DIV} at (8,84) size 126x60 [border: (3px solid #000000)]
-        RenderText {#text} at (3,3) size 70x53
-          text run at (3,3) width 51: "There is"
-          text run at (3,21) width 70: "remarkable"
-          text run at (3,39) width 60: "evidence."
-      RenderText {#text} at (142,123) size 4x17
-        text run at (142,123) width 4: " "
-      RenderBlock {DIV} at (154,84) size 126x60 [border: (3px solid #000000)]
-        RenderText {#text} at (3,3) size 70x53
-          text run at (3,3) width 51: "There is"
-          text run at (3,21) width 70: "remarkable"
-          text run at (3,39) width 60: "evidence."
-      RenderText {#text} at (288,123) size 4x17
-        text run at (288,123) width 4: " "
-      RenderBlock {DIV} at (300,84) size 126x60 [border: (3px solid #000000)]
-        RenderText {#text} at (3,3) size 70x53
-          text run at (3,3) width 51: "There is"
-          text run at (3,21) width 70: "remarkable"
-          text run at (3,39) width 60: "evidence."
-      RenderText {#text} at (434,123) size 4x17
-        text run at (434,123) width 4: " "
-      RenderBlock {DIV} at (446,84) size 126x60 [border: (3px solid #000000)]
-        RenderText {#text} at (3,3) size 70x53
-          text run at (3,3) width 51: "There is"
-          text run at (3,21) width 70: "remarkable"
-          text run at (3,39) width 60: "evidence."
-      RenderText {#text} at (580,123) size 4x17
-        text run at (580,123) width 4: " "
-      RenderBlock {DIV} at (592,84) size 126x60 [border: (3px solid #000000)]
-        RenderText {#text} at (3,3) size 70x53
-          text run at (3,3) width 51: "There is"
-          text run at (3,21) width 70: "remarkable"
-          text run at (3,39) width 60: "evidence."
+      RenderBlock {DIV} at (8,84) size 126x42 [border: (3px solid #000000)]
+        RenderText {#text} at (3,3) size 98x35
+          text run at (3,3) width 96: "There is remar" + hyphen string "\x{2010}"
+          text run at (3,21) width 98: "kable evidence."
+      RenderText {#text} at (142,105) size 4x17
+        text run at (142,105) width 4: " "
+      RenderBlock {DIV} at (154,84) size 126x42 [border: (3px solid #000000)]
+        RenderText {#text} at (3,3) size 98x35
+          text run at (3,3) width 96: "There is remar" + hyphen string "\x{2010}"
+          text run at (3,21) width 98: "kable evidence."
+      RenderText {#text} at (288,105) size 4x17
+        text run at (288,105) width 4: " "
+      RenderBlock {DIV} at (300,84) size 126x42 [border: (3px solid #000000)]
+        RenderText {#text} at (3,3) size 98x35
+          text run at (3,3) width 96: "There is remar" + hyphen string "\x{2010}"
+          text run at (3,21) width 98: "kable evidence."
+      RenderText {#text} at (434,105) size 4x17
+        text run at (434,105) width 4: " "
+      RenderBlock {DIV} at (446,84) size 126x42 [border: (3px solid #000000)]
+        RenderText {#text} at (3,3) size 98x35
+          text run at (3,3) width 96: "There is remar" + hyphen string "\x{2010}"
+          text run at (3,21) width 98: "kable evidence."
+      RenderText {#text} at (580,105) size 4x17
+        text run at (580,105) width 4: " "
+      RenderBlock {DIV} at (592,84) size 126x42 [border: (3px solid #000000)]
+        RenderText {#text} at (3,3) size 98x35
+          text run at (3,3) width 96: "There is remar" + hyphen string "\x{2010}"
+          text run at (3,21) width 98: "kable evidence."
       RenderText {#text} at (0,0) size 0x0
index b53c036..ac70a99 100644 (file)
Binary files a/LayoutTests/platform/efl/fast/text/hyphenate-limit-lines-expected.png and b/LayoutTests/platform/efl/fast/text/hyphenate-limit-lines-expected.png differ
index 78330ca..efaa154 100644 (file)
@@ -1,74 +1,80 @@
-layer at (0,0) size 785x1032
+layer at (0,0) size 785x1002
   RenderView at (0,0) size 785x600
-layer at (0,0) size 785x1032
-  RenderBlock {HTML} at (0,0) size 785x1032
+layer at (0,0) size 785x1002
+  RenderBlock {HTML} at (0,0) size 785x1002
     RenderBody {BODY} at (8,8) size 769x584
-      RenderBlock (floating) {DIV} at (4,0) size 202x512 [border: (1px solid #ADD8E6)]
-        RenderText {#text} at (1,1) size 200x509
+      RenderBlock (floating) {DIV} at (4,0) size 202x482 [border: (1px solid #ADD8E6)]
+        RenderText {#text} at (1,1) size 200x479
           text run at (1,1) width 200: "also the division of"
           text run at (1,31) width 200: "the mind into the"
-          text run at (1,61) width 87: "rational,"
-          text run at (1,91) width 200: "concupiscent, and"
-          text run at (1,121) width 200: "irascible elements,"
-          text run at (1,151) width 200: "or of pleasures"
-          text run at (1,181) width 200: "and desires into"
-          text run at (1,211) width 200: "necessary and"
-          text run at (1,241) width 155: "unnecessary\x{2014}"
-          text run at (1,271) width 200: "these and other"
-          text run at (1,301) width 200: "great forms of"
-          text run at (1,331) width 200: "thought are all of"
-          text run at (1,361) width 66: "them "
-          text run at (67,361) width 134: "to be found"
-          text run at (1,391) width 200: "in the Republic,"
-          text run at (1,421) width 200: "and were probably"
-          text run at (1,451) width 200: "first invented by"
-          text run at (1,481) width 60: "Plato."
-      RenderBlock (floating) {DIV} at (214,0) size 202x512 [border: (1px solid #ADD8E6)]
-        RenderText {#text} at (1,1) size 200x509
+          text run at (1,61) width 200: "rational, concupi" + hyphen string "\x{2010}"
+          text run at (1,91) width 141: "scent, and "
+          text run at (142,91) width 59: "irasc" + hyphen string "\x{2010}"
+          text run at (1,121) width 200: "ible elements, or"
+          text run at (1,151) width 200: "of pleasures and"
+          text run at (1,181) width 200: "desires into nece" + hyphen string "\x{2010}"
+          text run at (1,211) width 116: "ssary and "
+          text run at (117,211) width 84: "unnece" + hyphen string "\x{2010}"
+          text run at (1,241) width 200: "ssary\x{2014}these and"
+          text run at (1,271) width 200: "other great forms"
+          text run at (1,301) width 200: "of thought are all"
+          text run at (1,331) width 128: "of them "
+          text run at (129,331) width 72: "to be"
+          text run at (1,361) width 200: "found in the Repu" + hyphen string "\x{2010}"
+          text run at (1,391) width 200: "blic, and were"
+          text run at (1,421) width 200: "probably first"
+          text run at (1,451) width 130: "invented by "
+          text run at (131,451) width 60: "Plato."
+      RenderBlock (floating) {DIV} at (214,0) size 202x482 [border: (1px solid #ADD8E6)]
+        RenderText {#text} at (1,1) size 200x479
           text run at (1,1) width 200: "also the division of"
           text run at (1,31) width 200: "the mind into the"
-          text run at (1,61) width 87: "rational,"
-          text run at (1,91) width 200: "concupiscent, and"
-          text run at (1,121) width 200: "irascible elements,"
-          text run at (1,151) width 200: "or of pleasures"
-          text run at (1,181) width 200: "and desires into"
-          text run at (1,211) width 200: "necessary and"
-          text run at (1,241) width 155: "unnecessary\x{2014}"
-          text run at (1,271) width 200: "these and other"
-          text run at (1,301) width 200: "great forms of"
-          text run at (1,331) width 200: "thought are all of"
-          text run at (1,361) width 66: "them "
-          text run at (67,361) width 134: "to be found"
-          text run at (1,391) width 200: "in the Republic,"
-          text run at (1,421) width 200: "and were probably"
-          text run at (1,451) width 200: "first invented by"
-          text run at (1,481) width 60: "Plato."
-      RenderBlock (floating) {DIV} at (424,0) size 202x512 [border: (1px solid #ADD8E6)]
-        RenderText {#text} at (1,1) size 200x509
+          text run at (1,61) width 200: "rational, concupi" + hyphen string "\x{2010}"
+          text run at (1,91) width 141: "scent, and "
+          text run at (142,91) width 59: "irasc" + hyphen string "\x{2010}"
+          text run at (1,121) width 200: "ible elements, or"
+          text run at (1,151) width 200: "of pleasures and"
+          text run at (1,181) width 200: "desires into nece" + hyphen string "\x{2010}"
+          text run at (1,211) width 116: "ssary and "
+          text run at (117,211) width 84: "unnece" + hyphen string "\x{2010}"
+          text run at (1,241) width 200: "ssary\x{2014}these and"
+          text run at (1,271) width 200: "other great forms"
+          text run at (1,301) width 200: "of thought are all"
+          text run at (1,331) width 128: "of them "
+          text run at (129,331) width 72: "to be"
+          text run at (1,361) width 200: "found in the Repu" + hyphen string "\x{2010}"
+          text run at (1,391) width 200: "blic, and were"
+          text run at (1,421) width 200: "probably first"
+          text run at (1,451) width 130: "invented by "
+          text run at (131,451) width 60: "Plato."
+      RenderBlock (floating) {DIV} at (424,0) size 202x482 [border: (1px solid #ADD8E6)]
+        RenderText {#text} at (1,1) size 200x479
           text run at (1,1) width 200: "also the division of"
           text run at (1,31) width 200: "the mind into the"
-          text run at (1,61) width 87: "rational,"
-          text run at (1,91) width 200: "concupiscent, and"
-          text run at (1,121) width 200: "irascible elements,"
-          text run at (1,151) width 200: "or of pleasures"
-          text run at (1,181) width 200: "and desires into"
-          text run at (1,211) width 200: "necessary and"
-          text run at (1,241) width 155: "unnecessary\x{2014}"
-          text run at (1,271) width 200: "these and other"
-          text run at (1,301) width 200: "great forms of"
-          text run at (1,331) width 200: "thought are all of"
-          text run at (1,361) width 66: "them "
-          text run at (67,361) width 134: "to be found"
-          text run at (1,391) width 200: "in the Republic,"
-          text run at (1,421) width 200: "and were probably"
-          text run at (1,451) width 200: "first invented by"
-          text run at (1,481) width 60: "Plato."
-      RenderBlock (floating) {DIV} at (4,512) size 202x512 [border: (1px solid #ADD8E6)]
+          text run at (1,61) width 200: "rational, concupi" + hyphen string "\x{2010}"
+          text run at (1,91) width 141: "scent, and "
+          text run at (142,91) width 59: "irasc" + hyphen string "\x{2010}"
+          text run at (1,121) width 200: "ible elements, or"
+          text run at (1,151) width 200: "of pleasures and"
+          text run at (1,181) width 200: "desires into nece" + hyphen string "\x{2010}"
+          text run at (1,211) width 116: "ssary and "
+          text run at (117,211) width 84: "unnece" + hyphen string "\x{2010}"
+          text run at (1,241) width 200: "ssary\x{2014}these and"
+          text run at (1,271) width 200: "other great forms"
+          text run at (1,301) width 200: "of thought are all"
+          text run at (1,331) width 128: "of them "
+          text run at (129,331) width 72: "to be"
+          text run at (1,361) width 200: "found in the Repu" + hyphen string "\x{2010}"
+          text run at (1,391) width 200: "blic, and were"
+          text run at (1,421) width 200: "probably first"
+          text run at (1,451) width 130: "invented by "
+          text run at (131,451) width 60: "Plato."
+      RenderBlock (floating) {DIV} at (4,482) size 202x512 [border: (1px solid #ADD8E6)]
         RenderText {#text} at (1,1) size 200x509
           text run at (1,1) width 200: "also the division of"
           text run at (1,31) width 200: "the mind into the"
-          text run at (1,61) width 87: "rational,"
-          text run at (1,91) width 200: "concupiscent, and"
+          text run at (1,61) width 200: "rational, concupi" + hyphen string "\x{2010}"
+          text run at (1,91) width 200: "scent, and"
           text run at (1,121) width 200: "irascible elements,"
           text run at (1,151) width 200: "or of pleasures"
           text run at (1,181) width 200: "and desires into"
@@ -83,7 +89,7 @@ layer at (0,0) size 785x1032
           text run at (1,421) width 200: "and were probably"
           text run at (1,451) width 200: "first invented by"
           text run at (1,481) width 60: "Plato."
-      RenderBlock (floating) {DIV} at (214,512) size 202x512 [border: (1px solid #ADD8E6)]
+      RenderBlock (floating) {DIV} at (214,482) size 202x512 [border: (1px solid #ADD8E6)]
         RenderText {#text} at (1,1) size 200x509
           text run at (1,1) width 200: "also the division of"
           text run at (1,31) width 200: "the mind into the"
diff --git a/LayoutTests/platform/efl/fast/text/hyphenate-locale-expected.png b/LayoutTests/platform/efl/fast/text/hyphenate-locale-expected.png
new file mode 100644 (file)
index 0000000..003641c
Binary files /dev/null and b/LayoutTests/platform/efl/fast/text/hyphenate-locale-expected.png differ
diff --git a/LayoutTests/platform/efl/fast/text/hyphenate-locale-expected.txt b/LayoutTests/platform/efl/fast/text/hyphenate-locale-expected.txt
new file mode 100644 (file)
index 0000000..872f73e
--- /dev/null
@@ -0,0 +1,40 @@
+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 (8,8) size 784x584
+      RenderBlock {DIV} at (0,0) size 130x246
+        RenderBlock {DIV} at (0,0) size 130x41
+          RenderText {#text} at (0,0) size 158x40
+            text run at (0,0) width 158: "throughout"
+        RenderBlock {DIV} at (0,41) size 130x41
+          RenderText {#text} at (0,0) size 158x40
+            text run at (0,0) width 158: "throughout"
+        RenderBlock {DIV} at (0,82) size 130x82
+          RenderText {#text} at (0,0) size 106x81
+            text run at (0,0) width 106: "throug" + hyphen string "\x{2010}"
+            text run at (0,41) width 64: "hout"
+        RenderBlock {DIV} at (0,164) size 130x41
+          RenderText {#text} at (0,0) size 158x40
+            text run at (0,0) width 158: "throughout"
+        RenderBlock {DIV} at (0,205) size 130x41
+          RenderText {#text} at (0,0) size 158x40
+            text run at (0,0) width 158: "throughout"
+      RenderBlock {DIV} at (0,246) size 135x287
+        RenderBlock {DIV} at (0,0) size 135x41
+          RenderText {#text} at (0,0) size 156x40
+            text run at (0,0) width 156: "reciprocity"
+        RenderBlock {DIV} at (0,41) size 135x41
+          RenderText {#text} at (0,0) size 156x40
+            text run at (0,0) width 156: "reciprocity"
+        RenderBlock {DIV} at (0,82) size 135x82
+          RenderText {#text} at (0,0) size 114x81
+            text run at (0,0) width 114: "recipro" + hyphen string "\x{2010}"
+            text run at (0,41) width 54: "city"
+        RenderBlock {DIV} at (0,164) size 135x82
+          RenderText {#text} at (0,0) size 96x81
+            text run at (0,0) width 96: "recipr" + hyphen string "\x{2010}"
+            text run at (0,41) width 72: "ocity"
+        RenderBlock {DIV} at (0,246) size 135x41
+          RenderText {#text} at (0,0) size 156x40
+            text run at (0,0) width 156: "reciprocity"
index 7f6399e..009834f 100644 (file)
Binary files a/LayoutTests/platform/efl/fast/text/hyphens-expected.png and b/LayoutTests/platform/efl/fast/text/hyphens-expected.png differ
index 60fd31f..cd7d028 100644 (file)
@@ -85,12 +85,13 @@ layer at (0,0) size 800x600
           RenderText {#text} at (7,7) size 330x209
             text run at (7,7) width 245: "The chief difficulty Alice found"
             text run at (7,28) width 245: "at first was in managing her"
-            text run at (7,49) width 245: "flamingo: she succeeded in"
-            text run at (7,70) width 245: "getting its body tucked away,"
-            text run at (7,91) width 245: "comfortably enough, under her"
-            text run at (7,112) width 307: "arm, with its legs hanging down, "
-            text run at (314,112) width 23: "but"
-            text run at (7,133) width 330: "generally, just as she had got its neck nicely"
+            text run at (7,49) width 245: "flamingo: she succeeded in ge" + hyphen string "\x{2010}"
+            text run at (7,70) width 222: "tting its body tucked away, "
+            text run at (229,70) width 23: "co" + hyphen string "\x{2010}"
+            text run at (7,91) width 245: "mfortably enough, under her"
+            text run at (7,112) width 248: "arm, with its legs hanging down, "
+            text run at (254,112) width 83: "but genera" + hyphen string "\x{2010}"
+            text run at (7,133) width 330: "lly, just as she had got its neck nicely"
             text run at (7,154) width 96: "straightened "
             text run at (102,154) width 235: "out, and was going to give the"
             text run at (7,175) width 285: "hedgehog a blow with its head, it "
index d4ee100..899e7cc 100644 (file)
@@ -1,3 +1,27 @@
+2015-06-22  Ryuan Choi  <ryuan.choi@navercorp.com>
+
+        [EFL] Hyphenation is not supported
+        https://bugs.webkit.org/show_bug.cgi?id=89830
+
+        Reviewed by Gyuyoung Kim.
+
+        Share libHyphen backend of GTK port.
+
+        Rebased fast/text/hyphenate-*.html
+
+        * PlatformEfl.cmake:
+        * PlatformGTK.cmake:
+        * platform/efl/FileSystemEfl.cpp:
+        (WebCore::listDirectory): Deleted because of lack of functionality.
+        eina_file_ls returns full directory path so fnmatch fails to check dict file.
+        This patch reuse Posix implementation instead of EFL port specific function.
+        * platform/posix/FileSystemPOSIX.cpp: Ditto.
+        * platform/text/gtk/HyphenationLibHyphen.cpp: Moved to platform/text/hyphen
+        * platform/text/hyphen/HyphenationLibHyphen.cpp:
+        Renamed from Source/WebCore/platform/text/gtk/HyphenationLibHyphen.cpp.
+        (WebCore::scanTestDictionariesDirectoryIfNecessary):
+        Added PLATFORM guard and EFL implementation for the test directory
+
 2015-06-22  Chris Dumez  <cdumez@apple.com>
 
         [WK1] WebAllowDenyPolicyListener.denyOnlyThisRequest() should not start a new permission request
index 0f89afd..d76c3f4 100644 (file)
@@ -256,6 +256,8 @@ list(APPEND WebCore_SOURCES
     platform/text/efl/TextBreakIteratorInternalICUEfl.cpp
 
     platform/text/enchant/TextCheckerEnchant.cpp
+
+    platform/text/hyphen/HyphenationLibHyphen.cpp
 )
 
 if (USE_GEOCLUE2)
@@ -310,6 +312,7 @@ list(APPEND WebCore_LIBRARIES
     ${LIBSOUP_LIBRARIES}
     ${LIBXML2_LIBRARIES}
     ${LIBXSLT_LIBRARIES}
+    ${HYPHEN_LIBRARIES}
     ${PNG_LIBRARIES}
     ${SQLITE_LIBRARIES}
     ${WEBP_LIBRARIES}
@@ -535,3 +538,9 @@ if (ENABLE_SUBTLE_CRYPTO)
         ${GNUTLS_LIBRARIES}
     )
 endif ()
+
+if (DEVELOPER_MODE)
+    if (USE_LIBHYPHEN AND IS_DIRECTORY ${CMAKE_SOURCE_DIR}/WebKitBuild/DependenciesEFL)
+        add_definitions(-DTEST_HYPHENATAION_PATH=\"${CMAKE_SOURCE_DIR}/WebKitBuild/DependenciesEFL/Root/webkitgtk-test-dicts\")
+    endif ()
+endif ()
index 08a40b4..e150f98 100644 (file)
@@ -192,8 +192,9 @@ list(APPEND WebCore_SOURCES
 
     platform/text/enchant/TextCheckerEnchant.cpp
 
-    platform/text/gtk/HyphenationLibHyphen.cpp
     platform/text/gtk/TextBreakIteratorInternalICUGtk.cpp
+
+    platform/text/hyphen/HyphenationLibHyphen.cpp
 )
 
 list(APPEND WebCorePlatformGTK_SOURCES
index 219ef3a..5b79688 100644 (file)
@@ -82,23 +82,6 @@ String homeDirectoryPath()
     return String::fromUTF8(home);
 }
 
-Vector<String> listDirectory(const String& path, const String& filter)
-{
-    Vector<String> matchingEntries;
-    CString cfilter = filter.utf8();
-    const char *f_name;
-
-    Eina_Iterator* it = eina_file_ls(path.utf8().data());
-    EINA_ITERATOR_FOREACH(it, f_name) {
-        if (!fnmatch(cfilter.data(), f_name, 0))
-            matchingEntries.append(String::fromUTF8(f_name));
-        eina_stringshare_del(f_name);
-    }
-    eina_iterator_free(it);
-
-    return matchingEntries;
-}
-
 uint64_t getVolumeFreeSizeForPath(const char* path)
 {
     struct statvfs buf;
index a86f20c..fe276b0 100644 (file)
@@ -298,7 +298,6 @@ String directoryName(const String& path)
     return dirname(fsRep.mutableData());
 }
 
-#if !PLATFORM(EFL)
 Vector<String> listDirectory(const String& path, const String& filter)
 {
     Vector<String> entries;
@@ -322,7 +321,6 @@ Vector<String> listDirectory(const String& path, const String& filter)
     }
     return entries;
 }
-#endif
 
 #if !OS(DARWIN) || PLATFORM(EFL) || PLATFORM(GTK)
 String openTemporaryFile(const String& prefix, PlatformFileHandle& handle)
 
 #include "AtomicStringKeyedMRUCache.h"
 #include "FileSystem.h"
-#include "GtkUtilities.h"
 #include <hyphen.h>
 #include <wtf/HashMap.h>
 #include <wtf/NeverDestroyed.h>
-#include <wtf/glib/GUniquePtr.h>
 #include <wtf/text/AtomicStringHash.h>
 #include <wtf/text/CString.h>
 #include <wtf/text/StringView.h>
 
+#if PLATFORM(GTK)
+#include "GtkUtilities.h"
+#include <wtf/glib/GUniquePtr.h>
+#endif
+
 namespace WebCore {
 
 static const char* const gDictionaryDirectories[] = {
@@ -69,6 +72,7 @@ static void scanTestDictionariesDirectoryIfNecessary(HashMap<AtomicString, Strin
     // It's unfortunate that we need to look for the dictionaries this way, but
     // libhyphen doesn't have the concept of installed dictionaries. Instead,
     // we have this special case for WebKit tests.
+#if PLATFORM(GTK)
     CString buildDirectory = webkitBuildDirectory();
     GUniquePtr<char> dictionariesPath(g_build_filename(buildDirectory.data(), "DependenciesGTK", "Root", "webkitgtk-test-dicts", nullptr));
     if (g_file_test(dictionariesPath.get(), static_cast<GFileTest>(G_FILE_TEST_IS_DIR))) {
@@ -79,6 +83,9 @@ static void scanTestDictionariesDirectoryIfNecessary(HashMap<AtomicString, Strin
     // Try alternative dictionaries path for people not using JHBuild.
     dictionariesPath.reset(g_build_filename(buildDirectory.data(), "webkitgtk-test-dicts", nullptr));
     scanDirectoryForDicionaries(dictionariesPath.get(), availableLocales);
+#elif defined(TEST_HYPHENATAION_PATH)
+    scanDirectoryForDicionaries(TEST_HYPHENATAION_PATH, availableLocales);
+#endif
 }
 #endif
 
index 73364e9..0250476 100644 (file)
@@ -47,6 +47,8 @@ file(MAKE_DIRECTORY ${THEME_BINARY_DIR})
 
 WEBKIT_OPTION_BEGIN()
 
+WEBKIT_OPTION_DEFINE(USE_LIBHYPHEN "Whether to enable the default automatic hyphenation implementation." PUBLIC ON)
+
 SET_AND_EXPOSE_TO_BUILD(ENABLE_DEVELOPER_MODE ${DEVELOPER_MODE})
 if (DEVELOPER_MODE)
     set(ENABLE_TOOLS ON)
@@ -287,3 +289,10 @@ endif ()
 if (ENABLE_SUBTLE_CRYPTO)
     find_package(GnuTLS 3.0.0 REQUIRED)
 endif ()
+
+if (USE_LIBHYPHEN)
+    find_package(Hyphen)
+    if (NOT HYPHEN_FOUND)
+       message(FATAL_ERROR "libhyphen is needed for USE_LIBHYPHEN.")
+    endif ()
+endif ()
index 36d99b8..6425b7d 100644 (file)
@@ -1,3 +1,12 @@
+2015-06-22  Ryuan Choi  <ryuan.choi@navercorp.com>
+
+        [EFL] Hyphenation is not supported
+        https://bugs.webkit.org/show_bug.cgi?id=89830
+
+        Reviewed by Gyuyoung Kim.
+
+        * efl/jhbuild.modules: Added webkitgtk-test-dicts for layout test.
+
 2015-06-22  Dewei Zhu  <dewei_zhu@apple.com>
 
         Get rid of factory json files in benchmark_runner
index 4c0e3b2..b8d026c 100644 (file)
@@ -7,6 +7,7 @@
     <dependencies>
       <dep package="cairo"/>
       <dep package="fonts"/>
+      <dep package="dicts"/>
       <dep package="fontconfig"/>
       <dep package="freetype6"/>
       <dep package="harfbuzz"/>
     </branch>
   </autotools>
 
+  <autotools id="dicts"
+             skip-autogen="true">
+    <branch module="mrobinson/webkitgtk-test-dicts/archive/0.0.1.zip" version="0.0.1"
+            checkoutdir="webkitgtk-test-dicts"
+            repo="github.com"
+            hash="sha256:6cfc94a7846a0d8f76a7a733f729e8109c6e1d0fbc9e0e8587eb5c3ef9888c24"
+            md5sum="6bd8d32c157305fc69932ea8d1348723" size="99299">
+    </branch>
+  </autotools>
+
   <autotools id="libffi" autogen-sh="configure">
     <branch module="/pub/libffi/libffi-3.1.tar.gz" version="3.1"
              repo="sourceware.org"