[LayoutNG] Add |changes_may_affect_earlier_lines_| flag

This patch adds a flag that indicates, within the
NGInlineNode, changes to LayoutObject/NGInlineItem may affect
earlier lines than the object was laid out.

When reusing cached lines, changed objects dirties line boxes
their previous object belongs to, and NG reuses lines up to
the first dirty line. However, when `unicode-bidi: plaintext`
is applied, changing text may change the whole block when the
first strong character was changed.

inline-plaintext-relayout-with-leading-neutrals.html sometimes
crashes due to this problem.

Bug: 636993
Change-Id: Id9843a45d1af69ca4ffa3484183a6f3229a34049
Reviewed-on: https://chromium-review.googlesource.com/c/1454068
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#631125}
4 files changed