[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