Closed Bug 1557406 Opened 5 years ago Closed 5 years ago

[wpt-sync] Sync PR 16847 - [LayoutNG] Fix crash for very long line with `break-word`

Categories

(Core :: CSS Parsing and Computation, defect, P4)

defect

Tracking

()

RESOLVED FIXED
mozilla69
Tracking Status
firefox69 --- fixed

People

(Reporter: mozilla.org, Unassigned)

References

()

Details

(Whiteboard: [wptsync upstream])

Sync web-platform-tests PR 16847 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/16847
Details from upstream follow.

Koji Ishii <kojii@chromium.org> wrote:

[LayoutNG] Fix crash for very long line with break-word

This patch fixes NGLineBreaker crash when handling a very
long line.

Because line breaker determines overflow by the position
being larger than the available width, it cannot stop if the
available width is |LayoutUnit::Max()|. This patch clamps the
available width by |LayoutUnit::NearlyMax()| to prevent that.

The word-wrap: break-word is not necessary to cause the
failure, but it makes things worse by setting |ShapeResult|
to |nullptr| when overflow occurs for the performance reason.

This patch also changes |BreakText| to return whether the
overflow occurred or not, rather than callers to determine it
from the position. Doing so helps clearer communication with
the callers.

Bug: 961987
Change-Id: I17eb758aca8b9b6d3e2f328e5b1b49acb83c0a5e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1613138
Commit-Queue: Koji Ishii \<kojii@chromium.org>
Reviewed-by: Emil A Eklund \<eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#660871}

Component: web-platform-tests → CSS Parsing and Computation
Product: Testing → Core
Failed to get results from try push
Pushed by james@hoppipolla.co.uk:
https://hg.mozilla.org/integration/mozilla-inbound/rev/15d10f4461d1
[wpt PR 16847] - [LayoutNG] Fix crash for very long line with `break-word`, a=testonly
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla69
Whiteboard: [wptsync downstream] → [wptsync upstream]
You need to log in before you can comment on or make changes to this bug.