Issue #1258 - Part 1: Import mailnews, ldap, and mork from comm-esr52.9.1

This commit is contained in:
Matt A. Tobin 2019-11-03 00:17:46 -04:00 • committed by Roy Tam
commit e400f4130a
1564 changed files with 510348 additions and 0 deletions

View file

@ -0,0 +1,155 @@
/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
var useCustomPrefs;
var requestReceipt;
var leaveInInbox;
var moveToSent;
var receiptSend;
var neverReturn;
var returnSome;
var notInToCcPref;
var notInToCcLabel;
var outsideDomainPref;
var outsideDomainLabel;
var otherCasesPref;
var otherCasesLabel;
var receiptArriveLabel;
var receiptRequestLabel;
var gIdentity;
var gIncomingServer;
var gMdnPrefBranch;
function onInit()
{
useCustomPrefs = document.getElementById("identity.use_custom_prefs");
requestReceipt = document.getElementById("identity.request_return_receipt_on");
leaveInInbox = document.getElementById("leave_in_inbox");
moveToSent = document.getElementById("move_to_sent");
receiptSend = document.getElementById("server.mdn_report_enabled");
neverReturn = document.getElementById("never_return");
returnSome = document.getElementById("return_some");
notInToCcPref = document.getElementById("server.mdn_not_in_to_cc");
notInToCcLabel = document.getElementById("notInToCcLabel");
outsideDomainPref = document.getElementById("server.mdn_outside_domain");
outsideDomainLabel = document.getElementById("outsideDomainLabel");
otherCasesPref = document.getElementById("server.mdn_other");
otherCasesLabel = document.getElementById("otherCasesLabel");
receiptArriveLabel = document.getElementById("receiptArriveLabel");
receiptRequestLabel = document.getElementById("receiptRequestLabel");
EnableDisableCustomSettings();
return true;
}
function onSave()
{
}
function EnableDisableCustomSettings() {
if (useCustomPrefs && (useCustomPrefs.getAttribute("value") == "false")) {
requestReceipt.setAttribute("disabled", "true");
leaveInInbox.setAttribute("disabled", "true");
moveToSent.setAttribute("disabled", "true");
neverReturn.setAttribute("disabled", "true");
returnSome.setAttribute("disabled", "true");
receiptArriveLabel.setAttribute("disabled", "true");
receiptRequestLabel.setAttribute("disabled", "true");
}
else {
requestReceipt.removeAttribute("disabled");
leaveInInbox.removeAttribute("disabled");
moveToSent.removeAttribute("disabled");
neverReturn.removeAttribute("disabled");
returnSome.removeAttribute("disabled");
receiptArriveLabel.removeAttribute("disabled");
receiptRequestLabel.removeAttribute("disabled");
}
EnableDisableAllowedReceipts();
// Lock id based prefs
onLockPreference("mail.identity", gIdentity.key);
// Lock server based prefs
onLockPreference("mail.server", gIncomingServer.key);
return true;
}
function EnableDisableAllowedReceipts() {
if (receiptSend) {
if (!neverReturn.getAttribute("disabled") && (receiptSend.getAttribute("value") != "false")) {
notInToCcPref.removeAttribute("disabled");
notInToCcLabel.removeAttribute("disabled");
outsideDomainPref.removeAttribute("disabled");
outsideDomainLabel.removeAttribute("disabled");
otherCasesPref.removeAttribute("disabled");
otherCasesLabel.removeAttribute("disabled");
}
else {
notInToCcPref.setAttribute("disabled", "true");
notInToCcLabel.setAttribute("disabled", "true");
outsideDomainPref.setAttribute("disabled", "true");
outsideDomainLabel.setAttribute("disabled", "true");
otherCasesPref.setAttribute("disabled", "true");
otherCasesLabel.setAttribute("disabled", "true");
}
}
return true;
}
function onPreInit(account, accountValues)
{
gIdentity = account.defaultIdentity;
gIncomingServer = account.incomingServer;
}
// Disables xul elements that have associated preferences locked.
function onLockPreference(initPrefString, keyString)
{
var finalPrefString;
var allPrefElements = [
{ prefstring:"request_return_receipt_on", id:"identity.request_return_receipt_on"},
{ prefstring:"select_custom_prefs", id:"identity.select_custom_prefs"},
{ prefstring:"select_global_prefs", id:"identity.select_global_prefs"},
{ prefstring:"incorporate_return_receipt", id:"server.incorporate_return_receipt"},
{ prefstring:"never_return", id:"never_return"},
{ prefstring:"return_some", id:"return_some"},
{ prefstring:"mdn_not_in_to_cc", id:"server.mdn_not_in_to_cc"},
{ prefstring:"mdn_outside_domain", id:"server.mdn_outside_domain"},
{ prefstring:"mdn_other", id:"server.mdn_other"},
];
finalPrefString = initPrefString + "." + keyString + ".";
gMdnPrefBranch = Services.prefs.getBranch(finalPrefString);
disableIfLocked( allPrefElements );
}
function disableIfLocked( prefstrArray )
{
for (var i=0; i<prefstrArray.length; i++) {
var id = prefstrArray[i].id;
var element = document.getElementById(id);
if (gMdnPrefBranch.prefIsLocked(prefstrArray[i].prefstring)) {
if (id == "server.incorporate_return_receipt")
{
document.getElementById("leave_in_inbox").setAttribute("disabled", "true");
document.getElementById("move_to_sent").setAttribute("disabled", "true");
}
else
element.setAttribute("disabled", "true");
}
}
}
/**
* Opens Preferences (Options) dialog on the pane and tab where
* the global receipts settings can be found.
*/
function showGlobalReceipts() {
openPrefsFromAccountManager("paneAdvanced", "generalTab",
{subdialog: "showReturnReceipts"}, "receipts_pane");
}

