Bug 1671880 - Part 1: Remove mailnews.view_default_charset pref. r=mkmelin

Differential Revision: https://phabricator.services.mozilla.com/D96676

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Ping Chen 2020-11-11 10:25:11 +00:00
Родитель ca3e35a970
Коммит b968c66541
11 изменённых файлов: 12 добавлений и 168 удалений

Просмотреть файл

@ -25,7 +25,6 @@ Preferences.addAll([
{ id: "font.language.group", type: "wstring" },
{ id: "browser.display.use_document_fonts", type: "int" },
{ id: "mail.fixed_width_messages", type: "bool" },
{ id: "mailnews.view_default_charset", type: "wstring" },
]);
var gFontsDialog = {
@ -194,31 +193,6 @@ var gFontsDialog = {
);
return mailFixedWidthMessages.checked;
},
/**
* mailnews.view_default_charset is nsIPrefLocalizedString. Its default value
* is different depending on the user locale (see bug 48842).
*/
ondialogaccept() {
var viewCharsetStr = Services.prefs.getComplexValue(
"mailnews.view_default_charset",
Ci.nsIPrefLocalizedString
).data;
var defaultPrefs = Services.prefs.getDefaultBranch("mailnews.");
// Here we compare preference's stored value with default one and,
// if needed, show it as "default" on Config Editor instead of "user set".
if (
viewCharsetStr ===
defaultPrefs.getComplexValue(
"view_default_charset",
Ci.nsIPrefLocalizedString
).data
) {
Services.prefs.clearUserPref("mailnews.view_default_charset");
}
},
};
document.addEventListener("dialogaccept", () => gFontsDialog.ondialogaccept());

Просмотреть файл

@ -257,28 +257,6 @@
</html:fieldset>
</html:div>
<html:div>
<html:fieldset>
<html:legend data-l10n-id="text-encoding-legend"></html:legend>
<label data-l10n-id="text-encoding-description"/>
<separator class="thin"/>
<hbox>
<vbox pack="end">
<hbox align="center" flex="1" class="indent">
<label control="viewDefaultCharsetList"
data-l10n-id="font-incoming-email-label"/>
</hbox>
</vbox>
<vbox>
<menulist is="menulist-charsetpicker-viewing" id="viewDefaultCharsetList"
preference="mailnews.view_default_charset"/>
</vbox>
</hbox>
</html:fieldset>
</html:div>
<separator/>
</vbox>
</dialog>
</window>

Просмотреть файл

@ -269,9 +269,6 @@ tag=Tags
# there are more; for the From column in the threadpane message list.
andOthers=et al.
# mailnews.js
mailnews.view_default_charset=ISO-8859-1
# whether to generate display names in last first order
# LOCALIZATION NOTE(mail.addr_book.displayName.lastnamefirst):
# the only valid values are: true OR false (choose from the untranslated English words)

Просмотреть файл

