Bug 1141055 - fix in-content 'Content' pane preference initialization so rebuildFonts *actually* doesn't break, r=jaws

--HG--
extra : rebase_source : 4d67938084a11a8fb7182e8f152e3ee9e6d6b1ad
This commit is contained in:
Gijs Kruitbosch 2015-03-16 17:01:45 -07:00
parent 8ad8fe3a4e
commit 763f2024ac
3 changed files with 33 additions and 5 deletions

View File

@ -99,6 +99,11 @@ var gContentPane = {
*/ */
_rebuildFonts: function () _rebuildFonts: function ()
{ {
var preferences = document.getElementById("contentPreferences");
// Ensure preferences are "visible" to ensure bindings work.
preferences.hidden = false;
// Force flush:
preferences.clientHeight;
var langGroupPref = document.getElementById("font.language.group"); var langGroupPref = document.getElementById("font.language.group");
this._selectDefaultLanguageGroup(langGroupPref.value, this._selectDefaultLanguageGroup(langGroupPref.value,
this._readDefaultFontTypeForLanguage(langGroupPref.value) == "serif"); this._readDefaultFontTypeForLanguage(langGroupPref.value) == "serif");
@ -115,6 +120,7 @@ var gContentPane = {
const kFontNameListFmtSansSerif = "font.name-list.sans-serif.%LANG%"; const kFontNameListFmtSansSerif = "font.name-list.sans-serif.%LANG%";
const kFontSizeFmtVariable = "font.size.variable.%LANG%"; const kFontSizeFmtVariable = "font.size.variable.%LANG%";
var preferences = document.getElementById("contentPreferences");
var prefs = [{ format : aIsSerif ? kFontNameFmtSerif : kFontNameFmtSansSerif, var prefs = [{ format : aIsSerif ? kFontNameFmtSerif : kFontNameFmtSansSerif,
type : "fontname", type : "fontname",
element : "defaultFont", element : "defaultFont",
@ -127,11 +133,6 @@ var gContentPane = {
type : "int", type : "int",
element : "defaultFontSize", element : "defaultFontSize",
fonttype : null }]; fonttype : null }];
var preferences = document.getElementById("contentPreferences");
// Ensure preferences are "visible" to ensure bindings work.
preferences.hidden = false;
// Force flush:
preferences.clientHeight;
for (var i = 0; i < prefs.length; ++i) { for (var i = 0; i < prefs.length; ++i) {
var preference = document.getElementById(prefs[i].format.replace(/%LANG%/, aLanguageGroup)); var preference = document.getElementById(prefs[i].format.replace(/%LANG%/, aLanguageGroup));
if (!preference) { if (!preference) {

View File

@ -5,6 +5,7 @@ support-files =
privacypane_tests_perwindow.js privacypane_tests_perwindow.js
[browser_advanced_update.js] [browser_advanced_update.js]
[browser_basic_rebuild_fonts_test.js]
[browser_bug410900.js] [browser_bug410900.js]
[browser_bug731866.js] [browser_bug731866.js]
[browser_bug795764_cachedisabled.js] [browser_bug795764_cachedisabled.js]

View File

@ -0,0 +1,26 @@
Services.prefs.setBoolPref("browser.preferences.inContent", true);
Services.prefs.setBoolPref("browser.preferences.instantApply", true);
registerCleanupFunction(function() {
Services.prefs.clearUserPref("browser.preferences.inContent");
Services.prefs.clearUserPref("browser.preferences.instantApply");
});
add_task(function() {
yield openPreferencesViaOpenPreferencesAPI("paneContent", null, {leaveOpen: true});
let doc = gBrowser.contentDocument;
var langGroup = Services.prefs.getComplexValue("font.language.group", Ci.nsIPrefLocalizedString).data
is(doc.getElementById("font.language.group").value, langGroup,
"Language group should be set correctly.");
let defaultFontType = Services.prefs.getCharPref("font.default." + langGroup);
let fontFamily = Services.prefs.getCharPref("font.name." + defaultFontType + "." + langGroup);
let fontFamilyField = doc.getElementById("defaultFont");
is(fontFamilyField.value, fontFamily, "Font family should be set correctly.");
let defaultFontSize = Services.prefs.getIntPref("font.size.variable." + langGroup);
let fontSizeField = doc.getElementById("defaultFontSize");
is(fontSizeField.value, defaultFontSize, "Font size should be set correctly.");
gBrowser.removeCurrentTab();
});