View file

@ -0,0 +1,136 @@
<?xml version="1.0"?>
<!--
This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<?xml-stylesheet href="chrome://messenger/skin/accountManage.css" type="text/css"?>
<!DOCTYPE page SYSTEM "chrome://messenger/locale/am-mdn.dtd">
<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
title="&pane.title;"
onload="parent.onPanelLoaded('am-mdn.xul');">
<vbox flex="1" style="overflow: auto;">
<stringbundle id="bundle_smime" src="chrome://messenger/locale/am-mdn.properties"/>
<script type="application/javascript" src="chrome://messenger/content/AccountManager.js"/>
<script type="application/javascript" src="chrome://messenger/content/amUtils.js"/>
<script type="application/javascript" src="chrome://messenger/content/am-mdn.js"/>
<dialogheader title="&pane.title;"/>
<groupbox>
<caption label="&pane.title;"/>
<hbox id="prefChoices" align="center" flex="1">
<radiogroup id="identity.use_custom_prefs" wsm_persist="true" genericattr="true"
preftype="bool" prefstring="mail.identity.%identitykey%.use_custom_prefs"
oncommand="EnableDisableCustomSettings();" flex="1">
<radio id="identity.select_global_prefs"
value="false"
label="&useGlobalPrefs.label;"
accesskey="&useGlobalPrefs.accesskey;"/>
<hbox flex="1">
<spacer flex="1"/>
<button id="globalReceiptsLink"
label="&globalReceipts.label;"
accesskey="&globalReceipts.accesskey;"
oncommand="showGlobalReceipts();"/>
</hbox>
<radio id="identity.select_custom_prefs"
value="true"
label="&useCustomPrefs.label;"
accesskey="&useCustomPrefs.accesskey;"/>
</radiogroup>
</hbox>
<vbox id="returnReceiptSettings" class="indent" align="start">
<checkbox id="identity.request_return_receipt_on" label="&requestReceipt.label;"
accesskey="&requestReceipt.accesskey;"
wsm_persist="true" genericattr="true" iscontrolcontainer="true"
preftype="bool" prefstring="mail.identity.%identitykey%.request_return_receipt_on"/>
<separator/>
<vbox id="receiptArrive">
<label id="receiptArriveLabel" control="server.incorporate_return_receipt">&receiptArrive.label;</label>
<radiogroup id="server.incorporate_return_receipt" wsm_persist="true" genericattr="true"
preftype="int" prefstring="mail.server.%serverkey%.incorporate_return_receipt"
class="indent">
<radio id="leave_in_inbox" value="0" label="&leaveIt.label;"
accesskey="&leaveIt.accesskey;"/>
<radio id="move_to_sent" value="1" label="&moveToSent.label;"
accesskey="&moveToSent.accesskey;"/>
</radiogroup>
</vbox>
<separator/>
<vbox id="receiptRequest">
<label id="receiptRequestLabel" control="server.mdn_report_enabled">&requestMDN.label;</label>
<radiogroup id="server.mdn_report_enabled" wsm_persist="true" genericattr="true"
preftype="bool" prefstring="mail.server.%serverkey%.mdn_report_enabled"
oncommand="EnableDisableAllowedReceipts();"
class="indent">
<radio id="never_return" value="false" label="&never.label;"
accesskey="&never.accesskey;"/>
<radio id="return_some" value="true" label="&returnSome.label;"
accesskey="&returnSome.accesskey;"/>
<hbox id="receiptSendIf" class="indent">
<grid>
<columns><column/><column/></columns>
<rows>
<row align="center">
<label id="notInToCcLabel" value="&notInToCc.label;"
accesskey="&notInToCc.accesskey;" control="server.mdn_not_in_to_cc"/>
<menulist id="server.mdn_not_in_to_cc" wsm_persist="true" genericattr="true"
preftype="int" prefstring="mail.server.%serverkey%.mdn_not_in_to_cc">
<menupopup>
<menuitem value="0" label="&neverSend.label;"/>
<menuitem value="1" label="&alwaysSend.label;"/>
<menuitem value="2" label="&askMe.label;"/>
</menupopup>
</menulist>
</row>
<row align="center">
<label id="outsideDomainLabel" value="&outsideDomain.label;"
accesskey="&outsideDomain.accesskey;" control="server.mdn_outside_domain"/>
<menulist id="server.mdn_outside_domain" wsm_persist="true" genericattr="true"
preftype="int" prefstring="mail.server.%serverkey%.mdn_outside_domain">
<menupopup>
<menuitem value="0" label="&neverSend.label;"/>
<menuitem value="1" label="&alwaysSend.label;"/>
<menuitem value="2" label="&askMe.label;"/>
</menupopup>
</menulist>
</row>
<row align="center">
<label id="otherCasesLabel" value="&otherCases.label;"
accesskey="&otherCases.accesskey;" control="server.mdn_other"/>
<menulist id="server.mdn_other" wsm_persist="true" genericattr="true"
preftype="int" prefstring="mail.server.%serverkey%.mdn_other">
<menupopup>
<menuitem value="0" label="&neverSend.label;"/>
<menuitem value="1" label="&alwaysSend.label;"/>
<menuitem value="2" label="&askMe.label;"/>
</menupopup>
</menulist>
</row>
</rows>
</grid>
</hbox>
</radiogroup>
</vbox>
</vbox>
</groupbox>
</vbox>
</page>

