WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
168487
REGRESSION(
r212513
): LastResort is platform-dependent, so its semantics should not be required to perform font loading correctly.
https://bugs.webkit.org/show_bug.cgi?id=168487
Summary
REGRESSION(r212513): LastResort is platform-dependent, so its semantics shoul...
Myles C. Maxfield
Reported
2017-02-16 17:21:26 PST
LastResort is platform-dependent, so its semantics should not be required to perform font loading correctly.
Attachments
WIP
(10.31 KB, patch)
2017-05-10 14:09 PDT
,
Myles C. Maxfield
no flags
Details
Formatted Diff
Diff
WIP
(19.52 KB, patch)
2017-05-11 15:41 PDT
,
Myles C. Maxfield
no flags
Details
Formatted Diff
Diff
WIP
(21.31 KB, patch)
2017-05-11 16:00 PDT
,
Myles C. Maxfield
no flags
Details
Formatted Diff
Diff
Patch
(22.62 KB, patch)
2017-05-11 16:15 PDT
,
Myles C. Maxfield
no flags
Details
Formatted Diff
Diff
Archive of layout-test-results from ews122 for ios-simulator-wk2
(854.24 KB, application/zip)
2017-05-11 18:20 PDT
,
Build Bot
no flags
Details
WIP
(40.18 KB, patch)
2017-05-12 02:10 PDT
,
Myles C. Maxfield
no flags
Details
Formatted Diff
Diff
WIP
(41.72 KB, patch)
2017-05-12 11:10 PDT
,
Myles C. Maxfield
no flags
Details
Formatted Diff
Diff
WIP
(66.09 KB, patch)
2017-05-12 13:56 PDT
,
Myles C. Maxfield
no flags
Details
Formatted Diff
Diff
WIP
(66.82 KB, patch)
2017-05-12 15:00 PDT
,
Myles C. Maxfield
no flags
Details
Formatted Diff
Diff
Patch
(67.03 KB, patch)
2017-05-12 17:49 PDT
,
Myles C. Maxfield
no flags
Details
Formatted Diff
Diff
Patch
(67.57 KB, patch)
2017-05-12 18:05 PDT
,
Myles C. Maxfield
no flags
Details
Formatted Diff
Diff
Patch
(71.26 KB, patch)
2017-05-12 18:16 PDT
,
Myles C. Maxfield
no flags
Details
Formatted Diff
Diff
Patch
(71.93 KB, patch)
2017-05-12 18:21 PDT
,
Myles C. Maxfield
no flags
Details
Formatted Diff
Diff
Patch
(71.93 KB, patch)
2017-05-12 18:31 PDT
,
Myles C. Maxfield
no flags
Details
Formatted Diff
Diff
Archive of layout-test-results from ews102 for mac-elcapitan
(1.04 MB, application/zip)
2017-05-12 19:39 PDT
,
Build Bot
no flags
Details
Archive of layout-test-results from ews114 for mac-elcapitan
(1.84 MB, application/zip)
2017-05-12 20:06 PDT
,
Build Bot
no flags
Details
Archive of layout-test-results from ews123 for ios-simulator-wk2
(15.62 MB, application/zip)
2017-05-12 20:14 PDT
,
Build Bot
no flags
Details
WIP
(73.18 KB, patch)
2017-05-12 23:20 PDT
,
Myles C. Maxfield
no flags
Details
Formatted Diff
Diff
Archive of layout-test-results from ews126 for ios-simulator-wk2
(23.41 MB, application/zip)
2017-05-13 01:06 PDT
,
Build Bot
no flags
Details
Patch
(73.87 KB, patch)
2017-05-13 11:12 PDT
,
Myles C. Maxfield
no flags
Details
Formatted Diff
Diff
Archive of layout-test-results from ews123 for ios-simulator-wk2
(6.97 MB, application/zip)
2017-05-13 12:51 PDT
,
Build Bot
no flags
Details
Patch
(81.50 KB, patch)
2017-05-14 00:06 PDT
,
Myles C. Maxfield
no flags
Details
Formatted Diff
Diff
Archive of layout-test-results from ews117 for mac-elcapitan
(1.93 MB, application/zip)
2017-05-14 01:14 PDT
,
Build Bot
no flags
Details
Archive of layout-test-results from ews100 for mac-elcapitan
(1.02 MB, application/zip)
2017-05-14 01:18 PDT
,
Build Bot
no flags
Details
Archive of layout-test-results from ews107 for mac-elcapitan-wk2
(956.19 KB, application/zip)
2017-05-14 01:22 PDT
,
Build Bot
no flags
Details
Archive of layout-test-results from ews123 for ios-simulator-wk2
(1.13 MB, application/zip)
2017-05-14 01:44 PDT
,
Build Bot
no flags
Details
Patch
(81.63 KB, patch)
2017-05-14 11:22 PDT
,
Myles C. Maxfield
koivisto
: review+
Details
Formatted Diff
Diff
Patch for committing
(65.78 KB, patch)
2017-05-16 11:55 PDT
,
Myles C. Maxfield
commit-queue
: commit-queue-
Details
Formatted Diff
Diff
Show Obsolete
(26)
View All
Add attachment
proposed patch, testcase, etc.
Myles C. Maxfield
Comment 1
2017-02-16 17:27:45 PST
See
https://bugs.webkit.org/show_bug.cgi?id=168114
Michael Catanzaro
Comment 2
2017-03-06 13:44:59 PST
In other words: it'd be really great if we didn't display text using system fonts and then later switch it over to using web fonts. The visual transition there is jarring. It works properly on macOS because of the invisible LastResort font available there. Or something like that.
Myles C. Maxfield
Comment 3
2017-05-08 17:18:12 PDT
<
rdar://problem/31180111
>
Myles C. Maxfield
Comment 4
2017-05-10 14:09:10 PDT
Created
attachment 309631
[details]
WIP
Myles C. Maxfield
Comment 5
2017-05-11 15:41:46 PDT
Created
attachment 309802
[details]
WIP
Myles C. Maxfield
Comment 6
2017-05-11 16:00:39 PDT
Created
attachment 309805
[details]
WIP
Myles C. Maxfield
Comment 7
2017-05-11 16:15:44 PDT
Created
attachment 309810
[details]
Patch
Michael Catanzaro
Comment 8
2017-05-11 16:36:20 PDT
I can't test this right now, but thank you!
Build Bot
Comment 9
2017-05-11 18:20:48 PDT
Comment on
attachment 309810
[details]
Patch
Attachment 309810
[details]
did not pass ios-sim-ews (ios-simulator-wk2): Output:
http://webkit-queues.webkit.org/results/3722011
New failing tests: http/tests/webfont/fallback-font-while-loading.html
Build Bot
Comment 10
2017-05-11 18:20:49 PDT
Created
attachment 309840
[details]
Archive of layout-test-results from ews122 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews122 Port: ios-simulator-wk2 Platform: Mac OS X 10.11.6
Myles C. Maxfield
Comment 11
2017-05-12 02:10:33 PDT
Created
attachment 309884
[details]
WIP
Myles C. Maxfield
Comment 12
2017-05-12 11:10:21 PDT
Created
attachment 309919
[details]
WIP
Myles C. Maxfield
Comment 13
2017-05-12 13:56:35 PDT
Created
attachment 309939
[details]
WIP
Myles C. Maxfield
Comment 14
2017-05-12 15:00:54 PDT
Created
attachment 309950
[details]
WIP
Myles C. Maxfield
Comment 15
2017-05-12 17:49:00 PDT
Created
attachment 309978
[details]
Patch
Myles C. Maxfield
Comment 16
2017-05-12 18:05:31 PDT
Created
attachment 309984
[details]
Patch
Myles C. Maxfield
Comment 17
2017-05-12 18:16:09 PDT
Created
attachment 309985
[details]
Patch
Myles C. Maxfield
Comment 18
2017-05-12 18:21:32 PDT
Created
attachment 309988
[details]
Patch
Myles C. Maxfield
Comment 19
2017-05-12 18:31:25 PDT
Created
attachment 309991
[details]
Patch
Build Bot
Comment 20
2017-05-12 19:39:02 PDT
Comment on
attachment 309991
[details]
Patch
Attachment 309991
[details]
did not pass mac-ews (mac): Output:
http://webkit-queues.webkit.org/results/3729904
New failing tests: fast/text/web-font-load-fallback-during-loading.html
Build Bot
Comment 21
2017-05-12 19:39:04 PDT
Created
attachment 309998
[details]
Archive of layout-test-results from ews102 for mac-elcapitan The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews102 Port: mac-elcapitan Platform: Mac OS X 10.11.6
Build Bot
Comment 22
2017-05-12 20:06:47 PDT
Comment on
attachment 309991
[details]
Patch
Attachment 309991
[details]
did not pass mac-debug-ews (mac): Output:
http://webkit-queues.webkit.org/results/3729961
New failing tests: fast/text/web-font-load-fallback-during-loading.html
Build Bot
Comment 23
2017-05-12 20:06:48 PDT
Created
attachment 310003
[details]
Archive of layout-test-results from ews114 for mac-elcapitan The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews114 Port: mac-elcapitan Platform: Mac OS X 10.11.6
Build Bot
Comment 24
2017-05-12 20:14:20 PDT
Comment on
attachment 309991
[details]
Patch
Attachment 309991
[details]
did not pass ios-sim-ews (ios-simulator-wk2): Output:
http://webkit-queues.webkit.org/results/3729939
New failing tests: fast/text/web-font-load-fallback-during-loading.html fast/text/web-font-load-invisible-during-loading.html
Build Bot
Comment 25
2017-05-12 20:14:22 PDT
Created
attachment 310004
[details]
Archive of layout-test-results from ews123 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews123 Port: ios-simulator-wk2 Platform: Mac OS X 10.11.6
Myles C. Maxfield
Comment 26
2017-05-12 23:20:52 PDT
Created
attachment 310014
[details]
WIP
Build Bot
Comment 27
2017-05-13 01:06:27 PDT
Comment on
attachment 310014
[details]
WIP
Attachment 310014
[details]
did not pass ios-sim-ews (ios-simulator-wk2): Output:
http://webkit-queues.webkit.org/results/3731248
New failing tests: fast/text/web-font-load-fallback-during-loading.html fast/text/web-font-load-invisible-during-loading.html
Build Bot
Comment 28
2017-05-13 01:06:29 PDT
Created
attachment 310015
[details]
Archive of layout-test-results from ews126 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews126 Port: ios-simulator-wk2 Platform: Mac OS X 10.11.6
Myles C. Maxfield
Comment 29
2017-05-13 11:12:07 PDT
Created
attachment 310020
[details]
Patch
Build Bot
Comment 30
2017-05-13 12:51:33 PDT
Comment on
attachment 310020
[details]
Patch
Attachment 310020
[details]
did not pass ios-sim-ews (ios-simulator-wk2): Output:
http://webkit-queues.webkit.org/results/3733969
New failing tests: fast/text/web-font-load-fallback-during-loading.html fast/text/web-font-load-invisible-during-loading.html
Build Bot
Comment 31
2017-05-13 12:51:34 PDT
Created
attachment 310026
[details]
Archive of layout-test-results from ews123 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews123 Port: ios-simulator-wk2 Platform: Mac OS X 10.11.6
Myles C. Maxfield
Comment 32
2017-05-14 00:06:09 PDT
Created
attachment 310073
[details]
Patch
Build Bot
Comment 33
2017-05-14 01:14:29 PDT
Comment on
attachment 310073
[details]
Patch
Attachment 310073
[details]
did not pass mac-debug-ews (mac): Output:
http://webkit-queues.webkit.org/results/3737260
New failing tests: fast/text/web-font-load-fallback-during-loading.html
Build Bot
Comment 34
2017-05-14 01:14:31 PDT
Created
attachment 310076
[details]
Archive of layout-test-results from ews117 for mac-elcapitan The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews117 Port: mac-elcapitan Platform: Mac OS X 10.11.6
Build Bot
Comment 35
2017-05-14 01:18:14 PDT
Comment on
attachment 310073
[details]
Patch
Attachment 310073
[details]
did not pass mac-ews (mac): Output:
http://webkit-queues.webkit.org/results/3737291
New failing tests: fast/text/web-font-load-fallback-during-loading.html
Build Bot
Comment 36
2017-05-14 01:18:16 PDT
Created
attachment 310077
[details]
Archive of layout-test-results from ews100 for mac-elcapitan The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews100 Port: mac-elcapitan Platform: Mac OS X 10.11.6
Build Bot
Comment 37
2017-05-14 01:22:51 PDT
Comment on
attachment 310073
[details]
Patch
Attachment 310073
[details]
did not pass mac-wk2-ews (mac-wk2): Output:
http://webkit-queues.webkit.org/results/3737302
New failing tests: fast/text/web-font-load-fallback-during-loading.html
Build Bot
Comment 38
2017-05-14 01:22:53 PDT
Created
attachment 310078
[details]
Archive of layout-test-results from ews107 for mac-elcapitan-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews107 Port: mac-elcapitan-wk2 Platform: Mac OS X 10.11.6
Build Bot
Comment 39
2017-05-14 01:44:39 PDT
Comment on
attachment 310073
[details]
Patch
Attachment 310073
[details]
did not pass ios-sim-ews (ios-simulator-wk2): Output:
http://webkit-queues.webkit.org/results/3737312
New failing tests: fast/text/web-font-load-fallback-during-loading.html
Build Bot
Comment 40
2017-05-14 01:44:40 PDT
Created
attachment 310080
[details]
Archive of layout-test-results from ews123 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews123 Port: ios-simulator-wk2 Platform: Mac OS X 10.11.6
Myles C. Maxfield
Comment 41
2017-05-14 11:22:52 PDT
Created
attachment 310094
[details]
Patch
Antti Koivisto
Comment 42
2017-05-16 00:51:22 PDT
Comment on
attachment 310094
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=310094&action=review
> Source/WebCore/css/CSSFontFace.cpp:532 > + m_timeoutTimer.startOneShot(3_s);
Please use an informatively named constants for numeric values like this. It can be inline, just above the using line.
> Source/WebCore/platform/graphics/Font.h:90 > + enum class ShouldDisplay { > + Visible, > + Invisible > + };
"Display" and "Visible" seems like two different words for the same thing. How about calling this enum "Visibility"?
> Source/WebCore/platform/graphics/Font.h:94 > + enum class OrientationFallback { > + Fallback, > + NoFallback > + };
"Fallback" seems redundant in the value. Just Yes/No maybe like Interstitial has?
> Source/WebCore/platform/graphics/Font.h:189 > + Interstitial isInterstitial() const { return m_interstitial ? Interstitial::Yes : Interstitial::No; }
is* functions should return bools. Either rename this to interstitial() or make it return a bool. Currently the call sites read awkwardly.
> Source/WebCore/platform/graphics/Font.h:190 > + ShouldDisplay shouldDisplay() const { return m_shouldDisplay ? ShouldDisplay::Visible : ShouldDisplay::Invisible; }
As should should* functions. "Visibility visibility() const" would work.
> Source/WebCore/platform/graphics/Font.h:318 > unsigned m_treatAsFixedPitch : 1; > - unsigned m_isCustomFont : 1; // Whether or not we are custom font loaded via @font-face > - unsigned m_isLoading : 1; // Whether or not this custom font is still in the act of loading. > + unsigned m_origin : 1; // Whether or not we are custom font loaded via @font-face > + unsigned m_interstitial : 1; // Whether or not this custom font is the last resort placeholder for a loading font > + unsigned m_shouldDisplay : 1; // @font-face's internal timer can cause us to show fonts even when a font is being downloaded. > > - unsigned m_isTextOrientationFallback : 1; > + unsigned m_orientationFallback : 1; > unsigned m_isBrokenIdeographFallback : 1; > unsigned m_hasVerticalGlyphs : 1;
There are not enough Fonts for it to be worth to optimize this with bitfields (and size of associated actual font data is many orders of magnitude greater). It would be better to just use properly typed enum values.
> Source/WebCore/platform/graphics/FontCascade.cpp:1402 > + // Don't draw anything while we are using custom fonts that are in the process of loading, > + // except if the 'force' argument is set to true (in which case it will use a fallback > + // font). > + return font.isInterstitial() == Font::Interstitial::No || font.shouldDisplay() == Font::ShouldDisplay::Visible || customFontNotReadyAction == FontCascade::CustomFontNotReadyAction::UseFallbackIfFontNotReady;
I'm not sure I understand how the comment and the code matches. The comment mentions 'force' argument and loading. The code has nothing called 'force' and nothing obviously about loading. It also tests three conditions while the text implies two.
> Source/WebCore/platform/graphics/FontRanges.h:40 > +enum class ForbidDownloadingExternalResource { > + Forbid, > + Allow > +};
ExternalResourceDownloadPolicy? You even already name the variable 'policy' in many place.
Myles C. Maxfield
Comment 43
2017-05-16 11:44:18 PDT
Comment on
attachment 310094
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=310094&action=review
>> Source/WebCore/platform/graphics/Font.h:318 >> unsigned m_hasVerticalGlyphs : 1; > > There are not enough Fonts for it to be worth to optimize this with bitfields (and size of associated actual font data is many orders of magnitude greater). It would be better to just use properly typed enum values.
I'll keep the Yes/No types as bitfields since their accessors are isXXXX() and will return bools. But I'll make Origin and Visibility use their real types internally.
Myles C. Maxfield
Comment 44
2017-05-16 11:55:22 PDT
Created
attachment 310289
[details]
Patch for committing
WebKit Commit Bot
Comment 45
2017-05-16 13:07:36 PDT
Comment on
attachment 310289
[details]
Patch for committing Rejecting
attachment 310289
[details]
from commit-queue. Failed to run "['/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch', '--status-host=webkit-queues.webkit.org', '--bot-id=webkit-cq-03', 'validate-changelog', '--check-oops', '--non-interactive', 310289, '--port=mac']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit ChangeLog entry in LayoutTests/ChangeLog contains OOPS!. Full output:
http://webkit-queues.webkit.org/results/3752297
Myles C. Maxfield
Comment 46
2017-05-16 13:26:45 PDT
Committed
r216944
: <
http://trac.webkit.org/changeset/216944
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug