webfontloader 1.4.1 → 1.4.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +6 -0
- data/README.md +2 -2
- data/lib/webfontloader.rb +1 -1
- data/spec/core/fontwatchrunner_spec.js +11 -7
- data/spec/core/webfont_spec.js +32 -0
- data/src/core/browserinfo.js +6 -0
- data/src/core/fontruler.js +3 -1
- data/src/core/initialize.js +7 -3
- data/src/core/useragent.js +9 -0
- data/src/core/webfont.js +2 -2
- data/webfontloader.gemspec +2 -2
- metadata +4 -4
data/CHANGELOG
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
v1.4.2 (April 11, 2013)
|
2
|
+
* Namespace is now configurable at compile time
|
3
|
+
* BrowserInfo and UserAgent are exported so Typekit KitJS and the standalone webfontloader can share data
|
4
|
+
* Add "aria-hidden=true" to test spans so screen readers do not read test spans
|
5
|
+
* Fix passing the test strings from the modules to core.
|
6
|
+
|
1
7
|
v1.4.1 (April 8, 2013)
|
2
8
|
* Internal rewrite of font and variations
|
3
9
|
* Fix for the configurable timeout on the Google module
|
data/README.md
CHANGED
@@ -171,6 +171,6 @@ WebFont Loader is released under the [Apache 2.0][lic] license.
|
|
171
171
|
[evt]: http://github.com/typekit/webfontloader/blob/master/docs/EVENTS.md
|
172
172
|
[lic]: http://github.com/typekit/webfontloader/blob/master/LICENSE
|
173
173
|
[demos]: http://github.com/typekit/webfontloader/blob/master/lib/webfontloader/demo/public
|
174
|
-
[gfontapi]: https://
|
175
|
-
[gajax]:
|
174
|
+
[gfontapi]: https://developers.google.com/fonts/
|
175
|
+
[gajax]: https://developers.google.com/speed/libraries/
|
176
176
|
[issues]: https://github.com/typekit/webfontloader/issues
|
data/lib/webfontloader.rb
CHANGED
@@ -258,6 +258,8 @@ describe('FontWatchRunner', function () {
|
|
258
258
|
nullFont = null,
|
259
259
|
sourceSansA = null,
|
260
260
|
sourceSansB = null,
|
261
|
+
sourceSansC = null,
|
262
|
+
sourceSansCBold = null,
|
261
263
|
elena = null;
|
262
264
|
|
263
265
|
beforeEach(function () {
|
@@ -266,6 +268,8 @@ describe('FontWatchRunner', function () {
|
|
266
268
|
nullFont = new Font('__webfontloader_test__');
|
267
269
|
sourceSansA = new Font('SourceSansA');
|
268
270
|
sourceSansB = new Font('SourceSansB');
|
271
|
+
sourceSansC = new Font('SourceSansC');
|
272
|
+
sourceSansCBold = new Font('SourceSansC', 'n7');
|
269
273
|
elena = new Font('Elena');
|
270
274
|
|
271
275
|
userAgent = userAgentParser.parse();
|
@@ -397,15 +401,15 @@ describe('FontWatchRunner', function () {
|
|
397
401
|
|
398
402
|
it('should load one weight after another', function () {
|
399
403
|
var fontWatchRunnerRegular = new FontWatchRunner(activeCallback, inactiveCallback,
|
400
|
-
domHelper,
|
404
|
+
domHelper, sourceSansC, userAgent.getBrowserInfo(), 500),
|
401
405
|
fontWatchRunnerBold = new FontWatchRunner(activeCallback, inactiveCallback,
|
402
|
-
domHelper,
|
406
|
+
domHelper, sourceSansCBold, userAgent.getBrowserInfo(), 500),
|
403
407
|
fontRulerA = new FontRuler(domHelper, 'abcdef'),
|
404
408
|
fontRulerB = new FontRuler(domHelper, 'abcdef');
|
405
409
|
|
406
410
|
runs(function () {
|
407
411
|
fontRulerA.insert();
|
408
|
-
fontRulerA.setFont(
|
412
|
+
fontRulerA.setFont(sourceSansC);
|
409
413
|
fontWatchRunnerRegular.start();
|
410
414
|
});
|
411
415
|
|
@@ -414,13 +418,13 @@ describe('FontWatchRunner', function () {
|
|
414
418
|
});
|
415
419
|
|
416
420
|
runs(function () {
|
417
|
-
expect(activeCallback).toHaveBeenCalledWith(
|
421
|
+
expect(activeCallback).toHaveBeenCalledWith(sourceSansC);
|
418
422
|
|
419
423
|
activeCallback.reset();
|
420
424
|
inactiveCallback.reset();
|
421
425
|
|
422
426
|
fontRulerB.insert();
|
423
|
-
fontRulerB.setFont(
|
427
|
+
fontRulerB.setFont(sourceSansCBold);
|
424
428
|
fontWatchRunnerBold.start();
|
425
429
|
});
|
426
430
|
|
@@ -429,8 +433,8 @@ describe('FontWatchRunner', function () {
|
|
429
433
|
});
|
430
434
|
|
431
435
|
runs(function () {
|
432
|
-
expect(activeCallback).toHaveBeenCalledWith(
|
433
|
-
expect(fontRulerA.
|
436
|
+
expect(activeCallback).toHaveBeenCalledWith(sourceSansCBold);
|
437
|
+
expect(fontRulerA.getWidth()).not.toEqual(fontRulerB.getWidth());
|
434
438
|
});
|
435
439
|
});
|
436
440
|
});
|
data/spec/core/webfont_spec.js
CHANGED
@@ -191,6 +191,38 @@ describe('WebFont', function () {
|
|
191
191
|
});
|
192
192
|
});
|
193
193
|
|
194
|
+
describe('should pass both fonts and test strings to onready', function () {
|
195
|
+
var font = null,
|
196
|
+
fontTestStrings = null,
|
197
|
+
testModule = null;
|
198
|
+
|
199
|
+
beforeEach(function () {
|
200
|
+
font = new WebFont(window, fontModuleLoader, new UserAgent('Firefox', '3.6', 'Gecko', '1.9.2', 'Macintosh', '10.6', undefined, new BrowserInfo(true, false, false)));
|
201
|
+
|
202
|
+
font.addModule('test', function (conf, domHelper) {
|
203
|
+
testModule = new function () {};
|
204
|
+
testModule.supportUserAgent = function (ua, support) { support(true); };
|
205
|
+
testModule.load = function (onReady) {
|
206
|
+
onReady([new Font('Elena')], { 'Elena': '1234567' });
|
207
|
+
};
|
208
|
+
|
209
|
+
return testModule;
|
210
|
+
});
|
211
|
+
|
212
|
+
spyOn(font, 'onModuleReady_');
|
213
|
+
});
|
214
|
+
|
215
|
+
it('should have called onModuleReady with the correct font and test string', function () {
|
216
|
+
font.load({
|
217
|
+
'test': {}
|
218
|
+
});
|
219
|
+
|
220
|
+
expect(font.onModuleReady_).toHaveBeenCalled();
|
221
|
+
expect(font.onModuleReady_.calls[0].args[3]).toEqual([new Font('Elena')]);
|
222
|
+
expect(font.onModuleReady_.calls[0].args[4]).toEqual({ 'Elena': '1234567' });
|
223
|
+
});
|
224
|
+
});
|
225
|
+
|
194
226
|
describe('font inactive', function () {
|
195
227
|
var font = null,
|
196
228
|
testModule = null;
|
data/src/core/browserinfo.js
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
goog.provide('webfont.BrowserInfo');
|
2
2
|
|
3
3
|
/**
|
4
|
+
* @export
|
4
5
|
* @constructor
|
5
6
|
* @param {boolean} webfontSupport
|
6
7
|
* @param {boolean} webKitFallbackBug
|
@@ -16,6 +17,7 @@ goog.scope(function () {
|
|
16
17
|
var BrowserInfo = webfont.BrowserInfo;
|
17
18
|
|
18
19
|
/**
|
20
|
+
* @export
|
19
21
|
* Returns true if the browser supports web fonts.
|
20
22
|
*
|
21
23
|
* @return {boolean}
|
@@ -25,6 +27,8 @@ goog.scope(function () {
|
|
25
27
|
};
|
26
28
|
|
27
29
|
/**
|
30
|
+
* @export
|
31
|
+
*
|
28
32
|
* Returns true if the browser has the WebKit fallback bug.
|
29
33
|
*
|
30
34
|
* The bug causes the normal CSS font stack to be ignored while
|
@@ -49,6 +53,8 @@ goog.scope(function () {
|
|
49
53
|
};
|
50
54
|
|
51
55
|
/**
|
56
|
+
* @export
|
57
|
+
*
|
52
58
|
* Returns true if the browser has the WebKit metrics bug
|
53
59
|
*
|
54
60
|
* The metrics bug causes WebKit to change the height of a font
|
data/src/core/fontruler.js
CHANGED
@@ -10,7 +10,9 @@ goog.provide('webfont.FontRuler');
|
|
10
10
|
webfont.FontRuler = function (domHelper, fontTestString) {
|
11
11
|
this.domHelper_ = domHelper;
|
12
12
|
this.fontTestString_ = fontTestString;
|
13
|
-
this.el_ = this.domHelper_.createElement('span', {
|
13
|
+
this.el_ = this.domHelper_.createElement('span', {
|
14
|
+
"aria-hidden": "true"
|
15
|
+
}, this.fontTestString_);
|
14
16
|
};
|
15
17
|
|
16
18
|
goog.scope(function () {
|
data/src/core/initialize.js
CHANGED
@@ -9,11 +9,15 @@ goog.require('webfont.WebFont');
|
|
9
9
|
*/
|
10
10
|
webfont.FontTestStrings;
|
11
11
|
|
12
|
-
|
13
|
-
|
12
|
+
/**
|
13
|
+
* Name of the global object
|
14
|
+
*
|
15
|
+
* @define {string}
|
16
|
+
*/
|
17
|
+
var GLOBAL_NAME = 'WebFont';
|
14
18
|
|
15
19
|
// Provide an instance of WebFont in the global namespace.
|
16
|
-
var globalNamespaceObject = window[
|
20
|
+
var globalNamespaceObject = window[GLOBAL_NAME] = (function() {
|
17
21
|
var userAgentParser = new webfont.UserAgentParser(navigator.userAgent, document);
|
18
22
|
var userAgent = userAgentParser.parse();
|
19
23
|
var fontModuleLoader = new webfont.FontModuleLoader();
|
data/src/core/useragent.js
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
goog.provide('webfont.UserAgent');
|
2
2
|
|
3
3
|
/**
|
4
|
+
* @export
|
4
5
|
* @param {string} name
|
5
6
|
* @param {string} version
|
6
7
|
* @param {string} engine
|
@@ -27,6 +28,7 @@ goog.scope(function () {
|
|
27
28
|
var UserAgent = webfont.UserAgent;
|
28
29
|
|
29
30
|
/**
|
31
|
+
* @export
|
30
32
|
* @return {string}
|
31
33
|
*/
|
32
34
|
UserAgent.prototype.getName = function() {
|
@@ -34,6 +36,7 @@ goog.scope(function () {
|
|
34
36
|
};
|
35
37
|
|
36
38
|
/**
|
39
|
+
* @export
|
37
40
|
* @return {string}
|
38
41
|
*/
|
39
42
|
UserAgent.prototype.getVersion = function() {
|
@@ -41,6 +44,7 @@ goog.scope(function () {
|
|
41
44
|
};
|
42
45
|
|
43
46
|
/**
|
47
|
+
* @export
|
44
48
|
* @return {string}
|
45
49
|
*/
|
46
50
|
UserAgent.prototype.getEngine = function() {
|
@@ -48,6 +52,7 @@ goog.scope(function () {
|
|
48
52
|
};
|
49
53
|
|
50
54
|
/**
|
55
|
+
* @export
|
51
56
|
* @return {string}
|
52
57
|
*/
|
53
58
|
UserAgent.prototype.getEngineVersion = function() {
|
@@ -55,6 +60,7 @@ goog.scope(function () {
|
|
55
60
|
};
|
56
61
|
|
57
62
|
/**
|
63
|
+
* @export
|
58
64
|
* @return {string}
|
59
65
|
*/
|
60
66
|
UserAgent.prototype.getPlatform = function() {
|
@@ -62,6 +68,7 @@ goog.scope(function () {
|
|
62
68
|
};
|
63
69
|
|
64
70
|
/**
|
71
|
+
* @export
|
65
72
|
* @return {string}
|
66
73
|
*/
|
67
74
|
UserAgent.prototype.getPlatformVersion = function() {
|
@@ -69,6 +76,7 @@ goog.scope(function () {
|
|
69
76
|
};
|
70
77
|
|
71
78
|
/**
|
79
|
+
* @export
|
72
80
|
* @return {number|undefined}
|
73
81
|
*/
|
74
82
|
UserAgent.prototype.getDocumentMode = function() {
|
@@ -76,6 +84,7 @@ goog.scope(function () {
|
|
76
84
|
};
|
77
85
|
|
78
86
|
/**
|
87
|
+
* @export
|
79
88
|
* @return {webfont.BrowserInfo}
|
80
89
|
*/
|
81
90
|
UserAgent.prototype.getBrowserInfo = function() {
|
data/src/core/webfont.js
CHANGED
@@ -77,8 +77,8 @@ goog.scope(function () {
|
|
77
77
|
return;
|
78
78
|
}
|
79
79
|
|
80
|
-
module.load(function (fonts) {
|
81
|
-
that.onModuleReady_(eventDispatcher, fontWatcher, fontWatchRunnerCtor, fonts);
|
80
|
+
module.load(function (fonts, opt_fontTestStrings) {
|
81
|
+
that.onModuleReady_(eventDispatcher, fontWatcher, fontWatchRunnerCtor, fonts, opt_fontTestStrings);
|
82
82
|
});
|
83
83
|
};
|
84
84
|
|
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.4.
|
17
|
-
s.date = '2013-04-
|
16
|
+
s.version = '1.4.2'
|
17
|
+
s.date = '2013-04-11'
|
18
18
|
|
19
19
|
## Make sure your summary is short. The description may be as long
|
20
20
|
## as you like.
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webfontloader
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 1.4.
|
9
|
+
- 2
|
10
|
+
version: 1.4.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ryan Carver
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2013-04-
|
19
|
+
date: 2013-04-11 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
name: rake
|