New issue
Advanced search Search tips

Issue 800156 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 15
Components:
EstimatedDays: ----
NextAction: ----
OS: Fuchsia
Pri: 3
Type: Bug

Blocked on:
issue 831384



Sign in to add a comment

Implement SkFontMgr interface for Fuchsia

Project Member Reported by sergeyu@chromium.org, Jan 9 2018

Issue description

Currently on Fuchsia we use empty SkFontMgr on Fuchsia, see https://codesearch.chromium.org/chromium/src/third_party/skia/BUILD.gn?l=416

Ideally the implementation should be using FontsProvider interface from garnet. There are two issues that block this approach:
 - FontsProvider doesn't allow to enumerate fonts, see https://fuchsia.atlassian.net/browse/US-409
 - FIDL and FIDL interfaces are not in SDK.

To unblock layout tests before these issues are resolved we can bundle same Roboto fonts that are used in the fonts package in garnet.
 

Comment 1 by sergeyu@google.com, Feb 26 2018

Blocking: -778467 796979
Blocking: 822474
Blockedon: 831384
Project Member

Comment 4 by bugdroid1@chromium.org, Jul 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/587827f06cbe1e65dd503493f0823d279e5195c7

commit 587827f06cbe1e65dd503493f0823d279e5195c7
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Tue Jul 03 21:29:10 2018

[Fuchsia] Add SkFontMgr implementation for Fuchsia

Initial implementation of SkFontMgr for Fuchsia that implements minimal
SkFontMgr functionality used in Blink. There are still a number of
features that don't work properly and will require changes in the
system FontProvider to get fixed:
 1. Character to font matching (see onMatchFamilyStyleCharacter()).
    Currently the system API doesn't provide this feature.
 2. Style matching according to CSS3: Font style matching rules
    implemented in Fuchsia's font provider do not match CSS3 rules.
 3. Font aliasing: FontProvider supports only 3 Roboto fonts (Roboto,
    RobotoSlab and RobotoMono) doesn't support any font family aliases.
    To workaround this issue aliasing implemented directly in
    FuchsiaFontManager.

The new SkFontMgr is not enabled yet because it doesn't work in sandbox.
Will enabled it later in a separate CL.

Bug:  800156 
Change-Id: I98a9bed3f98c492577cc9cf0a81f190c8837da31
Reviewed-on: https://chromium-review.googlesource.com/1114192
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572360}
[modify] https://crrev.com/587827f06cbe1e65dd503493f0823d279e5195c7/skia/BUILD.gn
[modify] https://crrev.com/587827f06cbe1e65dd503493f0823d279e5195c7/skia/ext/fontmgr_default_fuchsia.cc
[add] https://crrev.com/587827f06cbe1e65dd503493f0823d279e5195c7/skia/ext/fontmgr_fuchsia.cc
[add] https://crrev.com/587827f06cbe1e65dd503493f0823d279e5195c7/skia/ext/fontmgr_fuchsia.h
[add] https://crrev.com/587827f06cbe1e65dd503493f0823d279e5195c7/skia/ext/fontmgr_fuchsia_unittest.cc
[modify] https://crrev.com/587827f06cbe1e65dd503493f0823d279e5195c7/third_party/fuchsia-sdk/BUILD.gn

Project Member

Comment 5 by bugdroid1@chromium.org, Jul 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2d789814568e68f6f3d7c1cdfba8b9c9f20ab789

commit 2d789814568e68f6f3d7c1cdfba8b9c9f20ab789
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Thu Jul 05 20:40:13 2018

[Fuchsia] Add base::fuchsia::FilteredServiceDirectory

FilteredServiceDirectory will be used to export subset of services in /svc
namespace to child processes.

TBR=dcheng@chromium.org

