format: kFontNameFmtSerif, type: "fontname", element: "serif", fonttype: "serif", }, { format: kFontNameFmtSansSerif, type: "fontname", element: "sans-serif", fonttype: "sans-serif", }, { format: kFontNameFmtMonospace, type: "fontname", element: "monospace", fonttype: "monospace", }, { format: kFontNameListFmtSerif, type: "unichar", element: null, fonttype: "serif", }, { format: kFontNameListFmtSansSerif, type: "unichar", element: null, fonttype: "sans-serif", }, { format: kFontNameListFmtMonospace, type: "unichar", element: null, fonttype: "monospace", }, { format: kFontSizeFmtVariable, type: "int", element: "sizeVar", fonttype: null, }, { format: kFontSizeFmtFixed, type: "int", element: "sizeMono", fonttype: null, }, { format: kFontMinSizeFmt, type: "int", element: "minSize", fonttype: null, }, ]; for (var i = 0; i < prefs.length; ++i) { var name = prefs[i].format.replace(/%LANG%/, aLanguageGroup); var preference = Preferences.get(name); if (!preference) { preference = Preferences.add({ id: name, type: prefs[i].type }); } if (!prefs[i].element) { continue; } var element = document.getElementById(prefs[i].element); if (element) { element.setAttribute("preference", preference.id); if (prefs[i].fonttype) { await FontBuilder.buildFontList( aLanguageGroup, prefs[i].fonttype, element ); } preference.setElementValue(element); } } })().catch(console.error); }, readFontLanguageGroup() { let languageGroup = Preferences.get("font.language.group").value; let rv = undefined; if (!languageGroup) { languageGroup = Services.locale.fontLanguageGroup; rv = languageGroup; } this._selectLanguageGroup(languageGroup); return rv; }, readUseDocumentFonts() { var preference = Preferences.get("browser.display.use_document_fonts"); return preference.value == 1; }, writeUseDocumentFonts() { var useDocumentFonts = document.getElementById("useDocumentFonts"); return useDocumentFonts.checked ? 1 : 0; }, }; PK