My favorites | Sign in
Project Home Downloads Wiki Issues Code Search
New issue   Search
for
  Advanced search   Search tips   Subscriptions
Issue 47083: CSS3: Implement Hyphenation for Chromium port
93 people starred this issue and may be notified of changes. Back to list
 
Project Member Reported by dglazkov@chromium.org, Jun 21, 2010
The following layout test is failing on all platforms

  fast/text/hyphenate-character.html = IMAGE+TEXT
  fast/text/hyphens.html = IMAGE+TEXT

Probable cause:

CSS3 Hyphenation implemented in Mac/Safari port:

http://trac.webkit.org/changeset/61548

We don't support it yet. Giving to the CSS3 folks for triage.

Jun 24, 2010
#1 yuzo@chromium.org
(No comment was entered for this change.)
Status: Assigned
Owner: rolandst...@chromium.org
Jun 24, 2010
#2 rolandsteiner.chromium@gmail.com
Hm, thinking about this, why is hyphenation even platform dependent? Just to avoid duplicating some bits from the OS, or perhaps to do different (less precise) hyphenation on mobile platforms?

IOW, wouldn't a generic, cross-platform library be better for this rather than having different hyphenation results on the various platforms?
Aug 4, 2010
#3 atwilson@chromium.org
Also marked hyphenate-locale.html as failing since it depends on this functionality as well.
Aug 12, 2010
#4 hb...@chromium.org
This is just for your information.
It may be a good idea to integrate hyphen (*1), a hyphenation library used by OpenOffice, to WebKit/Chrome? (As far as I tested, it is pretty easy to use it on Windows.)

(*1) http://sourceforge.net/projects/hunspell/files/Hyphen/

Regards,
Oct 22, 2010
#5 jshin@chromium.org
The hyphenation library used by OpenOffice is a port of the TeX hyphenation algorithm (the port happens to have been written by a Google engineer in his pre-Google days) and I think it'd work well. 

BTW, what do we want to do with language-dependent hyphenation dictionaries? There are two issues:  

1. Language detection. We do have a language detector (CLD). So, we can use that to determine which hyphenation dictionary to use for a given document. An alternative is to rely on 'lang/xml:lang' and 'Content-Language'(the latter can have multiple values), but neither of them is widely used and when specified, the value is not so reliable. 

2. Perhaps, we can start with English only, but either we need to have a mechanism by which we send down a language-dependent hyphenation dictionary on demand or decide which hyphenation dictionaries to include in our build (out of the box). 

Cc: tony.chromium
Labels: I18N
Oct 25, 2010
#6 tony@chromium.org
@rolandsteiner: In Safari's implementation, the hyphenation data files are provided by the OS.  The code to use it is specific to platform MAC, which suggests that the data files won't be included in Safari win.  I suspect the data files are big.

Using the hunspell hyphen library sounds good for chromium.  We could lazy download the data files like we do with the spellchecking dictionaries.

Starting with English only sounds fine to start.  It looks like the safari mac implementation is English only right now:
http://trac.webkit.org/browser/trunk/WebCore/platform/text/mac/HyphenationMac.mm?rev=61548#L39

Oct 25, 2010
#7 rolandst...@google.com
The question is, what is better - : to re-use their implementation on Mac (using the OS APIs there) and have a separate implementation on the other platforms, or use the same common code & dictionaries for all platforms?
Oct 26, 2010
#8 tony@chromium.org
Use the same common code & dictionaries for all platforms.
Oct 27, 2010
#9 rolandsteiner.chromium@gmail.com
 Issue 60895  added for inclusion of 'hyphen' library.
Blockedon: 60895
Oct 27, 2010
#10 jshin@chromium.org
JFYI, Android implemented canHyphenate and lastHyphenLocation (English only for now) with the hyphenation library used by OO (being added in  bug 60895 ). See WebKit/WebCore/platform/text/android/HyphenationAndroid.cpp 

For Chromium, I guess we need additional plumbing to load a dictionary (calling out to the browser process from a render process).

Just for the reference: CSS3 text hyphenation spec: http://www.w3.org/TR/css3-gcpm/#hyphenation

Oct 27, 2010
#11 jshin@chromium.org
Regarding Mac using the OS facility, add a few Mac folks. 
(Not that I want to make things more complicated but that I just want to know for sure):

