webfontloader 1.1.2 → 1.2.0
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.
- data/CHANGELOG +6 -0
- data/README.md +13 -2
- data/docs/MODULES.md +15 -2
- data/lib/webfontloader.rb +1 -1
- data/src/ascender/ascender_script.js +1 -1
- data/src/core/browserinfo.js +23 -0
- data/src/core/font.js +4 -4
- data/src/core/fontruler.js +61 -0
- data/src/core/fontwatcher.js +7 -4
- data/src/core/fontwatchrunner.js +144 -92
- data/src/core/initialize.js +3 -1
- data/src/core/size.js +19 -0
- data/src/core/useragent.js +6 -6
- data/src/core/useragentparser.js +62 -59
- data/src/custom/customcss.js +21 -4
- data/src/google/googlefontapi.js +1 -1
- data/src/google/lastresortwebkitfontwatchrunner.js +26 -22
- data/src/modules.yml +3 -0
- data/src/monotype/monotype_script.js +1 -1
- data/src-test/core/fonttest.js +6 -4
- data/src-test/core/fontwatchertest.js +47 -11
- data/src-test/core/fontwatchrunnertest.js +289 -74
- data/src-test/core/useragenttest.js +65 -45
- data/src-test/custom/customcsstest.js +7 -2
- data/src-test/google/lastresortwebkitfontwatchrunnertest.js +23 -23
- data/src-test/monotype/monotype_script_test.js +5 -5
- data/webfontloader.gemspec +5 -2
- metadata +16 -13
@@ -17,7 +17,7 @@ UserAgentTest.prototype.testBrowserIsAir = function() {
|
|
17
17
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
18
18
|
assertEquals("531.9", userAgent.getEngineVersion());
|
19
19
|
assertEquals(undefined, userAgent.getDocumentMode());
|
20
|
-
assertTrue(userAgent.
|
20
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
21
21
|
};
|
22
22
|
|
23
23
|
UserAgentTest.prototype.testBrowserIsUnsupportedAir = function() {
|
@@ -33,7 +33,7 @@ UserAgentTest.prototype.testBrowserIsUnsupportedAir = function() {
|
|
33
33
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
34
34
|
assertEquals("531.9", userAgent.getEngineVersion());
|
35
35
|
assertEquals(undefined, userAgent.getDocumentMode());
|
36
|
-
assertFalse(userAgent.
|
36
|
+
assertFalse(userAgent.getBrowserInfo().hasWebFontSupport());
|
37
37
|
};
|
38
38
|
|
39
39
|
UserAgentTest.prototype.testBrowserIsFirefox = function() {
|
@@ -49,7 +49,7 @@ UserAgentTest.prototype.testBrowserIsFirefox = function() {
|
|
49
49
|
assertEquals("Gecko", userAgent.getEngine());
|
50
50
|
assertEquals("1.9.2.3", userAgent.getEngineVersion());
|
51
51
|
assertEquals(undefined, userAgent.getDocumentMode());
|
52
|
-
assertTrue(userAgent.
|
52
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
53
53
|
};
|
54
54
|
|
55
55
|
UserAgentTest.prototype.testBrowserIsFirefox4beta = function() {
|
@@ -65,7 +65,7 @@ UserAgentTest.prototype.testBrowserIsFirefox4beta = function() {
|
|
65
65
|
assertEquals("Gecko", userAgent.getEngine());
|
66
66
|
assertEquals("2.0b1", userAgent.getEngineVersion());
|
67
67
|
assertEquals(undefined, userAgent.getDocumentMode());
|
68
|
-
assertTrue(userAgent.
|
68
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
69
69
|
};
|
70
70
|
|
71
71
|
UserAgentTest.prototype.testBrowserIsChrome = function() {
|
@@ -81,7 +81,7 @@ UserAgentTest.prototype.testBrowserIsChrome = function() {
|
|
81
81
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
82
82
|
assertEquals("533.2", userAgent.getEngineVersion());
|
83
83
|
assertEquals(undefined, userAgent.getDocumentMode());
|
84
|
-
assertTrue(userAgent.
|
84
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
85
85
|
};
|
86
86
|
|
87
87
|
UserAgentTest.prototype.testBrowserIsChromeOS = function() {
|
@@ -97,7 +97,7 @@ UserAgentTest.prototype.testBrowserIsChromeOS = function() {
|
|
97
97
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
98
98
|
assertEquals("535.19", userAgent.getEngineVersion());
|
99
99
|
assertEquals(undefined, userAgent.getDocumentMode());
|
100
|
-
assertTrue(userAgent.
|
100
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
101
101
|
};
|
102
102
|
|
103
103
|
UserAgentTest.prototype.testBrowserIsSafari = function() {
|
@@ -113,7 +113,7 @@ UserAgentTest.prototype.testBrowserIsSafari = function() {
|
|
113
113
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
114
114
|
assertEquals("531.21.8", userAgent.getEngineVersion());
|
115
115
|
assertEquals(undefined, userAgent.getDocumentMode());
|
116
|
-
assertTrue(userAgent.
|
116
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
117
117
|
};
|
118
118
|
|
119
119
|
UserAgentTest.prototype.testBrowserIsIE = function() {
|
@@ -129,7 +129,7 @@ UserAgentTest.prototype.testBrowserIsIE = function() {
|
|
129
129
|
assertEquals("MSIE", userAgent.getEngine());
|
130
130
|
assertEquals("7.0", userAgent.getEngineVersion());
|
131
131
|
assertEquals(undefined, userAgent.getDocumentMode());
|
132
|
-
assertTrue(userAgent.
|
132
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
133
133
|
};
|
134
134
|
|
135
135
|
UserAgentTest.prototype.testBrowserIsIEMinimal = function() {
|
@@ -145,7 +145,7 @@ UserAgentTest.prototype.testBrowserIsIEMinimal = function() {
|
|
145
145
|
assertEquals("MSIE", userAgent.getEngine());
|
146
146
|
assertEquals("7.0", userAgent.getEngineVersion());
|
147
147
|
assertEquals(undefined, userAgent.getDocumentMode());
|
148
|
-
assertTrue(userAgent.
|
148
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
149
149
|
};
|
150
150
|
|
151
151
|
UserAgentTest.prototype.testBrowserIsIEOnWindowsPhone = function() {
|
@@ -161,7 +161,7 @@ UserAgentTest.prototype.testBrowserIsIEOnWindowsPhone = function() {
|
|
161
161
|
assertEquals("MSIE", userAgent.getEngine());
|
162
162
|
assertEquals("10.0", userAgent.getEngineVersion());
|
163
163
|
assertEquals(undefined, userAgent.getDocumentMode());
|
164
|
-
assertTrue(userAgent.
|
164
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
165
165
|
};
|
166
166
|
|
167
167
|
UserAgentTest.prototype.testBrowserIsIEOnOldWindowsPhone = function() {
|
@@ -177,7 +177,7 @@ UserAgentTest.prototype.testBrowserIsIEOnOldWindowsPhone = function() {
|
|
177
177
|
assertEquals("MSIE", userAgent.getEngine());
|
178
178
|
assertEquals("9.0", userAgent.getEngineVersion());
|
179
179
|
assertEquals(undefined, userAgent.getDocumentMode());
|
180
|
-
assertFalse(userAgent.
|
180
|
+
assertFalse(userAgent.getBrowserInfo().hasWebFontSupport());
|
181
181
|
};
|
182
182
|
|
183
183
|
UserAgentTest.prototype.testBrowserIsIPhone = function() {
|
@@ -193,7 +193,7 @@ UserAgentTest.prototype.testBrowserIsIPhone = function() {
|
|
193
193
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
194
194
|
assertEquals("528.18", userAgent.getEngineVersion());
|
195
195
|
assertEquals(undefined, userAgent.getDocumentMode());
|
196
|
-
assertTrue(userAgent.
|
196
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
197
197
|
};
|
198
198
|
|
199
199
|
UserAgentTest.prototype.testBrowserIsAndroid = function() {
|
@@ -209,7 +209,7 @@ UserAgentTest.prototype.testBrowserIsAndroid = function() {
|
|
209
209
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
210
210
|
assertEquals("533.1", userAgent.getEngineVersion());
|
211
211
|
assertEquals(undefined, userAgent.getDocumentMode());
|
212
|
-
assertTrue(userAgent.
|
212
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
213
213
|
};
|
214
214
|
|
215
215
|
UserAgentTest.prototype.testBrowserIsOldUnsupportedAndroid = function() {
|
@@ -225,7 +225,7 @@ UserAgentTest.prototype.testBrowserIsOldUnsupportedAndroid = function() {
|
|
225
225
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
226
226
|
assertEquals("530.17", userAgent.getEngineVersion());
|
227
227
|
assertEquals(undefined, userAgent.getDocumentMode());
|
228
|
-
assertFalse(userAgent.
|
228
|
+
assertFalse(userAgent.getBrowserInfo().hasWebFontSupport());
|
229
229
|
};
|
230
230
|
|
231
231
|
UserAgentTest.prototype.testBrowserIsAndroidChromeMobile = function() {
|
@@ -241,7 +241,7 @@ UserAgentTest.prototype.testBrowserIsAndroidChromeMobile = function() {
|
|
241
241
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
242
242
|
assertEquals("535.7", userAgent.getEngineVersion());
|
243
243
|
assertEquals(undefined, userAgent.getDocumentMode());
|
244
|
-
assertTrue(userAgent.
|
244
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
245
245
|
};
|
246
246
|
|
247
247
|
UserAgentTest.prototype.testBrowserIsAndroidFirefox = function() {
|
@@ -259,7 +259,7 @@ UserAgentTest.prototype.testBrowserIsAndroidFirefox = function() {
|
|
259
259
|
assertEquals("Gecko", userAgent.getEngine());
|
260
260
|
assertEquals("13.0", userAgent.getEngineVersion());
|
261
261
|
assertEquals(undefined, userAgent.getDocumentMode());
|
262
|
-
assertTrue(userAgent.
|
262
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
263
263
|
}
|
264
264
|
|
265
265
|
UserAgentTest.prototype.testBrowserIsFirefoxLettersVersion = function() {
|
@@ -275,7 +275,7 @@ UserAgentTest.prototype.testBrowserIsFirefoxLettersVersion = function() {
|
|
275
275
|
assertEquals("Gecko", userAgent.getEngine());
|
276
276
|
assertEquals("1.9.2a1pre", userAgent.getEngineVersion());
|
277
277
|
assertEquals(undefined, userAgent.getDocumentMode());
|
278
|
-
assertTrue(userAgent.
|
278
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
279
279
|
};
|
280
280
|
|
281
281
|
UserAgentTest.prototype.testBrowserIsFirefoxNoVersion = function() {
|
@@ -291,7 +291,7 @@ UserAgentTest.prototype.testBrowserIsFirefoxNoVersion = function() {
|
|
291
291
|
assertEquals("Gecko", userAgent.getEngine());
|
292
292
|
assertEquals("1.8.1.19", userAgent.getEngineVersion());
|
293
293
|
assertEquals(undefined, userAgent.getDocumentMode());
|
294
|
-
assertFalse(userAgent.
|
294
|
+
assertFalse(userAgent.getBrowserInfo().hasWebFontSupport());
|
295
295
|
};
|
296
296
|
|
297
297
|
UserAgentTest.prototype.testBrowserIsIELetterVersion = function() {
|
@@ -307,7 +307,7 @@ UserAgentTest.prototype.testBrowserIsIELetterVersion = function() {
|
|
307
307
|
assertEquals("MSIE", userAgent.getEngine());
|
308
308
|
assertEquals("7.0b", userAgent.getEngineVersion());
|
309
309
|
assertEquals(undefined, userAgent.getDocumentMode());
|
310
|
-
assertTrue(userAgent.
|
310
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
311
311
|
};
|
312
312
|
|
313
313
|
UserAgentTest.prototype.testBrowserIsOpera = function() {
|
@@ -323,7 +323,7 @@ UserAgentTest.prototype.testBrowserIsOpera = function() {
|
|
323
323
|
assertEquals("Presto", userAgent.getEngine());
|
324
324
|
assertEquals("2.5.22", userAgent.getEngineVersion());
|
325
325
|
assertEquals(undefined, userAgent.getDocumentMode());
|
326
|
-
assertTrue(userAgent.
|
326
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
327
327
|
};
|
328
328
|
|
329
329
|
UserAgentTest.prototype.testBrowserIsOperaFirefoxInUAString = function() {
|
@@ -339,7 +339,7 @@ UserAgentTest.prototype.testBrowserIsOperaFirefoxInUAString = function() {
|
|
339
339
|
assertEquals("Gecko", userAgent.getEngine());
|
340
340
|
assertEquals("1.8.1", userAgent.getEngineVersion());
|
341
341
|
assertEquals(undefined, userAgent.getDocumentMode());
|
342
|
-
assertFalse(userAgent.
|
342
|
+
assertFalse(userAgent.getBrowserInfo().hasWebFontSupport());
|
343
343
|
};
|
344
344
|
|
345
345
|
UserAgentTest.prototype.testBrowserIsOperaBeforeVersion10 = function() {
|
@@ -355,7 +355,7 @@ UserAgentTest.prototype.testBrowserIsOperaBeforeVersion10 = function() {
|
|
355
355
|
assertEquals("Presto", userAgent.getEngine());
|
356
356
|
assertEquals("2.1.1", userAgent.getEngineVersion());
|
357
357
|
assertEquals(undefined, userAgent.getDocumentMode());
|
358
|
-
assertFalse(userAgent.
|
358
|
+
assertFalse(userAgent.getBrowserInfo().hasWebFontSupport());
|
359
359
|
};
|
360
360
|
|
361
361
|
UserAgentTest.prototype.testBrowserIsOperaMobileAndroid = function() {
|
@@ -374,7 +374,7 @@ UserAgentTest.prototype.testBrowserIsOperaMobileAndroid = function() {
|
|
374
374
|
assertEquals("Presto", userAgent.getEngine());
|
375
375
|
assertEquals("2.10.254", userAgent.getEngineVersion());
|
376
376
|
assertEquals(undefined, userAgent.getDocumentMode());
|
377
|
-
assertTrue(userAgent.
|
377
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
378
378
|
};
|
379
379
|
|
380
380
|
UserAgentTest.prototype.testBrowserIsOperaMiniAndroid = function() {
|
@@ -394,7 +394,7 @@ UserAgentTest.prototype.testBrowserIsOperaMiniAndroid = function() {
|
|
394
394
|
assertEquals("Presto", userAgent.getEngine());
|
395
395
|
assertEquals("2.8.119", userAgent.getEngineVersion());
|
396
396
|
assertEquals(undefined, userAgent.getDocumentMode());
|
397
|
-
assertFalse(userAgent.
|
397
|
+
assertFalse(userAgent.getBrowserInfo().hasWebFontSupport());
|
398
398
|
}
|
399
399
|
|
400
400
|
UserAgentTest.prototype.testBrowserIsIEOnMac = function() {
|
@@ -410,7 +410,7 @@ UserAgentTest.prototype.testBrowserIsIEOnMac = function() {
|
|
410
410
|
assertEquals("MSIE", userAgent.getEngine());
|
411
411
|
assertEquals("5.23", userAgent.getEngineVersion());
|
412
412
|
assertEquals(undefined, userAgent.getDocumentMode());
|
413
|
-
assertFalse(userAgent.
|
413
|
+
assertFalse(userAgent.getBrowserInfo().hasWebFontSupport());
|
414
414
|
};
|
415
415
|
|
416
416
|
UserAgentTest.prototype.testBrowserIsIPad = function() {
|
@@ -426,7 +426,7 @@ UserAgentTest.prototype.testBrowserIsIPad = function() {
|
|
426
426
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
427
427
|
assertEquals("531.21.10", userAgent.getEngineVersion());
|
428
428
|
assertEquals(undefined, userAgent.getDocumentMode());
|
429
|
-
assertTrue(userAgent.
|
429
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
430
430
|
};
|
431
431
|
|
432
432
|
UserAgentTest.prototype.testBrowserIsIPadAlt = function() {
|
@@ -442,7 +442,7 @@ UserAgentTest.prototype.testBrowserIsIPadAlt = function() {
|
|
442
442
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
443
443
|
assertEquals("531.21.10", userAgent.getEngineVersion());
|
444
444
|
assertEquals(undefined, userAgent.getDocumentMode());
|
445
|
-
assertTrue(userAgent.
|
445
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
446
446
|
};
|
447
447
|
|
448
448
|
UserAgentTest.prototype.testBrowserIsIPadWithoutIPhone = function() {
|
@@ -458,7 +458,7 @@ UserAgentTest.prototype.testBrowserIsIPadWithoutIPhone = function() {
|
|
458
458
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
459
459
|
assertEquals("531.21.10", userAgent.getEngineVersion());
|
460
460
|
assertEquals(undefined, userAgent.getDocumentMode());
|
461
|
-
assertTrue(userAgent.
|
461
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
462
462
|
};
|
463
463
|
|
464
464
|
UserAgentTest.prototype.testBrowserIsIPadChrome = function() {
|
@@ -474,7 +474,7 @@ UserAgentTest.prototype.testBrowserIsIPadChrome = function() {
|
|
474
474
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
475
475
|
assertEquals("534.46.0", userAgent.getEngineVersion());
|
476
476
|
assertEquals(undefined, userAgent.getDocumentMode());
|
477
|
-
assertTrue(userAgent.
|
477
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
478
478
|
}
|
479
479
|
|
480
480
|
UserAgentTest.prototype.testBrowserIsIPod = function() {
|
@@ -490,7 +490,7 @@ UserAgentTest.prototype.testBrowserIsIPod = function() {
|
|
490
490
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
491
491
|
assertEquals("525.18.1", userAgent.getEngineVersion());
|
492
492
|
assertEquals(undefined, userAgent.getDocumentMode());
|
493
|
-
assertTrue(userAgent.
|
493
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
494
494
|
};
|
495
495
|
|
496
496
|
UserAgentTest.prototype.testBrowserIsIPodSafari = function() {
|
@@ -506,7 +506,7 @@ UserAgentTest.prototype.testBrowserIsIPodSafari = function() {
|
|
506
506
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
507
507
|
assertEquals("528.18", userAgent.getEngineVersion());
|
508
508
|
assertEquals(undefined, userAgent.getDocumentMode());
|
509
|
-
assertTrue(userAgent.
|
509
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
510
510
|
};
|
511
511
|
|
512
512
|
UserAgentTest.prototype.testBrowserIsIPodChrome = function() {
|
@@ -522,7 +522,7 @@ UserAgentTest.prototype.testBrowserIsIPodChrome = function() {
|
|
522
522
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
523
523
|
assertEquals("534.46.0", userAgent.getEngineVersion());
|
524
524
|
assertEquals(undefined, userAgent.getDocumentMode());
|
525
|
-
assertTrue(userAgent.
|
525
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
526
526
|
}
|
527
527
|
|
528
528
|
UserAgentTest.prototype.testBrowserIsSafariWithPlusVersion = function() {
|
@@ -538,7 +538,7 @@ UserAgentTest.prototype.testBrowserIsSafariWithPlusVersion = function() {
|
|
538
538
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
539
539
|
assertEquals("528.4+", userAgent.getEngineVersion());
|
540
540
|
assertEquals(undefined, userAgent.getDocumentMode());
|
541
|
-
assertTrue(userAgent.
|
541
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
542
542
|
};
|
543
543
|
|
544
544
|
UserAgentTest.prototype.testBrowserIsIEWithTridentVersion = function() {
|
@@ -554,7 +554,7 @@ UserAgentTest.prototype.testBrowserIsIEWithTridentVersion = function() {
|
|
554
554
|
assertEquals("MSIE", userAgent.getEngine());
|
555
555
|
assertEquals("8.0", userAgent.getEngineVersion());
|
556
556
|
assertEquals(8, userAgent.getDocumentMode());
|
557
|
-
assertTrue(userAgent.
|
557
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
558
558
|
};
|
559
559
|
|
560
560
|
// Invented user agent strings
|
@@ -571,7 +571,7 @@ UserAgentTest.prototype.testBrowserGeckoShouldSupportWebFont = function() {
|
|
571
571
|
assertEquals("Gecko", userAgent.getEngine());
|
572
572
|
assertEquals("1.9.1.4", userAgent.getEngineVersion());
|
573
573
|
assertEquals(undefined, userAgent.getDocumentMode());
|
574
|
-
assertTrue(userAgent.
|
574
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
575
575
|
};
|
576
576
|
|
577
577
|
UserAgentTest.prototype.testBrowserGeckoNotExistingVersionShouldSupportWebFont = function() {
|
@@ -587,7 +587,7 @@ UserAgentTest.prototype.testBrowserGeckoNotExistingVersionShouldSupportWebFont =
|
|
587
587
|
assertEquals("Gecko", userAgent.getEngine());
|
588
588
|
assertEquals("2.5.8", userAgent.getEngineVersion());
|
589
589
|
assertEquals(undefined, userAgent.getDocumentMode());
|
590
|
-
assertTrue(userAgent.
|
590
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
591
591
|
};
|
592
592
|
|
593
593
|
UserAgentTest.prototype.testBrowserGeckoVer110ShouldSupportWebFont = function() {
|
@@ -603,7 +603,7 @@ UserAgentTest.prototype.testBrowserGeckoVer110ShouldSupportWebFont = function()
|
|
603
603
|
assertEquals("Gecko", userAgent.getEngine());
|
604
604
|
assertEquals("1.10.1b", userAgent.getEngineVersion());
|
605
605
|
assertEquals(undefined, userAgent.getDocumentMode());
|
606
|
-
assertTrue(userAgent.
|
606
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
607
607
|
};
|
608
608
|
|
609
609
|
UserAgentTest.prototype.testBrowserGeckoWeirdVerShouldNotSupportWebFont = function() {
|
@@ -619,7 +619,7 @@ UserAgentTest.prototype.testBrowserGeckoWeirdVerShouldNotSupportWebFont = functi
|
|
619
619
|
assertEquals("Gecko", userAgent.getEngine());
|
620
620
|
assertEquals("1.b", userAgent.getEngineVersion());
|
621
621
|
assertEquals(undefined, userAgent.getDocumentMode());
|
622
|
-
assertFalse(userAgent.
|
622
|
+
assertFalse(userAgent.getBrowserInfo().hasWebFontSupport());
|
623
623
|
};
|
624
624
|
|
625
625
|
UserAgentTest.prototype.testBrowserGeckoYetAnotherWeirdVerShouldNotSupportWebFont = function() {
|
@@ -635,7 +635,7 @@ UserAgentTest.prototype.testBrowserGeckoYetAnotherWeirdVerShouldNotSupportWebFon
|
|
635
635
|
assertEquals("Gecko", userAgent.getEngine());
|
636
636
|
assertEquals("1.b", userAgent.getEngineVersion());
|
637
637
|
assertEquals(undefined, userAgent.getDocumentMode());
|
638
|
-
assertFalse(userAgent.
|
638
|
+
assertFalse(userAgent.getBrowserInfo().hasWebFontSupport());
|
639
639
|
};
|
640
640
|
|
641
641
|
UserAgentTest.prototype.testBrowserGeckoNoSubVerShouldNotSupportWebFont = function() {
|
@@ -651,7 +651,7 @@ UserAgentTest.prototype.testBrowserGeckoNoSubVerShouldNotSupportWebFont = functi
|
|
651
651
|
assertEquals("Gecko", userAgent.getEngine());
|
652
652
|
assertEquals("1.9", userAgent.getEngineVersion());
|
653
653
|
assertEquals(undefined, userAgent.getDocumentMode());
|
654
|
-
assertFalse(userAgent.
|
654
|
+
assertFalse(userAgent.getBrowserInfo().hasWebFontSupport());
|
655
655
|
};
|
656
656
|
|
657
657
|
UserAgentTest.prototype.testBrowserGeckoHighMinorVerShouldNotSupportWebFont = function() {
|
@@ -667,7 +667,7 @@ UserAgentTest.prototype.testBrowserGeckoHighMinorVerShouldNotSupportWebFont = fu
|
|
667
667
|
assertEquals("Gecko", userAgent.getEngine());
|
668
668
|
assertEquals("0.10.1", userAgent.getEngineVersion());
|
669
669
|
assertEquals(undefined, userAgent.getDocumentMode());
|
670
|
-
assertFalse(userAgent.
|
670
|
+
assertFalse(userAgent.getBrowserInfo().hasWebFontSupport());
|
671
671
|
};
|
672
672
|
|
673
673
|
UserAgentTest.prototype.testBrowserGeckoHighSubVerShouldNotSupportWebFont = function() {
|
@@ -683,7 +683,7 @@ UserAgentTest.prototype.testBrowserGeckoHighSubVerShouldNotSupportWebFont = func
|
|
683
683
|
assertEquals("Gecko", userAgent.getEngine());
|
684
684
|
assertEquals("0.3.42", userAgent.getEngineVersion());
|
685
685
|
assertEquals(undefined, userAgent.getDocumentMode());
|
686
|
-
assertFalse(userAgent.
|
686
|
+
assertFalse(userAgent.getBrowserInfo().hasWebFontSupport());
|
687
687
|
};
|
688
688
|
|
689
689
|
UserAgentTest.prototype.testBrowserBBSupportWebfont = function() {
|
@@ -699,7 +699,7 @@ UserAgentTest.prototype.testBrowserBBSupportWebfont = function() {
|
|
699
699
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
700
700
|
assertEquals("537.3+", userAgent.getEngineVersion());
|
701
701
|
assertEquals(undefined, userAgent.getDocumentMode());
|
702
|
-
assertTrue(userAgent.
|
702
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
703
703
|
};
|
704
704
|
|
705
705
|
UserAgentTest.prototype.testBrowserBBNotSupportWebfont = function() {
|
@@ -715,7 +715,27 @@ UserAgentTest.prototype.testBrowserBBNotSupportWebfont = function() {
|
|
715
715
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
716
716
|
assertEquals("534.11+", userAgent.getEngineVersion());
|
717
717
|
assertEquals(undefined, userAgent.getDocumentMode());
|
718
|
-
assertFalse(userAgent.
|
718
|
+
assertFalse(userAgent.getBrowserInfo().hasWebFontSupport());
|
719
|
+
};
|
720
|
+
|
721
|
+
UserAgentTest.prototype.testBrowserWebKitFallbackBug = function() {
|
722
|
+
var userAgentParser = new webfont.UserAgentParser(
|
723
|
+
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
|
724
|
+
this.defaultDocument_);
|
725
|
+
|
726
|
+
var userAgent = userAgentParser.parse();
|
727
|
+
|
728
|
+
assertTrue(userAgent.getBrowserInfo().hasWebKitFallbackBug());
|
729
|
+
};
|
730
|
+
|
731
|
+
UserAgentTest.prototype.testBrowserWebKitNoFallbackBug = function() {
|
732
|
+
var userAgentParser = new webfont.UserAgentParser(
|
733
|
+
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.814.2 Safari/536.11",
|
734
|
+
this.defaultDocument_);
|
735
|
+
|
736
|
+
var userAgent = userAgentParser.parse();
|
737
|
+
|
738
|
+
assertFalse(userAgent.getBrowserInfo().hasWebKitFallbackBug());
|
719
739
|
};
|
720
740
|
|
721
741
|
UserAgentTest.prototype.testBrowserWebKitVSWebkit = function() {
|
@@ -731,5 +751,5 @@ UserAgentTest.prototype.testBrowserWebKitVSWebkit = function() {
|
|
731
751
|
assertEquals("AppleWebKit", userAgent.getEngine());
|
732
752
|
assertEquals("534.30", userAgent.getEngineVersion());
|
733
753
|
assertEquals(undefined, userAgent.getDocumentMode());
|
734
|
-
assertTrue(userAgent.
|
754
|
+
assertTrue(userAgent.getBrowserInfo().hasWebFontSupport());
|
735
755
|
};
|
@@ -13,11 +13,12 @@ CustomCssTest.prototype.testFoo = function() {
|
|
13
13
|
}
|
14
14
|
};
|
15
15
|
var defaultModule = new webfont.CustomCss(fakeDomHelper, {
|
16
|
-
families: [ 'Font1', 'Font2', 'Font3' ], urls: [ 'http://moo',
|
16
|
+
families: [ 'Font1:n7', 'Font2:i4,i7', 'Font3' ], urls: [ 'http://moo',
|
17
17
|
'http://meuh' ]});
|
18
18
|
var families = null;
|
19
|
+
var variations = null;
|
19
20
|
|
20
|
-
defaultModule.load(function(fontFamilies) { families = fontFamilies; });
|
21
|
+
defaultModule.load(function(fontFamilies, fontVariations) { families = fontFamilies; variations = fontVariations;});
|
21
22
|
assertEquals('head', head);
|
22
23
|
assertEquals(2, links.length);
|
23
24
|
assertEquals('http://moo', links[0]);
|
@@ -27,4 +28,8 @@ CustomCssTest.prototype.testFoo = function() {
|
|
27
28
|
assertEquals('Font1', families[0]);
|
28
29
|
assertEquals('Font2', families[1]);
|
29
30
|
assertEquals('Font3', families[2]);
|
31
|
+
assertEquals('n7', variations["Font1"][0]);
|
32
|
+
assertEquals('i4', variations["Font2"][0]);
|
33
|
+
assertEquals('i7', variations["Font2"][1]);
|
34
|
+
assertEquals(undefined, variations["Font3"]);
|
30
35
|
};
|
@@ -81,33 +81,32 @@ LastResortWebKitFontWatchRunnerTest.prototype.testLastResortFontIgnored =
|
|
81
81
|
var fontWatchRunner = new webfont.LastResortWebKitFontWatchRunner(
|
82
82
|
this.activeCallback_,
|
83
83
|
this.inactiveCallback_,
|
84
|
-
this.fakeDomHelper_, {
|
84
|
+
this.fakeDomHelper_, {getSize: function() {
|
85
85
|
if (originalSizeCount > 0) {
|
86
86
|
originalSizeCount--;
|
87
|
-
return 1;
|
87
|
+
return new webfont.Size(1, 1);
|
88
88
|
}
|
89
89
|
if (lastResortFontsCount > 0) {
|
90
90
|
lastResortFontsCount--;
|
91
|
-
return 2;
|
91
|
+
return new webfont.Size(2, 2);
|
92
92
|
}
|
93
93
|
if (firstSize > 0) {
|
94
94
|
firstSize--;
|
95
|
-
return 1;
|
95
|
+
return new webfont.Size(1, 1);
|
96
96
|
}
|
97
97
|
if (secondSize > 0) {
|
98
98
|
secondSize--;
|
99
|
-
return 2;
|
99
|
+
return new webfont.Size(2, 2);
|
100
100
|
}
|
101
101
|
if (thirdSize > 0) {
|
102
102
|
thirdSize--;
|
103
|
-
return 3;
|
103
|
+
return new webfont.Size(3, 3);
|
104
104
|
}
|
105
105
|
}}, this.fakeAsyncCall_, this.fakeGetTime_, this.fontFamily_,
|
106
|
-
this.fontDescription_);
|
106
|
+
this.fontDescription_, false);
|
107
107
|
|
108
108
|
fontWatchRunner.start();
|
109
|
-
|
110
|
-
assertEquals(2, this.asyncCount_);
|
109
|
+
assertEquals(1, this.asyncCount_);
|
111
110
|
|
112
111
|
// When on webkit time out ends up activating the font.
|
113
112
|
assertEquals(1, this.fontActiveCalled_);
|
@@ -127,22 +126,22 @@ LastResortWebKitFontWatchRunnerTest.prototype.testLastResortFontActiveWhenSizeMa
|
|
127
126
|
var fontWatchRunner = new webfont.LastResortWebKitFontWatchRunner(
|
128
127
|
this.activeCallback_,
|
129
128
|
this.inactiveCallback_,
|
130
|
-
this.fakeDomHelper_, {
|
129
|
+
this.fakeDomHelper_, {getSize: function() {
|
131
130
|
if (originalSizeCount > 0) {
|
132
131
|
originalSizeCount--;
|
133
|
-
return 1;
|
132
|
+
return new webfont.Size(1, 1);
|
134
133
|
}
|
135
134
|
if (lastResortFontsCount > 0) {
|
136
135
|
lastResortFontsCount--;
|
137
|
-
return 2;
|
136
|
+
return new webfont.Size(2, 2);
|
138
137
|
}
|
139
138
|
if (firstSize > 0) {
|
140
139
|
firstSize--;
|
141
|
-
return 1;
|
140
|
+
return new webfont.Size(1, 1);
|
142
141
|
}
|
143
|
-
return 2;
|
142
|
+
return new webfont.Size(2, 2);
|
144
143
|
}}, this.fakeAsyncCall_, this.fakeGetTime_, this.fontFamily_,
|
145
|
-
this.fontDescription_);
|
144
|
+
this.fontDescription_, false);
|
146
145
|
|
147
146
|
fontWatchRunner.start();
|
148
147
|
|
@@ -165,33 +164,34 @@ LastResortWebKitFontWatchRunnerTest.prototype.testLastResortFontInactiveWhenSize
|
|
165
164
|
var fontWatchRunner = new webfont.LastResortWebKitFontWatchRunner(
|
166
165
|
this.activeCallback_,
|
167
166
|
this.inactiveCallback_,
|
168
|
-
this.fakeDomHelper_, {
|
167
|
+
this.fakeDomHelper_, {getSize: function(elem) {
|
169
168
|
if (originalSizeCount > 0) {
|
170
169
|
originalSizeCount--;
|
171
|
-
return 1;
|
170
|
+
return new webfont.Size(1, 1);
|
172
171
|
}
|
173
172
|
if (lastResortFontsCount > 0) {
|
174
173
|
lastResortFontsCount--;
|
175
|
-
return 2;
|
174
|
+
return new webfont.Size(2, 2);
|
176
175
|
}
|
177
176
|
if (firstSize > 0) {
|
178
177
|
firstSize--;
|
179
|
-
return 1
|
178
|
+
return new webfont.Size(1, 1)
|
180
179
|
}
|
181
180
|
if (secondSize > 0) {
|
182
181
|
secondSize--;
|
183
|
-
return 2
|
182
|
+
return new webfont.Size(2, 2)
|
184
183
|
}
|
185
184
|
if (thirdSize == 2) {
|
186
185
|
thirdSize--;
|
187
|
-
return 2;
|
186
|
+
return new webfont.Size(2, 2);
|
188
187
|
}
|
189
188
|
if (thirdSize == 1) {
|
190
189
|
thirdSize--;
|
191
|
-
return 4;
|
190
|
+
return new webfont.Size(4, 4);
|
192
191
|
}
|
192
|
+
return new webfont.Size(2, 2);
|
193
193
|
}}, this.fakeAsyncCall_, this.fakeGetTime_, this.fontFamily_,
|
194
|
-
this.fontDescription_);
|
194
|
+
this.fontDescription_, false);
|
195
195
|
|
196
196
|
fontWatchRunner.start();
|
197
197
|
|
@@ -45,7 +45,7 @@ MonotypeScriptTest.prototype.testIfScriptTagIsAdded = function () {
|
|
45
45
|
return null;
|
46
46
|
}
|
47
47
|
var isSupport = null;
|
48
|
-
var userAgent = new webfont.UserAgent("Test", "1.0",
|
48
|
+
var userAgent = new webfont.UserAgent("Test", "1.0", "TestEngine", "2.0", "TestPlatform", "3.0", undefined, new webfont.BrowserInfo(false, false));
|
49
49
|
var monotypeScript = new webfont.MonotypeScript(userAgent, fakeDomHelper, config);
|
50
50
|
monotypeScript.supportUserAgent(userAgent, function (support) { isSupport = support; });
|
51
51
|
monotypeScript.load(function (fontFamilies) {
|
@@ -107,7 +107,7 @@ MonotypeScriptTest.prototype.testIfScriptTagHasCorrectSSL = function () {
|
|
107
107
|
return null;
|
108
108
|
}
|
109
109
|
var isSupport = null;
|
110
|
-
var userAgent = new webfont.UserAgent("Test", "1.0",
|
110
|
+
var userAgent = new webfont.UserAgent("Test", "1.0", "TestEngine", "2.0", "TestPlatform", "3.0", undefined, new webfont.BrowserInfo(false, false));
|
111
111
|
var monotypeScript = new webfont.MonotypeScript(userAgent, fakeDomHelper, config);
|
112
112
|
monotypeScript.supportUserAgent(userAgent, function (support) { isSupport = support; });
|
113
113
|
monotypeScript.load(function (fontFamilies) {
|
@@ -181,7 +181,7 @@ MonotypeScriptTest.prototype.testIfScriptTagIsAddedWithoutApiurl = function () {
|
|
181
181
|
}
|
182
182
|
|
183
183
|
var isSupport = null;
|
184
|
-
var userAgent = new webfont.UserAgent("Test", "1.0",
|
184
|
+
var userAgent = new webfont.UserAgent("Test", "1.0", "TestEngine", "2.0", "TestPlatform", "3.0", undefined, new webfont.BrowserInfo(false, false));
|
185
185
|
var monotypeScript = new webfont.MonotypeScript(userAgent, fakeDomHelper, config);
|
186
186
|
monotypeScript.supportUserAgent(userAgent, function (support) { isSupport = support; });
|
187
187
|
|
@@ -243,7 +243,7 @@ MonotypeScriptTest.prototype.testIfScriptTagIsAddedWithoutApiurlAndTheScriptUrlH
|
|
243
243
|
}
|
244
244
|
|
245
245
|
var isSupport = null;
|
246
|
-
var userAgent = new webfont.UserAgent("Test", "1.0",
|
246
|
+
var userAgent = new webfont.UserAgent("Test", "1.0", "TestEngine", "2.0", "TestPlatform", "3.0", undefined, new webfont.BrowserInfo(false, false));
|
247
247
|
var monotypeScript = new webfont.MonotypeScript(userAgent, fakeDomHelper, config);
|
248
248
|
monotypeScript.supportUserAgent(userAgent, function (support) { isSupport = support; });
|
249
249
|
|
@@ -291,7 +291,7 @@ MonotypeScriptTest.prototype.testWithoutProjectId = function () {
|
|
291
291
|
};
|
292
292
|
|
293
293
|
var isSupport = null;
|
294
|
-
var userAgent = new webfont.UserAgent("Test", "1.0",
|
294
|
+
var userAgent = new webfont.UserAgent("Test", "1.0", "TestEngine", "2.0", "TestPlatform", "3.0", undefined, new webfont.BrowserInfo(false, false));
|
295
295
|
var monotypeScript = new webfont.MonotypeScript(userAgent, fakeDomHelper, config);
|
296
296
|
monotypeScript.supportUserAgent(userAgent, function (support) { isSupport = support; });
|
297
297
|
|
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.
|
17
|
-
s.date = '2013-01-
|
16
|
+
s.version = '1.2.0'
|
17
|
+
s.date = '2013-01-30'
|
18
18
|
|
19
19
|
## Make sure your summary is short. The description may be as long
|
20
20
|
## as you like.
|
@@ -129,17 +129,20 @@ DESC
|
|
129
129
|
src/ascender/ascender_script.js
|
130
130
|
src/async_load.js
|
131
131
|
src/closure.js
|
132
|
+
src/core/browserinfo.js
|
132
133
|
src/core/cssclassname.js
|
133
134
|
src/core/cssfontfamilyname.js
|
134
135
|
src/core/domhelper.js
|
135
136
|
src/core/eventdispatcher.js
|
136
137
|
src/core/font.js
|
137
138
|
src/core/fontmoduleloader.js
|
139
|
+
src/core/fontruler.js
|
138
140
|
src/core/fontvariationdescription.js
|
139
141
|
src/core/fontwatcher.js
|
140
142
|
src/core/fontwatchrunner.js
|
141
143
|
src/core/initialize.js
|
142
144
|
src/core/namespace.js
|
145
|
+
src/core/size.js
|
143
146
|
src/core/useragent.js
|
144
147
|
src/core/useragentparser.js
|
145
148
|
src/custom/customcss.js
|