Closed Bug 1726416 Opened 3 years ago Closed 3 years ago

Update HarfBuzz to 2.9.1

Categories

(Core :: Graphics: Text, task, P3)

task

Tracking

()

RESOLVED FIXED
94 Branch
Tracking Status
firefox94 --- fixed

People

(Reporter: RyanVM, Assigned: RyanVM)

References

Details

(Whiteboard: [third-party-lib-audit][gfx-noted])

Attachments

(3 files)

+++ This bug was initially created as a clone of Bug #1711472 +++

Overview of changes leading to 2.9.0
Wednesday, August 18, 2021

  • Subsetter API is being stabilized, with the first stable API to happen in
    3.0.0 release (https://github.com/harfbuzz/harfbuzz/issues/3078).
  • Support multiple variation axes with same tag, aka HOI.
  • The “coretext” testing shaper now passes font variations to CoreText.
  • hb-shape/hb-view does not break line at new lines unless text is read from
    file.
  • hb-view and hb-subset has a --batch now, similar to hb-shape.
  • The --batch mode now uses ; as argument separator instead of : used previously.
  • The --batch in hb-shape does not expect 0th argument anymore. That is, the
    lines read are interpreted as argv[1:], instead of argv[0:].
  • The --batch option has been undocumented. We are ready to document it; send
    feedback if you find it useful.
  • hb-subset got arguments revamps. Added much-requested --gids-file, --glyphs,
    --glyphs-file, --unicodes-file, supporting ranges in --unicodes.
  • Various bug fixes.

Overview of changes leading to 2.8.2
Tuesday, July 8, 2021

  • Shaping LTR digits for RTL scripts now makes the native direction of the
    digits LTR, applying shaping and positioning rules on the same glyph order as
    Uniscribe. (Jonathan Kew, Khaled Hosny).
  • Subsetting COLR v1 and CPAL tables is now supported. (Garret Rieger, Qunxin Liu)
  • Various fixes and improvements to the subsetter. (Garret Rieger, Qunxin Liu, Behdad)
  • When applying morx table, mark glyph widths should not be zeroed. (Jonathan Kew)
  • GPOS is preferred over kerx, if GSUB was applied. (Behdad)
  • Regional_Indicator pairs are grouped together when clustering. (Behdad)
  • New API:
    +hb_blob_create_or_fail()
    +hb_blob_create_from_file_or_fail()
    +hb_set_copy()

(In reply to Ryan VanderMeulen [:RyanVM] from comment #1)

2.9.0 is hitting reftest failures on Try:
https://treeherder.mozilla.org/logviewer?job_id=348832490&repo=try&lineNumber=11952

This is because harfbuzz now incorporates a (slightly different) fix for the issue we patched in bug 1716029; we'll want to revert the patch we used there, and adjust our reftest reference to reflect the behavior that was eventually agreed/implemented.

Overview of changes leading to 2.9.1
Tuesday, September 7, 2021

  • Final subset API is in place and if no issues are discovered, it will be the
    stable subset API of HarfBuzz 3.0.0. Old API is kept to ease transition, but
    will be removed in 3.0.0.
  • Various fuzzer-found bug fixes.
  • hb_buffer_append() now handles the pre- and post-context which previously
    were left unchanged in the destination buffer.
  • hb-view / hb-shape now accept following new arguments:
    o --unicodes-before/after: takes a list of hex numbers that represent Unicode
    codepoints.
  • Undeprecated API:
    hb_set_invert()
Summary: Update HarfBuzz to 2.9.0 → Update HarfBuzz to 2.9.1

Updated Try push:
https://treeherder.mozilla.org/jobs?repo=try&revision=761253f55d90be7e82eb5d810d141ec28c56e26b

No new failures compared to the 2.9.0 Try push already discussed. Jonathan, if you want to attach an updated version of 1599841-1.html, I can roll it into the bug 1716029 revert patch.

Flags: needinfo?(jfkthame)

I've taken a shot at revising the 1599841-1 reftest. (I'm splitting it into two, and testing the effect of the digit(s) on the overall rendered width, as we can't test in quite the same way any more, because harfbuzz is "too smart" to allow the kind of hackery the reference file there was doing to "fake" the expected rendering.)

Pushed to try at https://treeherder.mozilla.org/#/jobs?repo=try&revision=5243767788ec238ff3dfc11e501dfa66f823df9c to check this behaves as I expect; provided it's happy, I'll post the patch here.

Flags: needinfo?(jfkthame)
Attachment #9236879 - Attachment description: Bug 1726416 - Update HarfBuzz to 2.9.0. → Bug 1726416 - Update HarfBuzz to 2.9.1. r=jfkthame

(In reply to Jonathan Kew (:jfkthame) from comment #6)

Pushed to try at https://treeherder.mozilla.org/#/jobs?repo=try&revision=5243767788ec238ff3dfc11e501dfa66f823df9c to check this behaves as I expect; provided it's happy, I'll post the patch here.

Ah, Windows antialiasing..... (sigh).

Trying again: https://treeherder.mozilla.org/#/jobs?repo=try&revision=c4887d96d274bc37ead01e4db928777f26ef4383

We can no longer use direction overrides to create the test vs reference renderings here,
because of how harfbuzz now handles the numeral directionality internally. So it's difficult
to come up with a testcase that verifies the exact rendering of the subtending mark + digit(s)
combinations.

What we can do, though, is verify that a single digit combines with the subtending mark
without affecting its overall width; and that a double-digit number does increase the
width. These two conditions are unlikely to both hold unless the rendering is behaving
correctly.

(FWIW, Chrome Canary passes these new test versions, as it also uses a recent harfbuzz;
Safari currently fails, as Core Text doesn't support the subtending marks in the same
way, if at all.)

Pushed by rvandermeulen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/06dce46914cf
Update HarfBuzz to 2.9.1. r=jfkthame
https://hg.mozilla.org/integration/autoland/rev/11d6a9083db4
Revert the changes made by bug 1716029 which are no longer needed. r=jfkthame
https://hg.mozilla.org/integration/autoland/rev/01e348e42751
Update testcase for Arabic subtending marks (from bug 1599841) now that harfbuzz handles the number-directionality issue internally. r=emilio
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 94 Branch
Blocks: 1735218
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: