Font, FontListImpl, & PlatformFontLinux make use of font_service::FontLoader
This can lead to blocking synchronous mojo calls. When these occur, it is possible for the remote service to close during the call. The callsite returns, having failed to load the resource. This occurs before an OnConnectionError is received by the ServiceContext. See issue 738441 for more details, and how the related crashes were addressed.
However these font_service::FontLoader calls can happen from a broad number of locations. FontList::GetHeight is broadly used, and can enter this blocking state during ash::Shell::Init.
Deriving already loaded fonts can also encounter this. PlatformFontLinux::Derive calls out to the font loader whenever the requested styling/weight differs from the already loaded SkTypeface. I'm not aware enough of the skia api to know if we can use the existing typeface to derive the newly styled one.
It would be good to look at the loading/deriving of fonts, and if possible reduce the dependency on blocking mojo calls.
Comment 1 by lafo...@chromium.org
, Feb 26 2018