webfontloader 1.5.8 → 1.5.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -37,12 +37,9 @@ webfont.UserAgentParser.UNKNOWN_USER_AGENT = new webfont.UserAgent(
37
37
  webfont.UserAgentParser.UNKNOWN,
38
38
  new webfont.Version(),
39
39
  webfont.UserAgentParser.UNKNOWN,
40
- webfont.UserAgentParser.UNKNOWN,
41
40
  new webfont.Version(),
42
41
  webfont.UserAgentParser.UNKNOWN,
43
- webfont.UserAgentParser.UNKNOWN,
44
42
  new webfont.Version(),
45
- webfont.UserAgentParser.UNKNOWN,
46
43
  undefined,
47
44
  new webfont.BrowserInfo(false, false, false, false));
48
45
 
@@ -151,9 +148,7 @@ goog.scope(function () {
151
148
  */
152
149
  UserAgentParser.prototype.parseIeUserAgentString_ = function() {
153
150
  var platform = this.getPlatform_(),
154
- platformVersionString = this.getPlatformVersionString_(),
155
- platformVersion = Version.parse(platformVersionString),
156
- browserVersionString = null,
151
+ platformVersion = Version.parse(this.getPlatformVersionString_()),
157
152
  browserVersion = null,
158
153
  engine = null,
159
154
  engineVersion = null,
@@ -161,20 +156,17 @@ goog.scope(function () {
161
156
  documentMode = this.getDocumentMode_(this.doc_);
162
157
 
163
158
  if (this.userAgent_.indexOf("MSIE") != -1) {
164
- browserVersionString = this.getMatchingGroup_(this.userAgent_, /MSIE ([\d\w\.]+)/, 1);
159
+ browserVersion = Version.parse(this.getMatchingGroup_(this.userAgent_, /MSIE ([\d\w\.]+)/, 1));
165
160
  } else {
166
- browserVersionString = this.getMatchingGroup_(this.userAgent_, /rv:([\d\w\.]+)/, 1);
161
+ browserVersion = Version.parse(this.getMatchingGroup_(this.userAgent_, /rv:([\d\w\.]+)/, 1));
167
162
  }
168
163
 
169
- browserVersion = Version.parse(browserVersionString);
170
-
171
164
  if (engineVersionString != '') {
172
165
  engine = 'Trident';
173
166
  engineVersion = Version.parse(engineVersionString);
174
167
  } else {
175
168
  engine = UserAgentParser.UNKNOWN;
176
169
  engineVersion = new Version();
177
- engineVersionString = UserAgentParser.UNKNOWN;
178
170
  }
179
171
 
180
172
  var supportWebFont = (platform == "Windows" && browserVersion.major >= 6) ||
@@ -183,13 +175,10 @@ goog.scope(function () {
183
175
  return new UserAgent(
184
176
  "MSIE",
185
177
  browserVersion,
186
- browserVersionString,
187
178
  engine,
188
179
  engineVersion,
189
- engineVersionString,
190
180
  platform,
191
181
  platformVersion,
192
- platformVersionString,
193
182
  documentMode,
194
183
  new BrowserInfo(supportWebFont, false, false, !!this.doc_['fonts'])
195
184
  );
@@ -214,10 +203,8 @@ goog.scope(function () {
214
203
  */
215
204
  UserAgentParser.prototype.parseOldOperaUserAgentString_ = function() {
216
205
  var engineName = UserAgentParser.UNKNOWN,
217
- engineVersionString = this.getMatchingGroup_(this.userAgent_, /Presto\/([\d\w\.]+)/, 1),
218
- engineVersion = Version.parse(engineVersionString),
219
- platformVersionString = this.getPlatformVersionString_(),
220
- platformVersion = Version.parse(platformVersionString),
206
+ engineVersion = Version.parse(this.getMatchingGroup_(this.userAgent_, /Presto\/([\d\w\.]+)/, 1)),
207
+ platformVersion = Version.parse(this.getPlatformVersionString_()),
221
208
  documentMode = this.getDocumentMode_(this.doc_);
222
209
 
223
210
  if (engineVersion.isValid()) {
@@ -226,25 +213,20 @@ goog.scope(function () {
226
213
  if (this.userAgent_.indexOf("Gecko") != -1) {
227
214
  engineName = "Gecko";
228
215
  }
229
- engineVersionString = this.getMatchingGroup_(this.userAgent_, /rv:([^\)]+)/, 1);
230
- engineVersion = Version.parse(engineVersionString);
216
+ engineVersion = Version.parse(this.getMatchingGroup_(this.userAgent_, /rv:([^\)]+)/, 1));
231
217
  }
232
218
 
233
219
  // Check for Opera Mini first, since it looks like normal Opera
234
220
  if (this.userAgent_.indexOf("Opera Mini/") != -1) {
235
- var browserVersionString = this.getMatchingGroup_(this.userAgent_, /Opera Mini\/([\d\.]+)/, 1);
236
- var browserVersion = Version.parse(browserVersionString);
221
+ var browserVersion = Version.parse(this.getMatchingGroup_(this.userAgent_, /Opera Mini\/([\d\.]+)/, 1));
237
222
 
238
223
  return new UserAgent(
239
224
  "OperaMini",
240
225
  browserVersion,
241
- browserVersionString,
242
226
  engineName,
243
227
  engineVersion,
244
- engineVersionString,
245
228
  this.getPlatform_(),
246
229
  platformVersion,
247
- platformVersionString,
248
230
  documentMode,
249
231
  new BrowserInfo(false, false, false, !!this.doc_['fonts'])
250
232
  );
@@ -252,39 +234,31 @@ goog.scope(function () {
252
234
 
253
235
  // Otherwise, find version information for normal Opera or Opera Mobile
254
236
  if (this.userAgent_.indexOf("Version/") != -1) {
255
- var browserVersionString = this.getMatchingGroup_(this.userAgent_, /Version\/([\d\.]+)/, 1);
256
- var browserVersion = Version.parse(browserVersionString);
237
+ var browserVersion = Version.parse(this.getMatchingGroup_(this.userAgent_, /Version\/([\d\.]+)/, 1));
257
238
 
258
239
  if (browserVersion.isValid()) {
259
240
  return new UserAgent(
260
241
  "Opera",
261
242
  browserVersion,
262
- browserVersionString,
263
243
  engineName,
264
244
  engineVersion,
265
- engineVersionString,
266
245
  this.getPlatform_(),
267
246
  platformVersion,
268
- platformVersionString,
269
247
  documentMode,
270
248
  new BrowserInfo(browserVersion.major >= 10, false, false, !!this.doc_['fonts'])
271
249
  );
272
250
  }
273
251
  }
274
- var browserVersionString = this.getMatchingGroup_(this.userAgent_, /Opera[\/ ]([\d\.]+)/, 1);
275
- var browserVersion = Version.parse(browserVersionString);
252
+ var browserVersion = Version.parse(this.getMatchingGroup_(this.userAgent_, /Opera[\/ ]([\d\.]+)/, 1));
276
253
 
277
254
  if (browserVersion.isValid()) {
278
255
  return new UserAgent(
279
256
  "Opera",
280
257
  browserVersion,
281
- browserVersionString,
282
258
  engineName,
283
259
  engineVersion,
284
- engineVersionString,
285
260
  this.getPlatform_(),
286
261
  platformVersion,
287
- platformVersionString,
288
262
  documentMode,
289
263
  new BrowserInfo(browserVersion.major >= 10, false, false, !!this.doc_['fonts'])
290
264
  );
@@ -292,13 +266,10 @@ goog.scope(function () {
292
266
  return new UserAgent(
293
267
  "Opera",
294
268
  new Version(),
295
- UserAgentParser.UNKNOWN,
296
269
  engineName,
297
270
  engineVersion,
298
- engineVersionString,
299
271
  this.getPlatform_(),
300
272
  platformVersion,
301
- platformVersionString,
302
273
  documentMode,
303
274
  new BrowserInfo(false, false, false, !!this.doc_['fonts'])
304
275
  );
@@ -316,10 +287,8 @@ goog.scope(function () {
316
287
  */
317
288
  UserAgentParser.prototype.parseWebKitUserAgentString_ = function() {
318
289
  var platform = this.getPlatform_(),
319
- platformVersionString = this.getPlatformVersionString_(),
320
- platformVersion = Version.parse(platformVersionString),
321
- webKitVersionString = this.getMatchingGroup_(this.userAgent_, /AppleWeb(?:K|k)it\/([\d\.\+]+)/, 1),
322
- webKitVersion = Version.parse(webKitVersionString),
290
+ platformVersion = Version.parse(this.getPlatformVersionString_()),
291
+ webKitVersion = Version.parse(this.getMatchingGroup_(this.userAgent_, /AppleWeb(?:K|k)it\/([\d\.\+]+)/, 1)),
323
292
  browserName = UserAgentParser.UNKNOWN,
324
293
  browserVersion = new Version(),
325
294
  browserVersionString = UserAgentParser.UNKNOWN,
@@ -378,13 +347,10 @@ goog.scope(function () {
378
347
  return new UserAgent(
379
348
  browserName,
380
349
  browserVersion,
381
- browserVersionString,
382
350
  "AppleWebKit",
383
351
  webKitVersion,
384
- webKitVersionString,
385
352
  platform,
386
353
  platformVersion,
387
- platformVersionString,
388
354
  this.getDocumentMode_(this.doc_),
389
355
  new BrowserInfo(supportWebFont, hasWebKitFallbackBug, hasWebKitMetricsBug, !!this.doc_['fonts'])
390
356
  );
@@ -403,40 +369,31 @@ goog.scope(function () {
403
369
  UserAgentParser.prototype.parseGeckoUserAgentString_ = function() {
404
370
  var name = UserAgentParser.UNKNOWN,
405
371
  version = new Version(),
406
- versionString = UserAgentParser.UNKNOWN,
407
- platformVersionString = this.getPlatformVersionString_(),
408
- platformVersion = Version.parse(platformVersionString),
372
+ platformVersion = Version.parse(this.getPlatformVersionString_()),
409
373
  supportWebFont = false;
410
374
 
411
375
  if (this.userAgent_.indexOf("Firefox") != -1) {
412
376
  name = "Firefox";
413
- versionString = this.getMatchingGroup_(this.userAgent_, /Firefox\/([\d\w\.]+)/, 1);
414
- version = Version.parse(versionString);
377
+ version = Version.parse(this.getMatchingGroup_(this.userAgent_, /Firefox\/([\d\w\.]+)/, 1));
415
378
  supportWebFont = version.major >= 3 && version.minor >= 5;
416
379
  } else if (this.userAgent_.indexOf("Mozilla") != -1) {
417
380
  name = "Mozilla";
418
381
  }
419
382
 
420
- var engineVersionString = this.getMatchingGroup_(this.userAgent_, /rv:([^\)]+)/, 1),
421
- engineVersion = Version.parse(engineVersionString);
383
+ var engineVersion = Version.parse(this.getMatchingGroup_(this.userAgent_, /rv:([^\)]+)/, 1));
422
384
 
423
385
  if (!supportWebFont) {
424
386
  supportWebFont = engineVersion.major > 1 ||
425
387
  engineVersion.major == 1 && engineVersion.minor > 9 ||
426
- engineVersion.major == 1 && engineVersion.minor == 9 && engineVersion.patch >= 2 ||
427
- engineVersionString.match(/1\.9\.1b[123]/) != null ||
428
- engineVersionString.match(/1\.9\.1\.[\d\.]+/) != null;
388
+ engineVersion.major == 1 && engineVersion.minor == 9 && engineVersion.patch >= 2;
429
389
  }
430
390
  return new UserAgent(
431
391
  name,
432
392
  version,
433
- versionString,
434
393
  "Gecko",
435
394
  engineVersion,
436
- engineVersionString,
437
395
  this.getPlatform_(),
438
396
  platformVersion,
439
- platformVersionString,
440
397
  this.getDocumentMode_(this.doc_),
441
398
  new BrowserInfo(supportWebFont, false, false, !!this.doc_['fonts'])
442
399
  );
data/src/core/webfont.js CHANGED
@@ -18,6 +18,8 @@ webfont.WebFont = function(mainWindow) {
18
18
  this.userAgent_ = this.userAgentParser_.parse();
19
19
  this.moduleLoading_ = 0;
20
20
  this.moduleFailedLoading_ = 0;
21
+ this.events_ = true;
22
+ this.classes_ = true;
21
23
  };
22
24
 
23
25
  goog.scope(function () {
@@ -41,8 +43,17 @@ goog.scope(function () {
41
43
  var context = configuration['context'] || this.mainWindow_;
42
44
  this.domHelper_ = new DomHelper(this.mainWindow_, context);
43
45
 
46
+ this.events_ = configuration['events'] !== false;
47
+ this.classes_ = configuration['classes'] !== false;
48
+
44
49
  var eventDispatcher = new EventDispatcher(
45
- this.domHelper_, context.document.documentElement, configuration);
50
+ this.domHelper_,
51
+ context.document.documentElement,
52
+ configuration,
53
+ undefined,
54
+ this.events_,
55
+ this.classes_
56
+ );
46
57
 
47
58
  this.load_(eventDispatcher, configuration);
48
59
  };
@@ -69,7 +80,9 @@ goog.scope(function () {
69
80
  if (allModulesLoaded && this.moduleFailedLoading_ == 0) {
70
81
  eventDispatcher.dispatchInactive();
71
82
  } else {
72
- fontWatcher.watchFonts([], {}, null, allModulesLoaded);
83
+ if (this.classes_ || this.events_) {
84
+ fontWatcher.watchFonts([], {}, null, allModulesLoaded);
85
+ }
73
86
  }
74
87
  }
75
88
  };
@@ -84,9 +97,11 @@ goog.scope(function () {
84
97
  WebFont.prototype.onModuleReady_ = function(eventDispatcher, fontWatcher, fonts, opt_fontTestStrings, opt_metricCompatibleFonts) {
85
98
  var allModulesLoaded = --this.moduleLoading_ == 0;
86
99
 
87
- setTimeout(function () {
88
- fontWatcher.watchFonts(fonts, opt_fontTestStrings || {}, opt_metricCompatibleFonts || null, allModulesLoaded);
89
- }, 0);
100
+ if (this.classes_ || this.events_) {
101
+ setTimeout(function () {
102
+ fontWatcher.watchFonts(fonts, opt_fontTestStrings || null, opt_metricCompatibleFonts || null, allModulesLoaded);
103
+ }, 0);
104
+ }
90
105
  };
91
106
 
92
107
  /**
@@ -18,8 +18,6 @@ webfont.modules.Typekit = function(domHelper, configuration) {
18
18
  */
19
19
  webfont.modules.Typekit.NAME = 'typekit';
20
20
 
21
- webfont.modules.Typekit.HOOK = '__webfonttypekitmodule__';
22
-
23
21
  goog.scope(function () {
24
22
  var Typekit = webfont.modules.Typekit,
25
23
  Font = webfont.Font;
@@ -34,38 +32,37 @@ goog.scope(function () {
34
32
  var kitId = this.configuration_['id'];
35
33
  var configuration = this.configuration_;
36
34
  var loadWindow = this.domHelper_.getLoadWindow();
37
- var self = this;
35
+ var that = this;
38
36
 
39
37
  if (kitId) {
40
- // Provide data to Typekit for processing.main
41
- if (!loadWindow[Typekit.HOOK]) {
42
- loadWindow[Typekit.HOOK] = {};
43
- }
38
+ // Load the Typekit script. Once it is done loading we grab its configuration
39
+ // and use that to populate the fonts we should watch.
40
+ this.domHelper_.loadScript(this.getScriptSrc(kitId), function (err) {
41
+ if (err) {
42
+ support(false);
43
+ } else {
44
+ if (loadWindow['Typekit'] && loadWindow['Typekit']['config'] && loadWindow['Typekit']['config']['fn']) {
45
+ var fn = loadWindow['Typekit']['config']['fn'];
44
46
 
45
- // Typekit will call 'init' to indicate whether it supports fonts
46
- // and what fonts will be provided.
47
- loadWindow[Typekit.HOOK][kitId] = function(callback) {
48
- var init = function(typekitSupports, fontFamilies, fontVariations) {
49
- for (var i = 0; i < fontFamilies.length; i += 1) {
50
- var variations = fontVariations[fontFamilies[i]];
47
+ for (var i = 0; i < fn.length; i += 2) {
48
+ var font = fn[i],
49
+ variations = fn[i + 1];
51
50
 
52
- if (variations) {
53
- for(var j = 0; j < variations.length; j += 1) {
54
- self.fonts_.push(new Font(fontFamilies[i], variations[j]));
51
+ for (var j = 0; j < variations.length; j++) {
52
+ that.fonts_.push(new Font(font, variations[j]));
55
53
  }
56
- } else {
57
- self.fonts_.push(new Font(fontFamilies[i]));
58
54
  }
59
- }
60
- support(typekitSupports);
61
- };
62
- callback(userAgent, configuration, init);
63
- };
64
55
 
65
- // Load the Typekit script.
66
- this.domHelper_.loadScript(this.getScriptSrc(kitId), function (err) {
67
- if (err) {
68
- support(false);
56
+ // Kick off font loading but disable font events so
57
+ // we don't duplicate font watching.
58
+ try {
59
+ loadWindow['Typekit']['load']({
60
+ events: false,
61
+ classes: false
62
+ });
63
+ } catch (e) {}
64
+ }
65
+ support(true);
69
66
  }
70
67
  }, 2000);
71
68
  } else {
@@ -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.5.8'
17
- s.date = '2014-11-17'
16
+ s.version = '1.5.9'
17
+ s.date = '2014-12-18'
18
18
 
19
19
  ## Make sure your summary is short. The description may be as long
20
20
  ## as you like.
@@ -182,6 +182,7 @@ DESC
182
182
  tools/jasmine/jasmine.css
183
183
  tools/jasmine/jasmine.js
184
184
  webfontloader.gemspec
185
+ webfontloader.js
185
186
  ]
186
187
  # = MANIFEST =
187
188
 
data/webfontloader.js ADDED
@@ -0,0 +1,31 @@
1
+ /* Web Font Loader v1.5.9 - (c) Adobe Systems, Google. License: Apache 2.0 */
2
+ ;(function(window,document,undefined){var k=this;function l(a,b){var c=a.split("."),d=k;c[0]in d||!d.execScript||d.execScript("var "+c[0]);for(var e;c.length&&(e=c.shift());)c.length||void 0===b?d=d[e]?d[e]:d[e]={}:d[e]=b}function aa(a,b,c){return a.call.apply(a.bind,arguments)}
3
+ 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 q=Date.now||function(){return+new Date};function s(a,b){this.K=a;this.w=b||a;this.D=this.w.document}s.prototype.createElement=function(a,b,c){a=this.D.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.D.createTextNode(c));return a};function t(a,b,c){a=a.D.getElementsByTagName(b)[0];a||(a=document.documentElement);a&&a.lastChild&&a.insertBefore(c,a.lastChild)}function ca(a,b){function c(){a.D.body?b():setTimeout(c,0)}c()}
4
+ function u(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 v(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}
5
+ function w(a){var b=a.w.location.protocol;"about:"==b&&(b=a.K.location.protocol);return"https:"==b?"https:":"http:"}function x(a,b){var c=a.createElement("link",{rel:"stylesheet",href:b}),d=!1;c.onload=function(){d||(d=!0)};c.onerror=function(){d||(d=!0)};t(a,"head",c)}
6
+ function y(a,b,c,d){var e=a.D.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);window.setTimeout(function(){g||(g=!0,c&&c(Error("Script load timeout")))},d||5E3);return f}return null};function z(a,b,c,d){this.R=a;this.Z=b;this.Ba=c;this.ra=d}l("webfont.BrowserInfo",z);z.prototype.sa=function(){return this.R};z.prototype.hasWebFontSupport=z.prototype.sa;z.prototype.ta=function(){return this.Z};z.prototype.hasWebKitFallbackBug=z.prototype.ta;z.prototype.ua=function(){return this.Ba};z.prototype.hasWebKitMetricsBug=z.prototype.ua;z.prototype.qa=function(){return this.ra};z.prototype.hasNativeFontLoading=z.prototype.qa;function A(a,b,c,d){this.c=null!=a?a:null;this.g=null!=b?b:null;this.B=null!=c?c:null;this.e=null!=d?d:null}var da=/^([0-9]+)(?:[\._-]([0-9]+))?(?:[\._-]([0-9]+))?(?:[\._+-]?(.*))?$/;A.prototype.compare=function(a){return this.c>a.c||this.c===a.c&&this.g>a.g||this.c===a.c&&this.g===a.g&&this.B>a.B?1:this.c<a.c||this.c===a.c&&this.g<a.g||this.c===a.c&&this.g===a.g&&this.B<a.B?-1:0};A.prototype.toString=function(){return[this.c,this.g||"",this.B||"",this.e||""].join("")};
7
+ function B(a){a=da.exec(a);var b=null,c=null,d=null,e=null;a&&(null!==a[1]&&a[1]&&(b=parseInt(a[1],10)),null!==a[2]&&a[2]&&(c=parseInt(a[2],10)),null!==a[3]&&a[3]&&(d=parseInt(a[3],10)),null!==a[4]&&a[4]&&(e=/^[0-9]+$/.test(a[4])?parseInt(a[4],10):a[4]));return new A(b,c,d,e)};function C(a,b,c,d,e,f,g,h){this.P=a;this.ja=c;this.ya=e;this.ia=g;this.m=h}l("webfont.UserAgent",C);C.prototype.getName=function(){return this.P};C.prototype.getName=C.prototype.getName;C.prototype.oa=function(){return this.ja};C.prototype.getEngine=C.prototype.oa;C.prototype.pa=function(){return this.ya};C.prototype.getPlatform=C.prototype.pa;C.prototype.na=function(){return this.ia};C.prototype.getDocumentMode=C.prototype.na;C.prototype.ma=function(){return this.m};C.prototype.getBrowserInfo=C.prototype.ma;function D(a,b){this.a=a;this.k=b}var ea=new C("Unknown",0,"Unknown",0,"Unknown",0,void 0,new z(!1,!1,!1,!1));
8
+ D.prototype.parse=function(){var a;if(-1!=this.a.indexOf("MSIE")||-1!=this.a.indexOf("Trident/")){a=E(this);var b=B(F(this)),c=null,d=null,e=G(this.a,/Trident\/([\d\w\.]+)/,1),f=H(this.k),c=-1!=this.a.indexOf("MSIE")?B(G(this.a,/MSIE ([\d\w\.]+)/,1)):B(G(this.a,/rv:([\d\w\.]+)/,1));""!=e?(d="Trident",B(e)):d="Unknown";a=new C("MSIE",0,d,0,a,0,f,new z("Windows"==a&&6<=c.c||"Windows Phone"==a&&8<=b.c,!1,!1,!!this.k.fonts))}else if(-1!=this.a.indexOf("Opera"))a:if(a="Unknown",c=B(G(this.a,/Presto\/([\d\w\.]+)/,
9
+ 1)),B(F(this)),b=H(this.k),null!==c.c?a="Presto":(-1!=this.a.indexOf("Gecko")&&(a="Gecko"),B(G(this.a,/rv:([^\)]+)/,1))),-1!=this.a.indexOf("Opera Mini/"))c=B(G(this.a,/Opera Mini\/([\d\.]+)/,1)),a=new C("OperaMini",0,a,0,E(this),0,b,new z(!1,!1,!1,!!this.k.fonts));else{if(-1!=this.a.indexOf("Version/")&&(c=B(G(this.a,/Version\/([\d\.]+)/,1)),null!==c.c)){a=new C("Opera",0,a,0,E(this),0,b,new z(10<=c.c,!1,!1,!!this.k.fonts));break a}c=B(G(this.a,/Opera[\/ ]([\d\.]+)/,1));a=null!==c.c?new C("Opera",
10
+ 0,a,0,E(this),0,b,new z(10<=c.c,!1,!1,!!this.k.fonts)):new C("Opera",0,a,0,E(this),0,b,new z(!1,!1,!1,!!this.k.fonts))}else/OPR\/[\d.]+/.test(this.a)?a=I(this):/AppleWeb(K|k)it/.test(this.a)?a=I(this):-1!=this.a.indexOf("Gecko")?(a="Unknown",b=new A,B(F(this)),b=!1,-1!=this.a.indexOf("Firefox")?(a="Firefox",b=B(G(this.a,/Firefox\/([\d\w\.]+)/,1)),b=3<=b.c&&5<=b.g):-1!=this.a.indexOf("Mozilla")&&(a="Mozilla"),c=B(G(this.a,/rv:([^\)]+)/,1)),b||(b=1<c.c||1==c.c&&9<c.g||1==c.c&&9==c.g&&2<=c.B),a=new C(a,
11
+ 0,"Gecko",0,E(this),0,H(this.k),new z(b,!1,!1,!!this.k.fonts))):a=ea;return a};function E(a){var b=G(a.a,/(iPod|iPad|iPhone|Android|Windows Phone|BB\d{2}|BlackBerry)/,1);if(""!=b)return/BB\d{2}/.test(b)&&(b="BlackBerry"),b;a=G(a.a,/(Linux|Mac_PowerPC|Macintosh|Windows|CrOS|PlayStation|CrKey)/,1);return""!=a?("Mac_PowerPC"==a?a="Macintosh":"PlayStation"==a&&(a="Linux"),a):"Unknown"}
12
+ function F(a){var b=G(a.a,/(OS X|Windows NT|Android) ([^;)]+)/,2);if(b||(b=G(a.a,/Windows Phone( OS)? ([^;)]+)/,2))||(b=G(a.a,/(iPhone )?OS ([\d_]+)/,2)))return b;if(b=G(a.a,/(?:Linux|CrOS|CrKey) ([^;)]+)/,1))for(var b=b.split(/\s/),c=0;c<b.length;c+=1)if(/^[\d\._]+$/.test(b[c]))return b[c];return(a=G(a.a,/(BB\d{2}|BlackBerry).*?Version\/([^\s]*)/,2))?a:"Unknown"}
13
+ function I(a){var b=E(a),c=B(F(a)),d=B(G(a.a,/AppleWeb(?:K|k)it\/([\d\.\+]+)/,1)),e="Unknown",f=new A,f="Unknown",g=!1;/OPR\/[\d.]+/.test(a.a)?e="Opera":-1!=a.a.indexOf("Chrome")||-1!=a.a.indexOf("CrMo")||-1!=a.a.indexOf("CriOS")?e="Chrome":/Silk\/\d/.test(a.a)?e="Silk":"BlackBerry"==b||"Android"==b?e="BuiltinBrowser":-1!=a.a.indexOf("PhantomJS")?e="PhantomJS":-1!=a.a.indexOf("Safari")?e="Safari":-1!=a.a.indexOf("AdobeAIR")?e="AdobeAIR":-1!=a.a.indexOf("PlayStation")&&(e="BuiltinBrowser");"BuiltinBrowser"==
14
+ e?f="Unknown":"Silk"==e?f=G(a.a,/Silk\/([\d\._]+)/,1):"Chrome"==e?f=G(a.a,/(Chrome|CrMo|CriOS)\/([\d\.]+)/,2):-1!=a.a.indexOf("Version/")?f=G(a.a,/Version\/([\d\.\w]+)/,1):"AdobeAIR"==e?f=G(a.a,/AdobeAIR\/([\d\.]+)/,1):"Opera"==e?f=G(a.a,/OPR\/([\d.]+)/,1):"PhantomJS"==e&&(f=G(a.a,/PhantomJS\/([\d.]+)/,1));f=B(f);g="AdobeAIR"==e?2<f.c||2==f.c&&5<=f.g:"BlackBerry"==b?10<=c.c:"Android"==b?2<c.c||2==c.c&&1<c.g:526<=d.c||525<=d.c&&13<=d.g;return new C(e,0,"AppleWebKit",0,b,0,H(a.k),new z(g,536>d.c||536==
15
+ d.c&&11>d.g,"iPhone"==b||"iPad"==b||"iPod"==b||"Macintosh"==b,!!a.k.fonts))}function G(a,b,c){return(a=a.match(b))&&a[c]?a[c]:""}function H(a){if(a.documentMode)return a.documentMode};function J(a){this.xa=a||"-"}J.prototype.e=function(a){for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c].replace(/[\W_]+/g,"").toLowerCase());return b.join(this.xa)};function K(a,b){this.P=a;this.$=4;this.Q="n";var c=(b||"n4").match(/^([nio])([1-9])$/i);c&&(this.Q=c[1],this.$=parseInt(c[2],10))}K.prototype.getName=function(){return this.P};function L(a){return a.Q+a.$}function fa(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 ga(a,b,c,d,e){this.d=a;this.q=b;this.T=c;this.j="wf";this.h=new J("-");this.ha=!1!==d;this.C=!1!==e}function M(a){if(a.C){var b=v(a.q,a.h.e(a.j,"active")),c=[],d=[a.h.e(a.j,"loading")];b||c.push(a.h.e(a.j,"inactive"));u(a.q,c,d)}N(a,"inactive")}function N(a,b,c){if(a.ha&&a.T[b])if(c)a.T[b](c.getName(),L(c));else a.T[b]()};function ha(){this.A={}};function O(a,b){this.d=a;this.H=b;this.o=this.d.createElement("span",{"aria-hidden":"true"},this.H)}function P(a){t(a.d,"body",a.o)}
16
+ function Q(a){var b;b=[];for(var c=a.P.split(/,\s*/),d=0;d<c.length;d++){var e=c[d].replace(/['"]/g,"");-1==e.indexOf(" ")?b.push(e):b.push("'"+e+"'")}b=b.join(",");c="normal";"o"===a.Q?c="oblique":"i"===a.Q&&(c="italic");return"display:block;position:absolute;top:0px;left:0px;visibility:hidden;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+b+";"+("font-style:"+c+";font-weight:"+(a.$+"00")+";")}
17
+ O.prototype.remove=function(){var a=this.o;a.parentNode&&a.parentNode.removeChild(a)};function ja(a,b,c,d,e,f,g,h){this.aa=a;this.va=b;this.d=c;this.t=d;this.H=h||"BESbswy";this.m=e;this.J={};this.Y=f||3E3;this.da=g||null;this.G=this.F=null;a=new O(this.d,this.H);P(a);for(var p in R)R.hasOwnProperty(p)&&(b=new K(R[p],L(this.t)),b=Q(b),a.o.style.cssText=b,this.J[R[p]]=a.o.offsetWidth);a.remove()}var R={Ea:"serif",Da:"sans-serif",Ca:"monospace"};
18
+ ja.prototype.start=function(){this.F=new O(this.d,this.H);P(this.F);this.G=new O(this.d,this.H);P(this.G);this.za=q();var a=new K(this.t.getName()+",serif",L(this.t)),a=Q(a);this.F.o.style.cssText=a;a=new K(this.t.getName()+",sans-serif",L(this.t));a=Q(a);this.G.o.style.cssText=a;ka(this)};function la(a,b,c){for(var d in R)if(R.hasOwnProperty(d)&&b===a.J[R[d]]&&c===a.J[R[d]])return!0;return!1}
19
+ function ka(a){var b=a.F.o.offsetWidth,c=a.G.o.offsetWidth;b===a.J.serif&&c===a.J["sans-serif"]||a.m.Z&&la(a,b,c)?q()-a.za>=a.Y?a.m.Z&&la(a,b,c)&&(null===a.da||a.da.hasOwnProperty(a.t.getName()))?S(a,a.aa):S(a,a.va):ma(a):S(a,a.aa)}function ma(a){setTimeout(n(function(){ka(this)},a),25)}function S(a,b){a.F.remove();a.G.remove();b(a.t)};function T(a,b,c,d){this.d=b;this.u=c;this.U=0;this.fa=this.ca=!1;this.Y=d;this.m=a.m}function na(a,b,c,d,e){c=c||{};if(0===b.length&&e)M(a.u);else for(a.U+=b.length,e&&(a.ca=e),e=0;e<b.length;e++){var f=b[e],g=c[f.getName()],h=a.u,p=f;h.C&&u(h.q,[h.h.e(h.j,p.getName(),L(p).toString(),"loading")]);N(h,"fontloading",p);h=null;h=new ja(n(a.ka,a),n(a.la,a),a.d,f,a.m,a.Y,d,g);h.start()}}
20
+ T.prototype.ka=function(a){var b=this.u;b.C&&u(b.q,[b.h.e(b.j,a.getName(),L(a).toString(),"active")],[b.h.e(b.j,a.getName(),L(a).toString(),"loading"),b.h.e(b.j,a.getName(),L(a).toString(),"inactive")]);N(b,"fontactive",a);this.fa=!0;oa(this)};
21
+ T.prototype.la=function(a){var b=this.u;if(b.C){var c=v(b.q,b.h.e(b.j,a.getName(),L(a).toString(),"active")),d=[],e=[b.h.e(b.j,a.getName(),L(a).toString(),"loading")];c||d.push(b.h.e(b.j,a.getName(),L(a).toString(),"inactive"));u(b.q,d,e)}N(b,"fontinactive",a);oa(this)};function oa(a){0==--a.U&&a.ca&&(a.fa?(a=a.u,a.C&&u(a.q,[a.h.e(a.j,"active")],[a.h.e(a.j,"loading"),a.h.e(a.j,"inactive")]),N(a,"active")):M(a.u))};function U(a){this.K=a;this.v=new ha;this.Aa=new D(a.navigator.userAgent,a.document);this.a=this.Aa.parse();this.V=this.W=0;this.M=this.N=!0}
22
+ U.prototype.load=function(a){var b=a.context||this.K;this.d=new s(this.K,b);this.N=!1!==a.events;this.M=!1!==a.classes;var b=new ga(this.d,b.document.documentElement,a,this.N,this.M),c=[],d=a.timeout;b.C&&u(b.q,[b.h.e(b.j,"loading")]);N(b,"loading");var c=this.v,e=this.d,f=[],g;for(g in a)if(a.hasOwnProperty(g)){var h=c.A[g];h&&f.push(h(a[g],e))}c=f;this.V=this.W=c.length;a=new T(this.a,this.d,b,d);g=0;for(d=c.length;g<d;g++)e=c[g],e.L(this.a,n(this.wa,this,e,b,a))};
23
+ U.prototype.wa=function(a,b,c,d){var e=this;d?a.load(function(a,b,d){pa(e,c,a,b,d)}):(a=0==--this.W,this.V--,a&&0==this.V?M(b):(this.M||this.N)&&na(c,[],{},null,a))};function pa(a,b,c,d,e){var f=0==--a.W;(a.M||a.N)&&setTimeout(function(){na(b,c,d||null,e||null,f)},0)};function qa(a,b,c){this.S=a?a:b+ra;this.s=[];this.X=[];this.ga=c||""}var ra="//fonts.googleapis.com/css";qa.prototype.e=function(){if(0==this.s.length)throw Error("No fonts to load!");if(-1!=this.S.indexOf("kit="))return this.S;for(var a=this.s.length,b=[],c=0;c<a;c++)b.push(this.s[c].replace(/ /g,"+"));a=this.S+"?family="+b.join("%7C");0<this.X.length&&(a+="&subset="+this.X.join(","));0<this.ga.length&&(a+="&text="+encodeURIComponent(this.ga));return a};function sa(a){this.s=a;this.ea=[];this.O={}}
24
+ var ta={latin:"BESbswy",cyrillic:"&#1081;&#1103;&#1046;",greek:"&#945;&#946;&#931;",khmer:"&#x1780;&#x1781;&#x1782;",Hanuman:"&#x1780;&#x1781;&#x1782;"},ua={thin:"1",extralight:"2","extra-light":"2",ultralight:"2","ultra-light":"2",light:"3",regular:"4",book:"4",medium:"5","semi-bold":"6",semibold:"6","demi-bold":"6",demibold:"6",bold:"7","extra-bold":"8",extrabold:"8","ultra-bold":"8",ultrabold:"8",black:"9",heavy:"9",l:"3",r:"4",b:"7"},va={i:"i",italic:"i",n:"n",normal:"n"},wa=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;
25
+ sa.prototype.parse=function(){for(var a=this.s.length,b=0;b<a;b++){var c=this.s[b].split(":"),d=c[0].replace(/\+/g," "),e=["n4"];if(2<=c.length){var f;var g=c[1];f=[];if(g)for(var g=g.split(","),h=g.length,p=0;p<h;p++){var m;m=g[p];if(m.match(/^[\w-]+$/)){m=wa.exec(m.toLowerCase());var r=void 0;if(null==m)r="";else{r=void 0;r=m[1];if(null==r||""==r)r="4";else var ia=ua[r],r=ia?ia:isNaN(r)?"4":r.substr(0,1);m=m[2];r=[null==m||""==m?"n":va[m],r].join("")}m=r}else m="";m&&f.push(m)}0<f.length&&(e=f);
26
+ 3==c.length&&(c=c[2],f=[],c=c?c.split(","):f,0<c.length&&(c=ta[c[0]])&&(this.O[d]=c))}this.O[d]||(c=ta[d])&&(this.O[d]=c);for(c=0;c<e.length;c+=1)this.ea.push(new K(d,e[c]))}};function V(a,b){this.a=(new D(navigator.userAgent,document)).parse();this.d=a;this.f=b}var xa={Arimo:!0,Cousine:!0,Tinos:!0};V.prototype.L=function(a,b){b(a.m.R)};V.prototype.load=function(a){var b=this.d;"MSIE"==this.a.getName()&&1!=this.f.blocking?ca(b,n(this.ba,this,a)):this.ba(a)};
27
+ V.prototype.ba=function(a){for(var b=this.d,c=new qa(this.f.api,w(b),this.f.text),d=this.f.families,e=d.length,f=0;f<e;f++){var g=d[f].split(":");3==g.length&&c.X.push(g.pop());var h="";2==g.length&&""!=g[1]&&(h=":");c.s.push(g.join(h))}d=new sa(d);d.parse();x(b,c.e());a(d.ea,d.O,xa)};function W(a,b){this.d=a;this.f=b;this.p=[]}W.prototype.I=function(a){var b=this.d;return w(this.d)+(this.f.api||"//f.fontdeck.com/s/css/js/")+(b.w.location.hostname||b.K.location.hostname)+"/"+a+".js"};
28
+ W.prototype.L=function(a,b){var c=this.f.id,d=this.d.w,e=this;c?(d.__webfontfontdeckmodule__||(d.__webfontfontdeckmodule__={}),d.__webfontfontdeckmodule__[c]=function(a,c){for(var d=0,p=c.fonts.length;d<p;++d){var m=c.fonts[d];e.p.push(new K(m.name,fa("font-weight:"+m.weight+";font-style:"+m.style)))}b(a)},y(this.d,this.I(c),function(a){a&&b(!1)})):b(!1)};W.prototype.load=function(a){a(this.p)};function X(a,b){this.d=a;this.f=b;this.p=[]}X.prototype.I=function(a){var b=w(this.d);return(this.f.api||b+"//use.typekit.net")+"/"+a+".js"};X.prototype.L=function(a,b){var c=this.f.id,d=this.d.w,e=this;c?y(this.d,this.I(c),function(a){if(a)b(!1);else{if(d.Typekit&&d.Typekit.config&&d.Typekit.config.fn){a=d.Typekit.config.fn;for(var c=0;c<a.length;c+=2)for(var h=a[c],p=a[c+1],m=0;m<p.length;m++)e.p.push(new K(h,p[m]));try{d.Typekit.load({Ga:!1,Fa:!1})}catch(r){}}b(!0)}},2E3):b(!1)};
29
+ X.prototype.load=function(a){a(this.p)};function Y(a,b){this.d=a;this.f=b;this.p=[]}Y.prototype.L=function(a,b){var c=this,d=c.f.projectId,e=c.f.version;if(d){var f=c.d.w;y(this.d,c.I(d,e),function(e){if(e)b(!1);else{if(f["__mti_fntLst"+d]&&(e=f["__mti_fntLst"+d]()))for(var h=0;h<e.length;h++)c.p.push(new K(e[h].fontfamily));b(a.m.R)}}).id="__MonotypeAPIScript__"+d}else b(!1)};Y.prototype.I=function(a,b){var c=w(this.d),d=(this.f.api||"fast.fonts.net/jsapi").replace(/^.*http(s?):(\/\/)?/,"");return c+"//"+d+"/"+a+".js"+(b?"?v="+b:"")};
30
+ Y.prototype.load=function(a){a(this.p)};function Z(a,b){this.d=a;this.f=b}Z.prototype.load=function(a){var b,c,d=this.f.urls||[],e=this.f.families||[],f=this.f.testStrings||{};b=0;for(c=d.length;b<c;b++)x(this.d,d[b]);d=[];b=0;for(c=e.length;b<c;b++){var g=e[b].split(":");if(g[1])for(var h=g[1].split(","),p=0;p<h.length;p+=1)d.push(new K(g[0],h[p]));else d.push(new K(g[0]))}a(d,f)};Z.prototype.L=function(a,b){return b(a.m.R)};var $=new U(k);$.v.A.custom=function(a,b){return new Z(b,a)};$.v.A.fontdeck=function(a,b){return new W(b,a)};$.v.A.monotype=function(a,b){return new Y(b,a)};$.v.A.typekit=function(a,b){return new X(b,a)};$.v.A.google=function(a,b){return new V(b,a)};k.WebFont||(k.WebFont={},k.WebFont.load=n($.load,$),k.WebFontConfig&&$.load(k.WebFontConfig));})(this,document);
31
+
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.5.8
4
+ version: 1.5.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: 2014-11-17 00:00:00.000000000 Z
12
+ date: 2014-12-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -191,6 +191,7 @@ files:
191
191
  - tools/jasmine/jasmine.css
192
192
  - tools/jasmine/jasmine.js
193
193
  - webfontloader.gemspec
194
+ - webfontloader.js
194
195
  homepage: http://github.com/typekit/webfontloader
195
196
  licenses:
196
197
  - Apache 2.0