--- a/.clang-format
+++ b/.clang-format
@@ -29,15 +29,15 @@ StatementMacros: [MARKUPMAP, ASSERT_TRUE
# The Google coding style states:
# You should do this consistently within a single file, so, when modifying an
# existing file, use the style in that file.
# Let's be more prescriptive and default to the one used in the Mozilla
# coding style
# Note that for the time being, we differ from the mozilla-central settings
-# and use derivative pointer alignment since right aligment is prevalent in
+# and use derivative pointer alignment since right alignment is prevalent in
# comm-central. Exceptions with left alignment are, amongst others:
# db/ (Mork), mailnews/intl and mailnews/jsaccount.
# We will decide later whether to make the pointer style consistent or not.
# DerivePointerAlignment: false
# PointerAlignment: Left
DerivePointerAlignment: true
--- a/.taskcluster.yml
+++ b/.taskcluster.yml
@@ -41,18 +41,18 @@
# installs that as the hook task template.
#
# {
# tasks_for: 'action',
# push: {owner, pushlog_id, revision},
# repository: {url, project, level},
# input,
# parameters,
-# taskId, // targetted taskId
-# taskGroupId, // targetted taskGroupId
+# taskId, // targeted taskId
+# taskGroupId, // targeted taskGroupId
# action: {name, title, description, taskGroupId, symbol, repo_scope, cb_name}
# ownTaskId: // taskId of the task that will be created
# }
version: 1
tasks:
- $let:
--- a/build/macosx/hardenedruntime/developer.entitlements.xml
+++ b/build/macosx/hardenedruntime/developer.entitlements.xml
@@ -23,17 +23,17 @@
<!-- Code paged in from disk should match the signature at page-in time -->
<key>com.apple.security.cs.disable-executable-page-protection</key><false/>
<!-- Allow loading third party libraries. Possibly needed by some legacy extensions. -->
<key>com.apple.security.cs.disable-library-validation</key><true/>
<!-- Allow dyld environment variables. Needed because Thunderbird uses
- dyld variables to load libaries from within the .app bundle. -->
+ dyld variables to load libraries from within the .app bundle. -->
<key>com.apple.security.cs.allow-dyld-environment-variables</key><true/>
<!-- Allow debuggers to attach to running executables -->
<key>com.apple.security.get-task-allow</key><true/>
<!-- Thunderbird needs to access the microphone on sites the user allows -->
<key>com.apple.security.device.audio-input</key><true/>
--- a/build/macosx/hardenedruntime/production.entitlements.xml
+++ b/build/macosx/hardenedruntime/production.entitlements.xml
@@ -20,17 +20,17 @@
<!-- Code paged in from disk should match the signature at page in-time -->
<key>com.apple.security.cs.disable-executable-page-protection</key><false/>
<!-- Allow loading third party libraries. Possibly needed by some legacy extensions. -->
<key>com.apple.security.cs.disable-library-validation</key><true/>
<!-- Allow dyld environment variables. Needed because Thunderbird uses
- dyld variables to load libaries from within the .app bundle. -->
+ dyld variables to load libraries from within the .app bundle. -->
<key>com.apple.security.cs.allow-dyld-environment-variables</key><true/>
<!-- Don't allow debugging of the executable. Debuggers will be prevented
from attaching to running executables. Notarization does not permit
access to get-task-allow (as documented by Apple) so this must be
disabled on notarized builds. -->
<key>com.apple.security.get-task-allow</key><false/>
--- a/calendar/base/content/calendar-event-gripbar.js
+++ b/calendar/base/content/calendar-event-gripbar.js
@@ -31,17 +31,17 @@
// appropriate action.
event.whichside = this.getAttribute("whichside");
});
this.addEventListener("click", event => {
if (event.button != 0) {
return;
}
- // parent event-column has event listner for click so
+ // parent event-column has event listener for click so
// stopPropagation() is called.
event.stopPropagation();
});
}
connectedCallback() {
this._image = document.createXULElement("image");
this._image.setAttribute("pack", "center");
--- a/calendar/base/content/calendar-multiday-base-view.js
+++ b/calendar/base/content/calendar-multiday-base-view.js
@@ -965,17 +965,17 @@
const displayDuration = highMinute - lowMinute;
if (this.mSelectedItems.length && displayDuration >= 0) {
let minute;
if (displayDuration <= this.mVisibleMinutes) {
minute = lowMinute + (displayDuration - this.mVisibleMinutes) / 2;
} else if (this.mSelectedItems.length == 1) {
// If the displayDuration doesn't fit into the visible minutes, but
- // ony one event is selected, then go ahead and center the event start.
+ // only one event is selected, then go ahead and center the event start.
minute = Math.max(0, lowMinute - this.mVisibleMinutes / 2);
}
this.scrollToMinute(minute);
}
}
zoomIn(level) {
--- a/calendar/base/content/dialogs/calendar-event-dialog-attendees-custom-elements.js
+++ b/calendar/base/content/dialogs/calendar-event-dialog-attendees-custom-elements.js
@@ -242,17 +242,17 @@
this.mEndHour = Services.prefs.getIntPref("calendar.view.dayendhour", 19);
}
}
}
customElements.define("calendar-event-freebusy-timebar", MozCalendarEventFreebusyTimebar);
/**
* MozCalendarEventAttendeesList is a widget allowing adding and removing of attendees of an event.
- * It shows if attendee if required or optional, the attendee status, type and adddress.
+ * It shows if attendee if required or optional, the attendee status, type and address.
* It is typically found in the Invite Attendees dialog.
*
* @extends {MozElements.RichListBox}
*/
class MozCalendarEventAttendeesList extends MozElements.RichListBox {
constructor() {
super();
@@ -585,17 +585,17 @@
let lastInput = this.getInputElement(this.mMaxAttendees);
if (lastInput && lastInput.value) {
this.appendNewRow(true);
}
}
}
/**
- * This trigger the continous update chain, which effectively calls this.onModify() on
+ * This trigger the continuous update chain, which effectively calls this.onModify() on
* predefined time intervals [each second].
*/
init() {
let callback = () => {
setTimeout(callback, 1000);
this.onModify();
};
callback();
@@ -1090,17 +1090,17 @@
if (kids[i].hasAttribute("_isDummyRow")) {
return kids[i];
}
}
return null;
}
/**
- * Returns richlistitem at row numer `row`.
+ * Returns richlistitem at row number `row`.
*
* @returns {Element} richlistitem
*/
getListItem(row) {
return this.getElementsByTagName("richlistitem")[row - 1];
}
/**
@@ -1184,17 +1184,17 @@
let listItem = this.getListItem(row);
if (listItem) {
return listItem.querySelector(".usertype-icon");
}
return null;
}
/**
- * Sets foucs on the input element in the row `row`.
+ * Sets focus on the input element in the row `row`.
*
* @param {Element|Number} row Row number or row
*/
setFocus(row) {
// See https://stackoverflow.com/questions/779379/why-is-settimeoutfn-0-sometimes-useful to
// know why setTimeout is helpful here.
setTimeout(() => {
let node;
@@ -3013,18 +3013,18 @@
// Special case for allday events - if the original datetime was indeed a date we need to
// carry this state over to the calculated datetime.
if (this.mStartDate.isDate) {
startTime.isDate = true;
}
// In case the new starttime happens to be scheduled on a different day, we also need to
- // update the complete freebusy informations and appropriate underlying arrays holding the
- // informaion.
+ // update the complete freebusy information and appropriate underlying arrays holding the
+ // information.
if (this.mStartDate.day != startTime.day) {
for (let i = 1; i <= this.mMaxFreeBusy; i++) {
let fbelem = this.getFreeBusyElement(i);
fbelem.setAttribute("dirty", "true");
}
this.updateFreeBusy();
}
--- a/calendar/base/content/widgets/calendar-modebox.js
+++ b/calendar/base/content/widgets/calendar-modebox.js
@@ -112,17 +112,17 @@
return "";
}
let attributeValues = this.getAttribute(attributeName).split(",");
let modes = this.getAttribute("mode").split(",");
return attributeValues[modes.indexOf(mode)];
}
/**
- * Sets the visiblity (collapsed state) of this modebox and (optionally) updates the
+ * Sets the visibility (collapsed state) of this modebox and (optionally) updates the
* `collapsedinmode` attribute and (optionally) notifies the `refcontrol`.
*
* @param {boolean} visible Whether the modebox should become visible or not.
* @param {boolean} [toPushModeCollapsedAttribute=true] Whether to push the current mode
* to `collapsedinmodes` attribute.
* @param {boolean} [toNotifyRefControl=true] Whether to notify the `refcontrol`.
*/
setVisible(visible, toPushModeCollapsedAttribute = true, toNotifyRefControl = true) {
--- a/chat/content/otr/otr.ftl
+++ b/chat/content/otr/otr.ftl
@@ -10,17 +10,17 @@ msgevent-encryption_required_part2 = Att
msgevent-encryption_error = An error occurred when encrypting your message. The message was not sent.
# Variables:
# $name (String) - the screen name of a chat contact person
msgevent-connection_ended = { $name } has already closed their encrypted connection to you. To avoid that you accidentally send a message without encryption, your message was not sent. Please end your encrypted conversation, or restart it.
# Variables:
# $name (String) - the screen name of a chat contact person
-msgevent-setup_error = An error occured while setting up a private conversation with { $name }.
+msgevent-setup_error = An error occurred while setting up a private conversation with { $name }.
# Do not translate 'OTR' (name of an encryption protocol)
msgevent-msg_reflected = You are receiving your own OTR messages. You are either trying to talk to yourself, or someone is reflecting your messages back at you.
# Variables:
# $name (String) - the screen name of a chat contact person
msgevent-msg_resent = The last message to { $name } was resent.
--- a/chat/modules/OTR.jsm
+++ b/chat/modules/OTR.jsm
@@ -620,17 +620,17 @@ var OTR = {
conv.account.normalizedName,
req ? OTRLib.OTRL_POLICY_ALWAYS : OTRLib.OTRL_POLICY_OPPORTUNISTIC
);
if (query.isNull()) {
Cu.reportError(new Error("Sending query message failed."));
return;
}
// Use the default msg to format the version.
- // We don't supprt v1 of the protocol so this should be fine.
+ // We don't support v1 of the protocol so this should be fine.
let queryMsg = /^\?OTR.*?\?/.exec(query.readString())[0] + "\n";
// Avoid sending any numbers in the query message, because receiving
// software could misinterpret it as a protocol version.
// See https://bugzilla.mozilla.org/show_bug.cgi?id=1536108
let noNumbersName = conv.account.normalizedName.replace(/[0-9]/g, "#");
queryMsg += _strArgs("query-msg", { name: noNumbersName });
conv.sendMsg(queryMsg);
OTRLib.otrl_message_free(query);
--- a/common/src/viewSource.js
+++ b/common/src/viewSource.js
@@ -458,17 +458,17 @@ ViewSourceChrome.prototype = {
* change the selected character set.
*
* @param event
* The click event on a character set menuitem.
*/
onSetCharacterSet(event) {
if (event.target.hasAttribute("charset")) {
let charset = event.target.getAttribute("charset");
- // Replace generic Japanses with Shift_JIS which will also auto-detect
+ // Replace generic Japanese with Shift_JIS which will also auto-detect
// ISO-2022-JP and EUC-JP.
if (charset == "Japanese") {
charset = "Shift_JIS";
}
this.browser.docShell.charset = charset;
this.browser.reloadWithFlags(
Ci.nsIWebNavigation.LOAD_FLAGS_CHARSET_CHANGE
);
--- a/mail/components/customizableui/CustomizableUI.jsm
+++ b/mail/components/customizableui/CustomizableUI.jsm
@@ -2129,17 +2129,17 @@ var CustomizableUIInternal = {
let isWindowPrivate = PrivateBrowsingUtils.isWindowPrivate(window);
// We use a Set because there can be overlap between the widgets in
// gPalette and the items in the palette, especially after the first
// customization, since programmatically generated widgets will remain
// in the toolbox palette.
let widgets = new Set();
// It's possible that some widgets have been defined programmatically and
- // have not been overlayed into the palette. We can find those inside
+ // have not been overlaid into the palette. We can find those inside
// gPalette.
for (let [id, widget] of gPalette) {
if (!widget.currentArea) {
if (widget.showInPrivateBrowsing || !isWindowPrivate) {
widgets.add(id);
}
}
}
@@ -4417,17 +4417,17 @@ var CustomizableUI = {
continue;
}
for (let attr of attrs) {
let attrVal = menuChild.getAttribute(attr);
if (attrVal) {
subviewItem.setAttribute(attr, attrVal);
}
}
- // We do this after so the .subviewbutton class doesn't get overriden.
+ // We do this after so the .subviewbutton class doesn't get overridden.
if (menuChild.localName == "menuitem") {
subviewItem.classList.add("subviewbutton");
}
fragment.appendChild(subviewItem);
}
aSubview.appendChild(fragment);
},
--- a/mail/components/customizableui/CustomizeMode.jsm
+++ b/mail/components/customizableui/CustomizeMode.jsm
@@ -133,17 +133,17 @@ function CustomizeMode(aWindow) {
if (!content) {
this.window.MozXULElement.insertFTLIfNeeded("browser/customizeMode.ftl");
let container = this.$("customization-container");
container.replaceChild(
this.window.MozXULElement.parseXULToFragment(container.firstChild.data),
container.lastChild
);
}
- // There are two palettes - there's the palette that can be overlayed with
+ // There are two palettes - there's the palette that can be overlaid with
// toolbar items in browser.xhtml. This is invisible, and never seen by the
// user. Then there's the visible palette, which gets populated and displayed
// to the user when in customizing mode.
this.visiblePalette = this.$(kPaletteId);
this.pongArena = this.$("customization-pong-arena");
if (this._canDrawInTitlebar()) {
this._updateTitlebarCheckbox();
@@ -1359,17 +1359,17 @@ CustomizeMode.prototype = {
let win = this.window;
let gUIDensity = win.gUIDensity;
let currentDensity = gUIDensity.getCurrentDensity();
let panel = win.document.getElementById("customization-uidensity-menu");
Services.prefs.setIntPref(gUIDensity.uiDensityPref, mode);
// If the user is choosing a different UI density mode while
- // the mode is overriden to Touch, remove the override.
+ // the mode is overridden to Touch, remove the override.
if (currentDensity.overridden) {
Services.prefs.setBoolPref(gUIDensity.autoTouchModePref, false);
}
this._onUIChange();
panel.hidePopup();
},
--- a/mail/components/customizableui/PanelMultiView.jsm
+++ b/mail/components/customizableui/PanelMultiView.jsm
@@ -41,17 +41,17 @@
* -- Visible or invisible
*
* This indicates whether the view is visible in the document from a layout
* perspective, regardless of whether it is currently scrolled into view. In
* fact, all subviews are already visible before they start sliding in.
*
* Before scrolling into view, a view may become visible but be placed in a
* special off-screen area of the document where layout and measurements can
- * take place asyncronously.
+ * take place asynchronously.
*
* When navigating forward, an open view may become invisible but stay open
* after sliding out of view. The last known size of these views is still
* taken into account for determining the overall panel size.
*
* When navigating backwards, an open subview will first become invisible and
* then will be closed.
*
--- a/mail/components/enterprisepolicies/Policies.jsm
+++ b/mail/components/enterprisepolicies/Policies.jsm
@@ -530,17 +530,17 @@ function addAllowDenyPermissions(permiss
/**
* runOnce
*
* Helper function to run a callback only once per policy.
*
* @param {string} actionName
* A given name which will be used to track if this callback has run.
- * @param {Functon} callback
+ * @param {Function} callback
* The callback to run only once.
*/
// eslint-disable-next-line no-unused-vars
function runOnce(actionName, callback) {
let prefName = `browser.policies.runonce.${actionName}`;
if (Services.prefs.getBoolPref(prefName, false)) {
log.debug(
`Not running action ${actionName} again because it has already run.`
--- a/mail/components/enterprisepolicies/tests/browser/disable_app_update/browser_policy_disable_app_update.js
+++ b/mail/components/enterprisepolicies/tests/browser/disable_app_update/browser_policy_disable_app_update.js
@@ -42,17 +42,17 @@ add_task(async function test_update_pref
});
}
await new Promise(resolve => setTimeout(resolve));
let updateRadioGroup = prefsDocument.getElementById("updateRadioGroup");
is(
updateRadioGroup.hidden,
true,
- "Update choices should be diabled when app update is locked by policy"
+ "Update choices should be disabled when app update is locked by policy"
);
tabmail.closeTab(prefsTabMode.tabs[0]);
});
add_task(async function test_update_about_ui() {
let aboutDialog = await waitForAboutDialog();
let panelId = "policyDisabled";
--- a/mail/components/extensions/parent/ext-mail.js
+++ b/mail/components/extensions/parent/ext-mail.js
@@ -54,17 +54,17 @@ XPCOMUtils.defineLazyModuleGetters(this,
// points to a moz-extension:// page exposed via web_accessible_content
ExtensionContent.initExtensionContext = function(extension, window) {
let context = extension.getContext(window);
Schemas.exportLazyGetter(window, "messenger", () => context.chromeObj);
return initExtensionContext.apply(ExtensionContent, arguments);
};
- // This patches priviledged pages such as the background script
+ // This patches privileged pages such as the background script
ExtensionPageChild.initExtensionContext = function(extension, window) {
let retval = initPageChildExtensionContext.apply(
ExtensionPageChild,
arguments
);
let windowId = getInnerWindowID(window);
let context = ExtensionPageChild.extensionContexts.get(windowId);
--- a/mail/components/extensions/schemas/chrome_settings_overrides.json
+++ b/mail/components/extensions/schemas/chrome_settings_overrides.json
@@ -138,33 +138,33 @@
"type": "string",
"optional": true,
"enum": ["purpose", "pref"],
"description": "The type of param can be either \"purpose\" or \"pref\"."
},
"pref": {
"type": "string",
"optional": true,
- "description": "The preference to retreive the value from."
+ "description": "The preference to retrieve the value from."
},
"purpose": {
"type": "string",
"optional": true,
"enum": ["contextmenu", "searchbar", "homepage", "keyword", "newtab"],
"description": "The context that initiates a search, required if condition is \"purpose\"."
},
"value": {
"type": "string",
"optional": true,
"description": "A url parameter value.",
"preprocess": "localize"
}
}
},
- "description": "A list of optional search url parameters. This allows the additon of search url parameters based on how the search is performed in Thunderbird."
+ "description": "A list of optional search url parameters. This allows the addition of search url parameters based on how the search is performed in Thunderbird."
}
}
}
}
}
}
}
]
--- a/mail/extensions/mailviews/content/msgViewPickerOverlay.js
+++ b/mail/extensions/mailviews/content/msgViewPickerOverlay.js
@@ -202,17 +202,17 @@ function RefreshViewPopup(viewPopup) {
}
}
}
/**
* Refresh the contents of the custom views popup menu/panel.
* Used for example for appmenu/View/Messages/CustomViews panel.
*
- * @param {Element} parent Parent element that will recieve the menu items.
+ * @param {Element} parent Parent element that will receive the menu items.
* @param {string} [elementName] Type of menu items to create (e.g. "menuitem", "toolbarbutton").
* @param {string} [classes] Classes to set on the menu items.
*/
function RefreshCustomViewsPopup(parent, elementName = "menuitem", classes) {
if (!gMailViewList) {
gMailViewList = Cc["@mozilla.org/messenger/mailviewlist;1"].getService(
Ci.nsIMsgMailViewList
);
@@ -244,17 +244,17 @@ function RefreshCustomViewsPopup(parent,
parent.appendChild(item);
}
}
/**
* Refresh the contents of the tags popup menu/panel. For example, used for
* appmenu/View/Messages/Tags.
*
- * @param {Element} parent Parent element that will recieve the menu items.
+ * @param {Element} parent Parent element that will receive the menu items.
* @param {string} [elementName] Type of menu items to create (e.g. "menuitem", "toolbarbutton").
* @param {string} [classes] Classes to set on the menu items.
*/
function RefreshTagsPopup(parent, elementName = "menuitem", classes) {
// Remove all pre-existing menu items.
while (parent.hasChildNodes()) {
parent.lastChild.remove();
}
--- a/mail/test/mozmill/content-tabs/test-content-tab.js
+++ b/mail/test/mozmill/content-tabs/test-content-tab.js
@@ -161,17 +161,17 @@ function test_content_tab_context_menu()
);
wait_for_popup_to_open(mailContext);
assert_not_equals(mailContext.firstElementChild.label, "Click me!");
assert_element_not_visible("page-menu-separator");
close_popup(mc, new elementslib.Elem(mailContext));
}
/*
- // We don't have an UI to test openin content tabs twice anymore.
+ // We don't have an UI to test opening content tabs twice anymore.
function test_content_tab_open_same() {
let preCount = mc.tabmail.tabContainer.allTabs.length;
mc.click(new elementslib.Elem(mc.menus.helpMenu.whatsNew));
controller.sleep(0);
if (mc.tabmail.tabContainer.allTabs.length != preCount)
--- a/mail/test/mozmill/shared-modules/WindowHelpers.jsm
+++ b/mail/test/mozmill/shared-modules/WindowHelpers.jsm
@@ -1137,17 +1137,17 @@ var AugmentEverybodyWith = {
5000,
50
);
}
},
/**
* Click through the appmenu. Callers are expected to open the initial
- * appmenu panelview (e.g. by clicking the appmenu buttton). We wait for it
+ * appmenu panelview (e.g. by clicking the appmenu button). We wait for it
* to open if it is not open yet. Then we use a recursive style approach
* with a sequence of event listeners handling "ViewShown" events. The
* `navTargets` parameter specifies items to click to navigate through the
* menu. The optional `nonNavTarget` parameter specifies a final item to
* click to perform a command after navigating through the menu. If this
* argument is omitted, callers can interact with the last view panel that
* is returned. Callers will then need to close the appmenu when they are
* done with it.
--- a/mailnews/addrbook/content/map-list.js
+++ b/mailnews/addrbook/content/map-list.js
@@ -38,17 +38,17 @@
}
get mapURL() {
return this._createMapItURL();
}
/**
* Initializes the necessary address data from an addressbook card.
- * @param {nsIAbCard} card - the card to get the addess data from
+ * @param {nsIAbCard} card - the card to get the address data from
* @param {string} addPrefix - card property prefix: "Home" or "Work",
* to make the map use either HomeAddress
* or WorkAddress
*/
initMapAddressFromCard(card, addrPrefix) {
let mapItURLFormat = this._getMapURLPref();
let doNotShowMap = !mapItURLFormat || !addrPrefix || !card;
this._setWidgetDisabled(doNotShowMap);
--- a/mailnews/base/content/msgSynchronize.js
+++ b/mailnews/base/content/msgSynchronize.js
@@ -101,17 +101,17 @@ function selectOnLoad() {
gSynchronizeTree = document.getElementById("synchronizeTree");
SortSynchronizePane("folderNameCol", "?folderTreeNameSort");
}
function SortSynchronizePane(column, sortKey) {
var node = FindInWindow(window, column);
if (!node) {
- dump("Couldnt find sort column\n");
+ dump("Couldn't find sort column\n");
return;
}
node.setAttribute("sort", sortKey);
node.setAttribute("sortDirection", "natural");
var col = gSynchronizeTree.columns[column];
gSynchronizeTree.view.cycleHeader(col);
}
--- a/mailnews/base/util/nsMsgDBFolder.cpp
+++ b/mailnews/base/util/nsMsgDBFolder.cpp
@@ -86,17 +86,17 @@ static PRTime gtimeOfLastPurgeCheck; //
#define PREF_MAIL_PURGE_ASK "mail.purge.ask"
#define PREF_MAIL_WARN_FILTER_CHANGED "mail.warn_filter_changed"
const char *kUseServerRetentionProp = "useServerRetention";
NS_IMPL_ISUPPORTS(nsMsgFolderService, nsIMsgFolderService)
// This method serves the only purpose to re-initialize the
-// folder name strings when UI intialization is done.
+// folder name strings when UI initialization is done.
// XXX TODO: This can be removed when the localization system gets
// initialized in M-C code before, for example, the permission manager
// triggers folder creation during imap: URI creation.
// In fact, the entire class together with nsMsgDBFolder::FolderNamesReady()
// can be removed.
NS_IMETHODIMP nsMsgFolderService::InitializeFolderStrings() {
nsMsgDBFolder::initializeStrings();
nsMsgDBFolder::gInitializeStringsDone = true;
--- a/mailnews/base/util/nsMsgUtils.cpp
+++ b/mailnews/base/util/nsMsgUtils.cpp
@@ -1798,17 +1798,17 @@ static bool IsStreamUTF8(nsIInputStream
}
}
}
NS_MSG_BASE nsresult MsgDetectCharsetFromFile(nsIFile *aFile,
nsACString &aCharset) {
// We do the detection in this order:
// Check BOM.
- // If no BOM, run localized detection (Russian, Ukranian or Japanese).
+ // If no BOM, run localized detection (Russian, Ukrainian or Japanese).
// We need to run this first, since ISO-2022-JP is 7bit ASCII and would be
// detected as UTF-8. If ISO-2022-JP not detected, check for UTF-8. If no
// UTF-8, but detector detected something, use that, otherwise return an
// error.
aCharset.Truncate();
nsresult rv;
nsCOMPtr<nsIInputStream> inputStream;
@@ -1836,17 +1836,17 @@ NS_MSG_BASE nsresult MsgDetectCharsetFro
if (seekStream) seekStream->Seek(nsISeekableStream::NS_SEEK_SET, 0);
// Use detector.
nsCOMPtr<nsICharsetDetector> detector;
mozilla::UniquePtr<mozilla::JapaneseDetector> japaneseDetector;
nsAutoCString detectorName;
Preferences::GetLocalizedCString("intl.charset.detector", detectorName);
if (!detectorName.IsEmpty()) {
- // We recognize one of the two magic strings for Russian and Ukranian.
+ // We recognize one of the two magic strings for Russian and Ukrainian.
if (detectorName.EqualsLiteral("ruprob")) {
detector = new nsRUProbDetector();
} else if (detectorName.EqualsLiteral("ukprob")) {
detector = new nsUKProbDetector();
} else if (detectorName.EqualsLiteral("ja_parallel_state_machine")) {
japaneseDetector = mozilla::JapaneseDetector::Create(true);
}
}
--- a/mailnews/compose/content/askSendFormat.js
+++ b/mailnews/compose/content/askSendFormat.js
@@ -11,17 +11,17 @@ document.addEventListener("dialogaccept"
* {action: nsIMsgCompSendFormat.AskUser, convertible: nsIMsgCompConvertible.Yes}
*/
function Startup() {
gParam = window.arguments[0];
const msgCompSendFormat = Ci.nsIMsgCompSendFormat;
const msgCompConvertible = Ci.nsIMsgCompConvertible;
- // Select the node that need to be udpated.
+ // Select the node that needs to be updated.
let mailSendFormatExplanation = document.getElementById(
"mailSendFormatExplanation"
);
let icon = document.getElementById("convertDefault");
let bundle = document.getElementById("askSendFormatStringBundle");
let convertibleAltering = bundle.getString("convertibleAltering");
let convertibleNo = bundle.getString("convertibleNo");
--- a/mailnews/extensions/newsblog/content/FeedUtils.jsm
+++ b/mailnews/extensions/newsblog/content/FeedUtils.jsm
@@ -1422,17 +1422,17 @@ var FeedUtils = {
let exists = feedsFile.exists();
let ds = new JSONFile({ path: feedsFile.path });
ds.ensureDataReady();
if (!this[aServer.serverURI]) {
this[aServer.serverURI] = {};
}
this[aServer.serverURI].FeedsDS = ds;
if (!exists) {
- // No feeds.json, so we need to initalise.
+ // No feeds.json, so we need to initialise.
ds.data = [];
}
return ds;
},
/**
* Fetch an attribute for a subscribed feed.
*
--- a/mailnews/extensions/newsblog/test/unit/test_rdfmigration.js
+++ b/mailnews/extensions/newsblog/test/unit/test_rdfmigration.js
@@ -19,17 +19,17 @@ const { OS } = ChromeUtils.import("resou
async function migrationTest(testDataDir) {
// Set up an RSS account/server.
let account = FeedUtils.createRssAccount("rss_migration_test");
let rootFolder = account.incomingServer.rootMsgFolder.QueryInterface(
Ci.nsIMsgLocalMailFolder
);
// Note, we don't create any folders to hold downloaded feed items,
// that's OK here, because we're only migrating the config files, not
- // downloading feeds. The migration doesn't check destFolder existance.
+ // downloading feeds. The migration doesn't check destFolder existence.
let rootDir = rootFolder.filePath.path;
// Install legacy feeds.rdf/feeditems.rdf
for (let f of ["feeds.rdf", "feeditems.rdf"]) {
await OS.File.copy(OS.Path.join(testDataDir, f), OS.Path.join(rootDir, f));
}
// Perform the migration
--- a/mailnews/imap/src/nsImapServerResponseParser.cpp
+++ b/mailnews/imap/src/nsImapServerResponseParser.cpp
@@ -2666,17 +2666,17 @@ void nsImapServerResponseParser::UseCach
void nsImapServerResponseParser::ResetCapabilityFlag() {}
/*
literal ::= "{" number "}" CRLF *CHAR8
Number represents the number of CHAR8 octets
*/
// Processes a message body, header or message part fetch response. Typically
-// the full message, header or part are proccessed in one call (effectively, one
+// the full message, header or part are processed in one call (effectively, one
// chunk), and parameter `chunk` is false and `origin` (offset into the
// response) is 0. But under some conditions and larger messages, multiple calls
// will occur to process the message in multiple chunks and parameter `chunk`
// will be true and parameter `origin` will increase by the chunk size from
// initially 0 with each call. This function returns true if this is the last or
// only chunk. This signals the caller that the stream should be closed since
// the message response has been processed.
bool nsImapServerResponseParser::msg_fetch_literal(bool chunk, int32_t origin) {
--- a/mailnews/mime/jsmime/jsmime.js
+++ b/mailnews/mime/jsmime/jsmime.js
@@ -411,17 +411,17 @@
// Represents a non-delimiter token.
function Token(token) {
// Replace problematic characters so we don't get unexpected behavior
// down the line. These fall into a few categories:
// A) "Separator, space" (Zs),
// B) "Mark, Nonspacing" (Mn)
// C) "Other, Control" (Cc)
// D) "Other, Format" (Cf)
- // Unfortuantely, no support for the needed regexp Unicode property escapes
+ // Unfortunately, no support for the needed regexp Unicode property escapes
// in our engine. So we need to hand-roll it. Used the regexpu tool for
// that: https://mothereff.in/regexpu.
// This should be updated regularly, to take into account new additions
// to the unicode standard. Last updated July 2019.
// For a full list of categories, see http://unicode.org/Public//5.0.0/ucd/UCD.html.
// -- case A: /\p{Zs}/u
// https://www.fileformat.info/info/unicode/category/Zs/list.htm
--- a/mailnews/mime/src/comi18n.cpp
+++ b/mailnews/mime/src/comi18n.cpp
@@ -61,17 +61,17 @@ nsresult MIME_detect_charset(const char
nsACString &aCharset) {
nsresult rv;
nsCOMPtr<nsICharsetDetector> detector;
mozilla::UniquePtr<mozilla::JapaneseDetector> japaneseDetector;
nsAutoCString detectorName;
Preferences::GetLocalizedCString("intl.charset.detector", detectorName);
if (!detectorName.IsEmpty()) {
- // We recognize one of the two magic strings for Russian and Ukranian.
+ // We recognize one of the two magic strings for Russian and Ukrainian.
if (detectorName.EqualsLiteral("ruprob")) {
detector = new nsRUProbDetector();
} else if (detectorName.EqualsLiteral("ukprob")) {
detector = new nsUKProbDetector();
} else if (detectorName.EqualsLiteral("ja_parallel_state_machine")) {
japaneseDetector = mozilla::JapaneseDetector::Create(true);
}
}
--- a/mailnews/mime/test/unit/test_smime_decrypt.js
+++ b/mailnews/mime/test/unit/test_smime_decrypt.js
@@ -203,17 +203,17 @@ let smimeHeaderSink = {
* - sig: If true, we expect a report to signedStatus() that message
* is signed.
* - sig_good: If true, we expect that the reported signature has a
* good status.
* If false, we expect a report of bad status.
* Because of the sequential processing caused by nested
* messages, additional calls to signedStatus() might
* override an earlier decision.
- * (An earlier bad status report cannot be overriden by a
+ * (An earlier bad status report cannot be overridden by a
* later report of a good status.)
* - extra: If set to a number > 0, we expect that nested processing of
* MIME parts will trigger the given number of additional
* status calls.
* (default is 0.)
* - dave: If true, we expect that the outermost message was done by
* Dave's certificate.
* (default is false, which means we expect Alice's cert.)
--- a/taskcluster/comm_taskgraph/manifests/thunderbird_candidates.yml
+++ b/taskcluster/comm_taskgraph/manifests/thunderbird_candidates.yml
@@ -5,17 +5,17 @@
# This file contains exhaustive information about all the release artifacs that
# are needed within a type of release.
#
# Structure
# --------
# `s3_bucket_paths` -- prefix to be used per product to correctly access our S3 buckets
# `default_locales` -- list of locales to be used when composing upstream artifacts or the list of
# destinations. If given an empty locale, it uses these locales instead.
-# `tasktype_map` -- mapping between task reference and task type, particularly usefule when
+# `tasktype_map` -- mapping between task reference and task type, particularly useful when
# composing the upstreamArtifacts for scriptworker.
# `platform_names` -- various platform mappings used in reckoning artifacts or other paths
# `default` -- a default entry, which the mappings extend and override in such a way that
# final path full-destinations will be a concatenation of the following:
# `s3_bucket_paths`, `destinations`, `locale_prefix`, `pretty_name`
# `from` -- specifies the dependency(ies) from which to expect the particular artifact
# `all_locales` -- boolean argument to specify whether that particular artifact is to be expected
# for all locales or just the default one
--- a/taskcluster/comm_taskgraph/manifests/thunderbird_candidates_checksums.yml
+++ b/taskcluster/comm_taskgraph/manifests/thunderbird_candidates_checksums.yml
@@ -5,17 +5,17 @@
# This file contains exhaustive information about all the release artifacs that
# are needed within a type of release.
#
# Structure
# --------
# `s3_bucket_paths` -- prefix to be used per product to correctly access our S3 buckets
# `default_locales` -- list of locales to be used when composing upstream artifacts or the list of
# destinations. If given an empty locale, it uses these locales instead.
-# `tasktype_map` -- mapping between task reference and task type, particularly usefule when
+# `tasktype_map` -- mapping between task reference and task type, particularly useful when
# composing the upstreamArtifacts for scriptworker.
# `platform_names` -- various platform mappings used in reckoning artifacts or other paths
# `default` -- a default entry, which the mappings extend and override in such a way that
# final path full-destinations will be a concatenation of the following:
# `s3_bucket_paths`, `destinations`, `locale_prefix`, `pretty_name`
# `from` -- specifies the dependency(ies) from which to expect the particular artifact
# `all_locales` -- boolean argument to specify whether that particular artifact is to be expected
# for all locales or just the default one
--- a/taskcluster/comm_taskgraph/manifests/thunderbird_nightly.yml
+++ b/taskcluster/comm_taskgraph/manifests/thunderbird_nightly.yml
@@ -5,17 +5,17 @@
# This file contains exhaustive information about all the release artifacs that
# are needed within a type of release.
#
# Structure
# --------
# `s3_bucket_paths` -- prefix to be used per product to correctly access our S3 buckets
# `default_locales` -- list of locales to be used when composing upstream artifacts or the list of
# destinations. If given an empty locale, it uses these locales instead.
-# `tasktype_map` -- mapping between task reference and task type, particularly usefule when
+# `tasktype_map` -- mapping between task reference and task type, particularly useful when
# composing the upstreamArtifacts for scriptworker.
# `platform_names` -- various platform mappings used in reckoning artifacts or other paths
# `default` -- a default entry, which the mappings extend and override in such a way that
# final path full-destinations will be a concatenation of the following:
# `s3_bucket_paths`, `destinations`, `locale_prefix`, `pretty_name`
# `from` -- specifies the dependency(ies) from which to expect the particular artifact
# `all_locales` -- boolean argument to specify whether that particular artifact is to be expected
# for all locales or just the default one