New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 617379 link

Starred by 14 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 21
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Feature

Blocked on:
issue skia:8030
issue 882844

Blocking:
issue 670480
issue 703332
issue 828874


Participants' hotlists:
layout-backlog

Show other hotlists

Other hotlists containing this issue:
Hotlist-1


Sign in to add a comment

Platform independent COLR/CPAL Color Emoji

Project Member Reported by ebra...@gnu.org, Jun 4 2016

Issue description

On https://codereview.chromium.org/1984943002/ Color Emoji support is added to Chrome, great step forward but it is tied to platform ability on rendering color emoji unlike https://bugzilla.mozilla.org/show_bug.cgi?id=889401 on Firefox, https://bug889401.bmoattachments.org/attachment.cgi?id=8424617 and I believe web community would enjoy having that in platform neutral way https://bugzilla.mozilla.org/show_bug.cgi?id=889401#c43 so it can be used on older versions of Windows with Color Emoji font installed as well as a web font on other platforms.

Now that Chrome has a Color Emoji implementation however, I think it would be good idea also to do the font parse and sanitizing of COLR/CPAL on harfbuzz instead doing that locally on Skia, so progressing https://github.com/behdad/harfbuzz/pull/244 (and one for COLR) is good point to start I'd guess.
 

Comment 1 Deleted

Comment 2 by ebra...@gnu.org, Jun 4 2016

BTW, are you currently passing COLR/CPAL to DirectWrite sanitiser before its use? Currently Chrome is passing that without any check https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platform/fonts/WebFontDecoder.cpp?q=cpal+colr&sq=package:chromium&l=109 so you should make sure if sanitizing is actually happening by some party on these tables at least once. However, a harfbuzz based implementation would make these much more secure.

Comment 3 by e...@chromium.org, Jun 6 2016

Cc: drott@chromium.org jsc...@chromium.org
Status: Available (was: Unconfirmed)

Comment 4 by ebra...@gnu.org, Jun 7 2016

Cc: dr.khale...@gmail.com
CCing OTS maintainer and harfbuzz contributor.

Comment 5 by ebra...@gnu.org, Jun 10 2016

Cc: bunge...@chromium.org

Comment 6 by ebra...@gnu.org, Jun 24 2016

Interesting that it currently doesn't render as color on all size, unlike Firefox,

data:text/html;charset=utf8,<script>document.write("%F0%9F%8F%AF".repeat(20).replace(/./ug, (x, i) => `<span style="font-size: ${i * 10}px;">${x}</spatn> `))</script>

(probably starts to become b&w on a different size on a lowdpi screen)

Emoji.png
107 KB View Download

Comment 7 by ebra...@gnu.org, Jul 1 2016

Cc: caryclark@google.com

Comment 8 by ebra...@gnu.org, Dec 3 2016

Blocking: 670480

Comment 9 by e...@chromium.org, Mar 20 2017

Blocking: 703332

Comment 10 by e...@chromium.org, Mar 20 2017

Labels: -Pri-3 Pri-2

Comment 11 by ebra...@gnu.org, Feb 22 2018

Progressing http://savannah.nongnu.org/bugs/?44689 can finish this also I'd guess.
Cc: -caryclark@google.com
Blocking: 828874
Project Member

Comment 15 by bugdroid1@chromium.org, May 31 2018

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

commit e38057af680ddee23e865fef10f11a99cff67ee7
Author: Dominik Röttsches <drott@chromium.org>
Date: Thu May 31 14:29:26 2018

Roll src/third_party/freetype/src/ d45d4b97e..0589f6e6e (2 commits)

https://chromium.googlesource.com/chromium/src/third_party/freetype2.git/+log/d45d4b97e6a0..0589f6e6ee6e

$ git log d45d4b97e..0589f6e6e --date=short --no-merges --format='%ad %ae %s'
2018-05-31 wl [sfnt] Get colors from `CPAL' table in right order (#54015).
2018-05-30 wl ftcolor.h: Improve API design, fix typos (#54011, #54014).

Created with:
  roll-dep src/third_party/freetype/src
R=bungeman@chromium.org,drott@chromium.org

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_msan_rel_ng

PDFium-Issue:  pdfium:1100 
Bug:  617379 
Change-Id: Ifd5b6caf6699e9f6cf1b498dfc4a57fb3dc9acca
Reviewed-on: https://chromium-review.googlesource.com/1079760
Reviewed-by: Ben Wagner <bungeman@chromium.org>
Commit-Queue: Dominik Röttsches <drott@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563222}
[modify] https://crrev.com/e38057af680ddee23e865fef10f11a99cff67ee7/DEPS
[modify] https://crrev.com/e38057af680ddee23e865fef10f11a99cff67ee7/third_party/freetype/README.chromium

Comment 16 by drott@chromium.org, May 31 2018

Status: asu (was: Available)

Comment 17 by drott@chromium.org, May 31 2018

Blockedon: skia:8030
Owner: drott@chromium.org
Status: Assigned (was: asu)
COLR/CPAL support for FreeType now landed in Skia in [1], [2], which automatically brings support to Android, CrOS and Linux. What remains to be done is improve WebFontTypefaceFactory to fall back to FreeType on Windows and Mac OS versions that do not support COLR/CPAL.

[1] https://skia.googlesource.com/skia/+/f3ca1c6abb07889b66f4aace6469db5ed1c69e3f
[2] Skia Roll including COLR/CPAL on FreeType implementation https://chromium-review.googlesource.com/c/chromium/src/+/1171445

Attached: Screenshot of Chromacheck on Linux 
chromacheck_linux.png
98.2 KB View Download
\m/ ^_^
Blockedon: 882844
Status: Fixed (was: Assigned)
COLR/CPAL is now available on all Blink platforms. On Windows pre 8.1 and Mac OS 10.12 and below we fallback to FreeType.

Sign in to add a comment