Bug:  800156 
Change-Id: I896b38fbf0517a6ba7143d3b67952259ff01779a
Reviewed-on: https://chromium-review.googlesource.com/1117856
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572852}
[modify] https://crrev.com/2d789814568e68f6f3d7c1cdfba8b9c9f20ab789/base/BUILD.gn
[modify] https://crrev.com/2d789814568e68f6f3d7c1cdfba8b9c9f20ab789/base/fuchsia/fidl_interface_request.h
[add] https://crrev.com/2d789814568e68f6f3d7c1cdfba8b9c9f20ab789/base/fuchsia/filtered_service_directory.cc
[add] https://crrev.com/2d789814568e68f6f3d7c1cdfba8b9c9f20ab789/base/fuchsia/filtered_service_directory.h
[add] https://crrev.com/2d789814568e68f6f3d7c1cdfba8b9c9f20ab789/base/fuchsia/filtered_service_directory_unittest.cc
[modify] https://crrev.com/2d789814568e68f6f3d7c1cdfba8b9c9f20ab789/base/fuchsia/service_directory.cc
[modify] https://crrev.com/2d789814568e68f6f3d7c1cdfba8b9c9f20ab789/base/fuchsia/service_directory.h
[add] https://crrev.com/2d789814568e68f6f3d7c1cdfba8b9c9f20ab789/base/fuchsia/service_directory_test_base.cc
[add] https://crrev.com/2d789814568e68f6f3d7c1cdfba8b9c9f20ab789/base/fuchsia/service_directory_test_base.h
[modify] https://crrev.com/2d789814568e68f6f3d7c1cdfba8b9c9f20ab789/base/fuchsia/service_directory_unittest.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Jul 6

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4eb9ad614c00ecde0a19731094ee081ca2e54e0b

commit 4eb9ad614c00ecde0a19731094ee081ca2e54e0b
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Fri Jul 06 00:15:02 2018

[Fuchsia] Allow FontProvider access in renderers. Use it.

ChildProcessLauncherHelper now uses fuchsia::ServiceDirectoryProxy to
allow renderers access FontProvicer service. Also enabled
FuchsiaFontManager to be used by default.

Bug:  800156 
Change-Id: I49336251c958a5fb4d74a0b933e9bbc62ea88f9f
Reviewed-on: https://chromium-review.googlesource.com/1117872
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572873}
[modify] https://crrev.com/4eb9ad614c00ecde0a19731094ee081ca2e54e0b/content/browser/child_process_launcher_helper.h
[modify] https://crrev.com/4eb9ad614c00ecde0a19731094ee081ca2e54e0b/content/browser/child_process_launcher_helper_fuchsia.cc
[modify] https://crrev.com/4eb9ad614c00ecde0a19731094ee081ca2e54e0b/content/common/BUILD.gn
[modify] https://crrev.com/4eb9ad614c00ecde0a19731094ee081ca2e54e0b/content/common/sandbox_policy_fuchsia.cc
[modify] https://crrev.com/4eb9ad614c00ecde0a19731094ee081ca2e54e0b/content/common/sandbox_policy_fuchsia.h
[modify] https://crrev.com/4eb9ad614c00ecde0a19731094ee081ca2e54e0b/skia/BUILD.gn
[modify] https://crrev.com/4eb9ad614c00ecde0a19731094ee081ca2e54e0b/skia/ext/fontmgr_default_fuchsia.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Jul 6

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a000e68ad79187293c393cf9f83355dafbdbea5e

commit a000e68ad79187293c393cf9f83355dafbdbea5e
Author: Wez <wez@chromium.org>
Date: Fri Jul 06 05:52:38 2018

Add missing BASE_EXPORT to base::fuchsia::FilteredServiceDirectory.

TBR: sergeyu
Bug:  800156 
Change-Id: Id51e0b56bcdd1a5e9edb8d62e42a8a5cbd07abc2
Reviewed-on: https://chromium-review.googlesource.com/1127491
Reviewed-by: Wez <wez@chromium.org>
Commit-Queue: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572905}
[modify] https://crrev.com/a000e68ad79187293c393cf9f83355dafbdbea5e/base/fuchsia/filtered_service_directory.h

Blocking: -822474 -796979
Fonts should be rendered correctly in trunk with the changes I landed above. There are several features that are still missing:
 - Proper onMatchFamilyStyleCharacter() implementation
 - Font collection support
 - CSS-compliant style matching

These features depend on fixes in FontProvider in Fuchsia. They are tracked by https://fuchsia.atlassian.net/browse/US-409 . Keeping this bug open to add missing functionality once it's implemented in FontProvider.
Status: Fixed (was: Assigned)

Sign in to add a comment