[Webkit-unassigned] [Bug 167597] New: ComplexTextController never worked if runs are non monotonic

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Jan 30 11:03:54 PST 2017


            Bug ID: 167597
           Summary: ComplexTextController never worked if runs are non
    Classification: Unclassified
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Text
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: mmaxfield at apple.com
                CC: mmaxfield at apple.com

In ComplexTextController::advance(), we iterate through runs in string order. When we encounter a run, we append its paint advances into the GlyphBuffer and we increase the runWidthSoFar by its layout advance.

FontCascadeCocoa assumes that runs are adjacent. If the runs aren't adjacent or monotonic, our runWidthSoFar is meaningless because of this assumption.

Similarly, when we paint glyphs, we just paint them in the order they appear in the GlyphBuffer. If the runs aren't monotonic, then this order is completely busted and the results will be garbage.

Instead, since it never worked, we should just remove the logic about iterating to an arbitrary run in the middle of the ComplexTextController (inside advance()) and force monotonic iteration.

You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20170130/45b0abdb/attachment.html>

More information about the webkit-unassigned mailing list