IIRC, Mac Chrome does not use Hunspell but use the OS spellchecking API. I wonder what Mac folks would say about the hyphenation. I like the platform parity and the simplicity of our implementation doing the same across platforms, but .... 
Cc: m...@chromium.org pinker...@chromium.org thoma...@chromium.org hb...@chromium.org
Oct 27, 2010
#12 tony@chromium.org
jshin is right, we should ask mac folks.  I had forgotten that we don't use hunspell on OSX.
Nov 1, 2010
#13 rolandsteiner.chromium@gmail.com
Another question is: what is a good loading strategy for the hyphenation dictionaries. At the moment we only have en-US, but this is likely going to change.

I guess we should load the library for the local language at startup (in a separate thread?) and load other languages on demand (?). The individual libraries are not huge (111KB for en-US in plain text), but it'll add up, so we probably shouldn't load all of them at startup.

OTOH, unlike spellchecking, hyphenation AFAICT needs to either block rendering until the hyphenation library is loaded, or cause a relayout if the library finished loading and the page wasn't rendered with hyphenation. The latter is probably better from a "speed" persepctive, but may be jerky/jumpy, esp. if the user scrolled in the mean time.
Option 3: hyphenate only if the library is loaded, but don't bother if it hasn't finished doing so yet. The downside here is that you'd have slightly different "versions" of the page depending when you look at it.

Cc: -m...@chromium.org -pinker...@chromium.org -thoma...@chromium.org -hb...@chromium.org
Nov 1, 2010
#14 rolandsteiner.chromium@gmail.com
Adding to the above: what should the format for the hyphenation libraries be? plain text that can be user-edited, or some pre-compiled form (not editable, but probably smaller)?
Nov 2, 2010
#15 tony@chromium.org
I discussed a bit with some office mates.  The consensus seems to be to lazy load and stall layout while we load.  Once loaded, keep it around in memory so the next time hyphenation data is needed, we don't have to stall load.

This seems similar to what webkit does for css files: http://webkit.org/blog/66/the-fouc-problem/

We might want to limit the number of dictionaries we keep loaded, but that's a problem for when we add more languages.
Nov 3, 2010
#16 hb...@chromium.org
Even though it is just a random thought, can we re-use the code that downloads spellchecker dictionaries for this purpose?

Regards,
Nov 4, 2010
#17 jshin@chromium.org
That's my thought, too for on-demand downloading. How does the spellchecker handle in-memory loading? 

BTW, is re-layout that bad (layout first while waiting for the download)? Don't we do something similar with web fonts / dynamic fonts? 


Nov 4, 2010
#18 hb...@chromium.org
(in reply to comment #17)

> How does the spellchecker handle in-memory loading?

Even though it is implemented by estade, I would like to write the steps of how Chrome downloads a spellchecker dictionary and use it below.

1. [WEBKIT] Add WebKitClient::spellcheck() so we can implement the spellchecking code in render_view.cc.
2. [RENDERER] Send an IPC message to a browser process to get the file descriptor.
3. [BROWSER] The UI thread posts a FILE task that checks whether a dictionary is in the local disk.
4. [BROWSER] Post a UI task that sends a download request (only if a dictionary is not in the local disk).
5. [BROWSER] Post a FILE task that saves the downloaded dictionary to a file (when finish downloading the dictionary).
6. [BROWSER] Post a UI task that sends a copy of the file descriptor to a renderer process.
7. [RENDERER] Map the memory of the file and pass it to hunspell.

I think the good next step is adding a hyphenation interface (such as WebKitClient::hyphenate()) to WebKitClient so we can implement the actual hyphenation code (including downloading a hyphenation dictionary) in render_view.cc?

Regards,
Nov 4, 2010
#19 rolandst...@google.com
That's a very useful summary of the loading process, thanks a lot!

I planned on adding a hyphenation interface as the next step (was a bit held up by WebKit gardening), but we also probably have to change the way hyphenation is currently called by the renderer, since it's insufficient for international hyphenation (i.e., it adds hyphens only, but doesn't allow for modification of the input string).

E.g., in old German orthography: Schiffahrt -> Schiff-fahrt (note the extra 'f'). Similar cases exist in Hungarian, etc.

