Merge pull request #2118 from yurydelendik/disable-font-hack

Removing font loading hack from MOZCENTRAL
This commit is contained in:
Brendan Dahl 2012-09-18 09:17:05 -07:00
commit 81e708bf0f

View File

@ -418,11 +418,26 @@ function mapPrivateUseChars(code) {
}
var FontLoader = {
//#if !(MOZCENTRAL)
loadingContext: {
requests: [],
nextRequestId: 0
},
isSyncFontLoadingSupported: (function detectSyncFontLoadingSupport() {
if (isWorker)
return false;
// User agent string sniffing is bad, but there is no reliable way to tell
// if font is fully loaded and ready to be used with canvas.
var userAgent = window.navigator.userAgent;
var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(userAgent);
if (m && m[1] >= 14)
return true;
// TODO other browsers
return false;
})(),
bind: function fontLoaderBind(fonts, callback) {
assert(!isWorker, 'bind() shall be called from main thread');
@ -437,23 +452,15 @@ var FontLoader = {
}
font.attached = true;
var str = '';
var data = font.data;
if (data) {
var length = data.length;
for (var j = 0; j < length; j++)
str += String.fromCharCode(data[j]);
var rule = font.bindDOM(str);
if (rule) {
rules.push(rule);
fontsToLoad.push(font);
}
var rule = font.bindDOM();
if (rule) {
rules.push(rule);
fontsToLoad.push(font);
}
}
var request = FontLoader.queueLoadingCallback(callback);
if (rules.length > 0) {
if (rules.length > 0 && !this.isSyncFontLoadingSupported) {
FontLoader.prepareFontLoadEvent(rules, fontsToLoad, request);
} else {
request.complete();
@ -595,6 +602,22 @@ var FontLoader = {
document.body.appendChild(frame);
/** Hack end */
}
//#else
//bind: function fontLoaderBind(fonts, callback) {
// assert(!isWorker, 'bind() shall be called from main thread');
//
// for (var i = 0, ii = fonts.length; i < ii; i++) {
// var font = fonts[i];
// if (font.attached)
// continue;
//
// font.attached = true;
// font.bindDOM()
// }
//
// setTimeout(callback);
//}
//#endif
};
var UnicodeRanges = [
@ -3128,7 +3151,11 @@ var Font = (function FontClosure() {
}
},
bindDOM: function Font_bindDOM(data) {
bindDOM: function Font_bindDOM() {
if (!this.data)
return null;
var data = bytesToString(this.data);
var fontName = this.loadedName;
// Add the font-face rule to the document