[Webkit-unassigned] [Bug 177601] New: Simple and complex paths are not applied consistently

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Sep 28 05:42:50 PDT 2017


https://bugs.webkit.org/show_bug.cgi?id=177601

            Bug ID: 177601
           Summary: Simple and complex paths are not applied consistently
           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: cgarcia at igalia.com
                CC: bugs-noreply at webkitgtk.org, mmaxfield at apple.com

Created attachment 322075

  --> https://bugs.webkit.org/attachment.cgi?id=322075&action=review

Simple test

Due to bug #100050, when rendering text, the complex path is forced in case kerning or shaping is enabled and only part of the run is going to be rendered. This happens in the GTK+ port when selecting text (except when selecting the whole run, of course). The text is initially rendered using the simple path as returned by FontCascade::codePath() and then the selection is rendered using the complex path, overriding what FontCascade::codePath() returns in that case. This is very easy to reproduce with the attached test, you can see the effects in this video:

http://people.igalia.com/cgarcia/wk-text-selection.webm
http://people.igalia.com/cgarcia/wk-text-selection.mp4

This doesn't happen in mac, because the selection is rendered differently, so FontCascade::drawText always renders the full run (simple path) when selecting text. This is the most noticeable inconsistency, but it's not the only one. Similar exceptions are applied when calculating the text width, or getting the offset of a given position. The rendered text is the simple one, but the calculations are performed using the complex path, so depending on the kerning and ligatures we might end up with wrong results.

If the test has been rendered using the simple path, the selections and all other calculations should be performed with the simple path too.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20170928/8e534f65/attachment-0001.html>


More information about the webkit-unassigned mailing list