Nov 15, 2010
#20 rolandsteiner.chromium@gmail.com
(No comment was entered for this change.)
Status: Started
Blockedon: 63283 63284
Dec 6, 2010
#21 jshin@chromium.org
(No comment was entered for this change.)
Cc: est...@chromium.org
Dec 15, 2010
#22 rolandsteiner.chromium@gmail.com
Quick update: I'm working on converting the hyphenation code to UTF-16 and custom-tailoring it for Chromium. Will be on hiatus for a while due to my work on the RTE test suite and upcoming vacation.
Jan 17, 2011
#23 tkent@chromium.org
 Issue 69807  has been merged into this issue.
Mar 2, 2011
#24 jshin@chromium.org
JFYI: I've just come across an alternate implementation of TeX hyphenation algorithm ( http://swolter.sdf1.org/software/libhyphenate.html ).

 I have little idea whether that's better or worse (the page claims that it's better than libhnj).  Perhaps, it's not a good idea to divert resource to evaluate this at the moment given that libhnj has been field-tested in OO for a long while and some adaptations have already been done (in  bug 63284 ).  


Mar 18, 2011
#25 lafo...@chromium.org
The following layout test is failing on all platforms

  fast/text/hyphenate-character.html = IMAGE+TEXT
  fast/text/hyphens.html = IMAGE+TEXT

Probable cause:

CSS3 Hyphenation implemented in Mac/Safari port:

http://trac.webkit.org/changeset/61548

We don't support it yet. Giving to the CSS3 folks for triage.
Labels: -I18N bulkmove Feature-I18N
Aug 18, 2011
#26 mojca.mi...@gmail.com
I'm one of the maintainers of hyphenation patterns repository for TeX:
    http://tug.org/tex-hyphen/
    SVN repository: http://tug.org/svn/texhyphen/trunk/hyph-utf8/tex/generic/hyph-utf8/patterns/txt/).

Mozilla took those patterns as the basis:
    http://mxr.mozilla.org/mozilla-central/source/intl/locales/

Some patterns need relicencing, but that is being worked on.

We will probably start providing hunspell-ready patterns that could be used in any program using that library, like OpenOffice (apart from the licence), Firefox, ...

If you want, you can use those patterns and if any changes are needed in original repository, we will gladly help you.
Sep 22, 2011
#27 ver...@gmail.com
I'd really like that the format of such dictionary remains user-editable, even if it's downloaded in a compressed (gzip?) form: there should be a simple plain-text layout for this dictionary, alowing also the users to add custom entries to this default dictionary.

One way for doing that is to maintain in the browser's cache the downloaded file, use also a stored reference to the user-edited file (checked first for exceptions).
And then implement a cache storing the locally recompiled file with very fast index (working with a simple finite-state machine and using some hashing technics for fast lookups, plus efficient data locality and compression to limit the memory footprint), containing the equivalent data (from the downloaded source and the user-edited file).

Sep 22, 2011
#28 ver...@gmail.com
Note: the effect of hyphenation is language dependant! This is not always inserting an hyphen before the line-break, as some languages (notably Germanic/Nordic languages) also sometime require orthographic adaptations (for example when breaking in the middle of a "ck" pair occuring between two syllables).

A dictionary may not always need to contain those adaptations, because a language may already have generic rules for how they operate. Those rules should be implemented so that they don't necessarily have to be stored in the hyphenation dictionary.

Catalan will break syllables after a middle dot (either the diacritic attached and precomposed with a L/l letter, or the legacy punctuation sign following it): if there's such middle dot, you must not insert an additional hyphen.

Some other languages require a complex algorithm for almost all words: if implemented correctly, Lao could be "hyphenated" correctly in 98% of cases, requiring only a small dictionary of exceptions. Note that Lao will NOT use any visible hyphen (it breaks on almost all syllables, but does not use any space to separate words, so a woorking hyphenator is really needed to break lines properly and avoid systematic overflows).

Nov 13, 2011
#29 rolandst...@chromium.org
Won't be able to work on this in the foreseeable future. :(
Status: Available
Owner: ---
Feb 2, 2012
#30 papal...@gmail.com
Link from comment 10 is not valid any more, the new link to the spec is http://www.w3.org/TR/css3-text/#hyphenation
Feb 7, 2012
#31 tom.biel...@gmail.com
"In TeX's original hyphenation patterns for US English, the exception list contains fourteen words."
via http://en.wikipedia.org/wiki/Hyphenation_algorithm

