webfontloader 1.6.8 → 1.6.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +5 -0
- data/lib/webfontloader.rb +1 -1
- data/package.json +1 -1
- data/spec/core/domhelper_spec.js +54 -0
- data/src/core/domhelper.js +23 -20
- data/webfontloader.gemspec +2 -2
- data/webfontloader.js +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8594aa7b6469c3d2cc133e3a1a07bdfc66dccdc
|
4
|
+
data.tar.gz: 753162efa8e0c0dec8a57659adab08b664967d80
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 97a724af7078ac83e6bcc2553ae113addb3bbe95e620dc6f7f081ee6b4dd2db53be4db475ee8da03d637516d16fafe0167eea0a9396fe428813dc7ca2c1c2a46
|
7
|
+
data.tar.gz: 34b16e105775ff9f29ae76e7976b3e175c6bb3ab4ff61f4770dab6b71df420e0448bfd1fe763ed6edd0d030c6d2a0303188dfe2962c8ceffb3694fd6ac1d181e
|
data/CHANGELOG
CHANGED
data/lib/webfontloader.rb
CHANGED
data/package.json
CHANGED
data/spec/core/domhelper_spec.js
CHANGED
@@ -280,6 +280,60 @@ describe('DomHelper', function () {
|
|
280
280
|
});
|
281
281
|
});
|
282
282
|
|
283
|
+
describe('#loadStylesheet with callback', function () {
|
284
|
+
it('should load the stylesheet', function () {
|
285
|
+
var el = null,
|
286
|
+
width = null,
|
287
|
+
callbackMade = false;
|
288
|
+
|
289
|
+
function callback() {
|
290
|
+
callbackMade = true;
|
291
|
+
}
|
292
|
+
|
293
|
+
runs(function () {
|
294
|
+
el = domHelper.createElement('div', { id: 'TEST_ELEMENT' });
|
295
|
+
domHelper.insertInto('body', el);
|
296
|
+
width = el.offsetWidth;
|
297
|
+
domHelper.loadStylesheet('fixtures/external_stylesheet.css', callback);
|
298
|
+
});
|
299
|
+
|
300
|
+
waitsFor(function () {
|
301
|
+
return callbackMade;
|
302
|
+
});
|
303
|
+
|
304
|
+
runs(function () {
|
305
|
+
expect(el.offsetWidth).toEqual(300);
|
306
|
+
});
|
307
|
+
});
|
308
|
+
});
|
309
|
+
|
310
|
+
describe('#loadStylesheet with async and callback', function () {
|
311
|
+
it('should load the stylesheet', function () {
|
312
|
+
var el = null,
|
313
|
+
width = null,
|
314
|
+
callbackMade = false;
|
315
|
+
|
316
|
+
function callback() {
|
317
|
+
callbackMade = true;
|
318
|
+
}
|
319
|
+
|
320
|
+
runs(function () {
|
321
|
+
el = domHelper.createElement('div', { id: 'TEST_ELEMENT' });
|
322
|
+
domHelper.insertInto('body', el);
|
323
|
+
width = el.offsetWidth;
|
324
|
+
domHelper.loadStylesheet('fixtures/external_stylesheet.css', callback, true);
|
325
|
+
});
|
326
|
+
|
327
|
+
waitsFor(function () {
|
328
|
+
return callbackMade;
|
329
|
+
});
|
330
|
+
|
331
|
+
runs(function () {
|
332
|
+
expect(el.offsetWidth).toEqual(300);
|
333
|
+
});
|
334
|
+
});
|
335
|
+
});
|
336
|
+
|
283
337
|
describe('#loadScript', function () {
|
284
338
|
it('should load the script', function () {
|
285
339
|
runs(function () {
|
data/src/core/domhelper.js
CHANGED
@@ -306,36 +306,34 @@ goog.scope(function () {
|
|
306
306
|
'media': (opt_async ? 'only x' : 'all')
|
307
307
|
});
|
308
308
|
|
309
|
-
var sheets = this.document_.styleSheets
|
310
|
-
|
311
|
-
|
309
|
+
var sheets = this.document_.styleSheets,
|
310
|
+
eventFired = false,
|
311
|
+
asyncResolved = !opt_async,
|
312
|
+
callbackArg = null;
|
313
|
+
|
314
|
+
function mayInvokeCallback() {
|
315
|
+
if (opt_callback && eventFired && asyncResolved) {
|
316
|
+
opt_callback(callbackArg);
|
317
|
+
opt_callback = null;
|
318
|
+
}
|
319
|
+
}
|
312
320
|
|
313
321
|
if (DomHelper.CAN_WAIT_STYLESHEET) {
|
314
322
|
link.onload = function () {
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
if (opt_callback) {
|
319
|
-
opt_callback(null);
|
320
|
-
}
|
321
|
-
}
|
323
|
+
eventFired = true;
|
324
|
+
mayInvokeCallback();
|
322
325
|
};
|
323
326
|
|
324
327
|
link.onerror = function () {
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
if (opt_callback) {
|
329
|
-
opt_callback(new Error('Stylesheet failed to load'));
|
330
|
-
}
|
331
|
-
}
|
328
|
+
eventFired = true;
|
329
|
+
callbackArg = new Error('Stylesheet failed to load');
|
330
|
+
mayInvokeCallback();
|
332
331
|
};
|
333
332
|
} else {
|
334
333
|
// Some callers expect opt_callback being called asynchronously.
|
335
334
|
setTimeout(function () {
|
336
|
-
|
337
|
-
|
338
|
-
}
|
335
|
+
eventFired = true;
|
336
|
+
mayInvokeCallback();
|
339
337
|
}, 0);
|
340
338
|
}
|
341
339
|
|
@@ -356,6 +354,11 @@ goog.scope(function () {
|
|
356
354
|
if (opt_async) {
|
357
355
|
onAvailable(function () {
|
358
356
|
link.media = "all";
|
357
|
+
// Give another tick to ensure the @media change takes effect.
|
358
|
+
setTimeout(function() {
|
359
|
+
asyncResolved = true;
|
360
|
+
mayInvokeCallback();
|
361
|
+
}, 0);
|
359
362
|
});
|
360
363
|
}
|
361
364
|
|
data/webfontloader.gemspec
CHANGED
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
|
|
13
13
|
## If your rubyforge_project name is different, then edit it and comment out
|
14
14
|
## the sub! line in the Rakefile
|
15
15
|
s.name = 'webfontloader'
|
16
|
-
s.version = '1.6.
|
17
|
-
s.date = '2015-10-
|
16
|
+
s.version = '1.6.9'
|
17
|
+
s.date = '2015-10-09'
|
18
18
|
|
19
19
|
## Make sure your summary is short. The description may be as long
|
20
20
|
## as you like.
|
data/webfontloader.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
/* Web Font Loader v1.6.
|
1
|
+
/* Web Font Loader v1.6.9 - (c) Adobe Systems, Google. License: Apache 2.0 */
|
2
2
|
(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function n(a,b,c){n=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?aa:ba;return n.apply(null,arguments)}var p=Date.now||function(){return+new Date};function q(a,b){this.F=a;this.k=b||a;this.H=this.k.document}var ca=!!window.FontFace;q.prototype.createElement=function(a,b,c){a=this.H.createElement(a);if(b)for(var d in b)b.hasOwnProperty(d)&&("style"==d?a.style.cssText=b[d]:a.setAttribute(d,b[d]));c&&a.appendChild(this.H.createTextNode(c));return a};function s(a,b,c){a=a.H.getElementsByTagName(b)[0];a||(a=document.documentElement);a.insertBefore(c,a.lastChild)}
|
3
3
|
function t(a,b,c){b=b||[];c=c||[];for(var d=a.className.split(/\s+/),e=0;e<b.length;e+=1){for(var f=!1,g=0;g<d.length;g+=1)if(b[e]===d[g]){f=!0;break}f||d.push(b[e])}b=[];for(e=0;e<d.length;e+=1){f=!1;for(g=0;g<c.length;g+=1)if(d[e]===c[g]){f=!0;break}f||b.push(d[e])}a.className=b.join(" ").replace(/\s+/g," ").replace(/^\s+|\s+$/,"")}function u(a,b){for(var c=a.className.split(/\s+/),d=0,e=c.length;d<e;d++)if(c[d]==b)return!0;return!1}
|
4
|
-
function v(a){if("string"===typeof a.fa)return a.fa;var b=a.k.location.protocol;"about:"==b&&(b=a.F.location.protocol);return"https:"==b?"https:":"http:"}function x(a,b,c){b=a.createElement("link",{rel:"stylesheet",href:b,media:"all"});var
|
4
|
+
function v(a){if("string"===typeof a.fa)return a.fa;var b=a.k.location.protocol;"about:"==b&&(b=a.F.location.protocol);return"https:"==b?"https:":"http:"}function x(a,b,c){function d(){c&&e&&f&&(c(g),c=null)}b=a.createElement("link",{rel:"stylesheet",href:b,media:"all"});var e=!1,f=!0,g=null;ca?(b.onload=function(){e=!0;d()},b.onerror=function(){e=!0;g=Error("Stylesheet failed to load");d()}):setTimeout(function(){e=!0;d()},0);s(a,"head",b)}
|
5
5
|
function y(a,b,c,d){var e=a.H.getElementsByTagName("head")[0];if(e){var f=a.createElement("script",{src:b}),g=!1;f.onload=f.onreadystatechange=function(){g||this.readyState&&"loaded"!=this.readyState&&"complete"!=this.readyState||(g=!0,c&&c(null),f.onload=f.onreadystatechange=null,"HEAD"==f.parentNode.tagName&&e.removeChild(f))};e.appendChild(f);setTimeout(function(){g||(g=!0,c&&c(Error("Script load timeout")))},d||5E3);return f}return null};function z(){this.S=0;this.K=null}function A(a){a.S++;return function(){a.S--;B(a)}}function C(a,b){a.K=b;B(a)}function B(a){0==a.S&&a.K&&(a.K(),a.K=null)};function D(a){this.ea=a||"-"}D.prototype.d=function(a){for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c].replace(/[\W_]+/g,"").toLowerCase());return b.join(this.ea)};function E(a,b){this.Q=a;this.M=4;this.L="n";var c=(b||"n4").match(/^([nio])([1-9])$/i);c&&(this.L=c[1],this.M=parseInt(c[2],10))}E.prototype.getName=function(){return this.Q};function da(a){return G(a)+" "+(a.M+"00")+" 300px "+H(a.Q)}function H(a){var b=[];a=a.split(/,\s*/);for(var c=0;c<a.length;c++){var d=a[c].replace(/['"]/g,"");-1==d.indexOf(" ")?b.push(d):b.push("'"+d+"'")}return b.join(",")}function I(a){return a.L+a.M}
|
6
6
|
function G(a){var b="normal";"o"===a.L?b="oblique":"i"===a.L&&(b="italic");return b}function ea(a){var b=4,c="n",d=null;a&&((d=a.match(/(normal|oblique|italic)/i))&&d[1]&&(c=d[1].substr(0,1).toLowerCase()),(d=a.match(/([1-9]00|normal|bold)/i))&&d[1]&&(/bold/i.test(d[1])?b=7:/[1-9]00/.test(d[1])&&(b=parseInt(d[1].substr(0,1),10))));return c+b};function fa(a,b){this.a=a;this.j=a.k.document.documentElement;this.O=b;this.g="wf";this.e=new D("-");this.da=!1!==b.events;this.u=!1!==b.classes}function ga(a){a.u&&t(a.j,[a.e.d(a.g,"loading")]);J(a,"loading")}function K(a){if(a.u){var b=u(a.j,a.e.d(a.g,"active")),c=[],d=[a.e.d(a.g,"loading")];b||c.push(a.e.d(a.g,"inactive"));t(a.j,c,d)}J(a,"inactive")}function J(a,b,c){if(a.da&&a.O[b])if(c)a.O[b](c.getName(),I(c));else a.O[b]()};function ha(){this.t={}}function ia(a,b,c){var d=[],e;for(e in b)if(b.hasOwnProperty(e)){var f=a.t[e];f&&d.push(f(b[e],c))}return d};function L(a,b){this.a=a;this.h=b;this.m=this.a.createElement("span",{"aria-hidden":"true"},this.h)}function M(a,b){var c=a.m,d;d="display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+H(b.Q)+";"+("font-style:"+G(b)+";font-weight:"+(b.M+"00")+";");c.style.cssText=d}function N(a){s(a.a,"body",a.m)}L.prototype.remove=function(){var a=this.m;a.parentNode&&a.parentNode.removeChild(a)};function O(a,b,c,d,e,f){this.G=a;this.J=b;this.f=d;this.a=c;this.v=e||3E3;this.h=f||void 0}O.prototype.start=function(){var a=this.a.k.document,b=this;Promise.race([new Promise(function(a,d){setTimeout(function(){d(b.f)},b.v)}),a.fonts.load(da(this.f),this.h)]).then(function(a){1===a.length?b.G(b.f):b.J(b.f)},function(){b.J(b.f)})};function P(a,b,c,d,e,f,g){this.G=a;this.J=b;this.a=c;this.f=d;this.h=g||"BESbswy";this.s={};this.v=e||3E3;this.Z=f||null;this.D=this.C=this.A=this.w=null;this.w=new L(this.a,this.h);this.A=new L(this.a,this.h);this.C=new L(this.a,this.h);this.D=new L(this.a,this.h);M(this.w,new E(this.f.getName()+",serif",I(this.f)));M(this.A,new E(this.f.getName()+",sans-serif",I(this.f)));M(this.C,new E("serif",I(this.f)));M(this.D,new E("sans-serif",I(this.f)));N(this.w);N(this.A);N(this.C);N(this.D)}
|
7
7
|
var Q={ia:"serif",ha:"sans-serif"},R=null;function S(){if(null===R){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);R=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return R}P.prototype.start=function(){this.s.serif=this.C.m.offsetWidth;this.s["sans-serif"]=this.D.m.offsetWidth;this.ga=p();T(this)};function ja(a,b,c){for(var d in Q)if(Q.hasOwnProperty(d)&&b===a.s[Q[d]]&&c===a.s[Q[d]])return!0;return!1}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webfontloader
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Carver
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-10-
|
12
|
+
date: 2015-10-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|