Closed Bug 1226175 Opened 4 years ago Closed 4 years ago

update harfbuzz to upstream release 1.1.0

Categories

(Core :: Graphics: Text, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla45
Tracking Status
firefox45 --- fixed

People

(Reporter: ionnv, Assigned: jfkthame)

References

(Blocks 1 open bug, )

Details

Attachments

(1 file)

http://cgit.freedesktop.org/harfbuzz/commit/?id=e1118aeac3b5556df0ce502732df8ac92bdac45a

Overview of changes leading to 1.1.0
Wednesday, November 18, 2015
====================================

- Implement 'stch' stretch feature for Syriac Abbreviation Mark.
  https://github.com/behdad/harfbuzz/issues/141
- Disable use of decompose_compatibility() callback.
- Implement "shaping" of various Unicode space characters, even
  if the font does not support them.
  https://github.com/behdad/harfbuzz/issues/153
- If font does not support U+2011 NO-BREAK HYPHEN, fallback to
  U+2010 HYPHEN.
- Changes resulting from libFuzzer continuous fuzzing:
  * Reject font tables that need more than 8 edits,
  * Bound buffer growth during shaping to 32x,
  * Fix assertions and other issues at OOM / buffer max-growth.
- Misc fixes and optimizations.
- API changes:
  * All fonts created with hb_font_create() now inherit from
    (ie. have parent) hb_font_get_empty().
Depends on: 1215428
I've confirmed locally that we get proper SAM rendering with this, using the Segoe UI Historic font. I'm not aware of a free font with appropriate support that we can include for reftest purposes at this time.
Attachment #8689514 - Flags: review?(jdaggett)
Assignee: nobody → jfkthame
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Blocks: 560963
I can try to prepare such a font if you like, may be something based on Noto fonts.
Attachment #8689514 - Flags: review?(jdaggett) → review+
https://hg.mozilla.org/integration/mozilla-inbound/rev/815c0c1d5619a4a122108148f303db3ed05c2247
Bug 1226175 - Update in-tree harfbuzz to release 1.1.0 to pick up Syriac Abbreviation Mark support ('stch' feature). r=jdaggett
(In reply to Khaled Hosny from comment #2)
> I can try to prepare such a font if you like, may be something based on Noto
> fonts.

If you wish, but I don't see it as a high priority. This is primarily a harfbuzz issue, and it's tested there, so I'm comfortable with just having confirmed manually that it appears as expected in Gecko.
(In reply to Jonathan Kew (:jfkthame) from comment #4)
> (In reply to Khaled Hosny from comment #2)
> > I can try to prepare such a font if you like, may be something based on Noto
> > fonts.
> 
> If you wish, but I don't see it as a high priority. This is primarily a
> harfbuzz issue, and it's tested there, so I'm comfortable with just having
> confirmed manually that it appears as expected in Gecko.

OK, all good then.
(In reply to Pulsebot from comment #6)
> Backout:
> https://hg.mozilla.org/integration/mozilla-inbound/rev/f0ecb8d583b4

What’s wrong exactly?
/builds/slave/m-in-lx-0000000000000000000000/build/src/gfx/harfbuzz/src/hb-font.cc:304:1: error: missing braces around initializer for 'hb_font_funcs_t::get_t::get_funcs_t' [-Werror=missing-braces]
/builds/slave/m-in-lx-0000000000000000000000/build/src/gfx/harfbuzz/src/hb-font.cc:325:1: error: missing braces around initializer for 'hb_font_funcs_t::get_t::get_funcs_t' [-Werror=missing-braces] 

I'll fix, test, and re-land.
Ugh, I just realized there's another set of errors that showed up on Windows (only):

c:\builds\moz2_slave\m-in-w32-000000000000000000000\build\src\gfx\harfbuzz\src\hb-buffer-private.hh(51) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\builds\moz2_slave\m-in-w32-000000000000000000000\build\src\gfx\harfbuzz\src\hb-buffer-private.hh(52) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\builds\moz2_slave\m-in-w32-000000000000000000000\build\src\gfx\harfbuzz\src\hb-buffer-private.hh(67) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\builds\moz2_slave\m-in-w32-000000000000000000000\build\src\gfx\harfbuzz\src\hb-ot-map-private.hh(162) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\builds\moz2_slave\m-in-w32-000000000000000000000\build\src\gfx\harfbuzz\src\hb-ot-layout-private.hh(68) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\builds\moz2_slave\m-in-w32-000000000000000000000\build\src\gfx\harfbuzz\src\hb-ot-layout-private.hh(240) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\builds\moz2_slave\m-in-w32-000000000000000000000\build\src\gfx\harfbuzz\src\hb-ot-layout-private.hh(252) : error C2676: binary '|=' : 'hb_buffer_scratch_flags_t' does not define this operator or a conversion to a type acceptable to the predefined operator
c:\builds\moz2_slave\m-in-w32-000000000000000000000\build\src\gfx\harfbuzz\src\hb-ot-layout-private.hh(255) : error C2676: binary '|=' : 'hb_buffer_scratch_flags_t' does not define this operator or a conversion to a type acceptable to the predefined operator 

So a bit more cleanup needed, it seems.
(In reply to Jonathan Kew (:jfkthame) from comment #10)
> Ugh, I just realized there's another set of errors that showed up on Windows
> (only):
> 
> c:\builds\moz2_slave\m-in-w32-
> 000000000000000000000\build\src\gfx\harfbuzz\src\hb-buffer-private.hh(51) :
> error C4430: missing type specifier - int assumed. Note: C++ does not
> support default-int
> c:\builds\moz2_slave\m-in-w32-
> 000000000000000000000\build\src\gfx\harfbuzz\src\hb-buffer-private.hh(52) :
> error C4430: missing type specifier - int assumed. Note: C++ does not
> support default-int
> c:\builds\moz2_slave\m-in-w32-
> 000000000000000000000\build\src\gfx\harfbuzz\src\hb-buffer-private.hh(67) :
> error C4430: missing type specifier - int assumed. Note: C++ does not
> support default-int
> c:\builds\moz2_slave\m-in-w32-
> 000000000000000000000\build\src\gfx\harfbuzz\src\hb-ot-map-private.hh(162) :
> error C4430: missing type specifier - int assumed. Note: C++ does not
> support default-int
> c:\builds\moz2_slave\m-in-w32-
> 000000000000000000000\build\src\gfx\harfbuzz\src\hb-ot-layout-private.hh(68)
> : error C4430: missing type specifier - int assumed. Note: C++ does not
> support default-int
> c:\builds\moz2_slave\m-in-w32-
> 000000000000000000000\build\src\gfx\harfbuzz\src\hb-ot-layout-private.
> hh(240) : error C4430: missing type specifier - int assumed. Note: C++ does
> not support default-int
> c:\builds\moz2_slave\m-in-w32-
> 000000000000000000000\build\src\gfx\harfbuzz\src\hb-ot-layout-private.
> hh(252) : error C2676: binary '|=' : 'hb_buffer_scratch_flags_t' does not
> define this operator or a conversion to a type acceptable to the predefined
> operator
> c:\builds\moz2_slave\m-in-w32-
> 000000000000000000000\build\src\gfx\harfbuzz\src\hb-ot-layout-private.
> hh(255) : error C2676: binary '|=' : 'hb_buffer_scratch_flags_t' does not
> define this operator or a conversion to a type acceptable to the predefined
> operator 
> 
> So a bit more cleanup needed, it seems.

I replaced the template use for these with non-template.  See if that helps?
https://hg.mozilla.org/integration/mozilla-inbound/rev/7de63224e7b9e3fb7169dff6dcb601df771dfb25
Bug 1226175 - Update in-tree harfbuzz to release 1.1.0 to pick up Syriac Abbreviation Mark support ('stch' feature). r=jdaggett
(In reply to Behdad Esfahbod from comment #13)
> I replaced the template use for these with non-template.  See if that helps?

I expect so (will test in a while, or whenever the next release comes); for getting 1.1.0 landed now, I just added the #include to keep the build happy on Windows.
https://hg.mozilla.org/mozilla-central/rev/7de63224e7b9
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
Blocks: 1228540
You need to log in before you can comment on or make changes to this bug.