Bug 1451215: Run codespell on code. r?aswan draft
authorKris Maglione <maglione.k@gmail.com>
Tue, 03 Apr 2018 22:22:07 -0700
changeset 777058 d18667342aac8d898fdd05adca1cd7e698e03808
parent 777057 a5bfd78a95949b487fc3e875cf01a8c2b5d38c7e
push id105065
push usermaglione.k@gmail.com
push dateWed, 04 Apr 2018 05:22:24 +0000
reviewersaswan
bugs1451215
milestone61.0a1
Bug 1451215: Run codespell on code. r?aswan MozReview-Commit-ID: HIilZTKcQUY
browser/components/extensions/parent/ext-devtools-inspectedWindow.js
browser/components/extensions/parent/ext-devtools-panels.js
browser/components/extensions/parent/ext-find.js
browser/components/extensions/test/xpcshell/test_ext_chrome_settings_overrides_update.js
browser/components/extensions/test/xpcshell/test_ext_url_overrides_newtab.js
browser/components/extensions/test/xpcshell/test_ext_url_overrides_newtab_update.js
toolkit/components/extensions/ExtensionCommon.jsm
toolkit/components/extensions/ExtensionParent.jsm
toolkit/components/extensions/ExtensionPreferencesManager.jsm
toolkit/components/extensions/ExtensionStorageSync.jsm
toolkit/components/extensions/ExtensionUtils.jsm
toolkit/components/extensions/Schemas.jsm
toolkit/components/extensions/extension-process-script.js
toolkit/components/extensions/parent/ext-downloads.js
toolkit/components/extensions/parent/ext-permissions.js
toolkit/components/extensions/parent/ext-tabs-base.js
toolkit/components/extensions/parent/ext-webNavigation.js
toolkit/components/extensions/parent/ext-webRequest.js
toolkit/components/extensions/test/mochitest/test_chrome_ext_webrequest_background_events.html
toolkit/components/extensions/test/mochitest/test_ext_webnavigation_filters.html
toolkit/components/extensions/test/mochitest/test_ext_webrequest_background_events.html
toolkit/components/extensions/test/mochitest/test_ext_webrequest_frameId.html
toolkit/components/extensions/test/xpcshell/test_ext_dns.js
toolkit/components/extensions/test/xpcshell/test_ext_downloads_misc.js
toolkit/components/extensions/test/xpcshell/test_ext_downloads_search.js
toolkit/components/extensions/test/xpcshell/test_ext_native_messaging_unresponsive.js
toolkit/components/extensions/test/xpcshell/test_ext_permissions.js
toolkit/components/extensions/test/xpcshell/test_ext_webRequest_set_cookie.js
toolkit/mozapps/extensions/AddonManager.jsm
toolkit/mozapps/extensions/internal/AddonTestUtils.jsm
toolkit/mozapps/extensions/internal/AddonUpdateChecker.jsm
toolkit/mozapps/extensions/internal/XPIInstall.jsm
toolkit/mozapps/extensions/internal/XPIProvider.jsm
toolkit/mozapps/extensions/internal/XPIProviderUtils.js
toolkit/mozapps/extensions/test/xpcshell/test_bug393285.js
toolkit/mozapps/extensions/test/xpcshell/test_bug570173.js
toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_prefs.js
toolkit/mozapps/extensions/test/xpcshell/test_json_updatecheck.js
toolkit/mozapps/extensions/test/xpcshell/test_legacy.js
toolkit/mozapps/extensions/test/xpcshell/test_overrideblocklist.js
toolkit/mozapps/extensions/test/xpcshell/test_permissions_prefs.js
toolkit/mozapps/extensions/test/xpcshell/test_strictcompatibility.js
toolkit/mozapps/extensions/test/xpcshell/test_webextension_paths.js
--- a/browser/components/extensions/parent/ext-devtools-inspectedWindow.js
+++ b/browser/components/extensions/parent/ext-devtools-inspectedWindow.js
@@ -6,17 +6,17 @@ var {
   SpreadArgs,
 } = ExtensionCommon;
 
 this.devtools_inspectedWindow = class extends ExtensionAPI {
   getAPI(context) {
     // Lazily retrieved inspectedWindow actor front per child context.
     let waitForInspectedWindowFront;
 
-    // TODO - Bug 1448878: retrive a more detailed callerInfo object,
+    // TODO - Bug 1448878: retrieve a more detailed callerInfo object,
     // like the filename and lineNumber of the actual extension called
     // in the child process.
     const callerInfo = {
       addonId: context.extension.id,
       url: context.extension.baseURI.spec,
     };
 
     return {
--- a/browser/components/extensions/parent/ext-devtools-panels.js
+++ b/browser/components/extensions/parent/ext-devtools-panels.js
@@ -500,17 +500,17 @@ class ParentDevToolsInspectorSidebar {
 const sidebarsById = new Map();
 
 this.devtools_panels = class extends ExtensionAPI {
   getAPI(context) {
     // Lazily retrieved inspectedWindow actor front per child context
     // (used by Sidebar.setExpression).
     let waitForInspectedWindowFront;
 
-    // TODO - Bug 1448878: retrive a more detailed callerInfo object,
+    // TODO - Bug 1448878: retrieve a more detailed callerInfo object,
     // like the filename and lineNumber of the actual extension called
     // in the child process.
     const callerInfo = {
       addonId: context.extension.id,
       url: context.extension.baseURI.spec,
     };
 
     // An incremental "per context" id used in the generated devtools panel id.
--- a/browser/components/extensions/parent/ext-find.js
+++ b/browser/components/extensions/parent/ext-find.js
@@ -93,17 +93,17 @@ this.find = class extends ExtensionAPI {
          */
         highlightResults(params) {
           params = params || {};
           return runFindOperation(params, "HighlightResults");
         },
 
         /**
          * browser.find.removeHighlighting
-         * Removes all hightlighting from previous search.
+         * Removes all highlighting from previous search.
          *
          * @param {number} tabId optional
          *                 Tab to clear highlighting in.  Defaults to the active tab.
          */
         removeHighlighting(tabId) {
           let tab = tabId ? tabTracker.getTab(tabId) : tabTracker.activeTab;
           tab.linkedBrowser.messageManager.sendAsyncMessage("ext-Finder:clearHighlighting");
         },
--- a/browser/components/extensions/test/xpcshell/test_ext_chrome_settings_overrides_update.js
+++ b/browser/components/extensions/test/xpcshell/test_ext_chrome_settings_overrides_update.js
@@ -68,20 +68,20 @@ add_task(async function test_overrides_u
   let defaultEngineName = Services.search.currentEngine.name;
 
   let prefPromise = promisePrefChanged(HOMEPAGE_URI);
   await extension.startup();
   await prefPromise;
 
   equal(extension.version, "1.0", "The installed addon has the expected version.");
   ok(getHomePageURL().endsWith(HOMEPAGE_URI),
-     "Home page url is overriden by the extension.");
+     "Home page url is overridden by the extension.");
   equal(Services.search.currentEngine.name,
         "DuckDuckGo",
-        "Default engine is overriden by the extension");
+        "Default engine is overridden by the extension");
 
   extensionInfo.manifest = {
     "version": "2.0",
     "applications": {
       "gecko": {
         "id": EXTENSION_ID,
       },
     },
--- a/browser/components/extensions/test/xpcshell/test_ext_url_overrides_newtab.js
+++ b/browser/components/extensions/test/xpcshell/test_ext_url_overrides_newtab.js
@@ -106,17 +106,17 @@ add_task(async function test_multiple_ex
   await ext1.startup();
   equal(aboutNewTabService.newTabURL, DEFAULT_NEW_TAB_URL,
         "newTabURL is still set to the default.");
 
   await checkNewTabPageOverride(ext1, aboutNewTabService.newTabURL, NOT_CONTROLLABLE);
 
   await ext2.startup();
   ok(aboutNewTabService.newTabURL.endsWith(NEWTAB_URI_2),
-     "newTabURL is overriden by the second extension.");
+     "newTabURL is overridden by the second extension.");
   await checkNewTabPageOverride(ext1, NEWTAB_URI_2, CONTROLLED_BY_OTHER);
 
   // Verify that calling set and clear do nothing.
   ext2.sendMessage("trySet");
   await ext2.awaitMessage("newTabPageSet");
   await checkNewTabPageOverride(ext1, NEWTAB_URI_2, CONTROLLED_BY_OTHER);
 
   ext2.sendMessage("tryClear");
@@ -132,48 +132,48 @@ add_task(async function test_multiple_ex
         "newTabURL url is reset to the default after second extension is disabled.");
   await checkNewTabPageOverride(ext1, aboutNewTabService.newTabURL, NOT_CONTROLLABLE);
 
   // Re-enable the second extension.
   let enabledPromise = awaitEvent("ready");
   addon.userDisabled = false;
   await enabledPromise;
   ok(aboutNewTabService.newTabURL.endsWith(NEWTAB_URI_2),
-     "newTabURL is overriden by the second extension.");
+     "newTabURL is overridden by the second extension.");
   await checkNewTabPageOverride(ext2, NEWTAB_URI_2, CONTROLLED_BY_THIS);
 
   await ext1.unload();
   ok(aboutNewTabService.newTabURL.endsWith(NEWTAB_URI_2),
-     "newTabURL is still overriden by the second extension.");
+     "newTabURL is still overridden by the second extension.");
   await checkNewTabPageOverride(ext2, NEWTAB_URI_2, CONTROLLED_BY_THIS);
 
   await ext3.startup();
   ok(aboutNewTabService.newTabURL.endsWith(NEWTAB_URI_3),
-     "newTabURL is overriden by the third extension.");
+     "newTabURL is overridden by the third extension.");
   await checkNewTabPageOverride(ext2, NEWTAB_URI_3, CONTROLLED_BY_OTHER);
 
   // Disable the second extension.
   disabledPromise = awaitEvent("shutdown");
   addon.userDisabled = true;
   await disabledPromise;
   ok(aboutNewTabService.newTabURL.endsWith(NEWTAB_URI_3),
-     "newTabURL is still overriden by the third extension.");
+     "newTabURL is still overridden by the third extension.");
   await checkNewTabPageOverride(ext3, NEWTAB_URI_3, CONTROLLED_BY_THIS);
 
   // Re-enable the second extension.
   enabledPromise = awaitEvent("ready");
   addon.userDisabled = false;
   await enabledPromise;
   ok(aboutNewTabService.newTabURL.endsWith(NEWTAB_URI_3),
-     "newTabURL is still overriden by the third extension.");
+     "newTabURL is still overridden by the third extension.");
   await checkNewTabPageOverride(ext3, NEWTAB_URI_3, CONTROLLED_BY_THIS);
 
   await ext3.unload();
   ok(aboutNewTabService.newTabURL.endsWith(NEWTAB_URI_2),
-     "newTabURL reverts to being overriden by the second extension.");
+     "newTabURL reverts to being overridden by the second extension.");
   await checkNewTabPageOverride(ext2, NEWTAB_URI_2, CONTROLLED_BY_THIS);
 
   await ext2.unload();
   equal(aboutNewTabService.newTabURL, DEFAULT_NEW_TAB_URL,
         "newTabURL url is reset to the default.");
 
   await promiseShutdownManager();
 });
