Closed
Bug 1500356
Opened 6 years ago
Closed 6 years ago
Update HarfBuzz to 2.3.0
Categories
(Core :: Graphics: Text, defect, P3)
Core
Graphics: Text
Tracking
()
RESOLVED
FIXED
mozilla66
Tracking | Status | |
---|---|---|
firefox66 | --- | fixed |
People
(Reporter: ionnv, Assigned: RyanVM)
References
Details
(Whiteboard: [third-party-lib-audit][gfx-noted])
Attachments
(2 files)
https://cgit.freedesktop.org/harfbuzz/commit/?id=3d9a0306ebb48706778fd2c487c3cacc7d508d6c
Overview of changes leading to 2.0.0
Wednesday, October 17, 2018
====================================
- Added AAT shaping support (morx/kerx/trak).
Automatically used if GSUB/GPOS are not available respectively.
Set HB_OPTIONS=aat env var to have morx/kerx preferred over
GSUB/GPOS.
- Apply TrueType kern table internally, instead of relying on
hb_font_t callbacks.
- Khmer shaper significantly rewritten to better match Uniscribe.
- Indic3 tags ('dev3', etc) are passed to USE shaper.
- .dfont Mac font containers implemented.
- Script- and language-mapping revamped to better use BCP 47.
- Misc USE and Indic fixes.
- Misc everything fixes.
- Too many things to list. Biggest release since 0.9.1, with
over 500 commits in just over 5 weeks! Didn't intend it to
be a big release. Just happened to become.
- hb-ft now locks underlying FT_Face during use.
Comment 1•6 years ago
|
||
Let's give this release a bit of time to settle, and get past the Fx64 soft-freeze before we consider taking it.
Assignee | ||
Comment 2•6 years ago
|
||
I ran 2.0.0 through Try just to see where things stand. I ran into two new issues:
MSVC Werror build bustage:
https://treeherder.mozilla.org/logviewer.html#?job_id=206684240&repo=try
Looks like we have 3 in-tree uses of the old API that'll need switching to the new one.
Android reftest failures:
https://treeherder.mozilla.org/logviewer.html#?job_id=206687164&repo=try
These hit both opt and debug builds, so I'm pretty sure it's real.
Here's a link to the raw diff to save you some time if you want to test locally:
https://hg.mozilla.org/try/raw-rev/f19de9d0b0b0fda00023f5bbd0997ab4f700bae7
Status: UNCONFIRMED → NEW
Ever confirmed: true
Assignee | ||
Updated•6 years ago
|
Whiteboard: [third-party-lib-audit][gfx-noted]
https://cgit.freedesktop.org/harfbuzz/commit/?id=7c2c8ac301b526da8b5384d6b90f156ca096568e
Overview of changes leading to 2.0.1
Friday, October 19, 2018
====================================
- Fix hb-version.h reported release version that went wrong (1.8.0)
with previous release.
- Fix extrapolation in 'trak' table.
- Fix hb-font infinite-recursion issue with some font funcs and
subclassed fonts.
- Implement variation-kerning format in kerx table, although without
variation.
- Fix return value of hb_map_is_empty().
https://cgit.freedesktop.org/harfbuzz/commit/?id=0a3b7a0fb0734a66926dfda5d95d3cacea8890ce
Overview of changes leading to 2.0.2
Saturday, October 20, 2018
====================================
- Fix two minor memory access issues in AAT tables.
Summary: Update HarfBuzz to 2.0.0 → Update HarfBuzz to 2.0.2
Assignee | ||
Comment 4•6 years ago
|
||
Same results on Try with 2.0.2 as comment 2.
https://treeherder.mozilla.org/#/jobs?repo=try&revision=307fb6b7f523a1ae7db618a63647630737e766e2
Assignee | ||
Comment 5•6 years ago
|
||
Overview of changes leading to 2.1.0
Tuesday, October 30, 2018
====================================
- AAT shaping improvements:
o Allow user controlling AAT features, for whole buffer only currently.
o Several 'morx' fixes.
o Implement tuple-kerns in 'kerx'; Fixes kerning with Apple default
San Francisco fonts.
- Support for color fonts:
o COLR/CPAL API to fetch color layers.
o SVG table to fetch SVG documents.
o CBDT/sbix API to fetch PNG images.
- New 'name' table API.
- hb-ot-font now uses 'VORG' table to correctly position CFF glyphs
in vertical layout.
- Various fuzzer-found bug fixes.
Changed API:
A type and a macro added in 2.0.0 were renamed:
hb_name_id_t -> hb_ot_name_id_t
HB_NAME_ID_INVALID -> HB_OT_NAME_ID_INVALID
New API:
+hb_color_t
+HB_COLOR
+hb_color_get_alpha()
+hb_color_get_red()
+hb_color_get_green()
+hb_color_get_blue()
+hb_ot_color_has_palettes()
+hb_ot_color_palette_get_count()
+hb_ot_color_palette_get_name_id()
+hb_ot_color_palette_color_get_name_id()
+hb_ot_color_palette_flags_t
+hb_ot_color_palette_get_flags()
+hb_ot_color_palette_get_colors()
+hb_ot_color_has_layers()
+hb_ot_color_layer_t
+hb_ot_color_glyph_get_layers()
+hb_ot_color_has_svg()
+hb_ot_color_glyph_reference_svg()
+hb_ot_color_has_png()
+hb_ot_color_glyph_reference_png()
+hb_ot_name_id_t
+HB_OT_NAME_ID_INVALID
+HB_OT_NAME_ID_COPYRIGHT
+HB_OT_NAME_ID_FONT_FAMILY
+HB_OT_NAME_ID_FONT_SUBFAMILY
+HB_OT_NAME_ID_UNIQUE_ID
+HB_OT_NAME_ID_FULL_NAME
+HB_OT_NAME_ID_VERSION_STRING
+HB_OT_NAME_ID_POSTSCRIPT_NAME
+HB_OT_NAME_ID_TRADEMARK
+HB_OT_NAME_ID_MANUFACTURER
+HB_OT_NAME_ID_DESIGNER
+HB_OT_NAME_ID_DESCRIPTION
+HB_OT_NAME_ID_VENDOR_URL
+HB_OT_NAME_ID_DESIGNER_URL
+HB_OT_NAME_ID_LICENSE
+HB_OT_NAME_ID_LICENSE_URL
+HB_OT_NAME_ID_TYPOGRAPHIC_FAMILY
+HB_OT_NAME_ID_TYPOGRAPHIC_SUBFAMILY
+HB_OT_NAME_ID_MAC_FULL_NAME
+HB_OT_NAME_ID_SAMPLE_TEXT
+HB_OT_NAME_ID_CID_FINDFONT_NAME
+HB_OT_NAME_ID_WWS_FAMILY
+HB_OT_NAME_ID_WWS_SUBFAMILY
+HB_OT_NAME_ID_LIGHT_BACKGROUND
+HB_OT_NAME_ID_DARK_BACKGROUND
+HB_OT_NAME_ID_VARIATIONS_PS_PREFIX
+hb_ot_name_entry_t
+hb_ot_name_list_names()
+hb_ot_name_get_utf8()
+hb_ot_name_get_utf16()
+hb_ot_name_get_utf32()
Summary: Update HarfBuzz to 2.0.2 → Update HarfBuzz to 2.1.0
Assignee | ||
Comment 6•6 years ago
|
||
No changes to the results with 2.1.0.
https://treeherder.mozilla.org/#/jobs?repo=try&group_state=expanded&revision=7ea38853a6a06457194a7a0cc6d93c8691295a48
Assignee | ||
Comment 7•6 years ago
|
||
Overview of changes leading to 2.1.1
Monday, November 5, 2018
====================================
- AAT improvements:
o Implement 'mort' table.
o Implement 'kern' subtables Format 1 and Format 3.
Summary: Update HarfBuzz to 2.1.0 → Update HarfBuzz to 2.1.1
Assignee | ||
Comment 8•6 years ago
|
||
Updated•6 years ago
|
Assignee: nobody → ryanvm
Priority: -- → P3
https://cgit.freedesktop.org/harfbuzz/commit/?id=fdb29ab2b0058c9813f9fc44c83dd9048db92d16
Overview of changes leading to 2.1.2
Friday, November 16, 2018
+====================================
- Various internal changes.
- AAT shaping improvements:
o Implement kern table Format 1 state-machine-based kerning.
o Implement cross-stream kerning (cursive positioning, etc).
o Ignore emptyish GSUB tables (zero scripts) if morx present.
o Don't apply GPOS if morx is being applied. Matches Apple.
https://cgit.freedesktop.org/harfbuzz/commit/?id=e3a1a8350a6a7933b0a100194985f4425ab9de19
Overview of changes leading to 2.1.3
Friday, November 16, 2018
====================================
- Fix AAT 'mort' shaping, which was broken in 2.1.2
Summary: Update HarfBuzz to 2.1.1 → Update HarfBuzz to 2.1.3
Assignee | ||
Comment 10•6 years ago
|
||
Looks like 2.1.3 fixes the Android reftest failures we'd been seeing.
https://treeherder.mozilla.org/#/jobs?repo=try&revision=e32eb4183262fde31c0f87d22283b0acbdbc9e49&group_state=expanded
Assignee | ||
Comment 11•6 years ago
|
||
Overview of changes leading to 2.2.0
Thursday, November 29, 2018
====================================
- Misc shaping bug fixes.
- Add font variations named-instance API.
- Deprecate font variations axis enumeration API and add replacement.
- AAT shaping improvements:
o Fixed 'kern' table Format 2 implementation.
o Implement 'feat' table API for feature detection.
o Blacklist 'GSUB' table of fonts from 'MUTF' foundry that also have 'morx'.
New API:
+hb_aat_layout_feature_type_t
+hb_aat_layout_feature_selector_t
+hb_aat_layout_get_feature_types()
+hb_aat_layout_feature_type_get_name_id
+hb_aat_layout_feature_selector_info_t
+HB_AAT_LAYOUT_NO_SELECTOR_INDEX
+hb_aat_layout_feature_type_get_selector_infos()
+hb_ot_var_axis_flags_t
+hb_ot_var_axis_info_t
+hb_ot_var_get_axis_infos()
+hb_ot_var_find_axis_info()
+hb_ot_var_get_named_instance_count()
+hb_ot_var_named_instance_get_subfamily_name_id()
+hb_ot_var_named_instance_get_postscript_name_id()
+hb_ot_var_named_instance_get_design_coords()
Deprecated API:
+HB_OT_VAR_NO_AXIS_INDEX
+hb_ot_var_axis_t
+hb_ot_var_get_axes()
+hb_ot_var_find_axis()
Summary: Update HarfBuzz to 2.1.3 → Update HarfBuzz to 2.2.0
Assignee | ||
Comment 12•6 years ago
|
||
No new issues with 2.2.0. Just the MSVC Werror bustage still.
https://treeherder.mozilla.org/#/jobs?repo=try&revision=ee04ab3f3ce2bf8c710ad5bbbd60a876beaf6c12
Comment 13•6 years ago
|
||
When we're ready to take the harfbuzz update, this should fix the issue of the deprecation warnings.
Assignee | ||
Comment 14•6 years ago
|
||
Comment on attachment 9030085 [details] [diff] [review]
Update gfxFont/gfxFontEntry to use new harfbuzz API in place of deprecated functions
Looks great, thanks for figuring that out!
https://treeherder.mozilla.org/#/jobs?repo=try&revision=6f7e7bbe5779402b15e137cb081fabae813e27d2
Happy to land this all together once the reviews are ready to go :)
Flags: needinfo?(jfkthame)
Attachment #9030085 -
Flags: feedback+
Comment 15•6 years ago
|
||
OK; I'm intending to keep an eye on stability upstream, and consider taking an update sometime in January. Leaving ni? flag as a reminder.
Assignee | ||
Comment 16•6 years ago
|
||
Overview of changes leading to 2.3.0
Thursday, December 20, 2018
====================================
- Fix regression on big-endian architectures. Ouch!
- Misc bug and build fixes.
- Fix subsetting of simple GSUB/GDEF.
- Merge CFF / CFF2 support contributed by Adobe. This mostly involves
the subsetter, but also get_glyph_extents on CFF fonts.
New API in hb-aat.h:
+hb_aat_layout_has_substitution()
+hb_aat_layout_has_positioning()
+hb_aat_layout_has_tracking()
Summary: Update HarfBuzz to 2.2.0 → Update HarfBuzz to 2.3.0
Assignee | ||
Comment 17•6 years ago
|
||
Assignee | ||
Comment 18•6 years ago
|
||
2.3.0 looks good on Try.
https://treeherder.mozilla.org/#/jobs?repo=try&revision=1757eeedfae73fd1f54c704f73144c47fce11106
Comment 19•6 years ago
|
||
Comment on attachment 9030085 [details] [diff] [review]
Update gfxFont/gfxFontEntry to use new harfbuzz API in place of deprecated functions
Review of attachment 9030085 [details] [diff] [review]:
-----------------------------------------------------------------
This just adjusts our code to use non-deprecated harfbuzz API and avoid build failure due to warnings-as-errors, without changing behavior. I expect we'll also want to add the new Indic-script v.3 tags to the ScriptRange records where appropriate (so I've left room in the struct for them), but let's do that in a separate bug.
Attachment #9030085 -
Flags: review?(jmuizelaar)
Updated•6 years ago
|
Attachment #9030085 -
Flags: review?(jmuizelaar) → review+
Comment 20•6 years ago
|
||
Pushed by ryanvm@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/2d077b8e0b5b
Update HarfBuzz to version 2.3.0. r=jfkthame
https://hg.mozilla.org/integration/autoland/rev/27730939a138
Update gfxFont/gfxFontEntry to use new harfbuzz API in place of deprecated functions. r=jrmuizel
Updated•6 years ago
|
Flags: needinfo?(jfkthame)
Comment 21•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/2d077b8e0b5b
https://hg.mozilla.org/mozilla-central/rev/27730939a138
Status: NEW → RESOLVED
Closed: 6 years ago
status-firefox66:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla66
Comment 22•6 years ago
|
||
Coverity found 18 new issues in this update.
Complaining about dead code, Large stack use, and other things.
No high impact defects (medium and low)
Assignee | ||
Comment 23•6 years ago
|
||
(In reply to Sylvestre Ledru [:sylvestre] from comment #22)
> Coverity found 18 new issues in this update.
> Complaining about dead code, Large stack use, and other things.
> No high impact defects (medium and low)
Behdad, do you have access to Coverity results for HarfBuzz?
Flags: needinfo?(mozilla)
Comment 24•6 years ago
|
||
> Behdad, do you have access to Coverity results for HarfBuzz?
Hey there. To be honest enabling it was my task but I got stock as the lack of familiarity, can you guys help us on enabling it again with our CI?
Comment 25•6 years ago
|
||
Seems that it is here:
https://scan.coverity.com/projects/harfbuzz
And see here:
https://scan.coverity.com/faq#get-account
If you want, we can share the results I was mentioning above.
Comment 26•6 years ago
|
||
We don't have our Coverity build working. I've written to Coverity people multiple times, with no response.
Can you give me access to Mozilla's run of Coverity?
Flags: needinfo?(mozilla)
Comment 27•6 years ago
|
||
(In reply to Behdad Esfahbod from comment #26)
We don't have our Coverity build working. I've written to Coverity people multiple times, with no response.
Can you give me access to Mozilla's run of Coverity?
We are encountering the same issue unfortunately on the scan service from Coverity. It's been down for a while now.
You need to log in
before you can comment on or make changes to this bug.
Description
•