Tug.org's TeX pattern repository seems to me like the best option for this.

IE, Firefox, Safari, and iOS all have CSS3's hyphenation property supported (via http://caniuse.com/css-hyphens). For the sake of web typography, it seems important that this should be implemented by Chrome soon!
Feb 8, 2012
#32 hb...@chromium.org
Greetings,

I would like to add a link to WebKit Bug <http://webkit.org/b/48610> so we can track its progress.

Regards,

Hironori Bono

Jun 22, 2012
#33 scott.ro...@gmail.com
Sorry to be languageist but can we at least have it in English for now?
Jun 22, 2012
#34 jshin@chromium.org
(No comment was entered for this change.)
Labels: Webkit-ID-48610
Blockedon: -chromium:60895 -chromium:63283 -chromium:63284 chromium:60895 chromium:63283 chromium:63284
Jun 22, 2012
#35 jshin@chromium.org
Roland does not have time for this. We need to find somebody to work on this. For now,  it's probably a good idea to start with matching Safari for English (i.e. putting aside issues like 'text changing' on hyphenation as in German).
Jun 22, 2012
#36 bugdro...@chromium.org
https://bugs.webkit.org/show_bug.cgi?id=48610
Labels: -Webkit-ID-48610 WebKit-ID-48610-NEW
Jul 17, 2012
#37 bugdro...@chromium.org
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=146964

------------------------------------------------------------------------
r146964 | hbono@chromium.org | Tue Jul 17 01:56:59 PDT 2012

Changed paths:
 A http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/hyphenator/hyphenator.cc?r1=146964&r2=146963&pathrev=146964
 M http://src.chromium.org/viewvc/chrome/trunk/src/third_party/hyphen/hyphen.h?r1=146964&r2=146963&pathrev=146964
 M http://src.chromium.org/viewvc/chrome/trunk/src/content/content_renderer.gypi?r1=146964&r2=146963&pathrev=146964
 M http://src.chromium.org/viewvc/chrome/trunk/src/third_party/hyphen/hyph_en_US.dic?r1=146964&r2=146963&pathrev=146964
 A http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/hyphenator/hyphenator_unittest.cc?r1=146964&r2=146963&pathrev=146964
 A http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/hyphenator/hyphenator.h?r1=146964&r2=146963&pathrev=146964
 M http://src.chromium.org/viewvc/chrome/trunk/src/content/content_tests.gypi?r1=146964&r2=146963&pathrev=146964
 A http://src.chromium.org/viewvc/chrome/trunk/src/third_party/hyphen/hyphen.gyp?r1=146964&r2=146963&pathrev=146964
 A http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/hyphenator?r1=146964&r2=146963&pathrev=146964
 A http://src.chromium.org/viewvc/chrome/trunk/src/third_party/hyphen/google.patch?r1=146964&r2=146963&pathrev=146964
 M http://src.chromium.org/viewvc/chrome/trunk/src/third_party/hyphen/hyphen.c?r1=146964&r2=146963&pathrev=146964
 M http://src.chromium.org/viewvc/chrome/trunk/src/third_party/hyphen/README.chromium?r1=146964&r2=146963&pathrev=146964

Adds a hy-phen-ator.
This change adds a project file for the hyphen library and a Hyphenator class, which encapsulates the library. (This class is not integrated into Chrome, though.) 

BUG=47083
TEST=HyphenatorTest.HyphenateWords

Review URL: https://chromiumcodereview.appspot.com/9545017
------------------------------------------------------------------------
Jul 17, 2012
#38 jshin@chromium.org
Thank you, hbono, for working on this.  Updating the status to reflect the 'reality' :-)


Status: Started
Owner: hb...@chromium.org
Sep 2, 2012
#40 bugdro...@chromium.org
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=154663