@ -29,7 +29,6 @@ XPCOMUtils.defineLazyServiceGetter(
var kServerPrefVersion = 1;
var kSmtpPrefVersion = 1;
var kABRemoteContentPrefVersion = 1;
var kDefaultCharsetsPrefVersion = 1;
function migrateMailnews() {
try {
@ -49,12 +48,6 @@ function migrateMailnews() {
} catch (e) {
console.error(e);
}
try {
MigrateDefaultCharsets();
} catch (e) {
console.error(e);
}
}
/**
@ -318,33 +311,3 @@ function MigrateABRemoteContentSettings() {
kABRemoteContentPrefVersion
);
}
/**
* If the default sending or viewing charset is one that is no longer available,
* change it back to the default.
*/
function MigrateDefaultCharsets() {
if (Services.prefs.prefHasUserValue("mail.default_charsets.migrated")) {
return;
}
let charsetConvertManager = Cc[
"@mozilla.org/charset-converter-manager;1"
].getService(Ci.nsICharsetConverterManager);
let viewCharsetStr = Services.prefs.getComplexValue(
"mailnews.view_default_charset",
Ci.nsIPrefLocalizedString
).data;
try {
charsetConvertManager.getCharsetTitle(viewCharsetStr);
} catch (e) {
Services.prefs.clearUserPref("mailnews.view_default_charset");
}
Services.prefs.setIntPref(
"mail.default_charsets.migrated",
kDefaultCharsetsPrefVersion
);
}

Просмотреть файл

@ -71,18 +71,6 @@ function run_test() {
Assert.equal(testPermission(uriAllowed2), Services.perms.UNKNOWN_ACTION);
Assert.equal(testPermission(uriDisallowed), Services.perms.UNKNOWN_ACTION);
// Set default charsets to an encoding no longer supported: VISCII.
let charset = Cc["@mozilla.org/pref-localizedstring;1"].createInstance(
Ci.nsIPrefLocalizedString
);
charset.data = "VISCII";
Services.prefs.setComplexValue(
"mailnews.view_default_charset",
Ci.nsIPrefLocalizedString,
charset
);
Assert.ok(Services.prefs.prefHasUserValue("mailnews.view_default_charset"));
// Now migrate the prefs.
migrateMailnews();
@ -147,10 +135,6 @@ function run_test() {
Assert.equal(testPermission(uriAllowed2), Services.perms.ALLOW_ACTION);
Assert.equal(testPermission(uriDisallowed), Services.perms.UNKNOWN_ACTION);
// Migration should have cleared the charset user pref values.
Assert.ok(Services.prefs.getIntPref("mail.default_charsets.migrated") > 0);
Assert.ok(!Services.prefs.prefHasUserValue("mailnews.view_default_charset"));
// Now migrate the prefs
migrateMailnews();

Просмотреть файл

@ -42,9 +42,8 @@ static const char* kCharacterSetColumnName = "charSet";
static const char* kCharacterSetOverrideColumnName = "charSetOverride";
static const char* kLocaleColumnName = "locale";
#define kMAILNEWS_VIEW_DEFAULT_CHARSET "mailnews.view_default_charset"
#define kMAILNEWS_DEFAULT_CHARSET_OVERRIDE "mailnews.force_charset_override"
static nsCString* gDefaultCharacterSet = nullptr;
static nsCString* gDefaultCharacterSet = new nsCString("UTF-8");
static bool gDefaultCharacterOverride;
static RefPtr<nsIObserver> gFolderCharsetObserver;
@ -78,25 +77,11 @@ NS_IMETHODIMP nsFolderCharsetObserver::Observe(nsISupports* aSubject,
if (!strcmp(aTopic, NS_PREFBRANCH_PREFCHANGE_TOPIC_ID)) {
nsDependentString prefName(someData);
if (prefName.EqualsLiteral(kMAILNEWS_VIEW_DEFAULT_CHARSET)) {
nsCOMPtr<nsIPrefLocalizedString> pls;
rv = prefBranch->GetComplexValue(kMAILNEWS_VIEW_DEFAULT_CHARSET,
NS_GET_IID(nsIPrefLocalizedString),
getter_AddRefs(pls));
if (NS_SUCCEEDED(rv)) {
nsString ucsval;
pls->ToString(getter_Copies(ucsval));
if (!ucsval.IsEmpty()) {
if (gDefaultCharacterSet)
CopyUTF16toUTF8(ucsval, *gDefaultCharacterSet);
}
}
} else if (prefName.EqualsLiteral(kMAILNEWS_DEFAULT_CHARSET_OVERRIDE)) {
if (prefName.EqualsLiteral(kMAILNEWS_DEFAULT_CHARSET_OVERRIDE)) {
rv = prefBranch->GetBoolPref(kMAILNEWS_DEFAULT_CHARSET_OVERRIDE,
&gDefaultCharacterOverride);
}
} else if (!strcmp(aTopic, NS_XPCOM_SHUTDOWN_OBSERVER_ID)) {
rv = prefBranch->RemoveObserver(kMAILNEWS_VIEW_DEFAULT_CHARSET, this);
rv = prefBranch->RemoveObserver(kMAILNEWS_DEFAULT_CHARSET_OVERRIDE, this);
gFolderCharsetObserver = nullptr;
delete gDefaultCharacterSet;
@ -153,20 +138,6 @@ nsDBFolderInfo::nsDBFolderInfo(nsMsgDatabase* mdb)
rv = prefs->GetBranch(nullptr, getter_AddRefs(prefBranch));
}
if (NS_SUCCEEDED(rv)) {
nsCOMPtr<nsIPrefLocalizedString> pls;
rv = prefBranch->GetComplexValue(kMAILNEWS_VIEW_DEFAULT_CHARSET,
NS_GET_IID(nsIPrefLocalizedString),
getter_AddRefs(pls));
if (NS_SUCCEEDED(rv)) {
nsString ucsval;
pls->ToString(getter_Copies(ucsval));
if (!ucsval.IsEmpty()) {
if (!gDefaultCharacterSet) gDefaultCharacterSet = new nsCString;
if (gDefaultCharacterSet)
CopyUTF16toUTF8(ucsval, *gDefaultCharacterSet);
}
}
rv = prefBranch->GetBoolPref(kMAILNEWS_DEFAULT_CHARSET_OVERRIDE,
&gDefaultCharacterOverride);
@ -175,8 +146,6 @@ nsDBFolderInfo::nsDBFolderInfo(nsMsgDatabase* mdb)
// register prefs callbacks
if (gFolderCharsetObserver) {
rv = prefBranch->AddObserver(kMAILNEWS_VIEW_DEFAULT_CHARSET,
gFolderCharsetObserver, false);
rv = prefBranch->AddObserver(kMAILNEWS_DEFAULT_CHARSET_OVERRIDE,
gFolderCharsetObserver, false);

Просмотреть файл

@ -328,7 +328,6 @@ pref("mailnews.offline_sync_send_unsent", true);
pref("mailnews.offline_sync_work_offline", false);
pref("mailnews.force_ascii_search", false);
pref("mailnews.view_default_charset", "chrome://messenger/locale/messenger.properties");
// ignore specified MIME encoding and use the default encoding for display
pref("mailnews.force_charset_override", false);

Просмотреть файл

@ -113,11 +113,7 @@ static int MimeInlineText_initializeCharset(MimeObject* obj) {
text->charset = strdup(obj->options->default_charset);
else {
if (NS_SUCCEEDED(res)) {
nsString value;
NS_GetLocalizedUnicharPreferenceWithDefault(
prefBranch, "mailnews.view_default_charset", EmptyString(),
value);
text->charset = ToNewUTF8String(value);
text->charset = strdup("UTF-8");
} else
text->charset = strdup("");
}

Просмотреть файл

@ -41,7 +41,6 @@
#define NEW_NEWS_DIR_NAME "News"
#define PREF_MAIL_NEWSRC_ROOT "mail.newsrc_root"
#define PREF_MAIL_NEWSRC_ROOT_REL "mail.newsrc_root-rel"
#define PREF_MAILNEWS_VIEW_DEFAULT_CHARSET "mailnews.view_default_charset"
#define HOSTINFO_FILE_NAME "hostinfo.dat"
#define NEWS_DELIMITER '.'
@ -265,15 +264,10 @@ nsNntpIncomingServer::GetCharset(nsACString& aCharset) {
nsresult rv = GetCharValue("charset", aCharset);
NS_ENSURE_SUCCESS(rv, rv);
// if the per-server setting is empty,we get the default charset from
// mailnews.view_default_charset setting and set it as per-server preference.
// if the per-server setting is empty, default to UTF-8 and set it as
// per-server preference.
if (aCharset.IsEmpty()) {
nsString defaultCharset;
rv = NS_GetLocalizedUnicharPreferenceWithDefault(
nullptr, PREF_MAILNEWS_VIEW_DEFAULT_CHARSET, u"ISO-8859-1"_ns,
defaultCharset);
NS_ENSURE_SUCCESS(rv, rv);
LossyCopyUTF16toASCII(defaultCharset, aCharset);
aCharset.AssignLiteral("UTF-8");
SetCharset(aCharset);
}
return NS_OK;

Просмотреть файл

@ -36,7 +36,7 @@ class nsMsgSearchAdapter : public nsIMsgSearchAdapter {
nsIMsgSearchScopeTerm* m_scope;
nsCOMPtr<nsIArray> m_searchTerms; /* linked list of criteria terms */
nsString m_defaultCharset;
nsString m_defaultCharset = u"UTF-8"_ns;
static nsresult EncodeImap(char** ppEncoding, nsIArray* searchTerms,
const char16_t* srcCharset,

Просмотреть файл

@ -196,22 +196,12 @@ nsresult nsMsgSearchAdapter::GetSearchCharsets(nsAString& srcCharset,
nsresult rv;
bool forceAsciiSearch = false;
if (m_defaultCharset.IsEmpty()) {
nsCOMPtr<nsIPrefBranch> prefs(
do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
if (NS_SUCCEEDED(rv)) {
nsCOMPtr<nsIPrefLocalizedString> localizedstr;
rv = prefs->GetComplexValue("mailnews.view_default_charset",
NS_GET_IID(nsIPrefLocalizedString),
getter_AddRefs(localizedstr));
if (NS_SUCCEEDED(rv)) localizedstr->GetData(m_defaultCharset);
prefs->GetBoolPref("mailnews.force_ascii_search", &forceAsciiSearch);
}
nsCOMPtr<nsIPrefBranch> prefs(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
if (NS_SUCCEEDED(rv)) {
prefs->GetBoolPref("mailnews.force_ascii_search", &forceAsciiSearch);
}
srcCharset = m_defaultCharset.IsEmpty()
? static_cast<const nsAString&>(u"ISO-8859-1"_ns)
: m_defaultCharset;
srcCharset = m_defaultCharset;
if (m_scope) {
// ### DMB is there a way to get the charset for the "window"?