View file

@ -0,0 +1,23 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/*
* default prefs for mdn
*/
pref("mail.identity.default.use_custom_prefs", false); // false: Use global true: Use custom
pref("mail.identity.default.request_return_receipt_on", false);
pref("mail.server.default.incorporate_return_receipt", 0); // 0: Inbox/filter 1: Sent folder
pref("mail.server.default.mdn_report_enabled", true); // false: Never return receipts true: Return some receipts
pref("mail.server.default.mdn_not_in_to_cc", 2); // 0: Never 1: Always 2: Ask me 3: Denial
pref("mail.server.default.mdn_outside_domain", 2);
pref("mail.server.default.mdn_other", 2);
pref("mail.identity.default.request_receipt_header_type", 0); // return receipt header type - 0: MDN-DNT 1: RRT 2: Both
pref("mail.server.default.mdn_report_enabled", true);

View file

@ -0,0 +1,7 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
messenger.jar:
content/messenger/am-mdn.xul (content/am-mdn.xul)
content/messenger/am-mdn.js (content/am-mdn.js)

View file

@ -0,0 +1,12 @@
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DIRS += ['src']
JAR_MANIFESTS += ['jar.mn']
JS_PREFERENCE_FILES += [
'content/mdn.js',
]

View file

@ -0,0 +1,24 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
function MDNService() {}
MDNService.prototype = {
name: "mdn",
chromePackageName: "messenger",
showPanel: function(server) {
// don't show the panel for news, rss, im or local accounts
return (server.type != "nntp" && server.type != "rss" &&
server.type != "im" && server.type != "none");
},
QueryInterface: XPCOMUtils.generateQI([Components.interfaces.nsIMsgAccountManagerExtension]),
classID: Components.ID("{e007d92e-1dd1-11b2-a61e-dc962c9b8571}"),
};
var components = [MDNService];
var NSGetFactory = XPCOMUtils.generateNSGetFactory(components);

View file