------------------------------------------------------------------------
r154663 | hbono@chromium.org | 2012-09-03T06:39:01.458833Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/hyphenator/hyphenator.cc?r1=154663&r2=154662&pathrev=154663
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/hyphenator/hyphenator.h?r1=154663&r2=154662&pathrev=154663
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/public/test/mock_render_thread.cc?r1=154663&r2=154662&pathrev=154663
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/common/content_message_generator.h?r1=154663&r2=154662&pathrev=154663
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/public/test/mock_render_thread.h?r1=154663&r2=154662&pathrev=154663
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/content_tests.gypi?r1=154663&r2=154662&pathrev=154663
   A http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/hyphenator?r1=154663&r2=154662&pathrev=154663
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/public/test/mock_render_process_host.cc?r1=154663&r2=154662&pathrev=154663
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_process_host_impl.cc?r1=154663&r2=154662&pathrev=154663
   A http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/hyphenator/hyphenator_message_filter_unittest.cc?r1=154663&r2=154662&pathrev=154663
   A http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/hyphenator/hyphenator_message_filter.cc?r1=154663&r2=154662&pathrev=154663
   A http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/hyphenator/hyphenator_message_filter.h?r1=154663&r2=154662&pathrev=154663
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/content_browser.gypi?r1=154663&r2=154662&pathrev=154663
   M http://src.chromium.org/viewvc/chrome/trunk/src/ipc/ipc_message_utils.h?r1=154663&r2=154662&pathrev=154663
   A http://src.chromium.org/viewvc/chrome/trunk/src/content/common/hyphenator_messages.h?r1=154663&r2=154662&pathrev=154663
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/renderer_webkitplatformsupport_impl.cc?r1=154663&r2=154662&pathrev=154663
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/renderer_webkitplatformsupport_impl.h?r1=154663&r2=154662&pathrev=154663
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/hyphenator/hyphenator_unittest.cc?r1=154663&r2=154662&pathrev=154663

In-te-grate hy-phen-ator to con-tent.
This change integrates the Hyphenator class to content so Chrome can use it. This change basically consists of two parts:
* Adds a couple of IPC messages so a renderer asks a browser to open hyphenation dictionaries;
* Adds a HyphenatorMessageFilter class, which opens hyphenation dictionaries in a browser process;
* Changes the Hyphenator class to send IPC messages to open hyphenation dictionaries. 

BUG=47083
TEST=HyphenatorTest.SetDictionary,HyphenatorMessageFilterTest.OpenDictionary

Review URL: https://chromiumcodereview.appspot.com/10854245
------------------------------------------------------------------------
Oct 3, 2012
#41 bugdro...@chromium.org
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=160044

------------------------------------------------------------------------
r160044 | hbono@chromium.org | 2012-10-04T01:53:01.590967Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/support/test_webkit_platform_support.cc?r1=160044&r2=160043&pathrev=160044
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/support/webkit_support.gypi?r1=160044&r2=160043&pathrev=160044
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/support/test_webkit_platform_support.h?r1=160044&r2=160043&pathrev=160044
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/DEPS?r1=160044&r2=160043&pathrev=160044

Implement hyphenation for DumpRenderTree.
This change implements the platform functions added by my WebKit change r124434 <http://trac.webkit.org/changeset/124434> for DumpRenderTree. It is a simplified version of my r146964 <http://crrev.com/146964>.

BUG=47083
TEST=hyphen*.html

Review URL: https://chromiumcodereview.appspot.com/11014014
------------------------------------------------------------------------
Oct 3, 2012
#42 bugdro...@chromium.org
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=160087

------------------------------------------------------------------------
r160087 | hbono@chromium.org | 2012-10-04T06:07:06.114118Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/support/test_webkit_platform_support.cc?r1=160087&r2=160086&pathrev=160087
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/support/webkit_support.gypi?r1=160087&r2=160086&pathrev=160087
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/support/test_webkit_platform_support.h?r1=160087&r2=160086&pathrev=160087
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/DEPS?r1=160087&r2=160086&pathrev=160087

Revert 160044 - Implement hyphenation for DumpRenderTree.
This change implements the platform functions added by my WebKit change r124434 <http://trac.webkit.org/changeset/124434> for DumpRenderTree. It is a simplified version of my r146964 <http://crrev.com/146964>.

BUG=47083
TEST=hyphen*.html

Review URL: https://chromiumcodereview.appspot.com/11014014

TBR=hbono@chromium.org
Review URL: https://codereview.chromium.org/11038027
------------------------------------------------------------------------
Oct 8, 2012
#44 bugdro...@chromium.org
https://bugs.webkit.org/show_bug.cgi?id=48610
Labels: -WebKit-ID-48610-NEW WebKit-ID-48610-RESOLVED
Oct 8, 2012
#45 bugdro...@chromium.org
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=160790

