From 215be2b87b3a6544604a3985d6a9db68682befa6 Mon Sep 17 00:00:00 2001 From: moz Date: Fri, 7 Apr 2017 18:21:22 +0200 Subject: [PATCH] add webfontloader to check status of web fonts at rendering time. #13 --- svg_rendering/page/debug.html | 47 ++++++++++++++++++---- svg_rendering/page/js-gen/webfontloader.js | 18 +++++++++ 2 files changed, 57 insertions(+), 8 deletions(-) create mode 100644 svg_rendering/page/js-gen/webfontloader.js diff --git a/svg_rendering/page/debug.html b/svg_rendering/page/debug.html index 4815767..2dd434c 100644 --- a/svg_rendering/page/debug.html +++ b/svg_rendering/page/debug.html @@ -10,6 +10,7 @@ + @@ -71,16 +72,16 @@

Transcript Generation Debugging

+ + + var fontError = false; + var webFontConfig = { + custom: { + families: ['Ubuntu', 'Ubuntu Monospace', 'Gentium Plus'] + // we don not need to specify urls as they are specified in the css files + }, + // do not time out if font can't be loaded + timeout: Number.MAX_VALUE, + active: function() { + // if we made it this far without 'fontinactive' occurring, then all + // fonts have been loaded + if (!fontError) { + Faust.io(json, transcriptGeneration.createDiplomaticSvg); + } else {} + + }, + fontinactive: function(familyName, fvd) { + // font could not be loaded, abort + fontError = true; + var message = "Error: web font could not be loaded: " + familyName + " " + fvd; + + var htmlMessage = document.createElement('div'); + htmlMessage.innerHTML = message; + document.body.append(htmlMessage); + throw(message); + } + }; + +WebFont.load(webFontConfig); + diff --git a/svg_rendering/page/js-gen/webfontloader.js b/svg_rendering/page/js-gen/webfontloader.js new file mode 100644 index 0000000..dbab477 --- /dev/null +++ b/svg_rendering/page/js-gen/webfontloader.js @@ -0,0 +1,18 @@ +/* Web Font Loader v1.6.27 - (c) Adobe Systems, Google. License: Apache 2.0 */(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?d():setTimeout(k,25)},function(){e()})}k()}),e=new Promise(function(a,d){setTimeout(d,b.f)});Promise.race([e,d]).then(function(){b.g(b.a)},function(){b.j(b.a)})};function R(a,b,c,d,e,f,g){this.v=a;this.B=b;this.c=c;this.a=d;this.s=g||"BESbswy";this.f={};this.w=e||3E3;this.u=f||null;this.o=this.j=this.h=this.g=null;this.g=new N(this.c,this.s);this.h=new N(this.c,this.s);this.j=new N(this.c,this.s);this.o=new N(this.c,this.s);a=new H(this.a.c+",serif",K(this.a));a=P(a);this.g.a.style.cssText=a;a=new H(this.a.c+",sans-serif",K(this.a));a=P(a);this.h.a.style.cssText=a;a=new H("serif",K(this.a));a=P(a);this.j.a.style.cssText=a;a=new H("sans-serif",K(this.a));a= +P(a);this.o.a.style.cssText=a;O(this.g);O(this.h);O(this.j);O(this.o)}var S={D:"serif",C:"sans-serif"},T=null;function U(){if(null===T){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);T=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return T}R.prototype.start=function(){this.f.serif=this.j.a.offsetWidth;this.f["sans-serif"]=this.o.a.offsetWidth;this.A=q();la(this)}; +function ma(a,b,c){for(var d in S)if(S.hasOwnProperty(d)&&b===a.f[S[d]]&&c===a.f[S[d]])return!0;return!1}function la(a){var b=a.g.a.offsetWidth,c=a.h.a.offsetWidth,d;(d=b===a.f.serif&&c===a.f["sans-serif"])||(d=U()&&ma(a,b,c));d?q()-a.A>=a.w?U()&&ma(a,b,c)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):na(a):V(a,a.v)}function na(a){setTimeout(p(function(){la(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a);v(this.h.a);v(this.j.a);v(this.o.a);b(this.a)},a),0)};function W(a,b,c){this.c=a;this.a=b;this.f=0;this.o=this.j=!1;this.s=c}var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c("wf",a.c,K(a).toString(),"active")],[b.a.c("wf",a.c,K(a).toString(),"loading"),b.a.c("wf",a.c,K(a).toString(),"inactive")]);L(b,"fontactive",a);this.o=!0;oa(this)}; +W.prototype.h=function(a){var b=this.a;if(b.g){var c=y(b.f,b.a.c("wf",a.c,K(a).toString(),"active")),d=[],e=[b.a.c("wf",a.c,K(a).toString(),"loading")];c||d.push(b.a.c("wf",a.c,K(a).toString(),"inactive"));w(b.f,d,e)}L(b,"fontinactive",a);oa(this)};function oa(a){0==--a.f&&a.j&&(a.o?(a=a.a,a.g&&w(a.f,[a.a.c("wf","active")],[a.a.c("wf","loading"),a.a.c("wf","inactive")]),L(a,"active")):M(a.a))};function pa(a){this.j=a;this.a=new ja;this.h=0;this.f=this.g=!0}pa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j);this.g=!1!==a.events;this.f=!1!==a.classes;qa(this,new ha(this.c,a),a)}; +function ra(a,b,c,d,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,k=d||null||{};if(0===c.length&&f)M(b.a);else{b.f+=c.length;f&&(b.j=f);var h,m=[];for(h=0;h