Issue #1312 - Switch to X-Mailer, and pull from AppInfo instead of HTTP headers.

I've been thinking about this issue, and ultimately it's just correcting a
mistake Mozilla made that no consumer of UXP's MailNews ever complained about
before, so I think it's reasonable to fix the default behavior first, and then
let others complain before I start worrying about prefs or ifdefs. One thing
at a time.
This commit is contained in:
Jeremy Andrews
2023-11-14 23:47:34 -06:00
committed by roytam1
parent b004af07d0
commit c4fdd1d9ee
+14 -7
View File
@@ -9,7 +9,7 @@
#include "prmem.h"
#include "nsMsgSend.h"
#include "nsIIOService.h"
#include "nsIHttpProtocolHandler.h"
#include "nsIXULAppInfo.h"
#include "nsMailHeaders.h"
#include "nsMsgI18N.h"
#include "nsINntpService.h"
@@ -357,14 +357,21 @@ nsresult mime_generate_headers(nsIMsgCompFields *fields,
finalHeaders->SetRawHeader(HEADER_X_MOZILLA_DRAFT_INFO, draftInfo, nullptr);
}
nsCOMPtr<nsIHttpProtocolHandler> pHTTPHandler = do_GetService(NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "http", &rv);
if (NS_SUCCEEDED(rv) && pHTTPHandler)
{
nsAutoCString userAgentString;
pHTTPHandler->GetUserAgent(userAgentString);
nsCOMPtr<nsIXULAppInfo> appInfo = do_GetService("@mozilla.org/xre/app-info;1");
if (appInfo) {
nsAutoCString userAgentString;
nsAutoCString userAgentName;
nsAutoCString userAgentVersion;
appInfo->GetName(userAgentName);
appInfo->GetVersion(userAgentVersion);
if (!userAgentName.IsEmpty() && !userAgentVersion.IsEmpty()) {
userAgentString += userAgentName;
userAgentString += '/';
userAgentString += userAgentVersion;
}
if (!userAgentString.IsEmpty())
finalHeaders->SetUnstructuredHeader("User-Agent",
finalHeaders->SetUnstructuredHeader("X-Mailer",
NS_ConvertUTF8toUTF16(userAgentString));
}