Implement line-break property of CSS3 Text

RESOLVED FIXED in Firefox 69

Status

()

enhancement
P3
normal
RESOLVED FIXED
5 years ago
Last month

People

(Reporter: m_kato, Assigned: jfkthame)

Tracking

(Blocks 2 bugs, {css3, dev-doc-needed})

Trunk
mozilla69
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox69 fixed)

Details

(Whiteboard: [layout:backlog:2019q3:69][wptsync upstream], )

Attachments

(6 attachments)

Reporter

Description

5 years ago
WebKit/Blink and Trindent are implemented, but it has no property in Gecko.
Reporter

Updated

5 years ago
Keywords: css3

Comment 1

5 years ago
(Bugs about implementing new CSS properties are usually filed in "CSS
Parsing and Computation", so moving it there for consistency.)
Severity: normal → enhancement
Component: Layout: Text → CSS Parsing and Computation
(In reply to Mats Palmgren (:mats) from comment #1)
> (Bugs about implementing new CSS properties are usually filed in "CSS
> Parsing and Computation", so moving it there for consistency.)

Really?  I'd keep it in the component where the bulk of the code would live.  And the CSS side here is trivial.
Component: CSS Parsing and Computation → Layout: Text

Comment 3

5 years ago
My mistake then;  I thought it was the established practice for bugs that
adds new CSS properties.

Updated

5 years ago
Blocks: css3test
Reporter

Comment 4

4 years ago
Although, I am migrating ICU into m-c (by some bugs for ECMA-402 support), ICU has this line-break rule now
http://www.icu-project.org/trac/changeset/37037

Comment 5

2 years ago
FYI, Blink is going to unprefix 'line-break' property (actually, we had, accidentally, now trying to be official.)

mkwst@ suggested we should update our status here, hope this info can be any help for you.

Intent to Ship: Unprefix CSS 'line-break' property
https://groups.google.com/a/chromium.org/d/msg/blink-dev/RHeWSxMIVK8/g5NJgZo9AQAJ
It would be good to not have this random incompatibility.

Makoto-san, do you happen to have an idea of how much work this is to implement?
Flags: needinfo?(m_kato)
Reporter

Comment 7

2 years ago
(In reply to Boris Zbarsky [:bz] (vacation until 7/7) from comment #6)
> It would be good to not have this random incompatibility.
> 
> Makoto-san, do you happen to have an idea of how much work this is to
> implement?

If we can keep our current line breaker rule that isn't same as UAX#14, it isn't difficult.  If line-break property need additional rule again our rule.  If we require this on 57 or 58, I will start the implementation.

If we have to change it to UAX#14 based, it isn't easy.  One is file size (+3MB with ICU's rule), and others are compatibility  against old Gecko.  File size is critical for mobile team and we don't use ICU on Fennec's release channel yet.
Flags: needinfo?(m_kato)
> If we require this on 57 or 58, I will start the implementation

I don't know that we have a target for this yet.  57 is probably not realistic no matter what, but "sometime in the nearish future" might be nice if everyone else is shipping this....
I wonder if it's possible to base this on the xi-unicode library that Servo is also using to implement line breaking. Looks like bug 1290022 is investigating the possibility.
Priority: -- → P3

Updated

Last year
Blocks: 1358019
Assignee

Updated

2 months ago
See Also: → 1531715
Whiteboard: [layout:backlog:2019q3:69]
Assignee

Comment 16

Last month

Just FTR, I plan to land this (along with bug 1531715) after the mozilla-68 soft freeze is over.

Assignee: nobody → jfkthame

Comment 17

Last month
Pushed by jkew@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e7b525e15531
Add parsing of the loose|normal|strict values of the CSS line-break property. r=emilio
https://hg.mozilla.org/integration/autoland/rev/f339909acbc3
Pass word-break and line-break properties to the line-breaker as two distinct enum class parameters. r=m_kato
https://hg.mozilla.org/integration/autoland/rev/436e3199c386
Implement loose|normal|strict line-break values by remapping the linebreak class of affected characters. r=m_kato
https://hg.mozilla.org/integration/autoland/rev/2607e7773ed5
Restrict some line-break behaviors to Chinese and Japanese contexts, as per spec. r=m_kato
https://hg.mozilla.org/integration/autoland/rev/b695489a68c4
Reduce the available width slightly in line-break-loose-017a because a couple of the target characters may be less then .2em wide. r=m_kato
https://hg.mozilla.org/integration/autoland/rev/43952b7f9de8
Update metadata for WPT tests that now pass. r=m_kato
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/16924 for changes under testing/web-platform/tests
Whiteboard: [layout:backlog:2019q3:69] → [layout:backlog:2019q3:69][wptsync upstream]
Upstream web-platform-tests status checks passed, PR will merge once commit reaches central.
Upstream PR merged
You need to log in before you can comment on or make changes to this bug.