Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 1 commit into from May 17, 2019

Commits on May 17, 2019

  1. [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}
    kojiishi authored and chromium-wpt-export-bot committed May 17, 2019
    Configuration menu
    Copy the full SHA
    3adfdc3 View commit details
    Browse the repository at this point in the history