------------------------------------------------------------------------
r160790 | hbono@chromium.org | 2012-10-09T04:41:16.939708Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/zip_internal.cc?r1=160790&r2=160789&pathrev=160790
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/zip_internal.h?r1=160790&r2=160789&pathrev=160790
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/zip_reader_unittest.cc?r1=160790&r2=160789&pathrev=160790
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/zip_reader.cc?r1=160790&r2=160789&pathrev=160790
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/zip_reader.h?r1=160790&r2=160789&pathrev=160790

Add ZipReader::OpenFromString().
This change adds a function OpenFromString to the ZipReader class so we can extract files from a zip archive stored in memory without using temporary files. 

BUG=47083
TEST=ZipReaderTest.OpenFromString.

Review URL: https://chromiumcodereview.appspot.com/10908067
------------------------------------------------------------------------
Oct 15, 2012
#46 bugdro...@chromium.org
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=161845

------------------------------------------------------------------------
r161845 | hbono@chromium.org | 2012-10-15T10:12:14.266799Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/public/browser/content_browser_client.cc?r1=161845&r2=161844&pathrev=161845
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/chrome_content_browser_client.cc?r1=161845&r2=161844&pathrev=161845
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/hyphenator/hyphenator_message_filter.cc?r1=161845&r2=161844&pathrev=161845
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/public/browser/content_browser_client.h?r1=161845&r2=161844&pathrev=161845
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/chrome_content_browser_client.h?r1=161845&r2=161844&pathrev=161845

Change the directory containing hyphenation dictionaries.
Even though content shell and DumpRenderTree can use sample dictionaries in 'third_party/hyphen', Chrome cannot use them and it needs to use dictionaries downloaded to 'chrome::DIR_APP_DICTIONARIES'. This change adds the ContentBrowserClient::GetHyphenDictionaryDirectory function so Chrome can change the directory to 'chrome::DIR_APP_DICTIONARIES' and read hyphenation dictionaries from the directory.

BUG=47083
TEST=none

Review URL: https://chromiumcodereview.appspot.com/11036054
------------------------------------------------------------------------
Dec 7, 2012
#47 senorbla...@chromium.org
The layout tests associated with this bug have been rebaselined, and look pretty good (to my non-expert eyes).  Can we close this, or is there further work to do?
Dec 7, 2012
#48 jshin@chromium.org
There are a lot of follow-up's to do, but this bug may be closed. I'll leave it for hbono to answer. 

A partial list of follow-ups:
  - Make hyphenation work for languages other than English
  - Pick a hyphenation dictionary based on 'lang/xml:lang' specified in an HTML node
  - Add support for 'German-style' hyphenation where the spelling of a word change when hyphenated. 

Most, if not all, of the above requires some webkit changes as well as chromium-side changes. 

Mar 10, 2013
#49 bugdro...@chromium.org
(No comment was entered for this change.)
Labels: -Area-WebKit -WebKit-Core -Feature-I18N Cr-Content Cr-UI-I18N Cr-Content-Core
Mar 20, 2013
#50 bugdro...@chromium.org
(No comment was entered for this change.)
Labels: -Cr-UI-I18N Cr-UI-Internationalization
Apr 5, 2013
#51 bugdro...@chromium.org
(No comment was entered for this change.)
Labels: -Cr-Content Cr-Blink
Apr 18, 2013
#52 santz.de...@gmail.com
When is support for this feature going to be added?
May 10, 2013
#53 joth@chromium.org
Should this be added to http://www.chromestatus.com/features ?
May 12, 2013
#54 kenjibaheux@chromium.org
This probably needs a new owner.
Given the number of stars and interest, let me try to triage this once more. 
Status: Untriaged
Owner: kenjibaheux@chromium.org
May 13, 2013
#55 kenjibaheux@chromium.org
Does not look like we can continue to work on this...
CC-ing a bunch of folks...
Status: Available
Owner: ---
Cc: mikelawt...@chromium.org dglazkov@chromium.org
Nov 19, 2013
#56 v...@chromium.org
(No comment was entered for this change.)
Labels: Hotlist-DevRel
Sep 11, 2014
#57 laukstein
Any progress in http://dev.w3.org/csswg/css-text-4/#hyphenation implementation?
Sep 11, 2014
#58 leviw@chromium.org
I don't believe anyone is working on it at the moment.
Sign in to add a comment

Powered by Google Project Hosting