Merge pull request #15511 from Snuffleupagus/FontLoader-cleanup-2
More `FontLoader` clean-up
This commit is contained in:
commit
0cca2d4f6e
@ -112,9 +112,12 @@ class FontLoader {
|
|||||||
if (this.isSyncFontLoadingSupported) {
|
if (this.isSyncFontLoadingSupported) {
|
||||||
return; // The font was, synchronously, loaded.
|
return; // The font was, synchronously, loaded.
|
||||||
}
|
}
|
||||||
|
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) {
|
||||||
|
throw new Error("Not implemented: async font loading");
|
||||||
|
}
|
||||||
await new Promise(resolve => {
|
await new Promise(resolve => {
|
||||||
const request = this._queueLoadingCallback(resolve);
|
const request = this._queueLoadingCallback(resolve);
|
||||||
this._prepareFontLoadEvent([rule], [font], request);
|
this._prepareFontLoadEvent(font, request);
|
||||||
});
|
});
|
||||||
// The font was, asynchronously, loaded.
|
// The font was, asynchronously, loaded.
|
||||||
}
|
}
|
||||||
@ -218,7 +221,7 @@ class FontLoader {
|
|||||||
return shadow(this, "_loadTestFont", testFont);
|
return shadow(this, "_loadTestFont", testFont);
|
||||||
}
|
}
|
||||||
|
|
||||||
_prepareFontLoadEvent(rules, fonts, request) {
|
_prepareFontLoadEvent(font, request) {
|
||||||
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) {
|
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) {
|
||||||
throw new Error("Not implemented: _prepareFontLoadEvent");
|
throw new Error("Not implemented: _prepareFontLoadEvent");
|
||||||
}
|
}
|
||||||
@ -252,9 +255,8 @@ class FontLoader {
|
|||||||
|
|
||||||
let called = 0;
|
let called = 0;
|
||||||
function isFontReady(name, callback) {
|
function isFontReady(name, callback) {
|
||||||
called++;
|
|
||||||
// With setTimeout clamping this gives the font ~100ms to load.
|
// With setTimeout clamping this gives the font ~100ms to load.
|
||||||
if (called > 30) {
|
if (++called > 30) {
|
||||||
warn("Load test font never loaded.");
|
warn("Load test font never loaded.");
|
||||||
callback();
|
callback();
|
||||||
return;
|
return;
|
||||||
@ -300,19 +302,13 @@ class FontLoader {
|
|||||||
const rule = `@font-face {font-family:"${loadTestFontId}";src:${url}}`;
|
const rule = `@font-face {font-family:"${loadTestFontId}";src:${url}}`;
|
||||||
this.insertRule(rule);
|
this.insertRule(rule);
|
||||||
|
|
||||||
const names = [];
|
|
||||||
for (const font of fonts) {
|
|
||||||
names.push(font.loadedName);
|
|
||||||
}
|
|
||||||
names.push(loadTestFontId);
|
|
||||||
|
|
||||||
const div = this._document.createElement("div");
|
const div = this._document.createElement("div");
|
||||||
div.style.visibility = "hidden";
|
div.style.visibility = "hidden";
|
||||||
div.style.width = div.style.height = "10px";
|
div.style.width = div.style.height = "10px";
|
||||||
div.style.position = "absolute";
|
div.style.position = "absolute";
|
||||||
div.style.top = div.style.left = "0px";
|
div.style.top = div.style.left = "0px";
|
||||||
|
|
||||||
for (const name of names) {
|
for (const name of [font.loadedName, loadTestFontId]) {
|
||||||
const span = this._document.createElement("span");
|
const span = this._document.createElement("span");
|
||||||
span.textContent = "Hi";
|
span.textContent = "Hi";
|
||||||
span.style.fontFamily = name;
|
span.style.fontFamily = name;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user