@ -0,0 +1,3 @@
component {e007d92e-1dd1-11b2-a61e-dc962c9b8571} mdn-service.js
contract @mozilla.org/accountmanager/extension;1?name=mdn {e007d92e-1dd1-11b2-a61e-dc962c9b8571}
category mailnews-accountmanager-extensions mdn-account-manager-extension @mozilla.org/accountmanager/extension;1?name=mdn

View file

@ -0,0 +1,16 @@
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
SOURCES += [
'nsMsgMdnGenerator.cpp',
]
EXTRA_COMPONENTS += [
'mdn-service.js',
'mdn-service.manifest',
]
FINAL_LIBRARY = 'mail'

View file

@ -0,0 +1,22 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef nsMsgMdnCID_h__
#define nsMsgMdnCID_h__
#include "nsISupports.h"
#include "nsIFactory.h"
#include "nsIComponentManager.h"
#include "nsIMsgMdnGenerator.h"
#define NS_MSGMDNGENERATOR_CONTRACTID \
"@mozilla.org/messenger-mdn/generator;1"
#define NS_MSGMDNGENERATOR_CID \
{ /* ec917b13-8f73-4d4d-9146-d7f7aafe9076 */ \
0xec917b13, 0x8f73, 0x4d4d, \
{ 0x91, 0x46, 0xd7, 0xf7, 0xaa, 0xfe, 0x90, 0x76 }}
#endif /* nsMsgMdnCID_h__ */

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,90 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef _nsMsgMdnGenerator_H_
#define _nsMsgMdnGenerator_H_
#include "nsIMsgMdnGenerator.h"
#include "nsCOMPtr.h"
#include "nsIUrlListener.h"
#include "nsIMsgIncomingServer.h"
#include "nsIOutputStream.h"
#include "nsIFile.h"
#include "nsIMsgIdentity.h"
#include "nsIMsgWindow.h"
#include "nsIMimeHeaders.h"
#include "nsStringGlue.h"
#include "MailNewsTypes2.h"
#define eNeverSendOp ((int32_t) 0)
#define eAutoSendOp ((int32_t) 1)
#define eAskMeOp ((int32_t) 2)
#define eDeniedOp ((int32_t) 3)
class nsMsgMdnGenerator : public nsIMsgMdnGenerator, public nsIUrlListener
{
public:
NS_DECL_ISUPPORTS
NS_DECL_NSIMSGMDNGENERATOR
NS_DECL_NSIURLLISTENER
nsMsgMdnGenerator();
private:
virtual ~nsMsgMdnGenerator();
// Sanity Check methods
bool ProcessSendMode(); // must called prior ValidateReturnPath
bool ValidateReturnPath();
bool NotInToOrCc();
bool MailAddrMatch(const char *addr1, const char *addr2);
nsresult StoreMDNSentFlag(nsIMsgFolder *folder, nsMsgKey key);
nsresult ClearMDNNeededFlag(nsIMsgFolder *folder, nsMsgKey key);
nsresult NoteMDNRequestHandled();
nsresult CreateMdnMsg();
nsresult CreateFirstPart();
nsresult CreateSecondPart();
nsresult CreateThirdPart();
nsresult SendMdnMsg();
// string bundle helper methods
nsresult GetStringFromName(const char16_t *aName, char16_t **aResultString);
nsresult FormatStringFromName(const char16_t *aName,
const char16_t *aString,
char16_t **aResultString);
// other helper methods
nsresult InitAndProcess(bool *needToAskUser);
nsresult OutputAllHeaders();
nsresult WriteString(const char *str);
private:
EDisposeType m_disposeType;
nsCOMPtr<nsIMsgWindow> m_window;
nsCOMPtr<nsIOutputStream> m_outputStream;
nsCOMPtr<nsIFile> m_file;
nsCOMPtr<nsIMsgIdentity> m_identity;
nsMsgKey m_key;
nsCString m_charset;
nsCString m_email;
nsCString m_mimeSeparator;
nsCString m_messageId;
nsCOMPtr<nsIMsgFolder> m_folder;
nsCOMPtr<nsIMsgIncomingServer> m_server;
nsCOMPtr<nsIMimeHeaders> m_headers;
nsCString m_dntRrt;
int32_t m_notInToCcOp;
int32_t m_outsideDomainOp;
int32_t m_otherOp;
bool m_reallySendMdn;
bool m_autoSend;
bool m_autoAction;
bool m_mdnEnabled;
};
#endif // _nsMsgMdnGenerator_H_