HomePhabricator

Improve line breaking behavior in Firefox and Chrome under complex conditions

Tags
None
Referenced Files
F7480574: anywhere.png
May 13 2020, 6:54 PM
F7480570: safari-highlight.png
May 13 2020, 6:54 PM
F7480568: chrome-highlight.png
May 13 2020, 6:54 PM
F7480567: firefox-highlight.png
May 13 2020, 6:54 PM
F7480571: chrome-no-highlight.png
May 13 2020, 6:54 PM
F7480569: firefox-fixed.png
May 13 2020, 6:54 PM
Subscribers
None

Description

Improve line breaking behavior in Firefox and Chrome under complex conditions

Summary: See https://github.com/phacility/phabricator/pull/854. In some situations, line-break: anywhere produces better behavior than word-break: break-all. It never appears to produce worse behavior.

Test Plan:

  • Break behavior changes if a line contains "<span />" elements caused by syntax highlighting. This CSS adjustment only appears to apply to text with internal "<span />" elements.
  • This specifically impacts certain internal breakpoints adjacent to punctuation, so the test case is highly specific. Generic test cases with latin word characters do not evidence any behavioral changes.
  • This change appears to have no impact on Safari, which uses the better behavior in all cases.
  • Before Patch: In Firefox and Chrome, this specific change breaks awkwardly. There is more room for text to fit on the broken line:

Firefox

firefox-highlight.png (142×631 px, 15 KB)

Chrome

chrome-highlight.png (128×641 px, 13 KB)

  • After Patch: Firefox and Chrome break the line better. Here's Firefox:

firefox-fixed.png (181×632 px, 16 KB)

  • Additional context:

Safari Behavior (Unchanged)

safari-highlight.png (123×619 px, 13 KB)

Chrome with no highlighting (desirable behavior). Firefox does the same thing.

chrome-no-highlight.png (128×642 px, 12 KB)

Also tested other cases, which seem never-worse in any browser.

anywhere.png (1×1 px, 369 KB)

Differential Revision: https://secure.phabricator.com/D21247