Custom webfont not showing in Firefox44

Is anybody having a problem with custom fonts not displaying in the latest Firefox update? It worked perfectly fine prior to the new release, now it's a complete no show. Does anybody have a workaround?

Comments

  • kupfers
    kupfers Posts: 259
    I asked Roel Nieskens and he suspects it’s a CJK bitmap font? Which seem to be broken/deprecated in Fx44. https://support.mozilla.org/en-US/questions/1109784

  • kupfers
    kupfers Posts: 259
    Or something is your GSUP or GPOS tables is wrong https://lists.w3.org/Archives/Public/public-webfonts-wg/2016Jan/0000.html
  • It appears this has caused so many problems that Firefox is reverting the change for 45.

    https://bugzilla.mozilla.org/show_bug.cgi?id=1244693
  • Firefox v44 (released January 26) started using the Open Type Sanitizer (OTS).
    Fonts not passing the OTS tests are rejected and will not show up.
  • Just to clarify, both Firefox and Chrome have been using OTS for a long time (probably since they started supporting web fonts) and OTS has always been rejecting GSUB/GPOS/GDEF tables it thought they are faulty (rightly or not).

    OTS was dropping these tables from the font and still considering the font valid, which meant that your font is used but ligatures/kerning/any other OpenType feature was silently dropped which can render the font unusable for many scripts.

    What changed is that OTS now rejects the whole font if it rejects any of the these tables as well, since considering OpenType layout tables optional is so backwards.

    Chrome does not has a problem because it tells OTS not to try to sanitise these tables as they don’t pass OpenType layout to any system font libraries and can sanitise the tables themselves (the main reason OTS was born) and Firefox is considering doing so for the exact same reasons.
  • What is the point of a web version of an OpenType font if none of the OT features or classes is supported? These are an essential part of most OT fonts and to strip them out renders them next to useless. 
  • Features that are correctly formed work; only features that are subtly broken become fully broken.
  • Is there a error message that gives some inside into why the font/GSUB is not working?
  • Is there a error message that gives some inside into why the font/GSUB is not working?
    If you run OTS locally, it gives some decent error messages back. For example, here’s an error I recently got while working on mkmk and mark features:
    ERROR: Layout: Lookup flags ask for mark attachment, but there is no GDEF table or it has no mark attachment classes: 256
    ERROR: Layout: Failed to parse lookup 1
    ERROR: GPOS: Failed to parse lookup list table
    Failed to sanitise file!
  • Paul van der Laan
    Paul van der Laan Posts: 242
    edited February 2016
    @Rob Mientjes: what is the procedure for installing a local copy of OTS? I downloaded the OTS GitHub repository and installed some dependencies (pkg-config and autoconf) via Homebrew, but then I got stuck with the following error while running autogen.sh:

    -n checking for git... 
    /usr/bin/git
    running git submodule init
    running git submodule update
    -n checking for pkg-config... 
    /usr/local/bin/pkg-config
    -n checking for autoreconf... 
    /usr/local/bin/autoreconf
    running autoreconf --force --install --verbose
    autoreconf: Entering directory `.'
    autoreconf: configure.ac: not using Gettext
    autoreconf: running: aclocal -I m4 --output=aclocal.m4t
    Can't exec "aclocal": No such file or directory at /usr/local/Cellar/autoconf/2.69/share/autoconf/Autom4te/FileUtils.pm line 326.
    autoreconf: failed to run aclocal: No such file or directory

    I don't mind compiling the occasional binary, but hunting down the correct dependencies can be so tedious at times.
  • Try "brew link autoconf"
  • PabloImpallari
    PabloImpallari Posts: 806
    edited February 2016
    No need to install OTS locally.
    Just install https://nightly.mozilla.org/ and drop your fonts in the Testing Page.
    If the font show up, it's all good.
    If the font is not showing up, error messages are displayed in the browser console.
  • @Paul van der Laan Can’t say it was a painless operation for me either. Try what @Simon Cozens says, I guess. I don’t remember what I did exactly. I do also like the suggestion by @PabloImpallari – I had not noticed that!
  • Try "brew link autoconf"
    Thanks, I’ll try!

    Just curious: why was “brew autoconf” not sufficient here?
  • Dave Crossland
    Dave Crossland Posts: 1,431
    edited February 2016
    Georg, please see this documentation I started that provides context on common errors. Thanks to @Nicolas Silva for the current information.

    Rob, please do contribute to this file with the errors you encounter and how to fix them. 

    https://github.com/khaledhosny/ots/blob/master/docs/HowToFix.md#dflt-script-doesnt-satisfy-the-spec

    Paul, I recently contributed OTF to Bram Stein's homebrew install scripts for font tools (https://github.com/bramstein/homebrew-webfonttools) so you can install it from git master easily like this:
    brew tap bramstein/webfonttools; 
    brew update; 
    brew install sfnt2woff sfnt2woff-zopfli woff2 ttf2eot sfntly;
    brew install ots --HEAD;
    
  • Try "brew link autoconf"
    Thanks, I’ll try!

    Just curious: why was “brew autoconf” not sufficient here?
    Homebrew distinguishes between installing things which are available to the whole system, and those which are only used to build other Homebrew things. (which they call "keg-only") autoconf is normally used to build other Homebrew formulae, so in order to use it to build non-Homebrew things, you have to make it available to the whole system, which is what "brew link" does.
  • I meant if there are visible error messages in Firefox if a font has problems. But that was answered. Thanks 
  • The original webfonts were generated by Fontsquirrel, but thanks to Georg have been redone in Glyphs and now work fine. 
  • Paul van der Laan
    Paul van der Laan Posts: 242
    edited February 2016
    Paul, I recently contributed OTF to Bram Stein's homebrew install scripts for font tools (https://github.com/bramstein/homebrew-webfonttools) so you can install it from git master easily like this:
    brew tap bramstein/webfonttools; 
    brew update; 
    brew install sfnt2woff sfnt2woff-zopfli woff2 ttf2eot sfntly;
    brew install ots --HEAD;
    

    Thanks for the pointer @Dave Crossland.

    Apparently automake is also required to run autogen.sh successfully. After I installed that with homebrew it all compiled fine. :)

  • Apparently automake is also required to run autogen.sh successfully. After I installed that with homebrew it all compiled fine. :)
    To confirm, you installed OTS from git without homebrew, or you needed to install automake in order for my brew script to work? :)
  • I cloned OTS from Git, and from that package I ran autogen.sh. In order to make it run successfully I had to install pkg-config, autoconf, and automake. Which I did via homebrew.
  • Hin-Tak Leung
    Hin-Tak Leung Posts: 363
    edited February 2016
    FWIW, aclocal is part of automake. It was fairly obvious what the error message means . Many software are written to require even specific version of automake, so on fedora, there are (were?) 3 or 4 versions of automake simultaneously installed, all from Redhat,  to choose from. 

    autogen.sh is an automake idiom.
  • Paul van der Laan
    Paul van der Laan Posts: 242
    edited February 2016
    What’s fairly obvious to one, might not be the case for somebody else. That’s what a forum like this is for – to share information and help each other out, right?
  • I cloned OTS from Git, and from that package I ran autogen.sh. In order to make it run successfully I had to install pkg-config, autoconf, and automake. Which I did via homebrew.
    Okay great - Bram's ots brew recipe should do all that for you automatically if you need to install it on another machine :) 
  • What are the steps to correct the issue, utilizing Fontlab 5?
  • Hi there! I am working on a project and am experiencing a GDEF table error in my .ttf files (but not .otf): 
    ERROR: Layout: Lookup flags require GDEF table, but none was found: 8

    Are there any Robofont users out there who have had a similar error and know why this is happening/how to fix it? Could this be an easy-to-fix syntax issue like the one Dave just posted above, or is it more likely that there's a larger problem with my project? If you'd like to help me out, let me know! I'm more than happy to pay whomever can help me fix this! :) 


  • @Erin McLaughlin: I actually was told to add my solution to that file, but the problem is that I didn’t feel secure enough in how I arrived at my fix. My mark-to-base feature script (https://gist.github.com/rbmntjs/d8cbcca859c38bd182b2) outputs correct code, but TrueType hasn’t given me issues yet. Sounds like a strictness issue with the generation of the TTF file.

    Err. Yeah. The errors are vague, but it could involve a subtle syntax issue. Want to message me?
  • The error means you have an IgnoreMarks LookupFlag (8) but not GDEF table which is required to identify which glyphs are marks. The solution is to either drop the flag or make sure your font has a GDEF table.
  • Well, wouldn’t that error also pop up for the OTF file? Because it sure did when my GDEF was missing or incomplete.