Bug 193395 - REGRESSION(r239915): about 130 test failures on WPE
Summary: REGRESSION(r239915): about 130 test failures on WPE
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WPE WebKit (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: LayoutTestFailure
Depends on:
Blocks:
 
Reported: 2019-01-14 04:04 PST by Zan Dobersek
Modified: 2019-02-05 08:03 PST (History)
7 users (show)

See Also:


Attachments
Patch (4.86 KB, patch)
2019-01-14 04:21 PST, Carlos Garcia Campos
mcatanzaro: review-
ews-watchlist: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from ews103 for mac-highsierra (2.57 MB, application/zip)
2019-01-14 05:22 PST, EWS Watchlist
no flags Details
Archive of layout-test-results from ews104 for mac-highsierra-wk2 (2.75 MB, application/zip)
2019-01-14 05:35 PST, EWS Watchlist
no flags Details
Patch (4.80 KB, patch)
2019-01-14 05:58 PST, Carlos Garcia Campos
no flags Details | Formatted Diff | Diff
Patch (4.98 KB, patch)
2019-01-21 01:19 PST, Carlos Garcia Campos
zan: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Zan Dobersek 2019-01-14 04:04:02 PST
Change introduced in r239915 caused about 130 layout test failures for the WPE port.

Example failure:
https://build.webkit.org/results/WPE%20Linux%2064-bit%20Release%20(Tests)/r239915%20(11656)/imported/w3c/i18n/bidi/bidi-embed-001-diffs.html
Comment 1 Carlos Garcia Campos 2019-01-14 04:21:10 PST
Created attachment 359029 [details]
Patch
Comment 2 EWS Watchlist 2019-01-14 05:22:35 PST
Comment on attachment 359029 [details]
Patch

Attachment 359029 [details] did not pass mac-ews (mac):
Output: https://webkit-queues.webkit.org/results/10743145

New failing tests:
fast/text/soft-hyphen-min-preferred-width.html
fast/text/format-control.html
Comment 3 EWS Watchlist 2019-01-14 05:22:37 PST
Created attachment 359031 [details]
Archive of layout-test-results from ews103 for mac-highsierra

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews103  Port: mac-highsierra  Platform: Mac OS X 10.13.6
Comment 4 EWS Watchlist 2019-01-14 05:35:21 PST
Comment on attachment 359029 [details]
Patch

Attachment 359029 [details] did not pass mac-wk2-ews (mac-wk2):
Output: https://webkit-queues.webkit.org/results/10743172

New failing tests:
fast/text/soft-hyphen-min-preferred-width.html
fast/text/format-control.html
Comment 5 EWS Watchlist 2019-01-14 05:35:24 PST
Created attachment 359032 [details]
Archive of layout-test-results from ews104 for mac-highsierra-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews104  Port: mac-highsierra-wk2  Platform: Mac OS X 10.13.6
Comment 6 Michael Catanzaro 2019-01-14 05:56:21 PST
Comment on attachment 359029 [details]
Patch

New failing tests:
fast/text/soft-hyphen-min-preferred-width.html
fast/text/format-control.html
Comment 7 Carlos Garcia Campos 2019-01-14 05:58:25 PST
Created attachment 359033 [details]
Patch

Made the change specific to FreeType to fix the test failures in mac.
Comment 8 Zan Dobersek 2019-01-15 00:15:00 PST
Comment on attachment 359033 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=359033&action=review

> Source/WebCore/platform/graphics/WidthIterator.cpp:206
> +        bool characterMustDrawSomething = !isDefaultIgnorableCodePoint(character);
> +#if USE(FREETYPE)
> +        if (!characterMustDrawSomething) {
> +            textIterator.advance(advanceLength);
> +            continue;
> +        }
> +#endif

This treats ignorable characters as if there's no glyph representing such characters in font data. Can't this logic be used in GlyphPage::fill(), enforcing no glyph representation for characters that are ignorable?
Comment 9 Carlos Garcia Campos 2019-01-15 00:28:34 PST
(In reply to Zan Dobersek from comment #8)
> Comment on attachment 359033 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=359033&action=review
> 
> > Source/WebCore/platform/graphics/WidthIterator.cpp:206
> > +        bool characterMustDrawSomething = !isDefaultIgnorableCodePoint(character);
> > +#if USE(FREETYPE)
> > +        if (!characterMustDrawSomething) {
> > +            textIterator.advance(advanceLength);
> > +            continue;
> > +        }
> > +#endif
> 
> This treats ignorable characters as if there's no glyph representing such
> characters in font data. Can't this logic be used in GlyphPage::fill(),
> enforcing no glyph representation for characters that are ignorable?

No, that's what broke emoji sequences, see bug #177040. In GlyphPage::fill() we now replace ignorable characters with zero width space only when the font doesn't have a glyph, assuming that they will be handled or ignored later when shaping (as harfbuzz does). But the simple text code path is only ignoring them when they don't have a glyph. I think they should never be rendered even if they have a glyph.
Comment 10 Carlos Garcia Campos 2019-01-21 01:19:36 PST
Created attachment 359677 [details]
Patch
Comment 11 Carlos Garcia Campos 2019-01-21 02:14:06 PST
Committed r240231: <https://trac.webkit.org/changeset/240231>