--- a/browser/components/extensions/test/xpcshell/test_ext_url_overrides_newtab_update.js
+++ b/browser/components/extensions/test/xpcshell/test_ext_url_overrides_newtab_update.js
@@ -92,17 +92,17 @@ add_task(async function test_url_overrid
   let defaultNewTabURL = aboutNewTabService.newTabURL;
   equal(aboutNewTabService.newTabURL, defaultNewTabURL,
         `Default newtab url is ${defaultNewTabURL}.`);
 
   await extension.startup();
 
   equal(extension.version, "1.0", "The installed addon has the expected version.");
   ok(aboutNewTabService.newTabURL.endsWith(NEWTAB_URI),
-     "Newtab url is overriden by the extension.");
+     "Newtab url is overridden by the extension.");
 
   let update = await promiseFindAddonUpdates(extension.addon);
   let install = update.updateAvailable;
 
   await promiseCompleteAllInstalls([install]);
 
   await extension.awaitStartup();
 
--- a/toolkit/components/extensions/ExtensionCommon.jsm
+++ b/toolkit/components/extensions/ExtensionCommon.jsm
@@ -1758,17 +1758,17 @@ defineLazyGetter(LocaleData.prototype, "
  * to register the listener. `register` should return an
  * unregister function that will unregister the listener.
  * @constructor
  *
  * @param {BaseContext} context
  *        An object representing the extension instance using this event.
  * @param {string} name
  *        A name used only for debugging.
- * @param {functon} register
+ * @param {function} register
  *        A function called whenever a new listener is added.
  */
 function EventManager(context, name, register) {
   this.context = context;
   this.name = name;
   this.register = register;
   this.unregister = new Map();
   this.inputHandling = false;
--- a/toolkit/components/extensions/ExtensionParent.jsm
+++ b/toolkit/components/extensions/ExtensionParent.jsm
@@ -1433,17 +1433,17 @@ let IconDetails = {
   convertImageURLToDataURL(imageURL, contentWindow, browserWindow, size = 18) {
     return new Promise((resolve, reject) => {
       let image = new contentWindow.Image();
       image.onload = function() {
         let canvas = contentWindow.document.createElement("canvas");
         let ctx = canvas.getContext("2d");
         let dSize = size * browserWindow.devicePixelRatio;
 
-        // Scales the image while maintaing width to height ratio.
+        // Scales the image while maintaining width to height ratio.
         // If the width and height differ, the image is centered using the
         // smaller of the two dimensions.
         let dWidth, dHeight, dx, dy;
         if (this.width > this.height) {
           dWidth = dSize;
           dHeight = image.height * (dSize / image.width);
           dx = 0;
           dy = (dSize - dHeight) / 2;
--- a/toolkit/components/extensions/ExtensionPreferencesManager.jsm
+++ b/toolkit/components/extensions/ExtensionPreferencesManager.jsm
@@ -257,17 +257,17 @@ this.ExtensionPreferencesManager = {
     for (let name of settings) {
       disablePromises.push(this.disableSetting(id, name));
     }
     await Promise.all(disablePromises);
   },
 
   /**
    * Enables all disabled settings for an extension. This can be called when
-   * an extension has finsihed updating or is being re-enabled, for example.
+   * an extension has finished updating or is being re-enabled, for example.
    *
    * @param {string} id
    *        The id of the extension for which all settings are being enabled.
    */
   async enableAll(id) {
     await ExtensionSettingsStore.initialize();
     let settings = ExtensionSettingsStore.getAllForExtension(id, STORE_TYPE);
     let enablePromises = [];
--- a/toolkit/components/extensions/ExtensionStorageSync.jsm
+++ b/toolkit/components/extensions/ExtensionStorageSync.jsm
@@ -341,17 +341,17 @@ async function storageSyncInit() {
       Cu.reportError(e);
       storageSyncInit.promise = undefined;
       throw e;
     });
   }
   return storageSyncInit.promise;
 }
 
-// Kinto record IDs have two condtions:
+// Kinto record IDs have two conditions:
 //
 // - They must contain only ASCII alphanumerics plus - and _. To fix
 // this, we encode all non-letters using _C_, where C is the
 // percent-encoded character, so space becomes _20_
 // and underscore becomes _5F_.
 //
 // - They must start with an ASCII letter. To ensure this, we prefix
 // all keys with "key-".
@@ -1038,17 +1038,17 @@ class ExtensionStorageSync {
           // before this client did a sync (and got the new extension
           // and tried to sync the keyring again). Just to be safe,
           // let's signal that something went wrong and we should wipe
           // the bucket.
           throw new ServerKeyringDeleted();
         }
 
         if (keyResolution.accepted.uuid != cryptoKeyRecord.uuid) {
-          log.info(`Detected a new UUID (${keyResolution.accepted.uuid}, was ${cryptoKeyRecord.uuid}). Reseting sync status for everything.`);
+          log.info(`Detected a new UUID (${keyResolution.accepted.uuid}, was ${cryptoKeyRecord.uuid}). Resetting sync status for everything.`);
           await this.cryptoCollection.resetSyncStatus();
 
           // Server version is now correct. Return that result.
           return result;
         }
       }
       // No conflicts, or conflict was just someone else adding keys.
       return result;
--- a/toolkit/components/extensions/ExtensionUtils.jsm
+++ b/toolkit/components/extensions/ExtensionUtils.jsm
@@ -495,17 +495,17 @@ class MessageManagerProxy {
   }
 
   /**
    * Returns true if the given target is the same as, or owns, the given
    * message manager.
    *
    * @param {nsIMessageSender|MessageManagerProxy|Element} target
    *        The message manager, MessageManagerProxy, or <browser>
-   *        element agaisnt which to match.
+   *        element against which to match.
    * @param {nsIMessageSender} messageManager
    *        The message manager against which to match `target`.
    *
    * @returns {boolean}
    *        True if `messageManager` is the same object as `target`, or
    *        `target` is a MessageManagerProxy or <browser> element that
    *        is tied to it.
    */
--- a/toolkit/components/extensions/Schemas.jsm
+++ b/toolkit/components/extensions/Schemas.jsm
@@ -2571,17 +2571,17 @@ class Namespace extends Map {
   extendType(type) {
     let targetType = this.get(type.$extend);
 
     // Only allow extending object and choices types for now.
     if (targetType instanceof ObjectType) {
       type.type = "object";
     } else if (DEBUG) {
       if (!targetType) {
-        throw new Error(`Internal error: Attempt to extend a nonexistant type ${type.$extend}`);
+        throw new Error(`Internal error: Attempt to extend a nonexistent type ${type.$extend}`);
       } else if (!(targetType instanceof ChoiceType)) {
         throw new Error(`Internal error: Attempt to extend a non-extensible type ${type.$extend}`);
       }
     }
 
     let parsed = this.root.parseSchema(type, this.path, ["$extend"]);
 
     if (DEBUG && parsed.constructor !== targetType.constructor) {
--- a/toolkit/components/extensions/extension-process-script.js
+++ b/toolkit/components/extensions/extension-process-script.js
@@ -341,17 +341,17 @@ ExtensionManager = {
         backgroundScripts: (extension.manifest.background &&
                             extension.manifest.background.scripts),
 
         contentScripts: extension.contentScripts.map(parseScriptOptions),
       });
 
       policy.debugName = `${JSON.stringify(policy.name)} (ID: ${policy.id}, ${policy.getURL()})`;
 
-      // Register any existent dinamically registered content script for the extension
+      // Register any existent dynamically registered content script for the extension
       // when a content process is started for the first time (which also cover
       // a content process that crashed and it has been recreated).
       const registeredContentScripts = this.registeredContentScripts.get(policy);
 
       if (extension.registeredContentScripts) {
         for (let [scriptId, options] of extension.registeredContentScripts) {
           const parsedOptions = parseScriptOptions(options);
           const script = new WebExtensionContentScript(policy, parsedOptions);
--- a/toolkit/components/extensions/parent/ext-downloads.js
+++ b/toolkit/components/extensions/parent/ext-downloads.js
@@ -143,17 +143,17 @@ class DownloadItem {
   _storePrechange() {
     for (let field of DOWNLOAD_ITEM_CHANGE_FIELDS) {
       this.prechange[field] = this[field];
     }
   }
 }
 
 
-// DownloadMap maps back and forth betwen the numeric identifiers used in
+// DownloadMap maps back and forth between the numeric identifiers used in
 // the downloads WebExtension API and a Download object from the Downloads jsm.
 // TODO Bug 1247794: make id and extension info persistent
 const DownloadMap = new class extends EventEmitter {
   constructor() {
     super();
 
     this.currentId = 0;
     this.loadPromise = null;
--- a/toolkit/components/extensions/parent/ext-permissions.js
+++ b/toolkit/components/extensions/parent/ext-permissions.js
@@ -54,17 +54,17 @@ this.permissions = class extends Extensi
               };
               Services.obs.notifyObservers(subject, "webextension-optional-permission-prompt");
             });
             if (!allow) {
               return false;
             }
           }
 
-          // Unfortunatelly, we treat <all_urls> as an API permission as well.
+          // Unfortunately, we treat <all_urls> as an API permission as well.
           if (origins.includes("<all_urls>")) {
             perms.permissions.push("<all_urls>");
           }
 
           await ExtensionPermissions.add(context.extension, perms);
           return true;
         },
 
--- a/toolkit/components/extensions/parent/ext-tabs-base.js
+++ b/toolkit/components/extensions/parent/ext-tabs-base.js
@@ -70,17 +70,17 @@ class TabBase {
    * this tab. The tab's current innerWindowID is automatically added to the
    * recipient filter for the message, and is used to ensure that the message is
    * not processed if the content process navigates to a different content page
    * before the message is received.
    *
    * @param {BaseContext} context
    *        The context through which to send the message.
    * @param {string} messageName
-   *        The name of the messge to send.
+   *        The name of the message to send.
    * @param {object} [data = {}]
    *        Arbitrary, structured-clonable message data to send.
    * @param {object} [options]
    *        An options object, as accepted by BaseContext.sendMessage.
    *
    * @returns {Promise}
    */
   sendMessage(context, messageName, data = {}, options = null) {
@@ -562,17 +562,17 @@ class TabBase {
     }
 
     return true;
   }
 
   /**
    * Converts this tab object to a JSON-compatible object containing the values
    * of its properties which the extension is permitted to access, in the format
-   * requried to be returned by WebExtension APIs.
+   * required to be returned by WebExtension APIs.
    *
    * @param {Tab} [fallbackTab]
    *        A tab to retrieve geometry data from if the lazy geometry data for
    *        this tab hasn't been initialized yet.
    * @returns {object}
    */
   convert(fallbackTab = null) {
     let result = {
@@ -819,17 +819,17 @@ class WindowBase {
       return "popup";
     }
 
     return "normal";
   }
 
   /**
    * Converts this window object to a JSON-compatible object which may be
-   * returned to an extension, in the format requried to be returned by
+   * returned to an extension, in the format required to be returned by
    * WebExtension APIs.
    *
    * @param {object} [getInfo]
    *        An optional object, the properties of which determine what data is
    *        available on the result object.
    * @param {boolean} [getInfo.populate]
    *        Of true, the result object will contain a `tabs` property,
    *        containing an array of converted Tab objects, one for each tab in
@@ -1129,17 +1129,17 @@ Object.assign(WindowBase, {WINDOW_ID_NON
  *        The ID of the tab being removed.
  * @property {integer} windowId
  *        The ID of the window from which the tab is being removed.
  * @property {boolean} isWindowClosing
  *        True if the tab is being removed because the window is closing.
  */
 
 /**
- * An object containg basic, extension-independent information about the window
+ * An object containing basic, extension-independent information about the window
  * and tab that a XUL <browser> belongs to.
  *
  * @typedef {Object} BrowserData
  * @property {integer} tabId
  *        The numeric ID of the tab that a <browser> belongs to, or -1 if it
  *        does not belong to a tab.
  * @property {integer} windowId
  *        The numeric ID of the browser window that a <browser> belongs to, or -1
@@ -1556,17 +1556,17 @@ class WindowTrackerBase extends EventEmi
         }
       }
     } else if (topic === "domwindowopened") {
       window.addEventListener("load", this);
     }
   }
 
   /**
-   * Add an event listener to be called whenever the given DOM event is recieved
+   * Add an event listener to be called whenever the given DOM event is received
    * at the top level of any browser window.
    *
    * @param {string} type
    *        The type of event to listen for. May be any valid DOM event name, or
    *        one of the following special cases:
    *
    *        - "progress": Adds a tab progress listener to every browser window.
    *        - "status": Adds a StatusListener to every tab of every browser
@@ -1792,17 +1792,17 @@ class TabManagerBase {
    *        The wrapper for this tab.
    */
   getWrapper(nativeTab) {
     return this._tabs.get(nativeTab);
   }
 
   /**
    * Converts the given native tab to a JSON-compatible object, in the format
-   * requried to be returned by WebExtension APIs, which may be safely passed to
+   * required to be returned by WebExtension APIs, which may be safely passed to
    * extension code.
    *
    * @param {NativeTab} nativeTab
    *        The native tab to convert.
    * @param {NativeTab} [fallbackTab]
    *        A tab to retrieve geometry data from if the lazy geometry data for
    *        this tab hasn't been initialized yet.
    *
@@ -1898,17 +1898,17 @@ class WindowManagerBase {
   constructor(extension) {
     this.extension = extension;
 
     this._windows = new DefaultWeakMap(window => this.wrapWindow(window));
   }
 
   /**
    * Converts the given browser window to a JSON-compatible object, in the
-   * format requried to be returned by WebExtension APIs, which may be safely
+   * format required to be returned by WebExtension APIs, which may be safely
    * passed to extension code.
    *
    * @param {DOMWindow} window
    *        The browser window to convert.
    * @param {*} args
    *        Additional arguments to be passed to {@link WindowBase#convert}.
    *
    * @returns {Object}
--- a/toolkit/components/extensions/parent/ext-webNavigation.js
+++ b/toolkit/components/extensions/parent/ext-webNavigation.js
@@ -1,11 +1,11 @@
 "use strict";
 
-// This file expectes tabTracker to be defined in the global scope (e.g.
+// This file expects tabTracker to be defined in the global scope (e.g.
 // by ext-utils.js).
 /* global tabTracker */
 
 ChromeUtils.defineModuleGetter(this, "MatchURLFilters",
                                "resource://gre/modules/MatchURLFilters.jsm");
 ChromeUtils.defineModuleGetter(this, "WebNavigation",
                                "resource://gre/modules/WebNavigation.jsm");
 
--- a/toolkit/components/extensions/parent/ext-webRequest.js
+++ b/toolkit/components/extensions/parent/ext-webRequest.js
@@ -1,11 +1,11 @@
 "use strict";
 
-// This file expectes tabTracker to be defined in the global scope (e.g.
+// This file expects tabTracker to be defined in the global scope (e.g.
 // by ext-utils.js).
 /* global tabTracker */
 
 ChromeUtils.defineModuleGetter(this, "WebRequest",
                                "resource://gre/modules/WebRequest.jsm");
 
 // EventManager-like class specifically for WebRequest. Inherits from
 // EventManager. Takes care of converting |details| parameter
--- a/toolkit/components/extensions/test/mochitest/test_chrome_ext_webrequest_background_events.html
+++ b/toolkit/components/extensions/test/mochitest/test_chrome_ext_webrequest_background_events.html
@@ -37,17 +37,17 @@ let testExtension = {
       "onHeadersReceived",
       "onResponseStarted",
       "onCompleted",
     ];
 
     function listener(name, details) {
       // If we get anything, we failed.  Removing the system principal check
       // in ext-webrequest triggers this failure.
-      browser.test.fail(`recieved ${name}`);
+      browser.test.fail(`received ${name}`);
     }
 
     for (let name of eventNames) {
       browser.webRequest[name].addListener(
         listener.bind(null, name),
         {urls: ["https://example.com/*"]}
       );
     }
--- a/toolkit/components/extensions/test/mochitest/test_ext_webnavigation_filters.html
+++ b/toolkit/components/extensions/test/mochitest/test_ext_webnavigation_filters.html
@@ -99,23 +99,23 @@ add_task(async function test_webnav_unre
           okFilter: [{ports: [80, 22, 443]}],
           failFilter: [{ports: [81, 82, 83]}],
         },
         {
           okFilter: [{ports: [22, 443, [10, 80]]}],
           failFilter: [{ports: [22, 23, [81, 100]]}],
         },
         // multiple criteria in a single filter:
-        // if one of the critera is not verified, the event should not be received.
+        // if one of the criteria is not verified, the event should not be received.
         {
           okFilter: [{schemes: ["http"], ports: [80, 22, 443]}],
           failFilter: [{schemes: ["http"], ports: [81, 82, 83]}],
         },
         // multiple urlFilters on the same listener
-        // if at least one of the critera is verified, the event should be received.
+        // if at least one of the criteria is verified, the event should be received.
         {
           okFilter: [{schemes: ["https"]}, {ports: [80, 22, 443]}],
           failFilter: [{schemes: ["https"]}, {ports: [81, 82, 83]}],
         },
       ],
     },
     {
       url: "http://example.net/browser?param=1#ref",
--- a/toolkit/components/extensions/test/mochitest/test_ext_webrequest_background_events.html
+++ b/toolkit/components/extensions/test/mochitest/test_ext_webrequest_background_events.html
@@ -32,17 +32,17 @@ add_task(async function test_webRequest_
         "onSendHeaders",
         "onHeadersReceived",
         "onResponseStarted",
         "onCompleted",
         "onErrorOccurred",
       ]);
 
       function listener(name, details) {
-        browser.test.assertTrue(eventNames.has(name), `recieved ${name}`);
+        browser.test.assertTrue(eventNames.has(name), `received ${name}`);
         eventNames.delete(name);
         if (name == "onCompleted") {
           eventNames.delete("onErrorOccurred");
         } else if (name == "onErrorOccurred") {
           eventNames.delete("onCompleted");
         }
         if (eventNames.size == 0) {
           browser.test.sendMessage("done");
@@ -80,37 +80,37 @@ add_task(async function test_webRequest_
         "onBeforeSendHeaders",
         "onSendHeaders",
         "onHeadersReceived",
         "onResponseStarted",
         "onCompleted",
       ]);
 
       function listener(name, details) {
-        browser.test.assertTrue(eventNames.has(name), `recieved ${name}`);
+        browser.test.assertTrue(eventNames.has(name), `received ${name}`);
         eventNames.delete(name);
 
         if (eventNames.size === 0) {
           browser.test.assertEq("xmlhttprequest", details.type, "correct type for fetch [see bug 1366710]");
-          browser.test.assertEq(0, eventNames.size, "messages recieved");
+          browser.test.assertEq(0, eventNames.size, "messages received");
           browser.test.sendMessage("done");
         }
       }
 
       for (let name of eventNames) {
         browser.webRequest[name].addListener(
           listener.bind(null, name),
           {urls: ["https://example.com/*"]}
         );
       }
 
       fetch("https://example.com/example.txt").then(() => {
         browser.test.succeed("Fetch succeeded.");
       }, () => {
-        browser.test.fail("fetch recieved");
+        browser.test.fail("fetch received");
         browser.test.sendMessage("done");
       });
     },
   });
 
   await extension.startup();
   await extension.awaitMessage("done");
   await extension.unload();
--- a/toolkit/components/extensions/test/mochitest/test_ext_webrequest_frameId.html
+++ b/toolkit/components/extensions/test/mochitest/test_ext_webrequest_frameId.html
@@ -92,17 +92,17 @@ let expected = {
   },
   // Last frame tests content policy frame ancestors.
   "webRequestTest": {
     type: "sub_frame",
     depth: 3,
     origin: "file_simple_xhr_frame2.html",
     parent: "file_simple_xhr_frame2.html",
   },
-  // This is loaded in a sandbox iframe.  originUrl is not availabe for that,
+  // This is loaded in a sandbox iframe.  originUrl is not available for that,
   // and requests within a sandboxed iframe will additionally have an empty
   // url on their immediate parent/ancestor.
   "file_simple_sandboxed_frame.html": {
     type: "sub_frame",
     depth: 3,
     parent: "file_simple_xhr_frame2.html",
   },
   "xhr_sandboxed": {
--- a/toolkit/components/extensions/test/xpcshell/test_ext_dns.js
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_dns.js
@@ -1,11 +1,11 @@
 "use strict";
 
-// Some test machines and android are not returing ipv6, turn it
+// Some test machines and android are not returning ipv6, turn it
 // off to get consistent test results.
 Services.prefs.setBoolPref("network.dns.disableIPv6", true);
 
 function getExtension(background = undefined) {
   let manifest = {
     "permissions": [
       "dns",
     ],
--- a/toolkit/components/extensions/test/xpcshell/test_ext_downloads_misc.js
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_downloads_misc.js
@@ -763,44 +763,44 @@ add_task(async function test_erase() {
   }
 
   let ids = {};
   ids.dl1 = await download();
   ids.dl2 = await download();
   ids.dl3 = await download();
 
   let msg = await runInExtension("search", {});
-  equal(msg.status, "success", "search succeded");
+  equal(msg.status, "success", "search succeeded");
   equal(msg.result.length, 3, "search found 3 downloads");
 
   msg = await runInExtension("clearEvents");
 
   msg = await runInExtension("erase", {id: ids.dl1});
   equal(msg.status, "success", "erase by id succeeded");
 
   msg = await runInExtension("waitForEvents", [
     {type: "onErased", data: ids.dl1},
   ]);
   equal(msg.status, "success", "received onErased event");
 
   msg = await runInExtension("search", {});
-  equal(msg.status, "success", "search succeded");
+  equal(msg.status, "success", "search succeeded");
   equal(msg.result.length, 2, "search found 2 downloads");
 
   msg = await runInExtension("erase", {});
   equal(msg.status, "success", "erase everything succeeded");
 
   msg = await runInExtension("waitForEvents", [
     {type: "onErased", data: ids.dl2},
     {type: "onErased", data: ids.dl3},
   ], {inorder: false});
   equal(msg.status, "success", "received 2 onErased events");
 
   msg = await runInExtension("search", {});
-  equal(msg.status, "success", "search succeded");
+  equal(msg.status, "success", "search succeeded");
   equal(msg.result.length, 0, "search found 0 downloads");
 });
 
 function loadImage(img, data) {
   return new Promise((resolve) => {
     img.src = data;
     img.onload = resolve;
   });
--- a/toolkit/components/extensions/test/xpcshell/test_ext_downloads_search.js
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_downloads_search.js
@@ -235,17 +235,17 @@ add_task(async function test_search() {
   //     so a sufficiently large number will be unused.
   const INVALID_ID = 1000;
   await checkSearch({id: INVALID_ID}, [], "invalid id");
 
   // Check that search on url works.
   await checkSearch({url: TXT_URL}, ["txt1", "txt2"], "url");
 
   // Check that regexp on url works.
-  const HTML_REGEX = "[downlad]{8}\.html+$";
+  const HTML_REGEX = "[download]{8}\.html+$";
   await checkSearch({urlRegex: HTML_REGEX}, ["html1", "html2"], "url regexp");
 
   // Check that compatible url+regexp works
   await checkSearch({url: HTML_URL, urlRegex: HTML_REGEX}, ["html1", "html2"], "compatible url+urlRegex");
 
   // Check that incompatible url+regexp works
   await checkSearch({url: TXT_URL, urlRegex: HTML_REGEX}, [], "incompatible url+urlRegex");
 
@@ -268,17 +268,17 @@ add_task(async function test_search() {
 
   // Check that positive search terms work case-insensitive.
   await checkSearch({query: ["nEwfILe"]}, ["txt2"], "term nEwfiLe");
 
   // Check that negative search terms work.
   await checkSearch({query: ["-txt"]}, ["html1", "html2"], "term -txt");
 
   // Check that positive and negative search terms together work.
-  await checkSearch({query: ["html", "-renamed"]}, ["html1"], "postive and negative terms");
+  await checkSearch({query: ["html", "-renamed"]}, ["html1"], "positive and negative terms");
 
   async function checkSearchWithDate(query, expected, description) {
     const fields = Object.keys(query);
     if (fields.length != 1 || !(query[fields[0]] instanceof Date)) {
       throw new Error("checkSearchWithDate expects exactly one Date field");
     }
     const field = fields[0];
     const date = query[field];
--- a/toolkit/components/extensions/test/xpcshell/test_ext_native_messaging_unresponsive.js
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_native_messaging_unresponsive.js
@@ -73,10 +73,10 @@ add_task(async function test_unresponsiv
   let procCount = await getSubprocessCount();
   equal(procCount, 1, "subprocess is running");
 
   let exitPromise = waitForSubprocessExit();
   await extension.unload();
   await exitPromise;
 
   procCount = await getSubprocessCount();
-  equal(procCount, 0, "subprocess was succesfully killed");
+  equal(procCount, 0, "subprocess was successfully killed");
 });
--- a/toolkit/components/extensions/test/xpcshell/test_ext_permissions.js
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_permissions.js
@@ -132,17 +132,17 @@ add_task(async function test_permissions
 
   // None of the optional permissions should be available yet
   for (let perm of OPTIONAL_PERMISSIONS) {
     result = await call("contains", {permissions: [perm]});
     equal(result, false, `contains() returns false for permission ${perm}`);
   }
   for (let origin of OPTIONAL_ORIGINS) {
     result = await call("contains", {origins: [origin]});
-    equal(result, false, `conains() returns false for origin ${origin}`);
+    equal(result, false, `contains() returns false for origin ${origin}`);
   }
 
   result = await call("contains", {
     permissions: [...REQUIRED_PERMISSIONS, ...OPTIONAL_PERMISSIONS],
   });
   equal(result, false, "contains() returns false for a mix of available and unavailable permissions");
 
   let perm = OPTIONAL_PERMISSIONS[0];
@@ -459,17 +459,17 @@ add_task(async function test_optional_al
   await extension.startup();
 
   await withHandlingUserInput(extension, async () => {
     extension.sendMessage("request");
     let [before, granted, after] = await extension.awaitMessage("results");
 
     equal(before, false, "captureVisibleTab() unavailable before optional permission request()");
     equal(granted, true, "request() for optional permissions granted");
-    equal(after, true, "captureVisibleTab() avaiable after optional permission request()");
+    equal(after, true, "captureVisibleTab() available after optional permission request()");
   });
 
   await extension.unload();
 });
 
 // Check that optional permissions are not included in update prompts
 add_task(async function test_permissions_prompt() {
   function background() {
--- a/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_set_cookie.js
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_set_cookie.js
@@ -121,17 +121,17 @@ add_task(async function test_modifying_c
     };
     browser.webRequest.onHeadersReceived.addListener(onHeadersReceived, filter, headersReceivedInfoSpec);
 
     // First, perform a request that should not set any cookies, and check
     // that the cookie the extension sets is the only cookie in the
     // cookie jar.
     await testCookiesWithFile("data/file_sample.html", ["ext"]);
 
-    // Next, preform a request that will set on cookie (reqcookie=reqvalue)
+    // Next, perform a request that will set on cookie (reqcookie=reqvalue)
     // and check that two cookies wind up in the cookie jar (the request
     // set cookie, and the extension set cookie).
     await testCookiesWithFile("file_webrequestblocking_set_cookie.html", ["ext", "req"]);
 
     // Third, register another onHeadersReceived handler that also
     // sets a cookie (thirdcookie=thirdvalue), to make sure modifications from
     // multiple onHeadersReceived listeners are merged correctly.
     const thirdOnHeadersRecievedListener = details => {
--- a/toolkit/mozapps/extensions/AddonManager.jsm
+++ b/toolkit/mozapps/extensions/AddonManager.jsm
@@ -485,17 +485,17 @@ AddonScreenshot.prototype = {
   }
 };
 
 
 /**
  * This represents a compatibility override for an addon.
  *
  * @param  aType
- *         Overrride type - "compatible" or "incompatible"
+ *         Override type - "compatible" or "incompatible"
  * @param  aMinVersion
  *         Minimum version of the addon to match
  * @param  aMaxVersion
  *         Maximum version of the addon to match
  * @param  aAppID
  *         Application ID used to match appMinVersion and appMaxVersion
  * @param  aAppMinVersion
  *         Minimum version of the application to match
@@ -726,17 +726,17 @@ var AddonManagerInternal = {
 
     logger.debug(`Starting provider: ${providerName(aProvider)}`);
     callProvider(aProvider, "startup", null, aAppChanged, aOldAppVersion, aOldPlatformVersion);
     if ("shutdown" in aProvider) {
       let name = providerName(aProvider);
       let AMProviderShutdown = () => {
         // If the provider has been unregistered, it will have been removed from
         // this.providers. If it hasn't been unregistered, then this is a normal
-        // shutdown - and we move it to this.pendingProviders incase we're
+        // shutdown - and we move it to this.pendingProviders in case we're
         // running in a test that will start AddonManager again.
         if (this.providers.has(aProvider)) {
           this.providers.delete(aProvider);
           this.pendingProviders.add(aProvider);
         }
 
         return new Promise((resolve, reject) => {
             logger.debug("Calling shutdown blocker for " + name);
@@ -3186,17 +3186,17 @@ var AddonManager = {
   // These will show up as AddonManager.ERROR_* (eg, ERROR_NETWORK_FAILURE)
   _errors: new Map([
     // The download failed due to network problems.
     ["ERROR_NETWORK_FAILURE", -1],
     // The downloaded file did not match the provided hash.
     ["ERROR_INCORRECT_HASH", -2],
     // The downloaded file seems to be corrupted in some way.
     ["ERROR_CORRUPT_FILE", -3],
-    // An error occured trying to write to the filesystem.
+    // An error occurred trying to write to the filesystem.
     ["ERROR_FILE_ACCESS", -4],
     // The add-on must be signed and isn't.
     ["ERROR_SIGNEDSTATE_REQUIRED", -5],
     // The downloaded add-on had a different type than expected.
     ["ERROR_UNEXPECTED_ADDON_TYPE", -6],
     // The addon did not have the expected ID
     ["ERROR_INCORRECT_ID", -7],
   ]),
--- a/toolkit/mozapps/extensions/internal/AddonTestUtils.jsm
+++ b/toolkit/mozapps/extensions/internal/AddonTestUtils.jsm
@@ -99,17 +99,17 @@ var MockAsyncShutdown = {
   // We can use the real Barrier
   Barrier: AsyncShutdown.Barrier,
 };
 
 AMscope.AsyncShutdown = MockAsyncShutdown;
 
 
 /**
- * Escapes any occurances of &, ", < or > with XML entities.
+ * Escapes any occurrences of &, ", < or > with XML entities.
  *
  * @param {string} str
  *        The string to escape.
  * @return {string} The escaped string.
  */
 function escapeXML(str) {
   let replacements = {"&": "&amp;", '"': "&quot;", "'": "&apos;", "<": "&lt;", ">": "&gt;"};
   return String(str).replace(/[&"''<>]/g, m => replacements[m]);
@@ -853,17 +853,17 @@ var AddonTestUtils = {
     for (let dep of data.dependencies || [])
       rdf += escaped`<em:dependency><Description em:id="${dep}"/></em:dependency>\n`;
 
     rdf += "</Description>\n</RDF>\n";
     return rdf;
   },
 
   /**
-   * Recursively create all directories upto and including the given
+   * Recursively create all directories up to and including the given
    * path, if they do not exist.
    *
    * @param {string} path The path of the directory to create.
    * @returns {Promise} Resolves when all directories have been created.
    */
   recursiveMakeDir(path) {
     let paths = [];
     for (let lastPath; path != lastPath; lastPath = path, path = OS.Path.dirname(path))
--- a/toolkit/mozapps/extensions/internal/AddonUpdateChecker.jsm
+++ b/toolkit/mozapps/extensions/internal/AddonUpdateChecker.jsm
@@ -360,17 +360,17 @@ UpdateParser.prototype = {
 
     this.request = null;
     this._doneAt = new Error("UP_onError");
 
     this.notifyError(AddonManager.ERROR_DOWNLOAD_ERROR);
   },
 
   /**
-   * Helper method to notify the observer that an error occured.
+   * Helper method to notify the observer that an error occurred.
    */
   notifyError(aStatus) {
     if ("onUpdateCheckError" in this.observer) {
       try {
         this.observer.onUpdateCheckError(aStatus);
       } catch (e) {
         logger.warn("onUpdateCheckError notification failed", e);
       }
--- a/toolkit/mozapps/extensions/internal/XPIInstall.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIInstall.jsm
@@ -186,17 +186,17 @@ var logger = Log.repository.getLogger(LO
 
 
 /**
  * Sets permissions on a file
  *
  * @param  aFile
  *         The file or directory to operate on.
  * @param  aPermissions
- *         The permisions to set
+ *         The permissions to set
  */
 function setFilePermissions(aFile, aPermissions) {
   try {
     aFile.permissions = aPermissions;
   } catch (e) {
     logger.warn("Failed to set permissions " + aPermissions.toString(8) + " on " +
          aFile.path, e);
   }
@@ -1530,17 +1530,17 @@ class AddonInstall {
         zipreader.close();
         return Promise.reject([AddonManager.ERROR_INCORRECT_ID,
                                `Refusing to upgrade addon ${this.existingAddon.id} to different ID ${this.addon.id}`]);
       }
 
       if (isWebExtension(this.existingAddon.type) && !isWebExtension(this.addon.type)) {
         zipreader.close();
         return Promise.reject([AddonManager.ERROR_UNEXPECTED_ADDON_TYPE,
-                               "WebExtensions may not be upated to other extension types"]);
+                               "WebExtensions may not be updated to other extension types"]);
       }
     }
 
     if (mustSign(this.addon.type)) {
       if (this.addon.signedState <= AddonManager.SIGNEDSTATE_MISSING) {
         // This add-on isn't properly signed by a signature that chains to the
         // trusted root.
         let state = this.addon.signedState;
@@ -2012,17 +2012,17 @@ var LocalAddonInstall = class extends Ad
   }
 
   install() {
     if (this.state == AddonManager.STATE_DOWNLOAD_FAILED) {
       // For a local install, this state means that verification of the
       // file failed (e.g., the hash or signature or manifest contents
       // were invalid).  It doesn't make sense to retry anything in this
       // case but we have callers who don't know if their AddonInstall
-      // object is a local file or a download so accomodate them here.
+      // object is a local file or a download so accommodate them here.
       AddonManagerPrivate.callInstallListeners("onDownloadFailed",
                                                this.listeners, this.wrapper);
       return;
     }
     super.install();
   }
 };
 
--- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
@@ -496,17 +496,17 @@ function isTheme(type) {
 }
 
 /**
  * Sets permissions on a file
  *
  * @param  aFile
  *         The file or directory to operate on.
  * @param  aPermissions
- *         The permisions to set
+ *         The permissions to set
  */
 function setFilePermissions(aFile, aPermissions) {
   try {
     aFile.permissions = aPermissions;
   } catch (e) {
     logger.warn("Failed to set permissions " + aPermissions.toString(8) + " on " +
          aFile.path, e);
   }
@@ -5775,17 +5775,17 @@ class MutableDirectoryInstallLocation ex
         logger.warn("Failed to remove trash directory when installing " + id, e);
       }
     }
 
     let newFile = this._directory.clone();
 
     if (action == "proxy") {
       // When permanently installing sideloaded addon, we just put a proxy file
-      // refering to the addon sources
+      // referring to the addon sources
       newFile.append(id);
 
       writeStringToFile(newFile, source.path);
     } else {
       newFile.append(source.leafName);
     }
 
     try {
--- a/toolkit/mozapps/extensions/internal/XPIProviderUtils.js
+++ b/toolkit/mozapps/extensions/internal/XPIProviderUtils.js
@@ -345,19 +345,19 @@ this.XPIDatabase = {
   /**
    * Synchronously opens and reads the database file, upgrading from old
    * databases or making a new DB if needed.
    *
    * The possibilities, in order of priority, are:
    * 1) Perfectly good, up to date database
    * 2) Out of date JSON database needs to be upgraded => upgrade
    * 3) JSON database exists but is mangled somehow => build new JSON
-   * 4) no JSON DB, but a useable SQLITE db we can upgrade from => upgrade
+   * 4) no JSON DB, but a usable SQLITE db we can upgrade from => upgrade
    * 5) useless SQLITE DB => build new JSON
-   * 6) useable RDF DB => upgrade
+   * 6) usable RDF DB => upgrade
    * 7) useless RDF DB => build new JSON
    * 8) Nothing at all => build new JSON
    * @param  aRebuildOnError
    *         A boolean indicating whether add-on information should be loaded
    *         from the install locations if the database needs to be rebuilt.
    *         (if false, caller is XPIProvider.checkForChanges() which will rebuild)
    */
   syncLoadDB(aRebuildOnError) {
@@ -1520,17 +1520,17 @@ this.XPIDatabaseReconcile = {
       // Hide the system add-on updates if any are invalid.
       logger.info("One or more updated system add-ons invalid, falling back to defaults.");
       hideLocation = KEY_APP_SYSTEM_ADDONS;
     }
 
     let previousVisible = this.getVisibleAddons(previousAddons);
     let currentVisible = this.flattenByID(currentAddons, hideLocation);
 
-    // Pass over the new set of visible add-ons, record any changes that occured
+    // Pass over the new set of visible add-ons, record any changes that occurred
     // during startup and call bootstrap install/uninstall scripts as necessary
     for (let [id, currentAddon] of currentVisible) {
       let previousAddon = previousVisible.get(id);
 
       // Note if any visible add-on is not in the application install location
       if (currentAddon._installLocation.name != KEY_APP_GLOBAL)
         XPIProvider.allAppGlobal = false;
 
--- a/toolkit/mozapps/extensions/test/xpcshell/test_bug393285.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_bug393285.js
@@ -305,17 +305,17 @@ function run_test_1() {
 
       // Not blocklisted because we are a different ABI
       Assert.ok(!Services.blocklist.isAddonBlocklisted(a9, "2", "1.9"));
 
       // Blocklisted based on ABI
       Assert.ok(Services.blocklist.isAddonBlocklisted(a10, "2", "1.9"));
       Assert.ok(Services.blocklist.isAddonBlocklisted(a11, "2", "1.9"));
 
-      // Doesnt match both os and abi so not blocked
+      // Doesn't match both os and abi so not blocked
       Assert.ok(!Services.blocklist.isAddonBlocklisted(a12, "2", "1.9"));
       Assert.ok(!Services.blocklist.isAddonBlocklisted(a13, "2", "1.9"));
       Assert.ok(!Services.blocklist.isAddonBlocklisted(a14, "2", "1.9"));
 
       // Matches both os and abi so blocked
       Assert.ok(Services.blocklist.isAddonBlocklisted(a15, "2", "1.9"));
       end_test();
     });
--- a/toolkit/mozapps/extensions/test/xpcshell/test_bug570173.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_bug570173.js
@@ -1,13 +1,13 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
-// This verifies that add-on update check failures are propogated correctly
+// This verifies that add-on update check failures are propagated correctly
 
 // The test extension uses an insecure update url.
 Services.prefs.setBoolPref("extensions.checkUpdateSecurity", false);
 
 var testserver;
 const profileDir = gProfD.clone();
 profileDir.append("extensions");
 
--- a/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_prefs.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_prefs.js
@@ -1,13 +1,13 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
-// Test whether the blacklist succesfully adds and removes the prefs that store
+// Test whether the blacklist successfully adds and removes the prefs that store
 // its decisions when the remote blacklist is changed.
 // Uses test_gfxBlacklist.xml and test_gfxBlacklist2.xml
 
 var gTestserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
 gPort = gTestserver.identity.primaryPort;
 gTestserver.registerDirectory("/data/", do_get_file("data"));
 
 function load_blocklist(file) {
--- a/toolkit/mozapps/extensions/test/xpcshell/test_json_updatecheck.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_json_updatecheck.js
@@ -266,17 +266,17 @@ add_task(async function test_update_url_
     });
   });
 
   equal(updates.length, 2, "both updates were processed");
   equal(updates[0].updateURL, null, "privileged update URL was removed");
   equal(updates[1].updateURL, "http://example.com/update.xpi", "safe update URL was accepted");
 
   messages = messages.filter(msg => /http:\/\/localhost.*\/updates\/.*may not load or link to chrome:/.test(msg.message));
-  equal(messages.length, 1, "privileged upate URL generated the expected console message");
+  equal(messages.length, 1, "privileged update URL generated the expected console message");
 });
 
 
 add_task(async function test_type_detection() {
   // Checks that JSON update manifests are detected correctly
   // regardless of extension or MIME type.
 
   let tests = [
--- a/toolkit/mozapps/extensions/test/xpcshell/test_legacy.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_legacy.js
@@ -76,17 +76,17 @@ add_task(async function test_disable() {
 
   // And installing legacy extensions should fail
   let legacyXPIs = legacy.map(makeXPI);
   installs = await Promise.all(legacyXPIs.map(xpi => AddonManager.getInstallForFile(xpi)));
 
   // Yuck, the AddonInstall API is atrocious.  Installs of incompatible
   // extensions are detected when the install reaches the DOWNLOADED state
   // and the install is abandoned at that point.  Since this is a local file
-  // install we just start out in the DONWLOADED state.
+  // install we just start out in the DOWNLOADED state.
   for (let install of installs) {
     Assert.equal(install.state, AddonManager.STATE_DOWNLOADED);
     Assert.equal(install.addon.appDisabled, true);
   }
 
   // Now enable legacy extensions, and we should be able to install
   // the legacy extensions.
   Services.prefs.setBoolPref(LEGACY_PREF, true);
--- a/toolkit/mozapps/extensions/test/xpcshell/test_overrideblocklist.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_overrideblocklist.js
@@ -79,17 +79,17 @@ function run_test() {
       clearBlocklists();
       appBlocklist.moveTo(gAppDir, FILE_BLOCKLIST);
     });
   }
 
   run_next_test();
 }
 
-// On first run whataver is in the app dir should get copied to the profile
+// On first run whatever is in the app dir should get copied to the profile
 add_test(function test_copy() {
   clearBlocklists();
   copyToApp(OLD);
 
   incrementAppVersion();
   startupManager();
 
   reloadBlocklist();
--- a/toolkit/mozapps/extensions/test/xpcshell/test_permissions_prefs.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_permissions_prefs.js
@@ -45,17 +45,17 @@ function run_test() {
   startupManager();
 
   // Permissions are imported lazily - act as thought we're checking an install,
   // to trigger on-deman importing of the permissions.
   AddonManager.isInstallAllowed("application/x-xpinstall", newPrincipal("http://example.com/file.xpi"));
   do_check_permission_prefs(preferences);
 
 
-  // Import can also be triggerred by an observer notification by any other area
+  // Import can also be triggered by an observer notification by any other area
   // of code, such as a permissions management UI.
 
   // First, request to flush all permissions
   clear_imported_preferences_cache();
   Services.prefs.setCharPref("xpinstall.whitelist.add.TEST2", "https://whitelist2.example.com");
   Services.obs.notifyObservers(null, "flush-pending-permissions", "install");
   do_check_permission_prefs(preferences);
 
--- a/toolkit/mozapps/extensions/test/xpcshell/test_strictcompatibility.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_strictcompatibility.js
@@ -101,17 +101,17 @@ const ADDONS = {
       }]
     },
     expected: {
       strictCompatibility: false,
     },
     compatible: [false, false, false, false],
   },
 
-  // Extremely old addon - maxVersion is less than the mimimum compat version
+  // Extremely old addon - maxVersion is less than the minimum compat version
   // set in extensions.minCompatibleVersion
   "addon6@tests.mozilla.org": {
     "install.rdf": {
       id: "addon6@tests.mozilla.org",
       version: "1.0",
       name: "Test 6",
       bootstrap: true,
       targetApplications: [{
--- a/toolkit/mozapps/extensions/test/xpcshell/test_webextension_paths.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_webextension_paths.js
@@ -4,17 +4,17 @@ add_task(async function setup() {
   profileDir = gProfD.clone();
   profileDir.append("extensions");
 
   createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
   startupManager();
 });
 
 // When installing an unpacked addon we derive the ID from the
-// directory name.  Make sure that if the directoy name is not a valid
+// directory name.  Make sure that if the directory name is not a valid
 // addon ID that we reject it.
 add_task(async function test_bad_unpacked_path() {
   let MANIFEST_ID = "webext_bad_path@tests.mozilla.org";
 
   let manifest = {
     name: "path test",
     description: "test of a bad directory name",
     manifest_version: 2,