Bug 1672798 - Run black formatting on mozbuild and mozconfigure files. r=mkmelin
authorRob Lemley <rob@thunderbird.net>
Fri, 30 Oct 2020 14:28:33 -0400
changeset 40347 dd6e7061f3e656f9a0e80fd17f9f05650ae0ff5c
parent 40346 340ec9b2ed5d321cae9bd277ceb140db8042935d
child 40348 dfaaefc00d083c64f078c3ce1e73064aca72abe9
push id2849
push userthunderbird@calypsoblue.org
push dateMon, 16 Nov 2020 19:06:44 +0000
treeherdercomm-beta@1cf7ad0dcfa6 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmkmelin
bugs1672798
Bug 1672798 - Run black formatting on mozbuild and mozconfigure files. r=mkmelin Bringing some sanity to our Python scripts. Differential Revision: https://phabricator.services.mozilla.com/D95402
build/moz.configure/gecko_source.configure
calendar/base/backend/icaljs/moz.build
calendar/base/backend/libical/build/moz.build
calendar/base/backend/libical/moz.build
calendar/base/backend/moz.build
calendar/base/modules/moz.build
calendar/base/moz.build
calendar/base/public/moz.build
calendar/base/src/moz.build
calendar/base/themes/linux/moz.build
calendar/base/themes/moz.build
calendar/base/themes/osx/moz.build
calendar/base/themes/windows/moz.build
calendar/import-export/moz.build
calendar/itip/moz.build
calendar/libical/moz.build
calendar/lightning/components/moz.build
calendar/lightning/modules/moz.build
calendar/lightning/moz.build
calendar/locales/moz.build
calendar/moz.build
calendar/providers/caldav/moz.build
calendar/providers/caldav/public/moz.build
calendar/providers/composite/moz.build
calendar/providers/ics/moz.build
calendar/providers/memory/moz.build
calendar/providers/moz.build
calendar/providers/storage/moz.build
calendar/resources/moz.build
calendar/test/moz.build
chat/components/public/moz.build
chat/components/src/moz.build
chat/content/moz.build
chat/locales/moz.build
chat/modules/moz.build
chat/moz.build
chat/protocols/facebook/moz.build
chat/protocols/gtalk/moz.build
chat/protocols/irc/moz.build
chat/protocols/jsTest/moz.build
chat/protocols/matrix/moz.build
chat/protocols/matrix/shims/moz.build
chat/protocols/odnoklassniki/moz.build
chat/protocols/twitter/moz.build
chat/protocols/xmpp/moz.build
chat/protocols/yahoo/moz.build
chat/themes/moz.build
common/moz.build
common/public/moz.build
common/saxparser/moz.build
common/saxparser/test/moz.build
common/src/moz.build
ldap/c-sdk/libraries/liblber/moz.build
ldap/c-sdk/libraries/libldap/moz.build
ldap/c-sdk/libraries/libldif/moz.build
ldap/c-sdk/libraries/libprldap/moz.build
ldap/c-sdk/libraries/moz.build
ldap/moz.build
ldap/xpcom/moz.build
ldap/xpcom/public/moz.build
ldap/xpcom/src/moz.build
ldap/xpcom/tests/moz.build
mail/app/moz.build
mail/app/no-pie/moz.build
mail/app/settings/dumps/moz.build
mail/app/settings/dumps/thunderbird/moz.build
mail/app/settings/moz.build
mail/base/actors/moz.build
mail/base/modules/moz.build
mail/base/moz.build
mail/base/test/moz.build
mail/branding/nightly/locales/moz.build
mail/branding/nightly/moz.build
mail/branding/thunderbird/locales/moz.build
mail/branding/thunderbird/moz.build
mail/components/about-support/moz.build
mail/components/accountcreation/moz.build
mail/components/activity/moz.build
mail/components/addrbook/moz.build
mail/components/addrbook/test/moz.build
mail/components/build/moz.build
mail/components/cloudfile/moz.build
mail/components/cloudfile/wetransfer/moz.build
mail/components/compose/moz.build
mail/components/customizableui/content/moz.build
mail/components/customizableui/moz.build
mail/components/devtools/moz.build
mail/components/downloads/moz.build
mail/components/enterprisepolicies/helpers/moz.build
mail/components/enterprisepolicies/moz.build
mail/components/enterprisepolicies/schemas/moz.build
mail/components/enterprisepolicies/tests/moz.build
mail/components/extensions/moz.build
mail/components/im/moz.build
mail/components/migration/moz.build
mail/components/migration/public/moz.build
mail/components/migration/src/moz.build
mail/components/moz.build
mail/components/newmailaccount/moz.build
mail/components/preferences/moz.build
mail/components/prompts/moz.build
mail/components/search/mdimporter/moz.build
mail/components/search/moz.build
mail/components/search/public/moz.build
mail/components/search/wsenable/moz.build
mail/components/shell/moz.build
mail/components/wintaskbar/moz.build
mail/extensions/am-e2e/moz.build
mail/extensions/mailviews/moz.build
mail/extensions/moz.build
mail/extensions/openpgp/moz.build
mail/extensions/smime/moz.build
mail/installer/windows/moz.build
mail/locales/moz.build
mail/moz.build
mail/moz.configure
mail/test/browser/moz.build
mail/test/browser/shared-modules/moz.build
mail/test/marionette/moz.build
mail/test/static/moz.build
mail/themes/addons/moz.build
mail/themes/linux/moz.build
mail/themes/moz.build
mail/themes/osx/moz.build
mail/themes/windows/moz.build
mailnews/addrbook/modules/moz.build
mailnews/addrbook/moz.build
mailnews/addrbook/public/moz.build
mailnews/addrbook/src/moz.build
mailnews/addrbook/test/moz.build
mailnews/base/moz.build
mailnews/base/public/moz.build
mailnews/base/src/moz.build
mailnews/base/test/moz.build
mailnews/build/moz.build
mailnews/compose/moz.build
mailnews/compose/public/moz.build
mailnews/compose/src/moz.build
mailnews/compose/test/moz.build
mailnews/db/gloda/components/moz.build
mailnews/db/gloda/modules/moz.build
mailnews/db/gloda/moz.build
mailnews/db/gloda/test/moz.build
mailnews/db/mork/moz.build
mailnews/db/moz.build
mailnews/db/msgdb/moz.build
mailnews/db/msgdb/public/moz.build
mailnews/db/msgdb/src/moz.build
mailnews/db/msgdb/test/moz.build
mailnews/extensions/bayesian-spam-filter/moz.build
mailnews/extensions/dsn/moz.build
mailnews/extensions/fts3/moz.build
mailnews/extensions/mailviews/moz.build
mailnews/extensions/mdn/moz.build
mailnews/extensions/moz.build
mailnews/extensions/newsblog/moz.build
mailnews/extensions/offline-startup/moz.build
mailnews/extensions/smime/moz.build
mailnews/imap/public/moz.build
mailnews/imap/src/moz.build
mailnews/imap/test/moz.build
mailnews/import/build/moz.build
mailnews/import/public/moz.build
mailnews/import/src/moz.build
mailnews/import/test/moz.build
mailnews/intl/moz.build
mailnews/intl/test/moz.build
mailnews/jsaccount/moz.build
mailnews/jsaccount/public/moz.build
mailnews/jsaccount/src/moz.build
mailnews/jsaccount/test/idl/moz.build
mailnews/jsaccount/test/moz.build
mailnews/local/public/moz.build
mailnews/local/src/moz.build
mailnews/local/test/moz.build
mailnews/mapi/mapiDll/moz.build
mailnews/mapi/mapihook/build/moz.build
mailnews/mapi/mapihook/moz.build
mailnews/mapi/mapihook/public/moz.build
mailnews/mapi/mapihook/src/moz.build
mailnews/mapi/test/moz.build
mailnews/mime/cthandlers/glue/moz.build
mailnews/mime/cthandlers/moz.build
mailnews/mime/cthandlers/pgpmime/moz.build
mailnews/mime/emitters/moz.build
mailnews/mime/moz.build
mailnews/mime/public/moz.build
mailnews/mime/src/moz.build
mailnews/mime/test/moz.build
mailnews/moz.build
mailnews/moz.configure
mailnews/news/moz.build
mailnews/news/public/moz.build
mailnews/news/src/moz.build
mailnews/news/test/moz.build
mailnews/search/public/moz.build
mailnews/search/src/moz.build
mailnews/search/test/moz.build
python/moz.build
third_party/moz.build
third_party/openpgp.configure
--- a/build/moz.configure/gecko_source.configure
+++ b/build/moz.configure/gecko_source.configure
@@ -9,128 +9,129 @@
 # to the Thunderbird (comm) repository.
 # We need to have accurate source repository information for MPL compliance.
 
 
 def get_fail_msg(source_name, repo_name, rev_name):
     return """Unable to determine {} source repository.
 Try setting {} and {}
 environment variables or build from a Mercurial checkout.""".format(
-        source_name, repo_name, rev_name)
+        source_name, repo_name, rev_name
+    )
 
 
 # Wrap check_cmd_output so that it does not fatally end configure on command
 # failure.
 def hg_cmd_output(*args, **kwargs):
     def hg_error():
         return None
-    kwargs['onerror'] = hg_error
+
+    kwargs["onerror"] = hg_error
 
     return check_cmd_output(*args, **kwargs)
 
 
 @template
 def read_sourcestamp(repository):
     """
     Last resort, look for the revision data in the sourcestamp file.
     This file only exists in release tar files created in CI.
     repository must be one of "GECKO" or "COMM".
     """
-    log.info('Determining %s source information from sourcestamp.txt...'
-             % repository)
+    log.info("Determining %s source information from sourcestamp.txt..." % repository)
 
-    line2read = {'COMM': 1,
-                 'GECKO': 2}[repository]
+    line2read = {"COMM": 1, "GECKO": 2}[repository]
 
     @depends(comm_paths)
-    @imports(_from='os.path', _import='exists')
-    @imports(_from='os.path', _import='join')
-    @imports(_from='__builtin__', _import='open')
-    @imports(_from='six', _import='ensure_text')
+    @imports(_from="os.path", _import="exists")
+    @imports(_from="os.path", _import="join")
+    @imports(_from="__builtin__", _import="open")
+    @imports(_from="six", _import="ensure_text")
     def get_sourcestamp(paths):
-        sourcestamp_file = join(paths.moztopsrcdir, 'sourcestamp.txt')
+        sourcestamp_file = join(paths.moztopsrcdir, "sourcestamp.txt")
         if exists(sourcestamp_file):
             try:
                 lines = open(sourcestamp_file).readlines()
             except:
                 pass
 
             if len(lines) != 3:
-                log.warn('sourcestamp.txt is corrupt!')
+                log.warn("sourcestamp.txt is corrupt!")
                 return
 
-            if lines and lines[line2read].startswith('http'):
+            if lines and lines[line2read].startswith("http"):
                 repo_line = ensure_text(lines[line2read])
-                repo_url = repo_line.split('/rev/')
+                repo_url = repo_line.split("/rev/")
                 return namespace(repo_url=repo_url[0], repo_rev=repo_url[1])
 
     return get_sourcestamp
 
 
 @template
 def read_gecko_rev_yml():
     def get_value(x):
         return x.split()[1]
 
     @depends(comm_paths)
-    @imports(_from='os.path', _import='exists')
-    @imports(_from='os.path', _import='join')
-    @imports(_from='__builtin__', _import='open')
-    @imports(_from='six', _import='ensure_text')
+    @imports(_from="os.path", _import="exists")
+    @imports(_from="os.path", _import="join")
+    @imports(_from="__builtin__", _import="open")
+    @imports(_from="six", _import="ensure_text")
     def wrapped(paths):
         log.info("Determining GECKO source information from .gecko_rev.yml")
-        rev_file = join(paths.commtopsrcdir, '.gecko_rev.yml')
-        if not exists(rev_file): return
+        rev_file = join(paths.commtopsrcdir, ".gecko_rev.yml")
+        if not exists(rev_file):
+            return
 
         repo = rev = ref = None
 
         for line in open(rev_file).readlines():
-            if line.startswith('GECKO_HEAD_REPOSITORY:'):
+            if line.startswith("GECKO_HEAD_REPOSITORY:"):
                 repo = ensure_text(get_value(line))
-            elif line.startswith('GECKO_HEAD_REV:'):
+            elif line.startswith("GECKO_HEAD_REV:"):
                 rev = ensure_text(get_value(line))
-            elif line.startswith('GECKO_HEAD_REF:'):
+            elif line.startswith("GECKO_HEAD_REF:"):
                 ref = ensure_text(get_value(line))
             else:
                 pass
 
         return namespace(repo=repo, rev=rev, ref=ref)
 
     return wrapped
 
 
 @depends(application)
-@imports(_from='os', _import="environ")
-@imports(_from='six', _import='ensure_text')
+@imports(_from="os", _import="environ")
+@imports(_from="six", _import="ensure_text")
 def comm_repo_from_environ(app):
     """
     Read the Thunderbird source repository information from the environment.
 
     Taskcluster builds set MOZ_SOURCE_REPO and MOZ_SOURCE_CHANGESET pointing
     to the comm-* repository.
     """
     log.info("Determining COMM source information from environment...")
-    comm_repo = environ.get('MOZ_SOURCE_REPO', None)
-    comm_rev = environ.get('MOZ_SOURCE_CHANGESET', None)
+    comm_repo = environ.get("MOZ_SOURCE_REPO", None)
+    comm_rev = environ.get("MOZ_SOURCE_CHANGESET", None)
 
     if all([comm_repo, comm_rev]):
         comm_repo = ensure_text(comm_repo)
         comm_rev = ensure_text(comm_rev)
 
         log.info("{}/rev/{}".format(comm_repo, comm_rev))
         return namespace(comm_repo=comm_repo, comm_rev=comm_rev)
 
 
 # Read sourcestamp.txt and return the Thunderbird source URL (with changeset).
 # Silent fail if the file cannot be read.
-comm_sourcestamp = read_sourcestamp('COMM')
+comm_sourcestamp = read_sourcestamp("COMM")
 
 
 @depends(comm_repo_from_environ, comm_paths, hg, comm_sourcestamp)
-@imports(_from='os', _import="environ")
+@imports(_from="os", _import="environ")
 def comm_repo_heuristics(comm_environ, paths, hg, sourcestamp):
     """
     Determine the Thunderbird Mercurial repository and revision from Mercurial
     or sourcestamp.txt when MOZ_SOURCE_REPO and MOZ_SOURCE_CHANGESET are unset
     (local developer builds).
 
     In that case, MOZ_SOURCE_REPO and MOZ_SOURCE_CHANGESET are set
     by build/variables.py, but will refer to the mozilla- repository,
@@ -138,91 +139,88 @@ def comm_repo_heuristics(comm_environ, p
 
     There's no set_config call for MOZ_SOURCE_REPO or MOZ_SOURCE_CHANGESET
     here as that will be done when old-configure runs later. Here we just
     set the environment variables the same as Taskcluster would.
     """
     if not comm_environ:
         comm_repo = comm_rev = None
         if hg:
-            log.info(
-                "Determining COMM source information from "
-                "Mercurial...")
-            comm_rev = hg_cmd_output(hg, '-R', paths.commtopsrcdir,
-                                     'parent', '--template={node}')
-            comm_repo = hg_cmd_output(hg, '-R', paths.commtopsrcdir,
-                                      'path', 'default')
+            log.info("Determining COMM source information from " "Mercurial...")
+            comm_rev = hg_cmd_output(
+                hg, "-R", paths.commtopsrcdir, "parent", "--template={node}"
+            )
+            comm_repo = hg_cmd_output(hg, "-R", paths.commtopsrcdir, "path", "default")
             if comm_repo:
                 comm_repo = comm_repo.strip()
-                if comm_repo.startswith('ssh://'):
-                    comm_repo = 'https://' + comm_repo[6:]
-                comm_repo = comm_repo.rstrip('/')
+                if comm_repo.startswith("ssh://"):
+                    comm_repo = "https://" + comm_repo[6:]
+                comm_repo = comm_repo.rstrip("/")
         # TODO: git-cinnabar support?
 
         if not comm_repo or not comm_rev:
             try:
                 comm_repo, comm_rev = sourcestamp.repo_url, sourcestamp.repo_rev
             except:
                 pass
 
         # If values are found, set MOZ_SOURCE_REPO and MOZ_SOURCE_CHANGESET
         if comm_repo and comm_rev:
-            environ['MOZ_SOURCE_REPO'] = comm_repo
-            environ['MOZ_SOURCE_CHANGESET'] = comm_rev
+            environ["MOZ_SOURCE_REPO"] = comm_repo
+            environ["MOZ_SOURCE_CHANGESET"] = comm_rev
 
         if comm_repo and comm_rev:
             return namespace(comm_repo=comm_repo, comm_rev=comm_rev)
 
 
-@depends(comm_repo_from_environ, comm_repo_heuristics, 'MOZ_AUTOMATION')
+@depends(comm_repo_from_environ, comm_repo_heuristics, "MOZ_AUTOMATION")
 def comm_source_repo(from_environ, from_config, automation):
     rv = None
     if from_environ:
         rv = from_environ
     elif from_config:
         rv = from_config
     elif automation:
         die(get_fail_msg("COMM", "MOZ_SOURCE_REPO", "MOZ_SOURCE_CHANGESET"))
     else:
-        log.info(
-            get_fail_msg("COMM", "MOZ_SOURCE_REPO", "MOZ_SOURCE_CHANGESET"))
+        log.info(get_fail_msg("COMM", "MOZ_SOURCE_REPO", "MOZ_SOURCE_CHANGESET"))
         rv = namespace(comm_repo="unknown", comm_rev="unknown")
 
-    log.info('COMM_SOURCE_REPOSITORY: {}'.format(rv.comm_repo))
-    log.info('COMM_SOURCE_CHANGESET: {}'.format(rv.comm_rev))
+    log.info("COMM_SOURCE_REPOSITORY: {}".format(rv.comm_repo))
+    log.info("COMM_SOURCE_CHANGESET: {}".format(rv.comm_rev))
     return rv
 
 
 @depends(application)
-@imports(_from='os', _import="environ")
-@imports(_from='six', _import='ensure_text')
+@imports(_from="os", _import="environ")
+@imports(_from="six", _import="ensure_text")
 def gecko_repo_from_environ(app):
     """
     Same as above, but this time checking for the mozilla- repository.
     """
     log.info("Determining GECKO source information from environment...")
-    gecko_repo = environ.get('GECKO_HEAD_REPOSITORY', None)
-    gecko_rev = environ.get('GECKO_HEAD_REV', None)
+    gecko_repo = environ.get("GECKO_HEAD_REPOSITORY", None)
+    gecko_rev = environ.get("GECKO_HEAD_REV", None)
     if all([gecko_repo, gecko_rev]):
         gecko_repo = ensure_text(gecko_repo)
         gecko_rev = ensure_text(gecko_rev)
 
         log.info("{}/rev/{}".format(gecko_repo, gecko_rev))
         return namespace(gecko_repo=gecko_repo, gecko_rev=gecko_rev)
 
 
 # Read sourcestamp.txt, this time returning the mozilla- data
-gecko_sourcestamp = read_sourcestamp('GECKO')
+gecko_sourcestamp = read_sourcestamp("GECKO")
 # Look in comm/.gecko_rev.yml fpr repository information
 gecko_yml = read_gecko_rev_yml()
 
 
 @depends(gecko_repo_from_environ, comm_paths, hg, gecko_sourcestamp, gecko_yml)
-@imports(_from='os.path', _import='join')
-@imports(_from='os.path', _import='exists')
+@imports(_from="os.path", _import="join")
+@imports(_from="os.path", _import="exists")
 def gecko_repo_heuristics(gecko_environ, paths, hg, sourcestamp, gecko_yml):
     """
     Look for the source repository and changeset for the mozilla- repository
     when the Taskcluster environment variables are not set, checking
     .gecko_rev.yml before falling back to Mercurial and sourcestamp.txt.
     """
     if not gecko_environ:
         gecko_repo = gecko_rev = gecko_ref = None
@@ -236,51 +234,50 @@ def gecko_repo_heuristics(gecko_environ,
 
         if gecko_repo:
             if not gecko_rev and gecko_ref:
                 # gecko_repo is known, but we have a branch ref like
                 # "default" when a revision hash is needed. Try to query
                 # Mercurial first.
                 if hg:
                     log.info(
-                        "Determining GECKO source information from "
-                        "Mercurial...")
-                    gecko_rev = hg_cmd_output(hg, '-R', paths.moztopsrcdir,
-                                              'parent', '--template={node}')
+                        "Determining GECKO source information from " "Mercurial..."
+                    )
+                    gecko_rev = hg_cmd_output(
+                        hg, "-R", paths.moztopsrcdir, "parent", "--template={node}"
+                    )
                 # TODO: git-cinnabar support?
 
         if not gecko_repo or not gecko_rev:
             # See if we have a sourcestamo file. Last ditch effort!
             try:
-                gecko_repo, gecko_rev = sourcestamp.repo_url, \
-                                        sourcestamp.repo_rev
+                gecko_repo, gecko_rev = sourcestamp.repo_url, sourcestamp.repo_rev
             except:
                 pass
 
         # Check one last time to see if both gecko_repo and gecko_rev
         # are set
         if gecko_repo and gecko_rev:
             return namespace(gecko_repo=gecko_repo, gecko_rev=gecko_rev)
 
 
-@depends(gecko_repo_from_environ, gecko_repo_heuristics, 'MOZ_AUTOMATION')
+@depends(gecko_repo_from_environ, gecko_repo_heuristics, "MOZ_AUTOMATION")
 def gecko_source_repo(from_environ, from_heuristics, automation):
     rv = None
     if from_environ:
         rv = from_environ
     elif from_heuristics:
         rv = from_heuristics
     elif automation:
         die(get_fail_msg("GECKO", "GECKO_HEAD_REPOSITORY", "GECKO_HEAD_REV"))
     else:
-        log.info(
-            get_fail_msg("GECKO", "GECKO_HEAD_REPOSITORY", "GECKO_HEAD_REV"))
+        log.info(get_fail_msg("GECKO", "GECKO_HEAD_REPOSITORY", "GECKO_HEAD_REV"))
         rv = namespace(gecko_repo="unknown", gecko_rev="unknown")
 
-    log.info('GECKO_SOURCE_REPOSITORY: {}'.format(rv.gecko_repo))
-    log.info('GECKO_SOURCE_CHANGESET: {}'.format(rv.gecko_rev))
+    log.info("GECKO_SOURCE_REPOSITORY: {}".format(rv.gecko_repo))
+    log.info("GECKO_SOURCE_CHANGESET: {}".format(rv.gecko_rev))
     return rv
 
 
-set_config('MOZ_COMM_SOURCE_REPO', comm_source_repo.comm_repo)
-set_config('MOZ_COMM_SOURCE_CHANGESET', comm_source_repo.comm_rev)
-set_config('MOZ_GECKO_SOURCE_REPO', gecko_source_repo.gecko_repo)
-set_config('MOZ_GECKO_SOURCE_CHANGESET', gecko_source_repo.gecko_rev)
+set_config("MOZ_COMM_SOURCE_REPO", comm_source_repo.comm_repo)
+set_config("MOZ_COMM_SOURCE_CHANGESET", comm_source_repo.comm_rev)
+set_config("MOZ_GECKO_SOURCE_REPO", gecko_source_repo.gecko_repo)
+set_config("MOZ_GECKO_SOURCE_CHANGESET", gecko_source_repo.gecko_rev)
--- a/calendar/base/backend/icaljs/moz.build
+++ b/calendar/base/backend/icaljs/moz.build
@@ -1,23 +1,23 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # There is no manifest file for the calICALJSComponents component because
 # calendar backend components are loaded dynamically.
 EXTRA_COMPONENTS += [
-    'calICALJSComponents.js',
+    "calICALJSComponents.js",
 ]
 
 # These files go in components so they can be packaged correctly.
 FINAL_TARGET_FILES.components += [
-    'calDateTime.js',
-    'calDuration.js',
-    'calICSService-worker.js',
-    'calICSService.js',
-    'calPeriod.js',
-    'calRecurrenceRule.js'
+    "calDateTime.js",
+    "calDuration.js",
+    "calICSService-worker.js",
+    "calICSService.js",
+    "calPeriod.js",
+    "calRecurrenceRule.js",
 ]
 
-with Files('**'):
-    BUG_COMPONENT = ('Calendar', 'ICAL.js Integration')
+with Files("**"):
+    BUG_COMPONENT = ("Calendar", "ICAL.js Integration")
--- a/calendar/base/backend/libical/build/moz.build
+++ b/calendar/base/backend/libical/build/moz.build
@@ -1,14 +1,12 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES += [
-    'calBaseModule.cpp',
+    "calBaseModule.cpp",
 ]
 
-LOCAL_INCLUDES += [
-    '..'
-]
+LOCAL_INCLUDES += [".."]
 
 FINAL_LIBRARY = "xul"
--- a/calendar/base/backend/libical/moz.build
+++ b/calendar/base/backend/libical/moz.build
@@ -1,20 +1,18 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-DIRS = [
-    'build'
-]
+DIRS = ["build"]
 
 UNIFIED_SOURCES += [
-    'calDateTime.cpp',
-    'calDuration.cpp',
-    'calICSService.cpp',
-    'calPeriod.cpp',
-    'calRecurrenceRule.cpp',
-    'calTimezone.cpp',
-    'calUtils.cpp',
+    "calDateTime.cpp",
+    "calDuration.cpp",
+    "calICSService.cpp",
+    "calPeriod.cpp",
+    "calRecurrenceRule.cpp",
+    "calTimezone.cpp",
+    "calUtils.cpp",
 ]
 
-FINAL_LIBRARY = 'xul'
+FINAL_LIBRARY = "xul"
--- a/calendar/base/backend/moz.build
+++ b/calendar/base/backend/moz.build
@@ -1,17 +1,14 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-DIRS = [
-    'libical',
-    'icaljs'
-]
+DIRS = ["libical", "icaljs"]
 
 EXTRA_COMPONENTS += [
-    'calBackendLoader.js',
-    'calBackendLoader.manifest',
+    "calBackendLoader.js",
+    "calBackendLoader.manifest",
 ]
 
-with Files('**'):
-    BUG_COMPONENT = ('Calendar', 'Internal Components')
+with Files("**"):
+    BUG_COMPONENT = ("Calendar", "Internal Components")
--- a/calendar/base/modules/moz.build
+++ b/calendar/base/modules/moz.build
@@ -1,36 +1,36 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES.calendar.utils += [
-    'utils/calACLUtils.jsm',
-    'utils/calAlarmUtils.jsm',
-    'utils/calAsyncUtils.jsm',
-    'utils/calAuthUtils.jsm',
-    'utils/calCategoryUtils.jsm',
-    'utils/calDataUtils.jsm',
-    'utils/calDateTimeFormatter.jsm',
-    'utils/calDateTimeUtils.jsm',
-    'utils/calEmailUtils.jsm',
-    'utils/calItemUtils.jsm',
-    'utils/calIteratorUtils.jsm',
-    'utils/calItipUtils.jsm',
-    'utils/calL10NUtils.jsm',
-    'utils/calPrintUtils.jsm',
-    'utils/calProviderDetectionUtils.jsm',
-    'utils/calProviderUtils.jsm',
-    'utils/calUnifinderUtils.jsm',
-    'utils/calViewUtils.jsm',
-    'utils/calWindowUtils.jsm',
-    'utils/calXMLUtils.jsm',
+    "utils/calACLUtils.jsm",
+    "utils/calAlarmUtils.jsm",
+    "utils/calAsyncUtils.jsm",
+    "utils/calAuthUtils.jsm",
+    "utils/calCategoryUtils.jsm",
+    "utils/calDataUtils.jsm",
+    "utils/calDateTimeFormatter.jsm",
+    "utils/calDateTimeUtils.jsm",
+    "utils/calEmailUtils.jsm",
+    "utils/calItemUtils.jsm",
+    "utils/calIteratorUtils.jsm",
+    "utils/calItipUtils.jsm",
+    "utils/calL10NUtils.jsm",
+    "utils/calPrintUtils.jsm",
+    "utils/calProviderDetectionUtils.jsm",
+    "utils/calProviderUtils.jsm",
+    "utils/calUnifinderUtils.jsm",
+    "utils/calViewUtils.jsm",
+    "utils/calWindowUtils.jsm",
+    "utils/calXMLUtils.jsm",
 ]
 
 EXTRA_JS_MODULES.calendar += [
-    'calCalendarDeactivator.jsm',
-    'calExtract.jsm',
-    'calHashedArray.jsm',
-    'calRecurrenceUtils.jsm',
-    'calUtils.jsm',
-    'Ical.jsm',
+    "calCalendarDeactivator.jsm",
+    "calExtract.jsm",
+    "calHashedArray.jsm",
+    "calRecurrenceUtils.jsm",
+    "calUtils.jsm",
+    "Ical.jsm",
 ]
--- a/calendar/base/moz.build
+++ b/calendar/base/moz.build
@@ -1,42 +1,42 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS = [
-    'public',
-    'backend',
-    'src',
-    'modules',
-    'themes',
+    "public",
+    "backend",
+    "src",
+    "modules",
+    "themes",
 ]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
-    DEFINES['THEME'] = 'windows'
-elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
-    DEFINES['THEME'] = 'osx'
+if CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows":
+    DEFINES["THEME"] = "windows"
+elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
+    DEFINES["THEME"] = "osx"
 else:
-    DEFINES['THEME'] = 'linux'
+    DEFINES["THEME"] = "linux"
 
-with Files('content/**'):
-    BUG_COMPONENT = ('Calendar', 'Calendar Views')
+with Files("content/**"):
+    BUG_COMPONENT = ("Calendar", "Calendar Views")
 
-with Files('content/preferences/**'):
-    BUG_COMPONENT = ('Calendar', 'Preferences')
+with Files("content/preferences/**"):
+    BUG_COMPONENT = ("Calendar", "Preferences")
 
-with Files('content/dialogs/**'):
-    BUG_COMPONENT = ('Calendar', 'Dialogs')
+with Files("content/dialogs/**"):
+    BUG_COMPONENT = ("Calendar", "Dialogs")
 
-with Files('content/*task*'):
-    BUG_COMPONENT = ('Calendar', 'Tasks')
+with Files("content/*task*"):
+    BUG_COMPONENT = ("Calendar", "Tasks")
 
-with Files('content/dialogs/*alarm*'):
-    BUG_COMPONENT = ('Calendar', 'Alarms')
+with Files("content/dialogs/*alarm*"):
+    BUG_COMPONENT = ("Calendar", "Alarms")
 
-with Files('content/widgets/*alarm*'):
-    BUG_COMPONENT = ('Calendar', 'Alarms')
+with Files("content/widgets/*alarm*"):
+    BUG_COMPONENT = ("Calendar", "Alarms")
 
-with Files('themes/**'):
-    BUG_COMPONENT = ('Calendar', 'Calendar Views')
+with Files("themes/**"):
+    BUG_COMPONENT = ("Calendar", "Calendar Views")
--- a/calendar/base/public/moz.build
+++ b/calendar/base/public/moz.build
@@ -1,60 +1,60 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'calIAlarm.idl',
-    'calIAlarmService.idl',
-    'calIAttachment.idl',
-    'calIAttendee.idl',
-    'calICalendar.idl',
-    'calICalendarACLManager.idl',
-    'calICalendarManager.idl',
-    'calICalendarProvider.idl',
-    'calICalendarSearchProvider.idl',
-    'calICalendarView.idl',
-    'calICalendarViewController.idl',
-    'calIChangeLog.idl',
-    'calIDateTime.idl',
-    'calIDeletedItems.idl',
-    'calIDuration.idl',
-    'calIErrors.idl',
-    'calIEvent.idl',
-    'calIFreeBusyProvider.idl',
-    'calIIcsParser.idl',
-    'calIIcsSerializer.idl',
-    'calIICSService.idl',
-    'calIImportExport.idl',
-    'calIItemBase.idl',
-    'calIItipItem.idl',
-    'calIItipTransport.idl',
-    'calIOperation.idl',
-    'calIPeriod.idl',
-    'calIPrintFormatter.idl',
-    'calIRecurrenceDate.idl',
-    'calIRecurrenceInfo.idl',
-    'calIRecurrenceItem.idl',
-    'calIRecurrenceRule.idl',
-    'calIRelation.idl',
-    'calISchedulingSupport.idl',
-    'calIStartupService.idl',
-    'calIStatusObserver.idl',
-    'calITimezone.idl',
-    'calITimezoneProvider.idl',
-    'calITodo.idl',
-    'calITransactionManager.idl',
-    'calIWeekInfoService.idl',
+    "calIAlarm.idl",
+    "calIAlarmService.idl",
+    "calIAttachment.idl",
+    "calIAttendee.idl",
+    "calICalendar.idl",
+    "calICalendarACLManager.idl",
+    "calICalendarManager.idl",
+    "calICalendarProvider.idl",
+    "calICalendarSearchProvider.idl",
+    "calICalendarView.idl",
+    "calICalendarViewController.idl",
+    "calIChangeLog.idl",
+    "calIDateTime.idl",
+    "calIDeletedItems.idl",
+    "calIDuration.idl",
+    "calIErrors.idl",
+    "calIEvent.idl",
+    "calIFreeBusyProvider.idl",
+    "calIIcsParser.idl",
+    "calIIcsSerializer.idl",
+    "calIICSService.idl",
+    "calIImportExport.idl",
+    "calIItemBase.idl",
+    "calIItipItem.idl",
+    "calIItipTransport.idl",
+    "calIOperation.idl",
+    "calIPeriod.idl",
+    "calIPrintFormatter.idl",
+    "calIRecurrenceDate.idl",
+    "calIRecurrenceInfo.idl",
+    "calIRecurrenceItem.idl",
+    "calIRecurrenceRule.idl",
+    "calIRelation.idl",
+    "calISchedulingSupport.idl",
+    "calIStartupService.idl",
+    "calIStatusObserver.idl",
+    "calITimezone.idl",
+    "calITimezoneProvider.idl",
+    "calITodo.idl",
+    "calITransactionManager.idl",
+    "calIWeekInfoService.idl",
 ]
 
-XPIDL_MODULE = 'calbase'
+XPIDL_MODULE = "calbase"
 
 EXPORTS += [
-    'calBaseCID.h',
+    "calBaseCID.h",
 ]
 
-with Files('**'):
-    BUG_COMPONENT = ('Calendar', 'Internal Components')
+with Files("**"):
+    BUG_COMPONENT = ("Calendar", "Internal Components")
 
-with Files('calIAlarm*'):
-    BUG_COMPONENT = ('Calendar', 'Alarms')
+with Files("calIAlarm*"):
+    BUG_COMPONENT = ("Calendar", "Alarms")
--- a/calendar/base/src/moz.build
+++ b/calendar/base/src/moz.build
@@ -1,56 +1,55 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'calInternalInterfaces.idl',
+    "calInternalInterfaces.idl",
 ]
 
-XPIDL_MODULE = 'calbaseinternal'
+XPIDL_MODULE = "calbaseinternal"
 
 EXTRA_JS_MODULES += [
-    'CalAlarm.jsm',
-    'CalAlarmMonitor.jsm',
-    'CalAlarmService.jsm',
-    'CalAttachment.jsm',
-    'CalAttendee.jsm',
-    'CalCalendarManager.jsm',
-    'CalCalendarSearchService.jsm',
-    'CalDefaultACLManager.jsm',
-    'CalDeletedItems.jsm',
-    'CalEvent.jsm',
-    'CalFreeBusyService.jsm',
-    'CalIcsParser.jsm',
-    'CalIcsSerializer.jsm',
-    'CalItipItem.jsm',
-    'CalProtocolHandler.jsm',
-    'CalRecurrenceDate.jsm',
-    'CalRecurrenceInfo.jsm',
-    'CalRelation.jsm',
-    'CalSleepMonitor.jsm',
-    'CalStartupService.jsm',
-    'CalTimezoneService.jsm',
-    'CalTodo.jsm',
-    'CalTransactionManager.jsm',
-    'CalWeekInfoService.jsm',
+    "CalAlarm.jsm",
+    "CalAlarmMonitor.jsm",
+    "CalAlarmService.jsm",
+    "CalAttachment.jsm",
+    "CalAttendee.jsm",
+    "CalCalendarManager.jsm",
+    "CalCalendarSearchService.jsm",
+    "CalDefaultACLManager.jsm",
+    "CalDeletedItems.jsm",
+    "CalEvent.jsm",
+    "CalFreeBusyService.jsm",
+    "CalIcsParser.jsm",
+    "CalIcsSerializer.jsm",
+    "CalItipItem.jsm",
+    "CalProtocolHandler.jsm",
+    "CalRecurrenceDate.jsm",
+    "CalRecurrenceInfo.jsm",
+    "CalRelation.jsm",
+    "CalSleepMonitor.jsm",
+    "CalStartupService.jsm",
+    "CalTimezoneService.jsm",
+    "CalTodo.jsm",
+    "CalTransactionManager.jsm",
+    "CalWeekInfoService.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
 
 # These files go in components so they can be packaged correctly.
 FINAL_TARGET_FILES.components += [
-    'calCachedCalendar.js',
-    'calFilter.js',
-    'calItemBase.js',
-    'calTimezone.js',
+    "calCachedCalendar.js",
+    "calFilter.js",
+    "calItemBase.js",
+    "calTimezone.js",
 ]
 
-with Files('**'):
-    BUG_COMPONENT = ('Calendar', 'Internal Components')
+with Files("**"):
+    BUG_COMPONENT = ("Calendar", "Internal Components")
 
-with Files('calAlarm*'):
-    BUG_COMPONENT = ('Calendar', 'Alarms')
-
+with Files("calAlarm*"):
+    BUG_COMPONENT = ("Calendar", "Alarms")
--- a/calendar/base/themes/linux/moz.build
+++ b/calendar/base/themes/linux/moz.build
@@ -1,6 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/calendar/base/themes/moz.build
+++ b/calendar/base/themes/moz.build
@@ -1,11 +1,11 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
-    DIRS += ['linux']
-elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
-    DIRS += ['osx']
+if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
+    DIRS += ["linux"]
+elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
+    DIRS += ["osx"]
 else:
-    DIRS += ['windows']
+    DIRS += ["windows"]
--- a/calendar/base/themes/osx/moz.build
+++ b/calendar/base/themes/osx/moz.build
@@ -1,6 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/calendar/base/themes/windows/moz.build
+++ b/calendar/base/themes/windows/moz.build
@@ -1,6 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/calendar/import-export/moz.build
+++ b/calendar/import-export/moz.build
@@ -1,25 +1,25 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
 EXTRA_JS_MODULES += [
-    'CalHtmlExport.jsm',
-    'CalIcsImportExport.jsm',
-    'CalListFormatter.jsm',
-    'CalMonthGridPrinter.jsm',
-    'CalOutlookCSVImportExport.jsm',
-    'CalWeekPrinter.jsm',
+    "CalHtmlExport.jsm",
+    "CalIcsImportExport.jsm",
+    "CalListFormatter.jsm",
+    "CalMonthGridPrinter.jsm",
+    "CalOutlookCSVImportExport.jsm",
+    "CalWeekPrinter.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
 
-with Files('**'):
-    BUG_COMPONENT = ('Calendar', 'Import and Export')
+with Files("**"):
+    BUG_COMPONENT = ("Calendar", "Import and Export")
 
-with Files('*Print*'):
-    BUG_COMPONENT = ('Calendar', 'Printing')
+with Files("*Print*"):
+    BUG_COMPONENT = ("Calendar", "Printing")
--- a/calendar/itip/moz.build
+++ b/calendar/itip/moz.build
@@ -1,15 +1,15 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'CalItipEmailTransport.jsm',
+    "CalItipEmailTransport.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
 
-with Files('**'):
-    BUG_COMPONENT = ('Calendar', 'E-mail based Scheduling (iTIP/iMIP)')
+with Files("**"):
+    BUG_COMPONENT = ("Calendar", "E-mail based Scheduling (iTIP/iMIP)")
--- a/calendar/libical/moz.build
+++ b/calendar/libical/moz.build
@@ -1,9 +1,9 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-DIRS += ['src/libical']
+DIRS += ["src/libical"]
 
-with Files('**'):
-    BUG_COMPONENT = ('Calendar', 'Internal Components')
+with Files("**"):
+    BUG_COMPONENT = ("Calendar", "Internal Components")
--- a/calendar/lightning/components/moz.build
+++ b/calendar/lightning/components/moz.build
@@ -1,14 +1,13 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'CalItipProtocolHandler.jsm',
-    'CalMimeConverter.jsm',
+    "CalItipProtocolHandler.jsm",
+    "CalMimeConverter.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
-
--- a/calendar/lightning/modules/moz.build
+++ b/calendar/lightning/modules/moz.build
@@ -1,8 +1,8 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES.calendar += [
-    'ltnInvitationUtils.jsm',
+    "ltnInvitationUtils.jsm",
 ]
--- a/calendar/lightning/moz.build
+++ b/calendar/lightning/moz.build
@@ -1,28 +1,28 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'components',
-    'modules',
+    "components",
+    "modules",
 ]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
-    DEFINES['THEME'] = 'windows'
-elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
-    DEFINES['THEME'] = 'osx'
+if CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows":
+    DEFINES["THEME"] = "windows"
+elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
+    DEFINES["THEME"] = "osx"
 else:
-    DEFINES['THEME'] = 'linux'
+    DEFINES["THEME"] = "linux"
 
 JS_PREFERENCE_PP_FILES += [
-    'content/lightning.js',
+    "content/lightning.js",
 ]
 
-with Files('**'):
-    BUG_COMPONENT = ('Calendar', 'Lightning Only')
+with Files("**"):
+    BUG_COMPONENT = ("Calendar", "Lightning Only")
 
-with Files('content/suite-*'):
-    BUG_COMPONENT = ('Calendar', 'Lightning: SeaMonkey Integration')
+with Files("content/suite-*"):
+    BUG_COMPONENT = ("Calendar", "Lightning: SeaMonkey Integration")
--- a/calendar/locales/moz.build
+++ b/calendar/locales/moz.build
@@ -1,6 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/calendar/moz.build
+++ b/calendar/moz.build
@@ -1,39 +1,39 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'base',
-    'import-export',
-    'itip',
-    'libical',
-    'lightning',
-    'locales',
-    'providers',
+    "base",
+    "import-export",
+    "itip",
+    "libical",
+    "lightning",
+    "locales",
+    "providers",
 ]
 
-TEST_DIRS += ['test']
+TEST_DIRS += ["test"]
 
 FINAL_TARGET_FILES.res += [
-    'timezones/zones.json',
+    "timezones/zones.json",
 ]
 
-with Files('**'):
-    BUG_COMPONENT = ('Calendar', 'General')
+with Files("**"):
+    BUG_COMPONENT = ("Calendar", "General")
 
-with Files('**/moz.build'):
-    BUG_COMPONENT = ('Calendar', 'Build Config')
+with Files("**/moz.build"):
+    BUG_COMPONENT = ("Calendar", "Build Config")
     FINAL = True
 
-with Files('**/*.mk'):
-    BUG_COMPONENT = ('Calendar', 'Build Config')
+with Files("**/*.mk"):
+    BUG_COMPONENT = ("Calendar", "Build Config")
     FINAL = True
 
-with Files('**/*manifest'):
-    BUG_COMPONENT = ('Calendar', 'Build Config')
+with Files("**/*manifest"):
+    BUG_COMPONENT = ("Calendar", "Build Config")
     FINAL = True
 
-with Files('**/Makefile.in'):
-    BUG_COMPONENT = ('Calendar', 'Build Config')
+with Files("**/Makefile.in"):
+    BUG_COMPONENT = ("Calendar", "Build Config")
     FINAL = True
--- a/calendar/providers/caldav/moz.build
+++ b/calendar/providers/caldav/moz.build
@@ -1,25 +1,25 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-DIRS += ['public']
+DIRS += ["public"]
 
 EXTRA_JS_MODULES += [
-    'CalDavCalendar.jsm',
-    'CalDavProvider.jsm',
+    "CalDavCalendar.jsm",
+    "CalDavProvider.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
 
 EXTRA_JS_MODULES.caldav += [
-    'modules/CalDavRequest.jsm',
-    'modules/CalDavRequestHandlers.jsm',
-    'modules/CalDavSession.jsm',
-    'modules/CalDavUtils.jsm',
+    "modules/CalDavRequest.jsm",
+    "modules/CalDavRequestHandlers.jsm",
+    "modules/CalDavSession.jsm",
+    "modules/CalDavUtils.jsm",
 ]
 
-with Files('**'):
-    BUG_COMPONENT = ('Calendar', 'Provider: CalDAV')
+with Files("**"):
+    BUG_COMPONENT = ("Calendar", "Provider: CalDAV")
--- a/calendar/providers/caldav/public/moz.build
+++ b/calendar/providers/caldav/public/moz.build
@@ -1,11 +1,10 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'calICalDavCalendar.idl',
+    "calICalDavCalendar.idl",
 ]
 
-XPIDL_MODULE = 'caldav'
-
+XPIDL_MODULE = "caldav"
--- a/calendar/providers/composite/moz.build
+++ b/calendar/providers/composite/moz.build
@@ -1,13 +1,12 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'CalCompositeCalendar.jsm',
+    "CalCompositeCalendar.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
-
--- a/calendar/providers/ics/moz.build
+++ b/calendar/providers/ics/moz.build
@@ -1,16 +1,16 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'CalICSCalendar.jsm',
-    'CalICSProvider.jsm',
+    "CalICSCalendar.jsm",
+    "CalICSProvider.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
 
-with Files('**'):
-    BUG_COMPONENT = ('Calendar', 'Provider: ICS/WebDAV')
+with Files("**"):
+    BUG_COMPONENT = ("Calendar", "Provider: ICS/WebDAV")
--- a/calendar/providers/memory/moz.build
+++ b/calendar/providers/memory/moz.build
@@ -1,13 +1,12 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'CalMemoryCalendar.jsm',
+    "CalMemoryCalendar.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
-
--- a/calendar/providers/moz.build
+++ b/calendar/providers/moz.build
@@ -1,12 +1,12 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'caldav',
-    'composite',
-    'ics',
-    'memory',
-    'storage',
+    "caldav",
+    "composite",
+    "ics",
+    "memory",
+    "storage",
 ]
--- a/calendar/providers/storage/moz.build
+++ b/calendar/providers/storage/moz.build
@@ -1,20 +1,20 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'CalStorageCalendar.jsm',
+    "CalStorageCalendar.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
 
 EXTRA_JS_MODULES.calendar += [
-    'calStorageHelpers.jsm',
-    'calStorageUpgrade.jsm',
+    "calStorageHelpers.jsm",
+    "calStorageUpgrade.jsm",
 ]
 
-with Files('**'):
-    BUG_COMPONENT = ('Calendar', 'Provider: Local Storage')
+with Files("**"):
+    BUG_COMPONENT = ("Calendar", "Provider: Local Storage")
--- a/calendar/resources/moz.build
+++ b/calendar/resources/moz.build
@@ -1,18 +1,18 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
-    DEFINES['THEME'] = 'osx'
+if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
+    DEFINES["THEME"] = "osx"
 else:
-    DEFINES['THEME'] = 'windows'
+    DEFINES["THEME"] = "windows"
 
-if CONFIG['MOZ_UPDATER']:
-    DEFINES['MOZ_UPDATER'] = 1
+if CONFIG["MOZ_UPDATER"]:
+    DEFINES["MOZ_UPDATER"] = 1
 
-with Files('content/*'):
-    BUG_COMPONENT = ('Calendar', 'Dialogs')
+with Files("content/*"):
+    BUG_COMPONENT = ("Calendar", "Dialogs")
 
-with Files('content/datetimepickers/*'):
-    BUG_COMPONENT = ('Calendar', 'Calendar Views')
+with Files("content/datetimepickers/*"):
+    BUG_COMPONENT = ("Calendar", "Calendar Views")
--- a/calendar/test/moz.build
+++ b/calendar/test/moz.build
@@ -1,27 +1,27 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 BROWSER_CHROME_MANIFESTS += [
-    'browser/browser.ini',
-    'browser/contextMenu/browser.ini',
-    'browser/eventDialog/browser.ini',
-    'browser/invitations/browser.ini',
-    'browser/preferences/browser.ini',
-    'browser/recurrence/browser.ini',
-    'browser/recurrence/browser_rotated.ini',
-    'browser/timezones/browser.ini',
-    'browser/views/browser.ini',
+    "browser/browser.ini",
+    "browser/contextMenu/browser.ini",
+    "browser/eventDialog/browser.ini",
+    "browser/invitations/browser.ini",
+    "browser/preferences/browser.ini",
+    "browser/recurrence/browser.ini",
+    "browser/recurrence/browser_rotated.ini",
+    "browser/timezones/browser.ini",
+    "browser/views/browser.ini",
 ]
 
 TESTING_JS_MODULES.mozmill += [
-    'modules/CalendarTestUtils.jsm',
-    'modules/CalendarUtils.jsm',
-    'modules/ItemEditingHelpers.jsm',
+    "modules/CalendarTestUtils.jsm",
+    "modules/CalendarUtils.jsm",
+    "modules/ItemEditingHelpers.jsm",
 ]
 
 XPCSHELL_TESTS_MANIFESTS += [
-    'unit/xpcshell-icaljs.ini',
-    'unit/xpcshell-libical.ini',
+    "unit/xpcshell-icaljs.ini",
+    "unit/xpcshell-libical.ini",
 ]
--- a/chat/components/public/moz.build
+++ b/chat/components/public/moz.build
@@ -1,25 +1,25 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'imIAccount.idl',
-    'imIAccountsService.idl',
-    'imICommandsService.idl',
-    'imIContactsService.idl',
-    'imIConversationsService.idl',
-    'imICoreService.idl',
-    'imILogger.idl',
-    'imIStatusInfo.idl',
-    'imITagsService.idl',
-    'imIUserStatusInfo.idl',
-    'prplIConversation.idl',
-    'prplIMessage.idl',
-    'prplIPref.idl',
-    'prplIProtocol.idl',
-    'prplIRequest.idl',
-    'prplITooltipInfo.idl',
+    "imIAccount.idl",
+    "imIAccountsService.idl",
+    "imICommandsService.idl",
+    "imIContactsService.idl",
+    "imIConversationsService.idl",
+    "imICoreService.idl",
+    "imILogger.idl",
+    "imIStatusInfo.idl",
+    "imITagsService.idl",
+    "imIUserStatusInfo.idl",
+    "prplIConversation.idl",
+    "prplIMessage.idl",
+    "prplIPref.idl",
+    "prplIProtocol.idl",
+    "prplIRequest.idl",
+    "prplITooltipInfo.idl",
 ]
 
-XPIDL_MODULE = 'chat'
+XPIDL_MODULE = "chat"
--- a/chat/components/src/moz.build
+++ b/chat/components/src/moz.build
@@ -1,19 +1,19 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-XPCSHELL_TESTS_MANIFESTS += ['test/xpcshell.ini']
+XPCSHELL_TESTS_MANIFESTS += ["test/xpcshell.ini"]
 
 EXTRA_JS_MODULES += [
-    'imAccounts.jsm',
-    'imCommands.jsm',
-    'imContacts.jsm',
-    'imConversations.jsm',
-    'imCore.jsm',
-    'logger.jsm',
+    "imAccounts.jsm",
+    "imCommands.jsm",
+    "imContacts.jsm",
+    "imConversations.jsm",
+    "imCore.jsm",
+    "logger.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
--- a/chat/content/moz.build
+++ b/chat/content/moz.build
@@ -1,6 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/chat/locales/moz.build
+++ b/chat/locales/moz.build
@@ -1,6 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/chat/modules/moz.build
+++ b/chat/modules/moz.build
@@ -1,26 +1,26 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-XPCSHELL_TESTS_MANIFESTS += ['test/xpcshell.ini']
+XPCSHELL_TESTS_MANIFESTS += ["test/xpcshell.ini"]
 
 EXTRA_JS_MODULES += [
-    'CLib.jsm',
-    'hiddenWindow.jsm',
-    'imContentSink.jsm',
-    'imServices.jsm',
-    'imSmileys.jsm',
-    'imStatusUtils.jsm',
-    'imTextboxUtils.jsm',
-    'imThemes.jsm',
-    'imXPCOMUtils.jsm',
-    'jsProtoHelper.jsm',
-    'NormalizedMap.jsm',
-    'OTR.jsm',
-    'OTRHelpers.jsm',
-    'OTRLib.jsm',
-    'OTRUI.jsm',
-    'socket.jsm',
-    'ToLocaleFormat.jsm',
+    "CLib.jsm",
+    "hiddenWindow.jsm",
+    "imContentSink.jsm",
+    "imServices.jsm",
+    "imSmileys.jsm",
+    "imStatusUtils.jsm",
+    "imTextboxUtils.jsm",
+    "imThemes.jsm",
+    "imXPCOMUtils.jsm",
+    "jsProtoHelper.jsm",
+    "NormalizedMap.jsm",
+    "OTR.jsm",
+    "OTRHelpers.jsm",
+    "OTRLib.jsm",
+    "OTRUI.jsm",
+    "socket.jsm",
+    "ToLocaleFormat.jsm",
 ]
--- a/chat/moz.build
+++ b/chat/moz.build
@@ -1,29 +1,28 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'components/public',
-    'components/src',
-    'modules',
-    'content',
-    'themes',
-    'locales',
-    'protocols/facebook',
-    'protocols/gtalk',
-    'protocols/irc',
-    'protocols/matrix',
-    'protocols/odnoklassniki',
-    'protocols/twitter',
-    'protocols/xmpp',
-    'protocols/yahoo',
+    "components/public",
+    "components/src",
+    "modules",
+    "content",
+    "themes",
+    "locales",
+    "protocols/facebook",
+    "protocols/gtalk",
+    "protocols/irc",
+    "protocols/matrix",
+    "protocols/odnoklassniki",
+    "protocols/twitter",
+    "protocols/xmpp",
+    "protocols/yahoo",
 ]
 
-if CONFIG['MOZ_DEBUG']:
-    DIRS += ['protocols/jsTest']
+if CONFIG["MOZ_DEBUG"]:
+    DIRS += ["protocols/jsTest"]
 
 JS_PREFERENCE_PP_FILES += [
-    'chat-prefs.js',
+    "chat-prefs.js",
 ]
-
--- a/chat/protocols/facebook/moz.build
+++ b/chat/protocols/facebook/moz.build
@@ -1,14 +1,14 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
 EXTRA_JS_MODULES += [
-    'facebook.jsm',
+    "facebook.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
--- a/chat/protocols/gtalk/moz.build
+++ b/chat/protocols/gtalk/moz.build
@@ -1,14 +1,14 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
 EXTRA_JS_MODULES += [
-    'gtalk.jsm',
+    "gtalk.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
--- a/chat/protocols/irc/moz.build
+++ b/chat/protocols/irc/moz.build
@@ -1,31 +1,31 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-XPCSHELL_TESTS_MANIFESTS += ['test/xpcshell.ini']
+XPCSHELL_TESTS_MANIFESTS += ["test/xpcshell.ini"]
 
 EXTRA_JS_MODULES += [
-    'irc.jsm',
-    'ircBase.jsm',
-    'ircCAP.jsm',
-    'ircCommands.jsm',
-    'ircCTCP.jsm',
-    'ircDCC.jsm',
-    'ircEchoMessage.jsm',
-    'ircHandlers.jsm',
-    'ircISUPPORT.jsm',
-    'ircMultiPrefix.jsm',
-    'ircNonStandard.jsm',
-    'ircSASL.jsm',
-    'ircServerTime.jsm',
-    'ircServices.jsm',
-    'ircUtils.jsm',
-    'ircWatchMonitor.jsm',
+    "irc.jsm",
+    "ircBase.jsm",
+    "ircCAP.jsm",
+    "ircCommands.jsm",
+    "ircCTCP.jsm",
+    "ircDCC.jsm",
+    "ircEchoMessage.jsm",
+    "ircHandlers.jsm",
+    "ircISUPPORT.jsm",
+    "ircMultiPrefix.jsm",
+    "ircNonStandard.jsm",
+    "ircSASL.jsm",
+    "ircServerTime.jsm",
+    "ircServices.jsm",
+    "ircUtils.jsm",
+    "ircWatchMonitor.jsm",
 ]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
--- a/chat/protocols/jsTest/moz.build
+++ b/chat/protocols/jsTest/moz.build
@@ -1,14 +1,13 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-if CONFIG['MOZ_DEBUG']:
+if CONFIG["MOZ_DEBUG"]:
     EXTRA_JS_MODULES += [
-        'jsTestProtocol.jsm',
+        "jsTestProtocol.jsm",
     ]
 
     XPCOM_MANIFESTS += [
-        'components.conf',
+        "components.conf",
     ]
-
--- a/chat/protocols/matrix/moz.build
+++ b/chat/protocols/matrix/moz.build
@@ -1,24 +1,24 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # XPCSHELL_TESTS_MANIFESTS += []
 
 DIRS += [
-    'lib',
-    'shims',
+    "lib",
+    "shims",
 ]
 
 EXTRA_JS_MODULES += [
-    'matrix-sdk.jsm',
-    'matrix.jsm',
+    "matrix-sdk.jsm",
+    "matrix.jsm",
 ]
 
 JAR_MANIFESTS += [
-    'jar.mn',
+    "jar.mn",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
--- a/chat/protocols/matrix/shims/moz.build
+++ b/chat/protocols/matrix/shims/moz.build
@@ -2,12 +2,12 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # Shimmed dependencies of the matrix-js-sdk that we can provide through direct
 # implementation instead of through npm package.s
 
 EXTRA_JS_MODULES.matrix += [
-    'loglevel.js',
-    'safe-buffer.js',
-    'url.js',
+    "loglevel.js",
+    "safe-buffer.js",
+    "url.js",
 ]
--- a/chat/protocols/odnoklassniki/moz.build
+++ b/chat/protocols/odnoklassniki/moz.build
@@ -1,14 +1,14 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
 
 EXTRA_JS_MODULES += [
-    'odnoklassniki.jsm',
+    "odnoklassniki.jsm",
 ]
--- a/chat/protocols/twitter/moz.build
+++ b/chat/protocols/twitter/moz.build
@@ -1,14 +1,14 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'twitter.jsm',
+    "twitter.jsm",
 ]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
--- a/chat/protocols/xmpp/moz.build
+++ b/chat/protocols/xmpp/moz.build
@@ -1,21 +1,21 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-XPCSHELL_TESTS_MANIFESTS += ['test/xpcshell.ini']
+XPCSHELL_TESTS_MANIFESTS += ["test/xpcshell.ini"]
 
 EXTRA_JS_MODULES += [
-    'xmpp-authmechs.jsm',
-    'xmpp-base.jsm',
-    'xmpp-commands.jsm',
-    'xmpp-session.jsm',
-    'xmpp-xml.jsm',
-    'xmpp.jsm',
+    "xmpp-authmechs.jsm",
+    "xmpp-base.jsm",
+    "xmpp-commands.jsm",
+    "xmpp-session.jsm",
+    "xmpp-xml.jsm",
+    "xmpp.jsm",
 ]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
--- a/chat/protocols/yahoo/moz.build
+++ b/chat/protocols/yahoo/moz.build
@@ -1,14 +1,14 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
 EXTRA_JS_MODULES += [
-    'yahoo.jsm',
+    "yahoo.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
--- a/chat/themes/moz.build
+++ b/chat/themes/moz.build
@@ -1,6 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/common/moz.build
+++ b/common/moz.build
@@ -1,10 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-DIRS += [
-    'public',
-    'src',
-    'saxparser'
-]
+DIRS += ["public", "src", "saxparser"]
--- a/common/public/moz.build
+++ b/common/public/moz.build
@@ -1,15 +1,13 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'nsIComponentManagerExtra.idl',
-    'nsIUserInfo.idl',
+    "nsIComponentManagerExtra.idl",
+    "nsIUserInfo.idl",
 ]
 
-XPIDL_MODULE = 'msgcommonbase'
+XPIDL_MODULE = "msgcommonbase"
 
-EXPORTS += [
-    'nsCommonBaseCID.h'
-]
+EXPORTS += ["nsCommonBaseCID.h"]
--- a/common/saxparser/moz.build
+++ b/common/saxparser/moz.build
@@ -1,31 +1,31 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-with Files('**'):
-    BUG_COMPONENT = ('MailNews Core', 'General')
+with Files("**"):
+    BUG_COMPONENT = ("MailNews Core", "General")
 
-TEST_DIRS += ['test']
+TEST_DIRS += ["test"]
 
 XPIDL_SOURCES += [
-    'nsISAXAttributes.idl',
-    'nsISAXContentHandler.idl',
-    'nsISAXErrorHandler.idl',
-    'nsISAXXMLReader.idl',
+    "nsISAXAttributes.idl",
+    "nsISAXContentHandler.idl",
+    "nsISAXErrorHandler.idl",
+    "nsISAXXMLReader.idl",
 ]
 
-XPIDL_MODULE = 'saxparser'
+XPIDL_MODULE = "saxparser"
 
 EXPORTS += [
-    'nsSAXAttributes.h',
-    'nsSAXXMLReader.h',
+    "nsSAXAttributes.h",
+    "nsSAXXMLReader.h",
 ]
 
 UNIFIED_SOURCES += [
-    'nsSAXAttributes.cpp',
-    'nsSAXXMLReader.cpp',
+    "nsSAXAttributes.cpp",
+    "nsSAXXMLReader.cpp",
 ]
 
-FINAL_LIBRARY = 'xul'
+FINAL_LIBRARY = "xul"
--- a/common/saxparser/test/moz.build
+++ b/common/saxparser/test/moz.build
@@ -1,8 +1,8 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # Note: set the test module's name to test_<yourmodule>
-XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
+XPCSHELL_TESTS_MANIFESTS += ["unit/xpcshell.ini"]
--- a/common/src/moz.build
+++ b/common/src/moz.build
@@ -1,32 +1,30 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'ExtensionSupport.jsm',
+    "ExtensionSupport.jsm",
 ]
 
 SOURCES += [
-    'nsCommonModule.cpp',
+    "nsCommonModule.cpp",
 ]
 
-if CONFIG['OS_ARCH'] == 'WINNT':
+if CONFIG["OS_ARCH"] == "WINNT":
     # This file cannot be built in unified mode because of name clashes with Windows headers.
     SOURCES += [
-        'nsUserInfoWin.cpp',
+        "nsUserInfoWin.cpp",
     ]
-elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
+elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
     SOURCES += [
-        'nsUserInfoMac.mm',
+        "nsUserInfoMac.mm",
     ]
 else:
     SOURCES += [
-        'nsUserInfoUnix.cpp',
+        "nsUserInfoUnix.cpp",
     ]
 
-LOCAL_INCLUDES += [
-    '/%s/netwerk/base' % CONFIG['mozreltopsrcdir']
-]
+LOCAL_INCLUDES += ["/%s/netwerk/base" % CONFIG["mozreltopsrcdir"]]
 
-FINAL_LIBRARY = 'xul'
+FINAL_LIBRARY = "xul"
--- a/ldap/c-sdk/libraries/liblber/moz.build
+++ b/ldap/c-sdk/libraries/liblber/moz.build
@@ -1,23 +1,20 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-include('../../../ldap-sdk.mozbuild')
+include("../../../ldap-sdk.mozbuild")
 
-Library('lber60')
+Library("lber60")
 
 SOURCES += [
-    'bprint.c',
-    'decode.c',
-    'encode.c',
-    'io.c',
+    "bprint.c",
+    "decode.c",
+    "encode.c",
+    "io.c",
 ]
 
-DEFINES['USE_WAITPID'] = True
-DEFINES['NEEDPROTOS'] = True
+DEFINES["USE_WAITPID"] = True
+DEFINES["NEEDPROTOS"] = True
 
-LOCAL_INCLUDES += [
-    '../../include'
-]
-
+LOCAL_INCLUDES += ["../../include"]
--- a/ldap/c-sdk/libraries/libldap/moz.build
+++ b/ldap/c-sdk/libraries/libldap/moz.build
@@ -1,88 +1,86 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-include('../../../ldap-sdk.mozbuild')
+include("../../../ldap-sdk.mozbuild")
 
-SharedLibrary('ldap60')
+SharedLibrary("ldap60")
 
 SOURCES += [
-    'abandon.c',
-    'add.c',
-    'authzidctrl.c',
-    'bind.c',
-    'cache.c',
-    'charray.c',
-    'charset.c',
-    'compare.c',
-    'compat.c',
-    'control.c',
-    'countvalues.c',
-    'delete.c',
-    'disptmpl.c',
-    'dsparse.c',
-    'error.c',
-    'extendop.c',
-    'free.c',
-    'freevalues.c',
-    'friendly.c',
-    'getattr.c',
-    'getdn.c',
-    'getdxbyname.c',
-    'geteffectiverightsctrl.c',
-    'getentry.c',
-    'getfilter.c',
-    'getoption.c',
-    'getvalues.c',
-    'memcache.c',
-    'message.c',
-    'modify.c',
-    'open.c',
-    'os-ip.c',
-    'proxyauthctrl.c',
-    'psearch.c',
-    'pwmodext.c',
-    'pwpctrl.c',
-    'referral.c',
-    'regex.c',
-    'rename.c',
-    'request.c',
-    'reslist.c',
-    'result.c',
-    'saslbind.c',
-    'sbind.c',
-    'search.c',
-    'setoption.c',
-    'sort.c',
-    'sortctrl.c',
-    'srchpref.c',
-    'tmplout.c',
-    'ufn.c',
-    'unbind.c',
-    'unescape.c',
-    'url.c',
-    'userstatusctrl.c',
-    'utf8.c',
-    'vlistctrl.c',
-    'whoami.c',
+    "abandon.c",
+    "add.c",
+    "authzidctrl.c",
+    "bind.c",
+    "cache.c",
+    "charray.c",
+    "charset.c",
+    "compare.c",
+    "compat.c",
+    "control.c",
+    "countvalues.c",
+    "delete.c",
+    "disptmpl.c",
+    "dsparse.c",
+    "error.c",
+    "extendop.c",
+    "free.c",
+    "freevalues.c",
+    "friendly.c",
+    "getattr.c",
+    "getdn.c",
+    "getdxbyname.c",
+    "geteffectiverightsctrl.c",
+    "getentry.c",
+    "getfilter.c",
+    "getoption.c",
+    "getvalues.c",
+    "memcache.c",
+    "message.c",
+    "modify.c",
+    "open.c",
+    "os-ip.c",
+    "proxyauthctrl.c",
+    "psearch.c",
+    "pwmodext.c",
+    "pwpctrl.c",
+    "referral.c",
+    "regex.c",
+    "rename.c",
+    "request.c",
+    "reslist.c",
+    "result.c",
+    "saslbind.c",
+    "sbind.c",
+    "search.c",
+    "setoption.c",
+    "sort.c",
+    "sortctrl.c",
+    "srchpref.c",
+    "tmplout.c",
+    "ufn.c",
+    "unbind.c",
+    "unescape.c",
+    "url.c",
+    "userstatusctrl.c",
+    "utf8.c",
+    "vlistctrl.c",
+    "whoami.c",
 ]
 
-if CONFIG['OS_TARGET'] == 'WINNT':
+if CONFIG["OS_TARGET"] == "WINNT":
     SOURCES += [
-        'dllmain.c',
-        'mozock.c',
+        "dllmain.c",
+        "mozock.c",
     ]
-    DEFFILE = 'libldap.def'
+    DEFFILE = "libldap.def"
 
-if CONFIG['OS_TARGET'] != 'WINNT':
-    DEFINES['USE_WAITPID'] = True
-    DEFINES['USE_PTHREADS'] = True
-
-DEFINES['NEEDPROTOS'] = True
+if CONFIG["OS_TARGET"] != "WINNT":
+    DEFINES["USE_WAITPID"] = True
+    DEFINES["USE_PTHREADS"] = True
 
-LOCAL_INCLUDES += [
-    '../../include'
-]
+DEFINES["NEEDPROTOS"] = True
 
-USE_LIBS += ['lber60']
+LOCAL_INCLUDES += ["../../include"]
+
+USE_LIBS += ["lber60"]
--- a/ldap/c-sdk/libraries/libldif/moz.build
+++ b/ldap/c-sdk/libraries/libldif/moz.build
@@ -1,22 +1,18 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-include('../../../ldap-sdk.mozbuild')
-
-SharedLibrary('ldif60')
+include("../../../ldap-sdk.mozbuild")
 
-SOURCES += [
-    'line64.c'
-]
+SharedLibrary("ldif60")
+
+SOURCES += ["line64.c"]
 
-LOCAL_INCLUDES += [
-    '../../include'
-]
+LOCAL_INCLUDES += ["../../include"]
 
-if CONFIG['OS_ARCH'] == 'WINNT':
-    DEFFILE = 'libldif.def'
+if CONFIG["OS_ARCH"] == "WINNT":
+    DEFFILE = "libldif.def"
 
-DEFINES['USE_WAITPID'] = True
-DEFINES['NEEDPROTOS'] = True
+DEFINES["USE_WAITPID"] = True
+DEFINES["NEEDPROTOS"] = True
--- a/ldap/c-sdk/libraries/libprldap/moz.build
+++ b/ldap/c-sdk/libraries/libprldap/moz.build
@@ -1,31 +1,26 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-include('../../../ldap-sdk.mozbuild')
+include("../../../ldap-sdk.mozbuild")
 
-SharedLibrary('prldap60')
+SharedLibrary("prldap60")
 
 SOURCES += [
-    'ldappr-dns.c',
-    'ldappr-error.c',
-    'ldappr-io.c',
-    'ldappr-public.c',
-    'ldappr-threads.c',
+    "ldappr-dns.c",
+    "ldappr-error.c",
+    "ldappr-io.c",
+    "ldappr-public.c",
+    "ldappr-threads.c",
 ]
 
-if CONFIG['OS_ARCH'] == 'WINNT':
-    DEFFILE = 'libprldap.def'
-
-DEFINES['USE_WAITPID'] = True
-DEFINES['NEEDPROTOS'] = True
+if CONFIG["OS_ARCH"] == "WINNT":
+    DEFFILE = "libprldap.def"
 
-LOCAL_INCLUDES += [
-    '../../include'
-]
+DEFINES["USE_WAITPID"] = True
+DEFINES["NEEDPROTOS"] = True
 
-USE_LIBS += [
-    'ldap60',
-    'nspr'
-]
+LOCAL_INCLUDES += ["../../include"]
+
+USE_LIBS += ["ldap60", "nspr"]
--- a/ldap/c-sdk/libraries/moz.build
+++ b/ldap/c-sdk/libraries/moz.build
@@ -1,11 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-DIRS += [
-    'liblber',
-    'libldif',
-    'libldap',
-    'libprldap'
-]
+DIRS += ["liblber", "libldif", "libldap", "libprldap"]
--- a/ldap/moz.build
+++ b/ldap/moz.build
@@ -1,16 +1,14 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-Library('ldapsdks')
+Library("ldapsdks")
 
-DIRS += [
-    'c-sdk/libraries'
-]
+DIRS += ["c-sdk/libraries"]
 
 USE_LIBS += [
-    'ldap60',
-    'ldif60',
-    'prldap60',
+    "ldap60",
+    "ldif60",
+    "prldap60",
 ]
--- a/ldap/xpcom/moz.build
+++ b/ldap/xpcom/moz.build
@@ -1,11 +1,11 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'public',
-    'src',
+    "public",
+    "src",
 ]
 
-TEST_DIRS += ['tests']
+TEST_DIRS += ["tests"]
--- a/ldap/xpcom/public/moz.build
+++ b/ldap/xpcom/public/moz.build
@@ -1,27 +1,26 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'nsILDAPBERElement.idl',
-    'nsILDAPBERValue.idl',
-    'nsILDAPConnection.idl',
-    'nsILDAPControl.idl',
-    'nsILDAPErrors.idl',
-    'nsILDAPMessage.idl',
-    'nsILDAPMessageListener.idl',
-    'nsILDAPModification.idl',
-    'nsILDAPOperation.idl',
-    'nsILDAPServer.idl',
-    'nsILDAPService.idl',
-    'nsILDAPURL.idl',
+    "nsILDAPBERElement.idl",
+    "nsILDAPBERValue.idl",
+    "nsILDAPConnection.idl",
+    "nsILDAPControl.idl",
+    "nsILDAPErrors.idl",
+    "nsILDAPMessage.idl",
+    "nsILDAPMessageListener.idl",
+    "nsILDAPModification.idl",
+    "nsILDAPOperation.idl",
+    "nsILDAPServer.idl",
+    "nsILDAPService.idl",
+    "nsILDAPURL.idl",
 ]
 
-if CONFIG['MOZ_PREF_EXTENSIONS']:
+if CONFIG["MOZ_PREF_EXTENSIONS"]:
     XPIDL_SOURCES += [
-        'nsILDAPSyncQuery.idl',
+        "nsILDAPSyncQuery.idl",
     ]
 
-XPIDL_MODULE = 'mozldap'
-
+XPIDL_MODULE = "mozldap"
--- a/ldap/xpcom/src/moz.build
+++ b/ldap/xpcom/src/moz.build
@@ -1,43 +1,42 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES += [
-    'nsLDAPBERElement.cpp',
-    'nsLDAPBERValue.cpp',
-    'nsLDAPConnection.cpp',
-    'nsLDAPControl.cpp',
-    'nsLDAPMessage.cpp',
-    'nsLDAPModification.cpp',
-    'nsLDAPOperation.cpp',
-    'nsLDAPProtocolModule.cpp',
-    'nsLDAPSecurityGlue.cpp',
-    'nsLDAPServer.cpp',
-    'nsLDAPService.cpp',
-    'nsLDAPURL.cpp',
+    "nsLDAPBERElement.cpp",
+    "nsLDAPBERValue.cpp",
+    "nsLDAPConnection.cpp",
+    "nsLDAPControl.cpp",
+    "nsLDAPMessage.cpp",
+    "nsLDAPModification.cpp",
+    "nsLDAPOperation.cpp",
+    "nsLDAPProtocolModule.cpp",
+    "nsLDAPSecurityGlue.cpp",
+    "nsLDAPServer.cpp",
+    "nsLDAPService.cpp",
+    "nsLDAPURL.cpp",
 ]
 
-if CONFIG['MOZ_PREF_EXTENSIONS']:
-    SOURCES += ['nsLDAPSyncQuery.cpp']
-    DEFINES['MOZ_PREF_EXTENSIONS'] = True
+if CONFIG["MOZ_PREF_EXTENSIONS"]:
+    SOURCES += ["nsLDAPSyncQuery.cpp"]
+    DEFINES["MOZ_PREF_EXTENSIONS"] = True
 
 USE_LIBS += [
-    'ldapsdks',
+    "ldapsdks",
 ]
 
 EXTRA_JS_MODULES += [
-  'LDAPProtocolHandler.jsm',
+    "LDAPProtocolHandler.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-  'components.conf',
+    "components.conf",
 ]
 
-Library('mozldap')
-FINAL_LIBRARY = 'xul'
+Library("mozldap")
+FINAL_LIBRARY = "xul"
 
 LOCAL_INCLUDES += [
-    '../../c-sdk/include',
+    "../../c-sdk/include",
 ]
-
--- a/ldap/xpcom/tests/moz.build
+++ b/ldap/xpcom/tests/moz.build
@@ -1,7 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
-
+XPCSHELL_TESTS_MANIFESTS += ["unit/xpcshell.ini"]
--- a/mail/app/moz.build
+++ b/mail/app/moz.build
@@ -1,107 +1,113 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-if CONFIG['MOZ_NO_PIE_COMPAT']:
-    GeckoProgram(CONFIG['MOZ_APP_NAME'] + '-bin')
+if CONFIG["MOZ_NO_PIE_COMPAT"]:
+    GeckoProgram(CONFIG["MOZ_APP_NAME"] + "-bin")
 
-    DIRS += ['no-pie']
+    DIRS += ["no-pie"]
 else:
-    GeckoProgram(CONFIG['MOZ_APP_NAME'])
+    GeckoProgram(CONFIG["MOZ_APP_NAME"])
 
-USE_LIBS += ['mozglue']
-SOURCES += ['nsMailApp.cpp']
+USE_LIBS += ["mozglue"]
+SOURCES += ["nsMailApp.cpp"]
 LOCAL_INCLUDES += [
-    '!/build',
-    '/%s/ipc/contentproc/' % CONFIG['mozreltopsrcdir'],
-    '/%s/toolkit/xre' % CONFIG['mozreltopsrcdir'],
-    '/%s/xpcom/base' % CONFIG['mozreltopsrcdir'],
-    '/%s/xpcom/build' % CONFIG['mozreltopsrcdir'],
+    "!/build",
+    "/%s/ipc/contentproc/" % CONFIG["mozreltopsrcdir"],
+    "/%s/toolkit/xre" % CONFIG["mozreltopsrcdir"],
+    "/%s/xpcom/base" % CONFIG["mozreltopsrcdir"],
+    "/%s/xpcom/build" % CONFIG["mozreltopsrcdir"],
 ]
 
-if CONFIG['LIBFUZZER']:
-    USE_LIBS += [ 'fuzzer' ]
+if CONFIG["LIBFUZZER"]:
+    USE_LIBS += ["fuzzer"]
     LOCAL_INCLUDES += [
-        '/%s/tools/fuzzing/libfuzzer' % CONFIG['mozreltopsrcdir'],
+        "/%s/tools/fuzzing/libfuzzer" % CONFIG["mozreltopsrcdir"],
     ]
 
-if CONFIG['OS_ARCH'] == 'WINNT':
-    RCINCLUDE = 'splash.rc'
-    DEFINES['MOZ_THUNDERBIRD'] = True
+if CONFIG["OS_ARCH"] == "WINNT":
+    RCINCLUDE = "splash.rc"
+    DEFINES["MOZ_THUNDERBIRD"] = True
 
-if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_ARCH'] == 'WINNT':
+if CONFIG["MOZ_SANDBOX"] and CONFIG["OS_ARCH"] == "WINNT":
     # For sandbox includes and the include dependencies those have
     LOCAL_INCLUDES += [
-        '/%s/security/sandbox/chromium' % CONFIG['mozreltopsrcdir'],
-        '/%s/security/sandbox/chromium-shim' % CONFIG['mozreltopsrcdir'],
+        "/%s/security/sandbox/chromium" % CONFIG["mozreltopsrcdir"],
+        "/%s/security/sandbox/chromium-shim" % CONFIG["mozreltopsrcdir"],
     ]
 
     OS_LIBS += [
-        'version',
+        "version",
     ]
 
     USE_LIBS += [
-        'sandbox_s',
+        "sandbox_s",
     ]
 
     DELAYLOAD_DLLS += [
-        'winmm.dll',
-        'user32.dll',
+        "winmm.dll",
+        "user32.dll",
     ]
 
-if CONFIG['OS_ARCH'] == 'WINNT':
+if CONFIG["OS_ARCH"] == "WINNT":
     OS_LIBS += [
-        'ntdll',
+        "ntdll",
     ]
 
-if CONFIG['CC_TYPE'] in ('msvc', 'clang-cl'):
+if CONFIG["CC_TYPE"] in ("msvc", "clang-cl"):
     # Always enter a Windows program through wmain, whether or not we're
     # a console application.
-    WIN32_EXE_LDFLAGS += ['-ENTRY:wmainCRTStartup']
+    WIN32_EXE_LDFLAGS += ["-ENTRY:wmainCRTStartup"]
 
 # Control the default heap size.
 # This is the heap returned by GetProcessHeap().
 # As we use the CRT heap, the default size is too large and wastes VM.
 #
 # The default heap size is 1MB on Win32.
 # The heap will grow if need be.
 #
 # Set it to 256k.  See bug 127069.
-if CONFIG['OS_ARCH'] == 'WINNT' and CONFIG['CC_TYPE'] in ('msvc', 'clang-cl'):
-    LDFLAGS += ['/HEAP:0x40000']
+if CONFIG["OS_ARCH"] == "WINNT" and CONFIG["CC_TYPE"] in ("msvc", "clang-cl"):
+    LDFLAGS += ["/HEAP:0x40000"]
 
 DisableStlWrapping()
 
-if CONFIG['MOZ_LINKER']:
-    OS_LIBS += CONFIG['MOZ_ZLIB_LIBS']
+if CONFIG["MOZ_LINKER"]:
+    OS_LIBS += CONFIG["MOZ_ZLIB_LIBS"]
 
-if CONFIG['HAVE_CLOCK_MONOTONIC']:
-    OS_LIBS += CONFIG['REALTIME_LIBS']
+if CONFIG["HAVE_CLOCK_MONOTONIC"]:
+    OS_LIBS += CONFIG["REALTIME_LIBS"]
 
-DEFINES['APP_VERSION'] = CONFIG['MOZ_APP_VERSION']
+DEFINES["APP_VERSION"] = CONFIG["MOZ_APP_VERSION"]
 
-if CONFIG['MOZILLA_OFFICIAL']:
-    DEFINES['MOZILLA_OFFICIAL'] = True
+if CONFIG["MOZILLA_OFFICIAL"]:
+    DEFINES["MOZILLA_OFFICIAL"] = True
 
-if CONFIG['MOZ_GPSD']:
-    DEFINES['MOZ_GPSD'] = True
+if CONFIG["MOZ_GPSD"]:
+    DEFINES["MOZ_GPSD"] = True
 
-if CONFIG['MOZ_LINUX_32_SSE2_STARTUP_ERROR']:
-    DEFINES['MOZ_LINUX_32_SSE2_STARTUP_ERROR'] = True
-    COMPILE_FLAGS['OS_CXXFLAGS'] = [
-        f for f in COMPILE_FLAGS.get('OS_CXXFLAGS', [])
-        if not f.startswith('-march=') and f not in ('-msse', '-msse2', '-mfpmath=sse')
+if CONFIG["MOZ_LINUX_32_SSE2_STARTUP_ERROR"]:
+    DEFINES["MOZ_LINUX_32_SSE2_STARTUP_ERROR"] = True
+    COMPILE_FLAGS["OS_CXXFLAGS"] = [
+        f
+        for f in COMPILE_FLAGS.get("OS_CXXFLAGS", [])
+        if not f.startswith("-march=") and f not in ("-msse", "-msse2", "-mfpmath=sse")
     ] + [
-        '-mno-sse', '-mno-sse2', '-mfpmath=387',
+        "-mno-sse",
+        "-mno-sse2",
+        "-mfpmath=387",
     ]
 
 JS_PREFERENCE_PP_FILES += [
-    'profile/all-thunderbird.js',
+    "profile/all-thunderbird.js",
 ]
 
-DIRS += ['settings']
+DIRS += ["settings"]
 
-for icon in ('messengerWindow', 'newmail', 'writeMessage', 'addressbook'):
-    DEFINES[icon.upper() + '_ICO'] = '"%s/%s/%s.ico"' % (
-        TOPSRCDIR, CONFIG['MOZ_BRANDING_DIRECTORY'], icon)
+for icon in ("messengerWindow", "newmail", "writeMessage", "addressbook"):
+    DEFINES[icon.upper() + "_ICO"] = '"%s/%s/%s.ico"' % (
+        TOPSRCDIR,
+        CONFIG["MOZ_BRANDING_DIRECTORY"],
+        icon,
+    )
--- a/mail/app/no-pie/moz.build
+++ b/mail/app/no-pie/moz.build
@@ -1,28 +1,24 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-Program(CONFIG['MOZ_APP_NAME'])
+Program(CONFIG["MOZ_APP_NAME"])
 
 SOURCES += [
-    'NoPie.c',
+    "NoPie.c",
 ]
 
 # For some reason, LTO messes things up. We don't care anyways.
 CFLAGS += [
-    '-fno-lto',
+    "-fno-lto",
 ]
 
 # Use OS_LIBS instead of LDFLAGS to "force" the flag to come after -pie
 # from MOZ_PROGRAM_LDFLAGS.
-if CONFIG['CC_TYPE'] == 'clang':
+if CONFIG["CC_TYPE"] == "clang":
     # clang < 5.0 doesn't support -no-pie.
-    OS_LIBS += [
-        '-nopie'
-    ]
+    OS_LIBS += ["-nopie"]
 else:
-    OS_LIBS += [
-        '-no-pie'
-    ]
+    OS_LIBS += ["-no-pie"]
--- a/mail/app/settings/dumps/moz.build
+++ b/mail/app/settings/dumps/moz.build
@@ -1,8 +1,7 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'thunderbird',
+    "thunderbird",
 ]
-
--- a/mail/app/settings/dumps/thunderbird/moz.build
+++ b/mail/app/settings/dumps/thunderbird/moz.build
@@ -1,10 +1,9 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # Data obtained from https://thunderbird-settings.thunderbird.net/v1/buckets/thunderbird/collections/search-config/records
 
 FINAL_TARGET_FILES.defaults.settings.thunderbird += [
-    'search-config.json',
+    "search-config.json",
 ]
-
--- a/mail/app/settings/moz.build
+++ b/mail/app/settings/moz.build
@@ -1,11 +1,10 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-with Files('**'):
-    BUG_COMPONENT = ('Thunderbird', 'General')
+with Files("**"):
+    BUG_COMPONENT = ("Thunderbird", "General")
 
 DIRS += [
-    'dumps',
+    "dumps",
 ]
-
--- a/mail/base/actors/moz.build
+++ b/mail/base/actors/moz.build
@@ -1,10 +1,10 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, you can obtain one at http://mozilla.org/MPL/2.0/.
 
 FINAL_TARGET_FILES.actors += [
-    'PromptParent.jsm',
-    'VCardChild.jsm',
-    'VCardParent.jsm',
+    "PromptParent.jsm",
+    "VCardChild.jsm",
+    "VCardParent.jsm",
 ]
--- a/mail/base/modules/moz.build
+++ b/mail/base/modules/moz.build
@@ -1,37 +1,37 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'AttachmentChecker.jsm',
-    'DBViewWrapper.jsm',
-    'DisplayNameUtils.jsm',
-    'DNS.jsm',
-    'ExtensionsUI.jsm',
-    'GlobalPopupNotifications.jsm',
-    'MailConsts.jsm',
-    'MailInstrumentation.jsm',
-    'MailMigrator.jsm',
-    'MailUtils.jsm',
-    'MailViewManager.jsm',
-    'MessageArchiver.jsm',
-    'MsgHdrSyntheticView.jsm',
-    'QuickFilterManager.jsm',
-    'SearchSpec.jsm',
-    'SessionStoreManager.jsm',
-    'SummaryFrameManager.jsm',
-    'TagUtils.jsm',
-    'TBDistCustomizer.jsm',
-    'ThemeVariableMap.jsm',
-    'Windows8WindowFrameColor.jsm',
+    "AttachmentChecker.jsm",
+    "DBViewWrapper.jsm",
+    "DisplayNameUtils.jsm",
+    "DNS.jsm",
+    "ExtensionsUI.jsm",
+    "GlobalPopupNotifications.jsm",
+    "MailConsts.jsm",
+    "MailInstrumentation.jsm",
+    "MailMigrator.jsm",
+    "MailUtils.jsm",
+    "MailViewManager.jsm",
+    "MessageArchiver.jsm",
+    "MsgHdrSyntheticView.jsm",
+    "QuickFilterManager.jsm",
+    "SearchSpec.jsm",
+    "SessionStoreManager.jsm",
+    "SummaryFrameManager.jsm",
+    "TagUtils.jsm",
+    "TBDistCustomizer.jsm",
+    "ThemeVariableMap.jsm",
+    "Windows8WindowFrameColor.jsm",
 ]
 
 EXTRA_PP_JS_MODULES += [
-    'MailConstants.jsm',
+    "MailConstants.jsm",
 ]
 
-if CONFIG['MOZ_UPDATER']:
+if CONFIG["MOZ_UPDATER"]:
     EXTRA_JS_MODULES += [
-        'AppUpdateUI.jsm',
+        "AppUpdateUI.jsm",
     ]
--- a/mail/base/moz.build
+++ b/mail/base/moz.build
@@ -1,62 +1,68 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'actors',
-    'modules',
+    "actors",
+    "modules",
 ]
 
-TEST_DIRS += ['test']
+TEST_DIRS += ["test"]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
-DEFINES['PRE_RELEASE_SUFFIX'] = ''
-DEFINES['MOZ_APP_VERSION'] = CONFIG['MOZ_APP_VERSION']
-DEFINES['MOZ_APP_VERSION_DISPLAY'] = CONFIG['MOZ_APP_VERSION_DISPLAY']
-DEFINES['mozreltopsrcdir'] = CONFIG['mozreltopsrcdir']
-DEFINES['APP_LICENSE_BLOCK'] = '%s/content/overrides/app-license.html' % SRCDIR
-DEFINES['APP_LICENSE_PRODUCT_NAME'] = '%s/content/overrides/app-license-name.html' % SRCDIR
-DEFINES['APP_LICENSE_LIST_BLOCK'] = '%s/content/overrides/app-license-list.html' % SRCDIR
-DEFINES['APP_LICENSE_BODY_BLOCK'] = '%s/content/overrides/app-license-body.html' % SRCDIR
+DEFINES["PRE_RELEASE_SUFFIX"] = ""
+DEFINES["MOZ_APP_VERSION"] = CONFIG["MOZ_APP_VERSION"]
+DEFINES["MOZ_APP_VERSION_DISPLAY"] = CONFIG["MOZ_APP_VERSION_DISPLAY"]
+DEFINES["mozreltopsrcdir"] = CONFIG["mozreltopsrcdir"]
+DEFINES["APP_LICENSE_BLOCK"] = "%s/content/overrides/app-license.html" % SRCDIR
+DEFINES["APP_LICENSE_PRODUCT_NAME"] = (
+    "%s/content/overrides/app-license-name.html" % SRCDIR
+)
+DEFINES["APP_LICENSE_LIST_BLOCK"] = (
+    "%s/content/overrides/app-license-list.html" % SRCDIR
+)
+DEFINES["APP_LICENSE_BODY_BLOCK"] = (
+    "%s/content/overrides/app-license-body.html" % SRCDIR
+)
 
-if CONFIG['MOZILLA_OFFICIAL']:
-    DEFINES['OFFICIAL_BUILD'] = 1
+if CONFIG["MOZILLA_OFFICIAL"]:
+    DEFINES["OFFICIAL_BUILD"] = 1
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'gtk', 'cocoa'):
-    DEFINES['HAVE_SHELL_SERVICE'] = 1
+if CONFIG["MOZ_WIDGET_TOOLKIT"] in ("windows", "gtk", "cocoa"):
+    DEFINES["HAVE_SHELL_SERVICE"] = 1
 
-if CONFIG['MOZ_UPDATER']:
-    DEFINES['MOZ_UPDATER'] = 1
+if CONFIG["MOZ_UPDATER"]:
+    DEFINES["MOZ_UPDATER"] = 1
 
-DEFINES['TOOLKIT_DIR'] = "%s/toolkit" % (CONFIG['moztopsrcdir'],)
+DEFINES["TOOLKIT_DIR"] = "%s/toolkit" % (CONFIG["moztopsrcdir"],)
 
 # For customized buildconfig
-DEFINES['TOPOBJDIR'] = TOPOBJDIR
+DEFINES["TOPOBJDIR"] = TOPOBJDIR
 
-DEFINES['MOZ_APP_DISPLAYNAME'] = CONFIG['MOZ_APP_DISPLAYNAME']
-DEFINES['THUNDERBIRD_VERSION_DISPLAY'] = CONFIG['THUNDERBIRD_VERSION_DISPLAY']
-DEFINES['THUNDERBIRD_DEVELOPER_WWW'] = "https://developer.thunderbird.net/"
+DEFINES["MOZ_APP_DISPLAYNAME"] = CONFIG["MOZ_APP_DISPLAYNAME"]
+DEFINES["THUNDERBIRD_VERSION_DISPLAY"] = CONFIG["THUNDERBIRD_VERSION_DISPLAY"]
+DEFINES["THUNDERBIRD_DEVELOPER_WWW"] = "https://developer.thunderbird.net/"
 
-for var in ('CC', 'CC_VERSION', 'CXX', 'RUSTC', 'RUSTC_VERSION'):
+for var in ("CC", "CC_VERSION", "CXX", "RUSTC", "RUSTC_VERSION"):
     if CONFIG[var]:
         DEFINES[var] = CONFIG[var]
 
-for var in ('MOZ_CONFIGURE_OPTIONS',):
+for var in ("MOZ_CONFIGURE_OPTIONS",):
     DEFINES[var] = CONFIG[var]
 
-    DEFINES['target'] = CONFIG['target']
+    DEFINES["target"] = CONFIG["target"]
 
-DEFINES['CFLAGS'] = ' '.join(CONFIG['OS_CFLAGS'])
+DEFINES["CFLAGS"] = " ".join(CONFIG["OS_CFLAGS"])
 
-rustflags = CONFIG['RUSTFLAGS']
+rustflags = CONFIG["RUSTFLAGS"]
 if not rustflags:
     rustflags = []
-DEFINES['RUSTFLAGS'] = ' '.join(rustflags)
+DEFINES["RUSTFLAGS"] = " ".join(rustflags)
 
 cxx_flags = []
-for var in ('OS_CPPFLAGS', 'OS_CXXFLAGS', 'DEBUG', 'OPTIMIZE', 'FRAMEPTR'):
+for var in ("OS_CPPFLAGS", "OS_CXXFLAGS", "DEBUG", "OPTIMIZE", "FRAMEPTR"):
     cxx_flags += COMPILE_FLAGS[var] or []
 
-DEFINES['CXXFLAGS'] = ' '.join(cxx_flags)
+DEFINES["CXXFLAGS"] = " ".join(cxx_flags)
--- a/mail/base/test/moz.build
+++ b/mail/base/test/moz.build
@@ -1,16 +1,16 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 BROWSER_CHROME_MANIFESTS += [
-    'browser/browser.ini',
-    'performance/browser.ini',
-    'webextensions/browser.ini',
+    "browser/browser.ini",
+    "performance/browser.ini",
+    "webextensions/browser.ini",
 ]
 
-XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
+XPCSHELL_TESTS_MANIFESTS += ["unit/xpcshell.ini"]
 
 TESTING_JS_MODULES += [
-    '../../../../browser/components/customizableui/test/CustomizableUITestUtils.jsm',
+    "../../../../browser/components/customizableui/test/CustomizableUITestUtils.jsm",
 ]
--- a/mail/branding/nightly/locales/moz.build
+++ b/mail/branding/nightly/locales/moz.build
@@ -1,8 +1,8 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
-DEFINES['MOZ_DISTRIBUTION_ID_UNQUOTED'] = CONFIG['MOZ_DISTRIBUTION_ID']
+DEFINES["MOZ_DISTRIBUTION_ID_UNQUOTED"] = CONFIG["MOZ_DISTRIBUTION_ID"]
--- a/mail/branding/nightly/moz.build
+++ b/mail/branding/nightly/moz.build
@@ -1,12 +1,12 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-DIRS += ['locales']
+DIRS += ["locales"]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
-include('../branding-common.mozbuild')
+include("../branding-common.mozbuild")
 ThunderbirdBranding()
--- a/mail/branding/thunderbird/locales/moz.build
+++ b/mail/branding/thunderbird/locales/moz.build
@@ -1,6 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/mail/branding/thunderbird/moz.build
+++ b/mail/branding/thunderbird/moz.build
@@ -1,11 +1,11 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-DIRS += ['locales']
+DIRS += ["locales"]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
-include('../branding-common.mozbuild')
+include("../branding-common.mozbuild")
 ThunderbirdBranding()
--- a/mail/components/about-support/moz.build
+++ b/mail/components/about-support/moz.build
@@ -1,13 +1,13 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
-    EXTRA_JS_MODULES += ['AboutSupportWin32.jsm']
-elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
-    EXTRA_JS_MODULES += ['AboutSupportMac.jsm']
+if CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows":
+    EXTRA_JS_MODULES += ["AboutSupportWin32.jsm"]
+elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
+    EXTRA_JS_MODULES += ["AboutSupportMac.jsm"]
 else:
-    EXTRA_JS_MODULES += ['AboutSupportUnix.jsm']
+    EXTRA_JS_MODULES += ["AboutSupportUnix.jsm"]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/mail/components/accountcreation/moz.build
+++ b/mail/components/accountcreation/moz.build
@@ -1,6 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/mail/components/activity/moz.build
+++ b/mail/components/activity/moz.build
@@ -1,34 +1,34 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'nsIActivity.idl',
-    'nsIActivityManager.idl',
-    'nsIActivityManagerUI.idl',
+    "nsIActivity.idl",
+    "nsIActivityManager.idl",
+    "nsIActivityManagerUI.idl",
 ]
 
-XPIDL_MODULE = 'activity'
+XPIDL_MODULE = "activity"
 
 EXTRA_JS_MODULES.activity += [
-    'modules/activityModules.jsm',
-    'modules/alertHook.jsm',
-    'modules/autosync.jsm',
-    'modules/glodaIndexer.jsm',
-    'modules/moveCopy.jsm',
-    'modules/pop3Download.jsm',
-    'modules/sendLater.jsm',
+    "modules/activityModules.jsm",
+    "modules/alertHook.jsm",
+    "modules/autosync.jsm",
+    "modules/glodaIndexer.jsm",
+    "modules/moveCopy.jsm",
+    "modules/pop3Download.jsm",
+    "modules/sendLater.jsm",
 ]
 
 EXTRA_JS_MODULES += [
-    'Activity.jsm',
-    'ActivityManager.jsm',
-    'ActivityManagerUI.jsm',
+    "Activity.jsm",
+    "ActivityManager.jsm",
+    "ActivityManagerUI.jsm",
 ]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
--- a/mail/components/addrbook/moz.build
+++ b/mail/components/addrbook/moz.build
@@ -1,8 +1,8 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
-TEST_DIRS += ['test']
+TEST_DIRS += ["test"]
--- a/mail/components/addrbook/test/moz.build
+++ b/mail/components/addrbook/test/moz.build
@@ -1,8 +1,8 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, you can obtain one at http://mozilla.org/MPL/2.0/.
 
 BROWSER_CHROME_MANIFESTS += [
-    'browser/browser.ini',
+    "browser/browser.ini",
 ]
--- a/mail/components/build/moz.build
+++ b/mail/components/build/moz.build
@@ -1,19 +1,19 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES += [
-    'nsMailComps.cpp',
+    "nsMailComps.cpp",
 ]
 
-Library('mailcomps')
-FINAL_LIBRARY = 'xul'
+Library("mailcomps")
+FINAL_LIBRARY = "xul"
 
 LOCAL_INCLUDES += [
-    '../migration/src',
-    '../shell',
+    "../migration/src",
+    "../shell",
 ]
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
-    LOCAL_INCLUDES += ['../search']
+if CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows":
+    LOCAL_INCLUDES += ["../search"]
--- a/mail/components/cloudfile/moz.build
+++ b/mail/components/cloudfile/moz.build
@@ -1,18 +1,18 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'cloudFileAccounts.jsm',
+    "cloudFileAccounts.jsm",
 ]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
 DIRS += [
-    'wetransfer',
+    "wetransfer",
 ]
 
 BROWSER_CHROME_MANIFESTS += [
-    'test/browser/browser.ini',
+    "test/browser/browser.ini",
 ]
--- a/mail/components/cloudfile/wetransfer/moz.build
+++ b/mail/components/cloudfile/wetransfer/moz.build
@@ -1,194 +1,194 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-DIST_SUBDIR = 'features/wetransfer@extensions.thunderbird.net'
+DIST_SUBDIR = "features/wetransfer@extensions.thunderbird.net"
 
 FINAL_TARGET_FILES += [
-    'manifest.json',
+    "manifest.json",
 ]
 FINAL_TARGET_FILES.background += [
-    'background/background.js',
+    "background/background.js",
 ]
 FINAL_TARGET_FILES.content += [
-    'content/moments.css',
-    'content/moments.html',
-    'content/moments.js',
+    "content/moments.css",
+    "content/moments.html",
+    "content/moments.js",
 ]
 FINAL_TARGET_FILES.images += [
-    'images/logo.svg',
+    "images/logo.svg",
 ]
 FINAL_TARGET_FILES._locales.ar += [
-    '_locales/ar/messages.json',
+    "_locales/ar/messages.json",
 ]
 FINAL_TARGET_FILES._locales.ast += [
-    '_locales/ast/messages.json',
+    "_locales/ast/messages.json",
 ]
 FINAL_TARGET_FILES._locales.be += [
-    '_locales/be/messages.json',
+    "_locales/be/messages.json",
 ]
 FINAL_TARGET_FILES._locales.bg += [
-    '_locales/bg/messages.json',
+    "_locales/bg/messages.json",
 ]
 FINAL_TARGET_FILES._locales.br += [
-    '_locales/br/messages.json',
+    "_locales/br/messages.json",
 ]
 FINAL_TARGET_FILES._locales.bs += [
-    '_locales/bs/messages.json',
+    "_locales/bs/messages.json",
 ]
 FINAL_TARGET_FILES._locales.ca += [
-    '_locales/ca/messages.json',
+    "_locales/ca/messages.json",
 ]
 FINAL_TARGET_FILES._locales.cak += [
-    '_locales/cak/messages.json',
+    "_locales/cak/messages.json",
 ]
 FINAL_TARGET_FILES._locales.cs += [
-    '_locales/cs/messages.json',
+    "_locales/cs/messages.json",
 ]
 FINAL_TARGET_FILES._locales.cy += [
-    '_locales/cy/messages.json',
+    "_locales/cy/messages.json",
 ]
 FINAL_TARGET_FILES._locales.de += [
-    '_locales/de/messages.json',
+    "_locales/de/messages.json",
 ]
 FINAL_TARGET_FILES._locales.dsb += [
-    '_locales/dsb/messages.json',
+    "_locales/dsb/messages.json",
 ]
 FINAL_TARGET_FILES._locales.el += [
-    '_locales/el/messages.json',
+    "_locales/el/messages.json",
 ]
 FINAL_TARGET_FILES._locales.en += [
-    '_locales/en/messages.json',
+    "_locales/en/messages.json",
 ]
 FINAL_TARGET_FILES._locales.en_GB += [
-    '_locales/en_GB/messages.json',
+    "_locales/en_GB/messages.json",
 ]
 FINAL_TARGET_FILES._locales.es_AR += [
-    '_locales/es_AR/messages.json',
+    "_locales/es_AR/messages.json",
 ]
 FINAL_TARGET_FILES._locales.es_MX += [
-    '_locales/es_MX/messages.json',
+    "_locales/es_MX/messages.json",
 ]
 FINAL_TARGET_FILES._locales.et += [
-    '_locales/et/messages.json',
+    "_locales/et/messages.json",
 ]
 FINAL_TARGET_FILES._locales.eu += [
-    '_locales/eu/messages.json',
+    "_locales/eu/messages.json",
 ]
 FINAL_TARGET_FILES._locales.fa += [
-    '_locales/fa/messages.json',
+    "_locales/fa/messages.json",
 ]
 FINAL_TARGET_FILES._locales.fi += [
-    '_locales/fi/messages.json',
+    "_locales/fi/messages.json",
 ]
 FINAL_TARGET_FILES._locales.fr += [
-    '_locales/fr/messages.json',
+    "_locales/fr/messages.json",
 ]
 FINAL_TARGET_FILES._locales.fy_NL += [
-    '_locales/fy_NL/messages.json',
+    "_locales/fy_NL/messages.json",
 ]
 FINAL_TARGET_FILES._locales.gd += [
-    '_locales/gd/messages.json',
+    "_locales/gd/messages.json",
 ]
 FINAL_TARGET_FILES._locales.hr += [
-    '_locales/hr/messages.json',
+    "_locales/hr/messages.json",
 ]
 FINAL_TARGET_FILES._locales.hsb += [
-    '_locales/hsb/messages.json',
+    "_locales/hsb/messages.json",
 ]
 FINAL_TARGET_FILES._locales.hu += [
-    '_locales/hu/messages.json',
+    "_locales/hu/messages.json",
 ]
 FINAL_TARGET_FILES._locales.hy_AM += [
-    '_locales/hy_AM/messages.json',
+    "_locales/hy_AM/messages.json",
 ]
 FINAL_TARGET_FILES._locales.ia += [
-    '_locales/ia/messages.json',
+    "_locales/ia/messages.json",
 ]
 FINAL_TARGET_FILES._locales.id += [
-    '_locales/id/messages.json',
+    "_locales/id/messages.json",
 ]
 FINAL_TARGET_FILES._locales.it += [
-    '_locales/it/messages.json',
+    "_locales/it/messages.json",
 ]
 FINAL_TARGET_FILES._locales.ja += [
-    '_locales/ja/messages.json',
+    "_locales/ja/messages.json",
 ]
 FINAL_TARGET_FILES._locales.ka += [
-    '_locales/ka/messages.json',
+    "_locales/ka/messages.json",
 ]
 FINAL_TARGET_FILES._locales.kab += [
-    '_locales/kab/messages.json',
+    "_locales/kab/messages.json",
 ]
 FINAL_TARGET_FILES._locales.kk += [
-    '_locales/kk/messages.json',
+    "_locales/kk/messages.json",
 ]
 FINAL_TARGET_FILES._locales.ko += [
-    '_locales/ko/messages.json',
+    "_locales/ko/messages.json",
 ]
 FINAL_TARGET_FILES._locales.lt += [
-    '_locales/lt/messages.json',
+    "_locales/lt/messages.json",
 ]
 FINAL_TARGET_FILES._locales.nb_NO += [
-    '_locales/nb_NO/messages.json',
+    "_locales/nb_NO/messages.json",
 ]
 FINAL_TARGET_FILES._locales.nl += [
-    '_locales/nl/messages.json',
+    "_locales/nl/messages.json",
 ]
 FINAL_TARGET_FILES._locales.nn_NO += [
-    '_locales/nn_NO/messages.json',
+    "_locales/nn_NO/messages.json",
 ]
 FINAL_TARGET_FILES._locales.pl += [
-    '_locales/pl/messages.json',
+    "_locales/pl/messages.json",
 ]
 FINAL_TARGET_FILES._locales.pt_BR += [
-    '_locales/pt_BR/messages.json',
+    "_locales/pt_BR/messages.json",
 ]
 FINAL_TARGET_FILES._locales.pt_PT += [
-    '_locales/pt_PT/messages.json',
+    "_locales/pt_PT/messages.json",
 ]
 FINAL_TARGET_FILES._locales.rm += [
-    '_locales/rm/messages.json',
+    "_locales/rm/messages.json",
 ]
 FINAL_TARGET_FILES._locales.ro += [
-    '_locales/ro/messages.json',
+    "_locales/ro/messages.json",
 ]
 FINAL_TARGET_FILES._locales.ru += [
-    '_locales/ru/messages.json',
+    "_locales/ru/messages.json",
 ]
 FINAL_TARGET_FILES._locales.si += [
-    '_locales/si/messages.json',
+    "_locales/si/messages.json",
 ]
 FINAL_TARGET_FILES._locales.sk += [
-    '_locales/sk/messages.json',
+    "_locales/sk/messages.json",
 ]
 FINAL_TARGET_FILES._locales.sl += [
-    '_locales/sl/messages.json',
+    "_locales/sl/messages.json",
 ]
 FINAL_TARGET_FILES._locales.sq += [
-    '_locales/sq/messages.json',
+    "_locales/sq/messages.json",
 ]
 FINAL_TARGET_FILES._locales.sr += [
-    '_locales/sr/messages.json',
+    "_locales/sr/messages.json",
 ]
 FINAL_TARGET_FILES._locales.sv_SE += [
-    '_locales/sv_SE/messages.json',
+    "_locales/sv_SE/messages.json",
 ]
 FINAL_TARGET_FILES._locales.th += [
-    '_locales/th/messages.json',
+    "_locales/th/messages.json",
 ]
 FINAL_TARGET_FILES._locales.tr += [
-    '_locales/tr/messages.json',
+    "_locales/tr/messages.json",
 ]
 FINAL_TARGET_FILES._locales.uk += [
-    '_locales/uk/messages.json',
+    "_locales/uk/messages.json",
 ]
 FINAL_TARGET_FILES._locales.vi += [
-    '_locales/vi/messages.json',
+    "_locales/vi/messages.json",
 ]
 FINAL_TARGET_FILES._locales.zh_CN += [
-    '_locales/zh_CN/messages.json',
+    "_locales/zh_CN/messages.json",
 ]
 FINAL_TARGET_FILES._locales.zh_TW += [
-    '_locales/zh_TW/messages.json',
+    "_locales/zh_TW/messages.json",
 ]
--- a/mail/components/compose/moz.build
+++ b/mail/components/compose/moz.build
@@ -1,14 +1,12 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
 EXTRA_JS_MODULES += [
-    'editorUtilities.jsm',
+    "editorUtilities.jsm",
 ]
 
-JS_PREFERENCE_PP_FILES += [
-    'composer.js'
-]
+JS_PREFERENCE_PP_FILES += ["composer.js"]
--- a/mail/components/customizableui/content/moz.build
+++ b/mail/components/customizableui/content/moz.build
@@ -1,7 +1,7 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
+JAR_MANIFESTS += ["jar.mn"]
--- a/mail/components/customizableui/moz.build
+++ b/mail/components/customizableui/moz.build
@@ -1,21 +1,21 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'content',
+    "content",
 ]
 
 EXTRA_JS_MODULES += [
-    'CustomizableUI.jsm',
-    'CustomizableWidgets.jsm',
-    'CustomizeMode.jsm',
-    'DragPositionManager.jsm',
-    'PanelMultiView.jsm',
-    'SearchWidgetTracker.jsm',
+    "CustomizableUI.jsm",
+    "CustomizableWidgets.jsm",
+    "CustomizeMode.jsm",
+    "DragPositionManager.jsm",
+    "PanelMultiView.jsm",
+    "SearchWidgetTracker.jsm",
 ]
 
-with Files('**'):
-    BUG_COMPONENT = ('Firefox', 'Toolbars and Customization')
+with Files("**"):
+    BUG_COMPONENT = ("Firefox", "Toolbars and Customization")
--- a/mail/components/devtools/moz.build
+++ b/mail/components/devtools/moz.build
@@ -4,10 +4,10 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
     "devtools-loader.jsm",
     "tb-root-actor.js",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
--- a/mail/components/downloads/moz.build
+++ b/mail/components/downloads/moz.build
@@ -1,5 +1,5 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/mail/components/enterprisepolicies/helpers/moz.build
+++ b/mail/components/enterprisepolicies/helpers/moz.build
@@ -1,12 +1,12 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-with Files('**'):
-    BUG_COMPONENT = ('Thunderbird', 'OS Integration')
+with Files("**"):
+    BUG_COMPONENT = ("Thunderbird", "OS Integration")
 
 EXTRA_JS_MODULES.policies += [
-    'ProxyPolicies.jsm',
+    "ProxyPolicies.jsm",
 ]
--- a/mail/components/enterprisepolicies/moz.build
+++ b/mail/components/enterprisepolicies/moz.build
@@ -1,25 +1,23 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-with Files('**'):
-    BUG_COMPONENT = ('Thunderbird', 'OS Integration')
+with Files("**"):
+    BUG_COMPONENT = ("Thunderbird", "OS Integration")
 
 DIRS += [
-    'helpers',
-    'schemas',
+    "helpers",
+    "schemas",
 ]
 
-TEST_DIRS += [
-    'tests'
-]
+TEST_DIRS += ["tests"]
 
 EXTRA_JS_MODULES.policies += [
-    'Policies.jsm',
+    "Policies.jsm",
 ]
 
 JAR_MANIFESTS += [
-    'jar.mn',
+    "jar.mn",
 ]
--- a/mail/components/enterprisepolicies/schemas/moz.build
+++ b/mail/components/enterprisepolicies/schemas/moz.build
@@ -1,12 +1,12 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-with Files('**'):
-    BUG_COMPONENT = ('Thunderbird', 'OS Integration')
+with Files("**"):
+    BUG_COMPONENT = ("Thunderbird", "OS Integration")
 
 EXTRA_PP_JS_MODULES.policies += [
-    'schema.jsm',
+    "schema.jsm",
 ]
--- a/mail/components/enterprisepolicies/tests/moz.build
+++ b/mail/components/enterprisepolicies/tests/moz.build
@@ -1,16 +1,16 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 BROWSER_CHROME_MANIFESTS += [
-    'browser/browser.ini',
-    'browser/disable_app_update/browser.ini',
-    'browser/disable_developer_tools/browser.ini',
-    'browser/hardware_acceleration/browser.ini',
+    "browser/browser.ini",
+    "browser/disable_app_update/browser.ini",
+    "browser/disable_developer_tools/browser.ini",
+    "browser/hardware_acceleration/browser.ini",
 ]
 
 XPCSHELL_TESTS_MANIFESTS += [
-    'xpcshell/xpcshell.ini',
+    "xpcshell/xpcshell.ini",
 ]
--- a/mail/components/extensions/moz.build
+++ b/mail/components/extensions/moz.build
@@ -1,22 +1,20 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_COMPONENTS += [
-    'extensions-mail.manifest',
+    "extensions-mail.manifest",
 ]
 
 EXTRA_JS_MODULES += [
-    'ExtensionPopups.jsm',
-    'ExtensionToolbarButtons.jsm',
+    "ExtensionPopups.jsm",
+    "ExtensionToolbarButtons.jsm",
 ]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
-BROWSER_CHROME_MANIFESTS += [
-    'test/browser/browser.ini'
+BROWSER_CHROME_MANIFESTS += ["test/browser/browser.ini"]
+XPCSHELL_TESTS_MANIFESTS += [
+    "test/xpcshell/xpcshell-imap.ini",
+    "test/xpcshell/xpcshell-local.ini",
 ]
-XPCSHELL_TESTS_MANIFESTS += [
-    'test/xpcshell/xpcshell-imap.ini',
-    'test/xpcshell/xpcshell-local.ini',
-]
--- a/mail/components/im/moz.build
+++ b/mail/components/im/moz.build
@@ -1,23 +1,23 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'IMIncomingServer.jsm',
-    'IMProtocolInfo.jsm',
-    'modules/chatHandler.jsm',
-    'modules/chatNotifications.jsm',
-    'modules/index_im.jsm',
-    'modules/search_im.jsm',
+    "IMIncomingServer.jsm",
+    "IMProtocolInfo.jsm",
+    "modules/chatHandler.jsm",
+    "modules/chatNotifications.jsm",
+    "modules/index_im.jsm",
+    "modules/search_im.jsm",
 ]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
 JS_PREFERENCE_FILES += [
-    'all-im.js',
+    "all-im.js",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
--- a/mail/components/migration/moz.build
+++ b/mail/components/migration/moz.build
@@ -1,11 +1,11 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'public',
-    'src',
+    "public",
+    "src",
 ]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/mail/components/migration/public/moz.build
+++ b/mail/components/migration/public/moz.build
@@ -1,15 +1,14 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'nsIMailProfileMigrator.idl',
+    "nsIMailProfileMigrator.idl",
 ]
 
-XPIDL_MODULE = 'mailprofilemigration'
+XPIDL_MODULE = "mailprofilemigration"
 
 EXPORTS += [
-    'nsMailMigrationCID.h',
+    "nsMailMigrationCID.h",
 ]
-
--- a/mail/components/migration/src/moz.build
+++ b/mail/components/migration/src/moz.build
@@ -1,25 +1,24 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES += [
-    'nsMailProfileMigratorUtils.cpp',
-    'nsNetscapeProfileMigratorBase.cpp',
-    'nsProfileMigrator.cpp',
-    'nsSeamonkeyProfileMigrator.cpp',
+    "nsMailProfileMigratorUtils.cpp",
+    "nsNetscapeProfileMigratorBase.cpp",
+    "nsProfileMigrator.cpp",
+    "nsSeamonkeyProfileMigrator.cpp",
 ]
 
-if CONFIG['OS_ARCH'] == 'WINNT':
+if CONFIG["OS_ARCH"] == "WINNT":
     SOURCES += [
-        'nsOutlookProfileMigrator.cpp',
-        'nsProfileMigratorBase.cpp',
+        "nsOutlookProfileMigrator.cpp",
+        "nsProfileMigratorBase.cpp",
     ]
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
+if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
     SOURCES += [
-        'nsProfileMigratorBase.cpp',
+        "nsProfileMigratorBase.cpp",
     ]
 
-FINAL_LIBRARY = 'mailcomps'
-
+FINAL_LIBRARY = "mailcomps"
--- a/mail/components/moz.build
+++ b/mail/components/moz.build
@@ -1,51 +1,49 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # Only Mac and Windows have search integration components, but we include at
 # least one module from search/ on all platforms
 DIRS += [
-    'about-support',
-    'accountcreation',
-    'activity',
-    'addrbook',
-    'cloudfile',
-    'compose',
-    'customizableui',
-    'devtools',
-    'downloads',
-    'enterprisepolicies',
-    'extensions',
-    'im',
-    'migration',
-    'newmailaccount',
-    'preferences',
-    'prompts',
-    'search',
-    'shell',
-    'wintaskbar',
+    "about-support",
+    "accountcreation",
+    "activity",
+    "addrbook",
+    "cloudfile",
+    "compose",
+    "customizableui",
+    "devtools",
+    "downloads",
+    "enterprisepolicies",
+    "extensions",
+    "im",
+    "migration",
+    "newmailaccount",
+    "preferences",
+    "prompts",
+    "search",
+    "shell",
+    "wintaskbar",
 ]
 
-DIRS += ['build']
+DIRS += ["build"]
 
 EXTRA_COMPONENTS += [
-    'MailComponents.manifest',
-    'test/startupRecorder.js',
-    'test/testComponents.manifest',
+    "MailComponents.manifest",
+    "test/startupRecorder.js",
+    "test/testComponents.manifest",
 ]
 
 EXTRA_JS_MODULES += [
-    'AboutRedirector.jsm',
-    'AppIdleManager.jsm',
-    'MailGlue.jsm',
-    'MessengerContentHandler.jsm',
+    "AboutRedirector.jsm",
+    "AppIdleManager.jsm",
+    "MailGlue.jsm",
+    "MessengerContentHandler.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
 
-XPCSHELL_TESTS_MANIFESTS += [
-    'test/unit/xpcshell.ini'
-]
+XPCSHELL_TESTS_MANIFESTS += ["test/unit/xpcshell.ini"]
--- a/mail/components/newmailaccount/moz.build
+++ b/mail/components/newmailaccount/moz.build
@@ -1,6 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/mail/components/preferences/moz.build
+++ b/mail/components/preferences/moz.build
@@ -1,18 +1,18 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
-DEFINES['MOZ_MACBUNDLE_NAME'] = CONFIG['MOZ_MACBUNDLE_NAME']
+DEFINES["MOZ_MACBUNDLE_NAME"] = CONFIG["MOZ_MACBUNDLE_NAME"]
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'gtk', 'cocoa'):
-    DEFINES['HAVE_SHELL_SERVICE'] = 1
+if CONFIG["MOZ_WIDGET_TOOLKIT"] in ("windows", "gtk", "cocoa"):
+    DEFINES["HAVE_SHELL_SERVICE"] = 1
 
-if CONFIG['MOZ_UPDATER']:
-    DEFINES['MOZ_UPDATER'] = 1
+if CONFIG["MOZ_UPDATER"]:
+    DEFINES["MOZ_UPDATER"] = 1
 
 BROWSER_CHROME_MANIFESTS += [
-    'test/browser/browser.ini',
+    "test/browser/browser.ini",
 ]
--- a/mail/components/prompts/moz.build
+++ b/mail/components/prompts/moz.build
@@ -1,11 +1,11 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'PromptCollection.jsm',
+    "PromptCollection.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
--- a/mail/components/search/mdimporter/moz.build
+++ b/mail/components/search/mdimporter/moz.build
@@ -1,22 +1,22 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES = [
-    'GetMetadataForFile.c',
-    'main.c',
+    "GetMetadataForFile.c",
+    "main.c",
 ]
 
-Program('thunderbird-mdimport')
+Program("thunderbird-mdimport")
 # This directory is producing a framework as a target. The output of this
 # framework will be located here.
-FINAL_TARGET = 'dist/package/thunderbird.mdimporter/Contents/MacOS'
+FINAL_TARGET = "dist/package/thunderbird.mdimporter/Contents/MacOS"
 
 OS_LIBS += [
-    '-framework CoreFoundation',
-    '-framework CoreServices',
+    "-framework CoreFoundation",
+    "-framework CoreServices",
 ]
 
 # We're also a bundle.
-LDFLAGS += ['-bundle']
+LDFLAGS += ["-bundle"]
--- a/mail/components/search/moz.build
+++ b/mail/components/search/moz.build
@@ -1,19 +1,19 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
-    DIRS += ['mdimporter']
-elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
-    DIRS += ['wsenable']
-    SOURCES += ['nsMailWinSearchHelper.cpp']
-    FINAL_LIBRARY = 'mailcomps'
+if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
+    DIRS += ["mdimporter"]
+elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows":
+    DIRS += ["wsenable"]
+    SOURCES += ["nsMailWinSearchHelper.cpp"]
+    FINAL_LIBRARY = "mailcomps"
 
-DIRS += ['public']
+DIRS += ["public"]
 
 EXTRA_JS_MODULES += [
-    'SearchIntegration.jsm',
+    "SearchIntegration.jsm",
 ]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/mail/components/search/public/moz.build
+++ b/mail/components/search/public/moz.build
@@ -1,11 +1,10 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'nsIMailWinSearchHelper.idl',
+    "nsIMailWinSearchHelper.idl",
 ]
 
-XPIDL_MODULE = 'mailwinsearch'
-
+XPIDL_MODULE = "mailwinsearch"
--- a/mail/components/search/wsenable/moz.build
+++ b/mail/components/search/wsenable/moz.build
@@ -1,24 +1,23 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-Program('WSEnable')
+Program("WSEnable")
 
 SOURCES += [
-    'WSEnable.cpp',
+    "WSEnable.cpp",
 ]
 
 OS_LIBS += [
-    'ole32',
-    'shell32',
+    "ole32",
+    "shell32",
 ]
 
-RCINCLUDE = 'WSEnable.rc'
+RCINCLUDE = "WSEnable.rc"
 
 # This isn't XPCOM code, but it wants to use STL so disable STL wrappers
 DisableStlWrapping()
 
-if CONFIG['CC_TYPE'] == 'clang-cl':
+if CONFIG["CC_TYPE"] == "clang-cl":
     AllowCompilerWarnings()  # workaround for bug 1090497 / bug 1481326
-
--- a/mail/components/shell/moz.build
+++ b/mail/components/shell/moz.build
@@ -1,34 +1,35 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-DEFINES['MOZ_APP_NAME'] = '"%s"' % CONFIG['MOZ_APP_NAME']
+DEFINES["MOZ_APP_NAME"] = '"%s"' % CONFIG["MOZ_APP_NAME"]
 
 XPIDL_SOURCES += [
-    'nsIShellService.idl',
+    "nsIShellService.idl",
 ]
 
-XPIDL_MODULE = 'shellservice'
+XPIDL_MODULE = "shellservice"
 
-if CONFIG['OS_ARCH'] == 'WINNT':
+if CONFIG["OS_ARCH"] == "WINNT":
     SOURCES += [
-        'nsWindowsShellService.cpp',
+        "nsWindowsShellService.cpp",
     ]
     LOCAL_INCLUDES += [
-        '/%s/other-licenses/nsis/Contrib/CityHash/cityhash' % (CONFIG['mozreltopsrcdir'],),
+        "/%s/other-licenses/nsis/Contrib/CityHash/cityhash"
+        % (CONFIG["mozreltopsrcdir"],),
     ]
 
-elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
+elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
     SOURCES += [
-        'nsMacShellService.cpp',
+        "nsMacShellService.cpp",
     ]
-elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
+elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
     SOURCES += [
-        'nsGNOMEShellService.cpp',
+        "nsGNOMEShellService.cpp",
     ]
 
 if SOURCES:
-    FINAL_LIBRARY = 'mailcomps'
+    FINAL_LIBRARY = "mailcomps"
 
-CXXFLAGS += CONFIG['TK_CFLAGS']
+CXXFLAGS += CONFIG["TK_CFLAGS"]
--- a/mail/components/wintaskbar/moz.build
+++ b/mail/components/wintaskbar/moz.build
@@ -1,9 +1,8 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'WindowsJumpLists.jsm',
+    "WindowsJumpLists.jsm",
 ]
-
--- a/mail/extensions/am-e2e/moz.build
+++ b/mail/extensions/am-e2e/moz.build
@@ -1,16 +1,16 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'AME2E.jsm',
+    "AME2E.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
 
 JS_PREFERENCE_PP_FILES += [
-    'prefs/e2e-prefs.js',
+    "prefs/e2e-prefs.js",
 ]
--- a/mail/extensions/mailviews/moz.build
+++ b/mail/extensions/mailviews/moz.build
@@ -1,6 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/mail/extensions/moz.build
+++ b/mail/extensions/moz.build
@@ -1,20 +1,20 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
 DIRS += [
-    'mailviews',
-    'smime',
+    "mailviews",
+    "smime",
 ]
 
 DIRS += [
-    'am-e2e',
+    "am-e2e",
 ]
 
-if CONFIG['MOZ_OPENPGP']:
-  DIRS += [
-      'openpgp',
-  ]
+if CONFIG["MOZ_OPENPGP"]:
+    DIRS += [
+        "openpgp",
+    ]
--- a/mail/extensions/openpgp/moz.build
+++ b/mail/extensions/openpgp/moz.build
@@ -1,5 +1,5 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/mail/extensions/smime/moz.build
+++ b/mail/extensions/smime/moz.build
@@ -1,6 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/mail/installer/windows/moz.build
+++ b/mail/installer/windows/moz.build
@@ -1,12 +1,12 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-DEFINES['APP_VERSION'] = CONFIG['MOZ_APP_VERSION']
+DEFINES["APP_VERSION"] = CONFIG["MOZ_APP_VERSION"]
 
-DEFINES['MOZ_APP_NAME'] = CONFIG['MOZ_APP_NAME']
-DEFINES['MOZ_APP_DISPLAYNAME'] = CONFIG['MOZ_APP_DISPLAYNAME']
-DEFINES['MOZILLA_VERSION'] = CONFIG['MOZILLA_VERSION']
-DEFINES['MOZ_APP_VERSION'] = CONFIG['MOZ_APP_VERSION']
-DEFINES['PRE_RELEASE_SUFFIX'] = ''
+DEFINES["MOZ_APP_NAME"] = CONFIG["MOZ_APP_NAME"]
+DEFINES["MOZ_APP_DISPLAYNAME"] = CONFIG["MOZ_APP_DISPLAYNAME"]
+DEFINES["MOZILLA_VERSION"] = CONFIG["MOZILLA_VERSION"]
+DEFINES["MOZ_APP_VERSION"] = CONFIG["MOZ_APP_VERSION"]
+DEFINES["PRE_RELEASE_SUFFIX"] = ""
--- a/mail/locales/moz.build
+++ b/mail/locales/moz.build
@@ -1,8 +1,8 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
-DEFINES['MOZ_APP_MAXVERSION'] = CONFIG['MOZ_APP_MAXVERSION']
+DEFINES["MOZ_APP_MAXVERSION"] = CONFIG["MOZ_APP_MAXVERSION"]
--- a/mail/moz.build
+++ b/mail/moz.build
@@ -1,32 +1,32 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-CONFIGURE_SUBST_FILES += ['installer/Makefile']
+CONFIGURE_SUBST_FILES += ["installer/Makefile"]
 
 # app is always last as it packages up the built files on mac.
 DIRS += [
-    'base',
-    'locales',
-    'extensions',
-    'themes',
-    'app',
-    '../common',
+    "base",
+    "locales",
+    "extensions",
+    "themes",
+    "app",
+    "../common",
 ]
 
-if CONFIG['MAKENSISU']:
-    DIRS += ['installer/windows']
+if CONFIG["MAKENSISU"]:
+    DIRS += ["installer/windows"]
 
-if CONFIG['MOZ_BUNDLED_FONTS']:
-    DIRS += ['/%s/browser/fonts' % CONFIG['mozreltopsrcdir']]
+if CONFIG["MOZ_BUNDLED_FONTS"]:
+    DIRS += ["/%s/browser/fonts" % CONFIG["mozreltopsrcdir"]]
 
-DIRS += ['../third_party']
+DIRS += ["../third_party"]
 
 TEST_DIRS += [
-    'test/browser',
-    'test/marionette',
-    'test/static',
+    "test/browser",
+    "test/marionette",
+    "test/static",
 ]
 
-FINAL_TARGET_FILES.defaults += ['app/permissions']
+FINAL_TARGET_FILES.defaults += ["app/permissions"]
--- a/mail/moz.configure
+++ b/mail/moz.configure
@@ -1,114 +1,129 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-set_config('MOZ_THUNDERBIRD', True)
-set_define('MOZ_THUNDERBIRD', True)
+set_config("MOZ_THUNDERBIRD", True)
+set_define("MOZ_THUNDERBIRD", True)
 
-imply_option('MOZ_APP_BASENAME', 'Thunderbird')
-set_config('MOZ_APPUPDATE_HOST', 'aus.thunderbird.net')
+imply_option("MOZ_APP_BASENAME", "Thunderbird")
+set_config("MOZ_APPUPDATE_HOST", "aus.thunderbird.net")
 
-imply_option('--enable-default-browser-agent', False)
+imply_option("--enable-default-browser-agent", False)
+
 
 @depends(target_is_windows, target_is_linux)
 def bundled_fonts(is_windows, is_linux):
     if is_windows or is_linux:
         return True
 
-set_config('MOZ_BUNDLED_FONTS', bundled_fonts)
-add_old_configure_assignment('MOZ_BUNDLED_FONTS', bundled_fonts)
 
-@depends(check_build_environment, '--help')
+set_config("MOZ_BUNDLED_FONTS", bundled_fonts)
+add_old_configure_assignment("MOZ_BUNDLED_FONTS", bundled_fonts)
+
+
+@depends(check_build_environment, "--help")
 def comm_paths(build_env, _):
     topsrcdir = build_env.topsrcdir
     topobjdir = build_env.topobjdir
 
-    moztopsrcdir=topsrcdir
-    commtopsrcdir='%s/comm' % topsrcdir
-    mozreltopsrcdir='.'
-    commreltopsrcdir='comm'
-    commtopobjdir='%s/comm' % topobjdir
+    moztopsrcdir = topsrcdir
+    commtopsrcdir = "%s/comm" % topsrcdir
+    mozreltopsrcdir = "."
+    commreltopsrcdir = "comm"
+    commtopobjdir = "%s/comm" % topobjdir
 
-    return namespace(moztopsrcdir=moztopsrcdir,
-                     commtopsrcdir=commtopsrcdir,
-                     mozreltopsrcdir=mozreltopsrcdir,
-                     commreltopsrcdir=commreltopsrcdir,
-                     commtopobjdir=commtopobjdir)
+    return namespace(
+        moztopsrcdir=moztopsrcdir,
+        commtopsrcdir=commtopsrcdir,
+        mozreltopsrcdir=mozreltopsrcdir,
+        commreltopsrcdir=commreltopsrcdir,
+        commtopobjdir=commtopobjdir,
+    )
+
 
 @template
-def set_defconf(k,v):
-    set_config(k,v)
-    set_define(k,v)
-    add_old_configure_assignment(k,v)
+def set_defconf(k, v):
+    set_config(k, v)
+    set_define(k, v)
+    add_old_configure_assignment(k, v)
+
 
-set_defconf('moztopsrcdir', comm_paths.moztopsrcdir)
-set_defconf('commtopsrcdir', comm_paths.commtopsrcdir)
-set_defconf('mozreltopsrcdir', comm_paths.mozreltopsrcdir)
-set_defconf('commreltopsrcdir', comm_paths.commreltopsrcdir)
-set_defconf('commtopobjdir', comm_paths.commtopobjdir)
+set_defconf("moztopsrcdir", comm_paths.moztopsrcdir)
+set_defconf("commtopsrcdir", comm_paths.commtopsrcdir)
+set_defconf("mozreltopsrcdir", comm_paths.mozreltopsrcdir)
+set_defconf("commreltopsrcdir", comm_paths.commreltopsrcdir)
+set_defconf("commtopobjdir", comm_paths.commtopobjdir)
 
 
 @depends(check_build_environment, application)
-@imports(_from='os.path', _import='exists')
-@imports(_from='__builtin__', _import='open')
+@imports(_from="os.path", _import="exists")
+@imports(_from="__builtin__", _import="open")
 def thunderbird_version(build_env, app_path):
-    version_file = os.path.join(build_env.topsrcdir, app_path[0],
-                                'config', 'version.txt')
-    version_file_display = os.path.join(build_env.topsrcdir, app_path[0],
-                                'config', 'version_display.txt')
+    version_file = os.path.join(
+        build_env.topsrcdir, app_path[0], "config", "version.txt"
+    )
+    version_file_display = os.path.join(
+        build_env.topsrcdir, app_path[0], "config", "version_display.txt"
+    )
     rv = []
-    for f in [ version_file, version_file_display ]:
+    for f in [version_file, version_file_display]:
         if exists(f):
             f_value = open(f).read().strip()
         else:
-            f_value = 'unknown'
+            f_value = "unknown"
         rv.append(f_value)
 
-    return namespace(version=rv[0],
-                     version_display=rv[1])
+    return namespace(version=rv[0], version_display=rv[1])
+
 
-set_defconf('THUNDERBIRD_VERSION', thunderbird_version.version)
-set_defconf('THUNDERBIRD_VERSION_DISPLAY', thunderbird_version.version_display)
+set_defconf("THUNDERBIRD_VERSION", thunderbird_version.version)
+set_defconf("THUNDERBIRD_VERSION_DISPLAY", thunderbird_version.version_display)
 
-set_define('MOZ_SEPARATE_MANIFEST_FOR_THEME_OVERRIDES', True)
+set_define("MOZ_SEPARATE_MANIFEST_FOR_THEME_OVERRIDES", True)
 
-imply_option('MOZ_PLACES', True)
-imply_option('MOZ_SERVICES_HEALTHREPORT', True)
-imply_option('MOZ_DEDICATED_PROFILES', True)
-imply_option('MOZ_BLOCK_PROFILE_DOWNGRADE', True)
+imply_option("MOZ_PLACES", True)
+imply_option("MOZ_SERVICES_HEALTHREPORT", True)
+imply_option("MOZ_DEDICATED_PROFILES", True)
+imply_option("MOZ_BLOCK_PROFILE_DOWNGRADE", True)
 
 with only_when(target_is_linux & compile_environment):
-    option(env='MOZ_NO_PIE_COMPAT',
-           help='Enable non-PIE wrapper')
+    option(env="MOZ_NO_PIE_COMPAT", help="Enable non-PIE wrapper")
 
-    set_config('MOZ_NO_PIE_COMPAT',
-               depends_if('MOZ_NO_PIE_COMPAT')(lambda _: True))
+    set_config("MOZ_NO_PIE_COMPAT", depends_if("MOZ_NO_PIE_COMPAT")(lambda _: True))
 
 
-@depends('MOZ_AUTOMATION')
-@imports(_from='os', _import='environ')
-@imports(_from='six', _import='ensure_text')
+@depends("MOZ_AUTOMATION")
+@imports(_from="os", _import="environ")
+@imports(_from="six", _import="ensure_text")
 def pkg_libotr(automation):
     if automation:
-        fetch_dir = environ.get('MOZ_FETCHES_DIR', None)
+        fetch_dir = environ.get("MOZ_FETCHES_DIR", None)
         if fetch_dir:
-            log.info('Including libotr from {}'.format(fetch_dir))
+            log.info("Including libotr from {}".format(fetch_dir))
             return ensure_text(fetch_dir)
 
-        log.info('TB_LIBOTR_PREBUILT is set, but MOZ_FETCHES_DIR is invalid.')
+        log.info("TB_LIBOTR_PREBUILT is set, but MOZ_FETCHES_DIR is invalid.")
 
-set_config('TB_LIBOTR_PREBUILT', pkg_libotr)
+
+set_config("TB_LIBOTR_PREBUILT", pkg_libotr)
 
 
-set_config('MOZ_TELEMETRY_EXTRA_HISTOGRAM_FILES', ['/comm/mail/components/telemetry/Histograms.json'])
-set_config('MOZ_TELEMETRY_EXTRA_SCALAR_FILES', ['/comm/mail/components/telemetry/Scalars.yaml'])
-set_config('MOZ_TELEMETRY_EXTRA_EVENT_FILES', ['/comm/mail/components/telemetry/Events.yaml'])
+set_config(
+    "MOZ_TELEMETRY_EXTRA_HISTOGRAM_FILES",
+    ["/comm/mail/components/telemetry/Histograms.json"],
+)
+set_config(
+    "MOZ_TELEMETRY_EXTRA_SCALAR_FILES", ["/comm/mail/components/telemetry/Scalars.yaml"]
+)
+set_config(
+    "MOZ_TELEMETRY_EXTRA_EVENT_FILES", ["/comm/mail/components/telemetry/Events.yaml"]
+)
 
-include('../build/moz.configure/gecko_source.configure')
+include("../build/moz.configure/gecko_source.configure")
 
-include('../mailnews/moz.configure')
+include("../mailnews/moz.configure")
 
-imply_option('--enable-app-system-headers', True)
-include('../../toolkit/moz.configure')
+imply_option("--enable-app-system-headers", True)
+include("../../toolkit/moz.configure")
--- a/mail/test/browser/moz.build
+++ b/mail/test/browser/moz.build
@@ -1,67 +1,67 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, you can obtain one at http://mozilla.org/MPL/2.0/.
 
 BROWSER_CHROME_MANIFESTS += [
-    'account/browser.ini',
-    'addrbook/browser.ini',
-    'attachment/browser.ini',
-    'cloudfile/browser.ini',
-    'composition/browser-cpp.ini',
-    'composition/browser-jsm.ini',
-    'content-policy/browser.ini',
-    'content-tabs/browser.ini',
-    'cookies/browser.ini',
-    'downloads/browser.ini',
-    'folder-display/browser.ini',
-    'folder-pane/browser.ini',
-    'folder-tree-modes/browser.ini',
-    'folder-widget/browser.ini',
-    'global-search-bar/browser.ini',
-    'im/browser.ini',
-    'instrumentation/browser.ini',
-    'junk-commands/browser.ini',
-    'keyboard/browser.ini',
-    'message-header/browser.ini',
-    'message-reader/browser.ini',
-    'message-window/browser.ini',
-    'multiple-identities/browser.ini',
-    'newmailaccount/browser.ini',
-    'notification/browser.ini',
-    'openpgp/browser.ini',
-    'override-main-menu-collapse/browser.ini',
-    'pref-window/browser.ini',
-    'quick-filter-bar/browser.ini',
-    'search-window/browser.ini',
-    'session-store/browser.ini',
-    'smime/browser.ini',
-    'startup-firstrun/browser.ini',
-    'subscribe/browser.ini',
-    'tabmail/browser.ini',
-    'utils/browser.ini',
+    "account/browser.ini",
+    "addrbook/browser.ini",
+    "attachment/browser.ini",
+    "cloudfile/browser.ini",
+    "composition/browser-cpp.ini",
+    "composition/browser-jsm.ini",
+    "content-policy/browser.ini",
+    "content-tabs/browser.ini",
+    "cookies/browser.ini",
+    "downloads/browser.ini",
+    "folder-display/browser.ini",
+    "folder-pane/browser.ini",
+    "folder-tree-modes/browser.ini",
+    "folder-widget/browser.ini",
+    "global-search-bar/browser.ini",
+    "im/browser.ini",
+    "instrumentation/browser.ini",
+    "junk-commands/browser.ini",
+    "keyboard/browser.ini",
+    "message-header/browser.ini",
+    "message-reader/browser.ini",
+    "message-window/browser.ini",
+    "multiple-identities/browser.ini",
+    "newmailaccount/browser.ini",
+    "notification/browser.ini",
+    "openpgp/browser.ini",
+    "override-main-menu-collapse/browser.ini",
+    "pref-window/browser.ini",
+    "quick-filter-bar/browser.ini",
+    "search-window/browser.ini",
+    "session-store/browser.ini",
+    "smime/browser.ini",
+    "startup-firstrun/browser.ini",
+    "subscribe/browser.ini",
+    "tabmail/browser.ini",
+    "utils/browser.ini",
 ]
 
 DIRS += [
-    'shared-modules',
+    "shared-modules",
 ]
 
 TEST_HARNESS_FILES.testing.mochitest.fakeserver += [
-    '../../../mailnews/test/fakeserver/Auth.jsm',
-    '../../../mailnews/test/fakeserver/Imapd.jsm',
-    '../../../mailnews/test/fakeserver/Maild.jsm',
-    '../../../mailnews/test/fakeserver/Nntpd.jsm',
-    '../../../mailnews/test/fakeserver/Pop3d.jsm',
-    '../../../mailnews/test/fakeserver/Smtpd.jsm',
+    "../../../mailnews/test/fakeserver/Auth.jsm",
+    "../../../mailnews/test/fakeserver/Imapd.jsm",
+    "../../../mailnews/test/fakeserver/Maild.jsm",
+    "../../../mailnews/test/fakeserver/Nntpd.jsm",
+    "../../../mailnews/test/fakeserver/Pop3d.jsm",
+    "../../../mailnews/test/fakeserver/Smtpd.jsm",
 ]
 
 TEST_HARNESS_FILES.testing.mochitest.resources += [
-    '../../../mailnews/test/resources/asyncTestUtils.js',
-    '../../../mailnews/test/resources/folderEventLogHelper.js',
-    '../../../mailnews/test/resources/logHelper.js',
-    '../../../mailnews/test/resources/MessageGenerator.jsm',
-    '../../../mailnews/test/resources/messageInjection.js',
-    '../../../mailnews/test/resources/messageModifier.js',
-    '../../../mailnews/test/resources/smimeUtils.jsm',
-    '../../base/test/unit/resources/viewWrapperTestUtils.js',
+    "../../../mailnews/test/resources/asyncTestUtils.js",
+    "../../../mailnews/test/resources/folderEventLogHelper.js",
+    "../../../mailnews/test/resources/logHelper.js",
+    "../../../mailnews/test/resources/MessageGenerator.jsm",
+    "../../../mailnews/test/resources/messageInjection.js",
+    "../../../mailnews/test/resources/messageModifier.js",
+    "../../../mailnews/test/resources/smimeUtils.jsm",
+    "../../base/test/unit/resources/viewWrapperTestUtils.js",
 ]
--- a/mail/test/browser/shared-modules/moz.build
+++ b/mail/test/browser/shared-modules/moz.build
@@ -1,36 +1,36 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 TESTING_JS_MODULES.mozmill += [
-    'AccountManagerHelpers.jsm',
-    'AddressBookHelpers.jsm',
-    'AttachmentHelpers.jsm',
-    'CloudfileHelpers.jsm',
-    'ComposeHelpers.jsm',
-    'ContentTabHelpers.jsm',
-    'controller.jsm',
-    'CustomizationHelpers.jsm',
-    'DOMHelpers.jsm',
-    'elementslib.jsm',
-    'events.jsm',
-    'EventUtils.jsm',
-    'FolderDisplayHelpers.jsm',
-    'httpd.jsm',
-    'JunkHelpers.jsm',
-    'KeyboardHelpers.jsm',
-    'MockObjectHelpers.jsm',
-    'MouseEventHelpers.jsm',
-    'NewMailAccountHelpers.jsm',
-    'NNTPHelpers.jsm',
-    'NotificationBoxHelpers.jsm',
-    'OpenPGPTestUtils.jsm',
-    'PrefTabHelpers.jsm',
-    'PromptHelpers.jsm',
-    'QuickFilterBarHelpers.jsm',
-    'SearchWindowHelpers.jsm',
-    'SubscribeWindowHelpers.jsm',
-    'utils.jsm',
-    'WindowHelpers.jsm',
+    "AccountManagerHelpers.jsm",
+    "AddressBookHelpers.jsm",
+    "AttachmentHelpers.jsm",
+    "CloudfileHelpers.jsm",
+    "ComposeHelpers.jsm",
+    "ContentTabHelpers.jsm",
+    "controller.jsm",
+    "CustomizationHelpers.jsm",
+    "DOMHelpers.jsm",
+    "elementslib.jsm",
+    "events.jsm",
+    "EventUtils.jsm",
+    "FolderDisplayHelpers.jsm",
+    "httpd.jsm",
+    "JunkHelpers.jsm",
+    "KeyboardHelpers.jsm",
+    "MockObjectHelpers.jsm",
+    "MouseEventHelpers.jsm",
+    "NewMailAccountHelpers.jsm",
+    "NNTPHelpers.jsm",
+    "NotificationBoxHelpers.jsm",
+    "OpenPGPTestUtils.jsm",
+    "PrefTabHelpers.jsm",
+    "PromptHelpers.jsm",
+    "QuickFilterBarHelpers.jsm",
+    "SearchWindowHelpers.jsm",
+    "SubscribeWindowHelpers.jsm",
+    "utils.jsm",
+    "WindowHelpers.jsm",
 ]
--- a/mail/test/marionette/moz.build
+++ b/mail/test/marionette/moz.build
@@ -1,6 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MARIONETTE_UNIT_MANIFESTS += ['manifest.ini']
+MARIONETTE_UNIT_MANIFESTS += ["manifest.ini"]
--- a/mail/test/static/moz.build
+++ b/mail/test/static/moz.build
@@ -1,8 +1,8 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, you can obtain one at http://mozilla.org/MPL/2.0/.
 
 BROWSER_CHROME_MANIFESTS += [
-    'browser.ini',
+    "browser.ini",
 ]
--- a/mail/themes/addons/moz.build
+++ b/mail/themes/addons/moz.build
@@ -1,7 +1,7 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/mail/themes/linux/moz.build
+++ b/mail/themes/linux/moz.build
@@ -1,6 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/mail/themes/moz.build
+++ b/mail/themes/moz.build
@@ -1,15 +1,15 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
-    DIRS += ['linux']
-elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
-    DIRS += ['osx']
+if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
+    DIRS += ["linux"]
+elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
+    DIRS += ["osx"]
 else:
-    DIRS += ['windows']
+    DIRS += ["windows"]
 
 DIRS += [
-    'addons',
+    "addons",
 ]
--- a/mail/themes/osx/moz.build
+++ b/mail/themes/osx/moz.build
@@ -1,6 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/mail/themes/windows/moz.build
+++ b/mail/themes/windows/moz.build
@@ -1,6 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/mailnews/addrbook/modules/moz.build
+++ b/mailnews/addrbook/modules/moz.build
@@ -1,17 +1,17 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, you can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'AddrBookCard.jsm',
-    'AddrBookDirectory.jsm',
-    'AddrBookMailingList.jsm',
-    'AddrBookManager.jsm',
-    'AddrBookUtils.jsm',
-    'CardDAVDirectory.jsm',
-    'VCardUtils.jsm',
+    "AddrBookCard.jsm",
+    "AddrBookDirectory.jsm",
+    "AddrBookMailingList.jsm",
+    "AddrBookManager.jsm",
+    "AddrBookUtils.jsm",
+    "CardDAVDirectory.jsm",
+    "VCardUtils.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
--- a/mailnews/addrbook/moz.build
+++ b/mailnews/addrbook/moz.build
@@ -1,13 +1,12 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'modules',
-    'public',
-    'src',
+    "modules",
+    "public",
+    "src",
 ]
 
-TEST_DIRS += ['test']
-
+TEST_DIRS += ["test"]
--- a/mailnews/addrbook/public/moz.build
+++ b/mailnews/addrbook/public/moz.build
@@ -1,36 +1,35 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'nsIAbAddressCollector.idl',
-    'nsIAbAutoCompleteResult.idl',
-    'nsIAbBooleanExpression.idl',
-    'nsIAbCard.idl',
-    'nsIAbDirectory.idl',
-    'nsIAbDirectoryQuery.idl',
-    'nsIAbDirectoryQueryProxy.idl',
-    'nsIAbDirSearchListener.idl',
-    'nsIAbLDAPAttributeMap.idl',
-    'nsIAbLDAPDirectory.idl',
-    'nsIAbLDAPReplicationData.idl',
-    'nsIAbLDAPReplicationQuery.idl',
-    'nsIAbLDAPReplicationService.idl',
-    'nsIAbLDIFService.idl',
-    'nsIAbManager.idl',
-    'nsIAddbookUrl.idl',
-    'nsIMsgVCardService.idl',
+    "nsIAbAddressCollector.idl",
+    "nsIAbAutoCompleteResult.idl",
+    "nsIAbBooleanExpression.idl",
+    "nsIAbCard.idl",
+    "nsIAbDirectory.idl",
+    "nsIAbDirectoryQuery.idl",
+    "nsIAbDirectoryQueryProxy.idl",
+    "nsIAbDirSearchListener.idl",
+    "nsIAbLDAPAttributeMap.idl",
+    "nsIAbLDAPDirectory.idl",
+    "nsIAbLDAPReplicationData.idl",
+    "nsIAbLDAPReplicationQuery.idl",
+    "nsIAbLDAPReplicationService.idl",
+    "nsIAbLDIFService.idl",
+    "nsIAbManager.idl",
+    "nsIAddbookUrl.idl",
+    "nsIMsgVCardService.idl",
 ]
 
-if CONFIG['OS_ARCH'] == 'WINNT' and CONFIG['MOZ_MAPI_SUPPORT']:
+if CONFIG["OS_ARCH"] == "WINNT" and CONFIG["MOZ_MAPI_SUPPORT"]:
     XPIDL_SOURCES += [
-        'nsIAbOutlookInterface.idl',
+        "nsIAbOutlookInterface.idl",
     ]
 
-XPIDL_MODULE = 'addrbook'
+XPIDL_MODULE = "addrbook"
 
 EXPORTS += [
-    'nsAbBaseCID.h',
+    "nsAbBaseCID.h",
 ]
-
--- a/mailnews/addrbook/src/moz.build
+++ b/mailnews/addrbook/src/moz.build
@@ -1,58 +1,58 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXPORTS += [
-    'nsAbDirProperty.h',
+    "nsAbDirProperty.h",
 ]
 
 SOURCES += [
-    'nsAbAddressCollector.cpp',
-    'nsAbBooleanExpression.cpp',
-    'nsAbBoolExprToLDAPFilter.cpp',
-    'nsAbCardProperty.cpp',
-    'nsAbContentHandler.cpp',
-    'nsAbDirectoryQuery.cpp',
-    'nsAbDirectoryQueryProxy.cpp',
-    'nsAbDirProperty.cpp',
-    'nsAbLDAPDirectory.cpp',
-    'nsAbLDAPDirectoryQuery.cpp',
-    'nsAbLDAPListenerBase.cpp',
-    'nsAbLDAPReplicationData.cpp',
-    'nsAbLDAPReplicationQuery.cpp',
-    'nsAbLDAPReplicationService.cpp',
-    'nsAbLDIFService.cpp',
-    'nsAbQueryStringToExpression.cpp',
-    'nsAddbookProtocolHandler.cpp',
-    'nsAddbookUrl.cpp',
+    "nsAbAddressCollector.cpp",
+    "nsAbBooleanExpression.cpp",
+    "nsAbBoolExprToLDAPFilter.cpp",
+    "nsAbCardProperty.cpp",
+    "nsAbContentHandler.cpp",
+    "nsAbDirectoryQuery.cpp",
+    "nsAbDirectoryQueryProxy.cpp",
+    "nsAbDirProperty.cpp",
+    "nsAbLDAPDirectory.cpp",
+    "nsAbLDAPDirectoryQuery.cpp",
+    "nsAbLDAPListenerBase.cpp",
+    "nsAbLDAPReplicationData.cpp",
+    "nsAbLDAPReplicationQuery.cpp",
+    "nsAbLDAPReplicationService.cpp",
+    "nsAbLDIFService.cpp",
+    "nsAbQueryStringToExpression.cpp",
+    "nsAddbookProtocolHandler.cpp",
+    "nsAddbookUrl.cpp",
 ]
 
-if CONFIG['OS_ARCH'] == 'WINNT' and CONFIG['MOZ_MAPI_SUPPORT']:
+if CONFIG["OS_ARCH"] == "WINNT" and CONFIG["MOZ_MAPI_SUPPORT"]:
     SOURCES += [
-        'nsAbOutlookDirectory.cpp',
-        'nsAbOutlookInterface.cpp',
-        'nsAbWinHelper.cpp',
-        'nsMapiAddressBook.cpp',
-        'nsWabAddressBook.cpp',
+        "nsAbOutlookDirectory.cpp",
+        "nsAbOutlookInterface.cpp",
+        "nsAbWinHelper.cpp",
+        "nsMapiAddressBook.cpp",
+        "nsWabAddressBook.cpp",
     ]
 
-if CONFIG['OS_ARCH'] == 'Darwin':
+if CONFIG["OS_ARCH"] == "Darwin":
     SOURCES += [
-        'nsAbOSXCard.mm',
-        'nsAbOSXDirectory.mm',
-        'nsAbOSXUtils.mm',
+        "nsAbOSXCard.mm",
+        "nsAbOSXDirectory.mm",
+        "nsAbOSXUtils.mm",
     ]
 
 EXTRA_JS_MODULES += [
-    'AbAutoCompleteMyDomain.jsm',
-    'AbAutoCompleteSearch.jsm',
-    'AbLDAPAttributeMap.jsm',
-    'AbLDAPAutoCompleteSearch.jsm',
+    "AbAutoCompleteMyDomain.jsm",
+    "AbAutoCompleteSearch.jsm",
+    "AbLDAPAttributeMap.jsm",
+    "AbLDAPAutoCompleteSearch.jsm",
 ]
 
-FINAL_LIBRARY = 'mail'
+FINAL_LIBRARY = "mail"
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
--- a/mailnews/addrbook/test/moz.build
+++ b/mailnews/addrbook/test/moz.build
@@ -1,14 +1,14 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 TESTING_JS_MODULES += [
-    'CardDAVServer.jsm',
-    'LDAPServer.jsm',
+    "CardDAVServer.jsm",
+    "LDAPServer.jsm",
 ]
 
 XPCSHELL_TESTS_MANIFESTS += [
-    'unit/xpcshell.ini',
-    'unit/xpcshell_cardDAV.ini',
+    "unit/xpcshell.ini",
+    "unit/xpcshell_cardDAV.ini",
 ]
--- a/mailnews/base/moz.build
+++ b/mailnews/base/moz.build
@@ -1,11 +1,11 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'public',
-    'src',
+    "public",
+    "src",
 ]
 
-TEST_DIRS += ['test']
+TEST_DIRS += ["test"]
--- a/mailnews/base/public/moz.build
+++ b/mailnews/base/public/moz.build
@@ -1,80 +1,79 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'MailNewsTypes2.idl',
-    'mozINewMailListener.idl',
-    'mozINewMailNotificationService.idl',
-    'msgIOAuth2Module.idl',
-    'nsICopyMessageListener.idl',
-    'nsICopyMsgStreamListener.idl',
-    'nsIFolderListener.idl',
-    'nsIFolderLookupService.idl',
-    'nsIIncomingServerListener.idl',
-    'nsIMapiRegistry.idl',
-    'nsIMessenger.idl',
-    'nsIMessengerMigrator.idl',
-    'nsIMessengerOSIntegration.idl',
-    'nsIMessengerWindowService.idl',
-    'nsIMsgAccount.idl',
-    'nsIMsgAccountManager.idl',
-    'nsIMsgAsyncPrompter.idl',
-    'nsIMsgBiffManager.idl',
-    'nsIMsgContentPolicy.idl',
-    'nsIMsgCopyService.idl',
-    'nsIMsgCopyServiceListener.idl',
-    'nsIMsgCustomColumnHandler.idl',
-    'nsIMsgDBView.idl',
-    'nsIMsgFolder.idl',
-    'nsIMsgFolderCache.idl',
-    'nsIMsgFolderCacheElement.idl',
-    'nsIMsgFolderCompactor.idl',
-    'nsIMsgFolderListener.idl',
-    'nsIMsgFolderNotificationService.idl',
-    'nsIMsgHdr.idl',
-    'nsIMsgIdentity.idl',
-    'nsIMsgIncomingServer.idl',
-    'nsIMsgKeyArray.idl',
-    'nsIMsgMailNewsUrl.idl',
-    'nsIMsgMailSession.idl',
-    'nsIMsgMdnGenerator.idl',
-    'nsIMsgMessageService.idl',
-    'nsIMsgOfflineManager.idl',
-    'nsIMsgPluggableStore.idl',
-    'nsIMsgPrintEngine.idl',
-    'nsIMsgProgress.idl',
-    'nsIMsgProtocolHandler.idl',
-    'nsIMsgProtocolInfo.idl',
-    'nsIMsgPurgeService.idl',
-    'nsIMsgShutdown.idl',
-    'nsIMsgStatusFeedback.idl',
-    'nsIMsgTagService.idl',
-    'nsIMsgThread.idl',
-    'nsIMsgUserFeedbackListener.idl',
-    'nsIMsgWindow.idl',
-    'nsISpamSettings.idl',
-    'nsIStatusBarBiffManager.idl',
-    'nsIStopwatch.idl',
-    'nsISubscribableServer.idl',
-    'nsIUrlListener.idl',
-    'nsMsgFolderFlags.idl',
-    'nsMsgMessageFlags.idl',
+    "MailNewsTypes2.idl",
+    "mozINewMailListener.idl",
+    "mozINewMailNotificationService.idl",
+    "msgIOAuth2Module.idl",
+    "nsICopyMessageListener.idl",
+    "nsICopyMsgStreamListener.idl",
+    "nsIFolderListener.idl",
+    "nsIFolderLookupService.idl",
+    "nsIIncomingServerListener.idl",
+    "nsIMapiRegistry.idl",
+    "nsIMessenger.idl",
+    "nsIMessengerMigrator.idl",
+    "nsIMessengerOSIntegration.idl",
+    "nsIMessengerWindowService.idl",
+    "nsIMsgAccount.idl",
+    "nsIMsgAccountManager.idl",
+    "nsIMsgAsyncPrompter.idl",
+    "nsIMsgBiffManager.idl",
+    "nsIMsgContentPolicy.idl",
+    "nsIMsgCopyService.idl",
+    "nsIMsgCopyServiceListener.idl",
+    "nsIMsgCustomColumnHandler.idl",
+    "nsIMsgDBView.idl",
+    "nsIMsgFolder.idl",
+    "nsIMsgFolderCache.idl",
+    "nsIMsgFolderCacheElement.idl",
+    "nsIMsgFolderCompactor.idl",
+    "nsIMsgFolderListener.idl",
+    "nsIMsgFolderNotificationService.idl",
+    "nsIMsgHdr.idl",
+    "nsIMsgIdentity.idl",
+    "nsIMsgIncomingServer.idl",
+    "nsIMsgKeyArray.idl",
+    "nsIMsgMailNewsUrl.idl",
+    "nsIMsgMailSession.idl",
+    "nsIMsgMdnGenerator.idl",
+    "nsIMsgMessageService.idl",
+    "nsIMsgOfflineManager.idl",
+    "nsIMsgPluggableStore.idl",
+    "nsIMsgPrintEngine.idl",
+    "nsIMsgProgress.idl",
+    "nsIMsgProtocolHandler.idl",
+    "nsIMsgProtocolInfo.idl",
+    "nsIMsgPurgeService.idl",
+    "nsIMsgShutdown.idl",
+    "nsIMsgStatusFeedback.idl",
+    "nsIMsgTagService.idl",
+    "nsIMsgThread.idl",
+    "nsIMsgUserFeedbackListener.idl",
+    "nsIMsgWindow.idl",
+    "nsISpamSettings.idl",
+    "nsIStatusBarBiffManager.idl",
+    "nsIStopwatch.idl",
+    "nsISubscribableServer.idl",
+    "nsIUrlListener.idl",
+    "nsMsgFolderFlags.idl",
+    "nsMsgMessageFlags.idl",
 ]
 
-if CONFIG['OS_ARCH'] == 'WINNT':
+if CONFIG["OS_ARCH"] == "WINNT":
     XPIDL_SOURCES += [
-        'nsIMessengerWindowsIntegration.idl',
+        "nsIMessengerWindowsIntegration.idl",
     ]
 
-XPIDL_MODULE = 'msgbase'
+XPIDL_MODULE = "msgbase"
 
 EXPORTS += [
-    'MailNewsTypes.h',
-    'msgCore.h',
-    'nsMsgBaseCID.h',
-    'nsMsgHeaderMasks.h',
-    'nsMsgLocalFolderHdrs.h',
+    "MailNewsTypes.h",
+    "msgCore.h",
+    "nsMsgBaseCID.h",
+    "nsMsgHeaderMasks.h",
+    "nsMsgLocalFolderHdrs.h",
 ]
-
--- a/mailnews/base/src/moz.build
+++ b/mailnews/base/src/moz.build
@@ -1,136 +1,136 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXPORTS += [
-    'nsImapMoveCoalescer.h',
-    'nsMailDirServiceDefs.h',
-    'nsMsgCompressIStream.h',
-    'nsMsgCompressOStream.h',
-    'nsMsgDBFolder.h',
-    'nsMsgI18N.h',
-    'nsMsgIdentity.h',
-    'nsMsgIncomingServer.h',
-    'nsMsgKeyArray.h',
-    'nsMsgKeySet.h',
-    'nsMsgLineBuffer.h',
-    'nsMsgMailNewsUrl.h',
-    'nsMsgProtocol.h',
-    'nsMsgReadStateTxn.h',
-    'nsMsgTxn.h',
-    'nsMsgUtils.h',
-    'nsNewMailnewsURI.h',
+    "nsImapMoveCoalescer.h",
+    "nsMailDirServiceDefs.h",
+    "nsMsgCompressIStream.h",
+    "nsMsgCompressOStream.h",
+    "nsMsgDBFolder.h",
+    "nsMsgI18N.h",
+    "nsMsgIdentity.h",
+    "nsMsgIncomingServer.h",
+    "nsMsgKeyArray.h",
+    "nsMsgKeySet.h",
+    "nsMsgLineBuffer.h",
+    "nsMsgMailNewsUrl.h",
+    "nsMsgProtocol.h",
+    "nsMsgReadStateTxn.h",
+    "nsMsgTxn.h",
+    "nsMsgUtils.h",
+    "nsNewMailnewsURI.h",
 ]
 
 EXPORTS.mozilla.mailnews += [
-    'ServiceList.h',
-    'Services.h',
+    "ServiceList.h",
+    "Services.h",
 ]
 
 SOURCES += [
-    'MailNewsDLF.cpp',
-    'MailnewsLoadContextInfo.cpp',
-    'nsCidProtocolHandler.cpp',
-    'nsCopyMessageStreamListener.cpp',
-    'nsImapMoveCoalescer.cpp',
-    'nsMailDirProvider.cpp',
-    'nsMessenger.cpp',
-    'nsMessengerBootstrap.cpp',
-    'nsMessengerContentHandler.cpp',
-    'nsMsgAccount.cpp',
-    'nsMsgAccountManager.cpp',
-    'nsMsgBiffManager.cpp',
-    'nsMsgCompressIStream.cpp',
-    'nsMsgCompressOStream.cpp',
-    'nsMsgContentPolicy.cpp',
-    'nsMsgCopyService.cpp',
-    'nsMsgDBFolder.cpp',
-    'nsMsgDBView.cpp',
-    'nsMsgFileStream.cpp',
-    'nsMsgFolderCache.cpp',
-    'nsMsgFolderCacheElement.cpp',
-    'nsMsgFolderCompactor.cpp',
-    'nsMsgFolderNotificationService.cpp',
-    'nsMsgGroupThread.cpp',
-    'nsMsgGroupView.cpp',
-    'nsMsgI18N.cpp',
-    'nsMsgIdentity.cpp',
-    'nsMsgIncomingServer.cpp',
-    'nsMsgKeyArray.cpp',
-    'nsMsgKeySet.cpp',
-    'nsMsgLineBuffer.cpp',
-    'nsMsgMailNewsUrl.cpp',
-    'nsMsgMailSession.cpp',
-    'nsMsgOfflineManager.cpp',
-    'nsMsgProgress.cpp',
-    'nsMsgProtocol.cpp',
-    'nsMsgPurgeService.cpp',
-    'nsMsgQuickSearchDBView.cpp',
-    'nsMsgReadStateTxn.cpp',
-    'nsMsgSearchDBView.cpp',
-    'nsMsgSpecialViews.cpp',
-    'nsMsgStatusFeedback.cpp',
-    'nsMsgTagService.cpp',
-    'nsMsgThreadedDBView.cpp',
-    'nsMsgTxn.cpp',
-    'nsMsgUtils.cpp',
-    'nsMsgWindow.cpp',
-    'nsMsgXFViewThread.cpp',
-    'nsMsgXFVirtualFolderDBView.cpp',
-    'nsNewMailnewsURI.cpp',
-    'nsSpamSettings.cpp',
-    'nsStatusBarBiffManager.cpp',
-    'nsStopwatch.cpp',
-    'nsSubscribableServer.cpp',
-    'Services.cpp',
+    "MailNewsDLF.cpp",
+    "MailnewsLoadContextInfo.cpp",
+    "nsCidProtocolHandler.cpp",
+    "nsCopyMessageStreamListener.cpp",
+    "nsImapMoveCoalescer.cpp",
+    "nsMailDirProvider.cpp",
+    "nsMessenger.cpp",
+    "nsMessengerBootstrap.cpp",
+    "nsMessengerContentHandler.cpp",
+    "nsMsgAccount.cpp",
+    "nsMsgAccountManager.cpp",
+    "nsMsgBiffManager.cpp",
+    "nsMsgCompressIStream.cpp",
+    "nsMsgCompressOStream.cpp",
+    "nsMsgContentPolicy.cpp",
+    "nsMsgCopyService.cpp",
+    "nsMsgDBFolder.cpp",
+    "nsMsgDBView.cpp",
+    "nsMsgFileStream.cpp",
+    "nsMsgFolderCache.cpp",
+    "nsMsgFolderCacheElement.cpp",
+    "nsMsgFolderCompactor.cpp",
+    "nsMsgFolderNotificationService.cpp",
+    "nsMsgGroupThread.cpp",
+    "nsMsgGroupView.cpp",
+    "nsMsgI18N.cpp",
+    "nsMsgIdentity.cpp",
+    "nsMsgIncomingServer.cpp",
+    "nsMsgKeyArray.cpp",
+    "nsMsgKeySet.cpp",
+    "nsMsgLineBuffer.cpp",
+    "nsMsgMailNewsUrl.cpp",
+    "nsMsgMailSession.cpp",
+    "nsMsgOfflineManager.cpp",
+    "nsMsgProgress.cpp",
+    "nsMsgProtocol.cpp",
+    "nsMsgPurgeService.cpp",
+    "nsMsgQuickSearchDBView.cpp",
+    "nsMsgReadStateTxn.cpp",
+    "nsMsgSearchDBView.cpp",
+    "nsMsgSpecialViews.cpp",
+    "nsMsgStatusFeedback.cpp",
+    "nsMsgTagService.cpp",
+    "nsMsgThreadedDBView.cpp",
+    "nsMsgTxn.cpp",
+    "nsMsgUtils.cpp",
+    "nsMsgWindow.cpp",
+    "nsMsgXFViewThread.cpp",
+    "nsMsgXFVirtualFolderDBView.cpp",
+    "nsNewMailnewsURI.cpp",
+    "nsSpamSettings.cpp",
+    "nsStatusBarBiffManager.cpp",
+    "nsStopwatch.cpp",
+    "nsSubscribableServer.cpp",
+    "Services.cpp",
 ]
 
-if CONFIG['NS_PRINTING']:
-    SOURCES += ['nsMsgPrintEngine.cpp']
+if CONFIG["NS_PRINTING"]:
+    SOURCES += ["nsMsgPrintEngine.cpp"]
 
-if CONFIG['OS_ARCH'] == 'WINNT':
-    SOURCES += ['nsMessengerWinIntegration.cpp']
+if CONFIG["OS_ARCH"] == "WINNT":
+    SOURCES += ["nsMessengerWinIntegration.cpp"]
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
-    SOURCES += ['nsMessengerUnixIntegration.cpp']
-elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
-    SOURCES += ['nsMessengerOSXIntegration.mm']
+if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
+    SOURCES += ["nsMessengerUnixIntegration.cpp"]
+elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
+    SOURCES += ["nsMessengerOSXIntegration.mm"]
 
 EXTRA_JS_MODULES += [
-    'ABQueryUtils.jsm',
-    'converterWorker.js',
-    'ErrUtils.jsm',
-    'FolderLookupService.jsm',
-    'folderUtils.jsm',
-    'hostnameUtils.jsm',
-    'IOUtils.jsm',
-    'iteratorUtils.jsm',
-    'JsTreeSelection.jsm',
-    'JXON.jsm',
-    'MailNewsCommandLineHandler.jsm',
-    'MailnewsMigrator.jsm',
-    'MailNotificationService.jsm',
-    'MailServices.jsm',
-    'mailstoreConverter.jsm',
-    'MsgAsyncPrompter.jsm',
-    'MsgDBCacheManager.jsm',
-    'OAuth2.jsm',
-    'OAuth2Module.jsm',
-    'OAuth2Providers.jsm',
-    'TemplateUtils.jsm',
-    'TraceHelper.jsm',
-    'VirtualFolderWrapper.jsm',
+    "ABQueryUtils.jsm",
+    "converterWorker.js",
+    "ErrUtils.jsm",
+    "FolderLookupService.jsm",
+    "folderUtils.jsm",
+    "hostnameUtils.jsm",
+    "IOUtils.jsm",
+    "iteratorUtils.jsm",
+    "JsTreeSelection.jsm",
+    "JXON.jsm",
+    "MailNewsCommandLineHandler.jsm",
+    "MailnewsMigrator.jsm",
+    "MailNotificationService.jsm",
+    "MailServices.jsm",
+    "mailstoreConverter.jsm",
+    "MsgAsyncPrompter.jsm",
+    "MsgDBCacheManager.jsm",
+    "OAuth2.jsm",
+    "OAuth2Module.jsm",
+    "OAuth2Providers.jsm",
+    "TemplateUtils.jsm",
+    "TraceHelper.jsm",
+    "VirtualFolderWrapper.jsm",
 ]
 LOCAL_INCLUDES += [
-  '/%s/dom/base' % CONFIG['mozreltopsrcdir'],
-  '/%s/netwerk/base' % CONFIG['mozreltopsrcdir']
+    "/%s/dom/base" % CONFIG["mozreltopsrcdir"],
+    "/%s/netwerk/base" % CONFIG["mozreltopsrcdir"],
 ]
 
-include('/ipc/chromium/chromium-config.mozbuild')
+include("/ipc/chromium/chromium-config.mozbuild")
 
-FINAL_LIBRARY = 'mail'
+FINAL_LIBRARY = "mail"
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
--- a/mailnews/base/test/moz.build
+++ b/mailnews/base/test/moz.build
@@ -1,17 +1,17 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
+XPCSHELL_TESTS_MANIFESTS += ["unit/xpcshell.ini"]
 
-FINAL_LIBRARY = 'xul-gtest'
+FINAL_LIBRARY = "xul-gtest"
 
 UNIFIED_SOURCES += [
-    'TestMsgStripRE.cpp',
+    "TestMsgStripRE.cpp",
 ]
 
 LOCAL_INCLUDES += [
-    '/%s/netwerk/test' % CONFIG['mozreltopsrcdir'],
-    '/%s/xpcom/tests' % CONFIG['mozreltopsrcdir'],
+    "/%s/netwerk/test" % CONFIG["mozreltopsrcdir"],
+    "/%s/xpcom/tests" % CONFIG["mozreltopsrcdir"],
 ]
--- a/mailnews/build/moz.build
+++ b/mailnews/build/moz.build
@@ -1,50 +1,50 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES += [
-    'nsMailModule.cpp',
+    "nsMailModule.cpp",
 ]
 
 USE_LIBS += [
-    'nspr',
+    "nspr",
 ]
 
-Library('mail')
-FINAL_LIBRARY = 'xul'
+Library("mail")
+FINAL_LIBRARY = "xul"
 
 # js needs to come after xul for now, because it is an archive and its content
 # is discarded when it comes first.
 USE_LIBS += [
-    'js',
+    "js",
 ]
 
-if CONFIG['OS_ARCH'] == 'WINNT':
+if CONFIG["OS_ARCH"] == "WINNT":
     OS_LIBS += [
-        'shell32',
+        "shell32",
     ]
 else:
-    OS_LIBS += CONFIG['MOZ_ZLIB_LIBS']
+    OS_LIBS += CONFIG["MOZ_ZLIB_LIBS"]
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
-    OS_LIBS += CONFIG['TK_LIBS']
-    OS_LIBS += ['-framework Cocoa']
+if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
+    OS_LIBS += CONFIG["TK_LIBS"]
+    OS_LIBS += ["-framework Cocoa"]
 
 LOCAL_INCLUDES += [
-    '../addrbook/src',
-    '../base/src',
-    '../compose/src',
-    '../extensions/bayesian-spam-filter',
-    '../extensions/fts3',
-    '../extensions/mailviews',
-    '../extensions/mdn',
-    '../extensions/smime',
-    '../imap/src',
-    '../intl',
-    '../local/src',
-    '../mime/emitters',
-    '../mime/src',
-    '../news/src',
-    '../search/src',
+    "../addrbook/src",
+    "../base/src",
+    "../compose/src",
+    "../extensions/bayesian-spam-filter",
+    "../extensions/fts3",
+    "../extensions/mailviews",
+    "../extensions/mdn",
+    "../extensions/smime",
+    "../imap/src",
+    "../intl",
+    "../local/src",
+    "../mime/emitters",
+    "../mime/src",
+    "../news/src",
+    "../search/src",
 ]
--- a/mailnews/compose/moz.build
+++ b/mailnews/compose/moz.build
@@ -1,12 +1,11 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'public',
-    'src',
+    "public",
+    "src",
 ]
 
-TEST_DIRS += ['test']
-
+TEST_DIRS += ["test"]
--- a/mailnews/compose/public/moz.build
+++ b/mailnews/compose/public/moz.build
@@ -1,35 +1,35 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'nsIMsgAttachment.idl',
-    'nsIMsgAttachmentHandler.idl',
-    'nsIMsgCompFields.idl',
-    'nsIMsgCompose.idl',
-    'nsIMsgComposeParams.idl',
-    'nsIMsgComposeProgressParams.idl',
-    'nsIMsgComposeSecure.idl',
-    'nsIMsgComposeService.idl',
-    'nsIMsgCompUtils.idl',
-    'nsIMsgCopy.idl',
-    'nsIMsgQuote.idl',
-    'nsIMsgQuotingOutputStreamListener.idl',
-    'nsIMsgSend.idl',
-    'nsIMsgSendLater.idl',
-    'nsIMsgSendLaterListener.idl',
-    'nsIMsgSendListener.idl',
-    'nsIMsgSendReport.idl',
-    'nsISmtpServer.idl',
-    'nsISmtpService.idl',
-    'nsISmtpUrl.idl',
-    'nsIURLFetcher.idl',
+    "nsIMsgAttachment.idl",
+    "nsIMsgAttachmentHandler.idl",
+    "nsIMsgCompFields.idl",
+    "nsIMsgCompose.idl",
+    "nsIMsgComposeParams.idl",
+    "nsIMsgComposeProgressParams.idl",
+    "nsIMsgComposeSecure.idl",
+    "nsIMsgComposeService.idl",
+    "nsIMsgCompUtils.idl",
+    "nsIMsgCopy.idl",
+    "nsIMsgQuote.idl",
+    "nsIMsgQuotingOutputStreamListener.idl",
+    "nsIMsgSend.idl",
+    "nsIMsgSendLater.idl",
+    "nsIMsgSendLaterListener.idl",
+    "nsIMsgSendListener.idl",
+    "nsIMsgSendReport.idl",
+    "nsISmtpServer.idl",
+    "nsISmtpService.idl",
+    "nsISmtpUrl.idl",
+    "nsIURLFetcher.idl",
 ]
 
-XPIDL_MODULE = 'msgcompose'
+XPIDL_MODULE = "msgcompose"
 
 EXPORTS += [
-    'nsMsgAttachmentData.h',
-    'nsMsgCompCID.h',
+    "nsMsgAttachmentData.h",
+    "nsMsgCompCID.h",
 ]
--- a/mailnews/compose/src/moz.build
+++ b/mailnews/compose/src/moz.build
@@ -1,73 +1,73 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXPORTS += [
-    'nsComposeStrings.h',
-    'nsMsgAttachmentHandler.h',
-    'nsMsgCompFields.h',
-    'nsMsgCompose.h',
-    'nsMsgSend.h',
+    "nsComposeStrings.h",
+    "nsMsgAttachmentHandler.h",
+    "nsMsgCompFields.h",
+    "nsMsgCompose.h",
+    "nsMsgSend.h",
 ]
 
 SOURCES += [
-    'nsComposeStrings.cpp',
-    'nsMsgAttachment.cpp',
-    'nsMsgAttachmentHandler.cpp',
-    'nsMsgCompFields.cpp',
-    'nsMsgCompose.cpp',
-    'nsMsgComposeContentHandler.cpp',
-    'nsMsgComposeParams.cpp',
-    'nsMsgComposeProgressParams.cpp',
-    'nsMsgComposeService.cpp',
-    'nsMsgCompUtils.cpp',
-    'nsMsgCopy.cpp',
-    'nsMsgPrompts.cpp',
-    'nsMsgQuote.cpp',
-    'nsMsgSend.cpp',
-    'nsMsgSendLater.cpp',
-    'nsMsgSendPart.cpp',
-    'nsMsgSendReport.cpp',
-    'nsSmtpProtocol.cpp',
-    'nsSmtpServer.cpp',
-    'nsSmtpService.cpp',
-    'nsSmtpUrl.cpp',
-    'nsURLFetcher.cpp',
+    "nsComposeStrings.cpp",
+    "nsMsgAttachment.cpp",
+    "nsMsgAttachmentHandler.cpp",
+    "nsMsgCompFields.cpp",
+    "nsMsgCompose.cpp",
+    "nsMsgComposeContentHandler.cpp",
+    "nsMsgComposeParams.cpp",
+    "nsMsgComposeProgressParams.cpp",
+    "nsMsgComposeService.cpp",
+    "nsMsgCompUtils.cpp",
+    "nsMsgCopy.cpp",
+    "nsMsgPrompts.cpp",
+    "nsMsgQuote.cpp",
+    "nsMsgSend.cpp",
+    "nsMsgSendLater.cpp",
+    "nsMsgSendPart.cpp",
+    "nsMsgSendReport.cpp",
+    "nsSmtpProtocol.cpp",
+    "nsSmtpServer.cpp",
+    "nsSmtpService.cpp",
+    "nsSmtpUrl.cpp",
+    "nsURLFetcher.cpp",
 ]
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
+if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
     SOURCES += [
-        'nsMsgAppleDoubleEncode.cpp',
-        'nsMsgAppleEncode.cpp',
+        "nsMsgAppleDoubleEncode.cpp",
+        "nsMsgAppleEncode.cpp",
     ]
     EXPORTS += [
-        'nsMsgAppleCodes.h',
-        'nsMsgAppleDouble.h',
+        "nsMsgAppleCodes.h",
+        "nsMsgAppleDouble.h",
     ]
 
 LOCAL_INCLUDES += [
-  '/%s/dom/base' % CONFIG['mozreltopsrcdir'],
+    "/%s/dom/base" % CONFIG["mozreltopsrcdir"],
 ]
 
-include('/ipc/chromium/chromium-config.mozbuild')
+include("/ipc/chromium/chromium-config.mozbuild")
 
-FINAL_LIBRARY = 'mail'
+FINAL_LIBRARY = "mail"
 
 # clang-cl rightly complains about switch on nsresult.
-if CONFIG['CC_TYPE'] == 'clang-cl':
-    CXXFLAGS += ['-Wno-switch']
+if CONFIG["CC_TYPE"] == "clang-cl":
+    CXXFLAGS += ["-Wno-switch"]
 
 EXTRA_JS_MODULES += [
-    'MessageSend.jsm',
-    'MimeEncoder.jsm',
-    'MimeMessage.jsm',
-    'MimeMessageUtils.jsm',
-    'MimePart.jsm',
-    'MsgSendModuleLoader.jsm',
-    'SMTPProtocolHandler.jsm',
+    "MessageSend.jsm",
+    "MimeEncoder.jsm",
+    "MimeMessage.jsm",
+    "MimeMessageUtils.jsm",
+    "MimePart.jsm",
+    "MsgSendModuleLoader.jsm",
+    "SMTPProtocolHandler.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
--- a/mailnews/compose/test/moz.build
+++ b/mailnews/compose/test/moz.build
@@ -1,9 +1,9 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPCSHELL_TESTS_MANIFESTS += [
-    'unit/xpcshell-cpp.ini',
-    'unit/xpcshell-jsm.ini',
+    "unit/xpcshell-cpp.ini",
+    "unit/xpcshell-jsm.ini",
 ]
--- a/mailnews/db/gloda/components/moz.build
+++ b/mailnews/db/gloda/components/moz.build
@@ -1,13 +1,13 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'GlodaAutoComplete.jsm',
-    'MimeMessageEmitter.jsm',
+    "GlodaAutoComplete.jsm",
+    "MimeMessageEmitter.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
--- a/mailnews/db/gloda/modules/moz.build
+++ b/mailnews/db/gloda/modules/moz.build
@@ -1,32 +1,32 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES.gloda += [
-    'Collection.jsm',
-    'Everybody.jsm',
-    'Facet.jsm',
-    'Gloda.jsm',
-    'GlodaContent.jsm',
-    'GlodaDatabind.jsm',
-    'GlodaDataModel.jsm',
-    'GlodaDatastore.jsm',
-    'GlodaExplicitAttr.jsm',
-    'GlodaFundAttr.jsm',
-    'GlodaIndexer.jsm',
-    'GlodaMsgIndexer.jsm',
-    'GlodaMsgSearcher.jsm',
-    'GlodaPublic.jsm',
-    'GlodaQueryClassFactory.jsm',
-    'GlodaSyntheticView.jsm',
-    'GlodaUtils.jsm',
-    'IndexMsg.jsm',
-    'Log4moz.jsm',
-    'MimeMessage.jsm',
-    'MimeTypeCategories.jsm',
-    'NounFreetag.jsm',
-    'NounMimetype.jsm',
-    'NounTag.jsm',
-    'SuffixTree.jsm',
+    "Collection.jsm",
+    "Everybody.jsm",
+    "Facet.jsm",
+    "Gloda.jsm",
+    "GlodaContent.jsm",
+    "GlodaDatabind.jsm",
+    "GlodaDataModel.jsm",
+    "GlodaDatastore.jsm",
+    "GlodaExplicitAttr.jsm",
+    "GlodaFundAttr.jsm",
+    "GlodaIndexer.jsm",
+    "GlodaMsgIndexer.jsm",
+    "GlodaMsgSearcher.jsm",
+    "GlodaPublic.jsm",
+    "GlodaQueryClassFactory.jsm",
+    "GlodaSyntheticView.jsm",
+    "GlodaUtils.jsm",
+    "IndexMsg.jsm",
+    "Log4moz.jsm",
+    "MimeMessage.jsm",
+    "MimeTypeCategories.jsm",
+    "NounFreetag.jsm",
+    "NounMimetype.jsm",
+    "NounTag.jsm",
+    "SuffixTree.jsm",
 ]
--- a/mailnews/db/gloda/moz.build
+++ b/mailnews/db/gloda/moz.build
@@ -1,13 +1,13 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'modules',
-    'components',
+    "modules",
+    "components",
 ]
 
-TEST_DIRS += ['test']
+TEST_DIRS += ["test"]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/mailnews/db/gloda/test/moz.build
+++ b/mailnews/db/gloda/test/moz.build
@@ -1,7 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
-
+XPCSHELL_TESTS_MANIFESTS += ["unit/xpcshell.ini"]
--- a/mailnews/db/mork/moz.build
+++ b/mailnews/db/mork/moz.build
@@ -1,65 +1,65 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXPORTS += [
-    'mdb.h',
-    'nsIMdbFactoryFactory.h',
-    'nsMorkCID.h',
+    "mdb.h",
+    "nsIMdbFactoryFactory.h",
+    "nsMorkCID.h",
 ]
 
 SOURCES += [
-    'morkArray.cpp',
-    'morkAtom.cpp',
-    'morkAtomMap.cpp',
-    'morkAtomSpace.cpp',
-    'morkBead.cpp',
-    'morkBlob.cpp',
-    'morkBuilder.cpp',
-    'morkCell.cpp',
-    'morkCellObject.cpp',
-    'morkCh.cpp',
-    'morkConfig.cpp',
-    'morkCursor.cpp',
-    'morkDeque.cpp',
-    'morkEnv.cpp',
-    'morkFactory.cpp',
-    'morkFile.cpp',
-    'morkHandle.cpp',
-    'morkIntMap.cpp',
-    'morkMap.cpp',
-    'morkNode.cpp',
-    'morkNodeMap.cpp',
-    'morkObject.cpp',
-    'morkParser.cpp',
-    'morkPool.cpp',
-    'morkPortTableCursor.cpp',
-    'morkProbeMap.cpp',
-    'morkRow.cpp',
-    'morkRowCellCursor.cpp',
-    'morkRowMap.cpp',
-    'morkRowObject.cpp',
-    'morkRowSpace.cpp',
-    'morkSink.cpp',
-    'morkSpace.cpp',
-    'morkStore.cpp',
-    'morkStream.cpp',
-    'morkTable.cpp',
-    'morkTableRowCursor.cpp',
-    'morkThumb.cpp',
-    'morkWriter.cpp',
-    'morkYarn.cpp',
-    'morkZone.cpp',
-    'nsMorkFactory.cpp',
-    'orkinHeap.cpp',
+    "morkArray.cpp",
+    "morkAtom.cpp",
+    "morkAtomMap.cpp",
+    "morkAtomSpace.cpp",
+    "morkBead.cpp",
+    "morkBlob.cpp",
+    "morkBuilder.cpp",
+    "morkCell.cpp",
+    "morkCellObject.cpp",
+    "morkCh.cpp",
+    "morkConfig.cpp",
+    "morkCursor.cpp",
+    "morkDeque.cpp",
+    "morkEnv.cpp",
+    "morkFactory.cpp",
+    "morkFile.cpp",
+    "morkHandle.cpp",
+    "morkIntMap.cpp",
+    "morkMap.cpp",
+    "morkNode.cpp",
+    "morkNodeMap.cpp",
+    "morkObject.cpp",
+    "morkParser.cpp",
+    "morkPool.cpp",
+    "morkPortTableCursor.cpp",
+    "morkProbeMap.cpp",
+    "morkRow.cpp",
+    "morkRowCellCursor.cpp",
+    "morkRowMap.cpp",
+    "morkRowObject.cpp",
+    "morkRowSpace.cpp",
+    "morkSink.cpp",
+    "morkSpace.cpp",
+    "morkStore.cpp",
+    "morkStream.cpp",
+    "morkTable.cpp",
+    "morkTableRowCursor.cpp",
+    "morkThumb.cpp",
+    "morkWriter.cpp",
+    "morkYarn.cpp",
+    "morkZone.cpp",
+    "nsMorkFactory.cpp",
+    "orkinHeap.cpp",
 ]
 
-if CONFIG['OS_ARCH'] == 'WINNT':
-    SOURCES += ['morkSearchRowCursor.cpp']
+if CONFIG["OS_ARCH"] == "WINNT":
+    SOURCES += ["morkSearchRowCursor.cpp"]
 
-Library('mork')
-FINAL_LIBRARY = 'mail'
+Library("mork")
+FINAL_LIBRARY = "mail"
 # clang-cl complains about this.
-if CONFIG['CC_TYPE'] == 'clang-cl':
-    CXXFLAGS += ['-Wno-overloaded-virtual']
+if CONFIG["CC_TYPE"] == "clang-cl":
+    CXXFLAGS += ["-Wno-overloaded-virtual"]
--- a/mailnews/db/moz.build
+++ b/mailnews/db/moz.build
@@ -1,10 +1,9 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'msgdb',
-    'gloda',
+    "msgdb",
+    "gloda",
 ]
-
--- a/mailnews/db/msgdb/moz.build
+++ b/mailnews/db/msgdb/moz.build
@@ -1,12 +1,11 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'public',
-    'src',
+    "public",
+    "src",
 ]
 
-TEST_DIRS += ['test']
-
+TEST_DIRS += ["test"]
--- a/mailnews/db/msgdb/public/moz.build
+++ b/mailnews/db/msgdb/public/moz.build
@@ -1,27 +1,26 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'nsIDBChangeAnnouncer.idl',
-    'nsIDBChangeListener.idl',
-    'nsIDBFolderInfo.idl',
-    'nsIMsgDatabase.idl',
-    'nsIMsgOfflineImapOperation.idl',
-    'nsINewsDatabase.idl',
+    "nsIDBChangeAnnouncer.idl",
+    "nsIDBChangeListener.idl",
+    "nsIDBFolderInfo.idl",
+    "nsIMsgDatabase.idl",
+    "nsIMsgOfflineImapOperation.idl",
+    "nsINewsDatabase.idl",
 ]
 
-XPIDL_MODULE = 'msgdb'
+XPIDL_MODULE = "msgdb"
 
 EXPORTS += [
-    'nsDBFolderInfo.h',
-    'nsImapMailDatabase.h',
-    'nsMailDatabase.h',
-    'nsMsgDatabase.h',
-    'nsMsgDBCID.h',
-    'nsMsgHdr.h',
-    'nsMsgThread.h',
-    'nsNewsDatabase.h',
+    "nsDBFolderInfo.h",
+    "nsImapMailDatabase.h",
+    "nsMailDatabase.h",
+    "nsMsgDatabase.h",
+    "nsMsgDBCID.h",
+    "nsMsgHdr.h",
+    "nsMsgThread.h",
+    "nsNewsDatabase.h",
 ]
-
--- a/mailnews/db/msgdb/src/moz.build
+++ b/mailnews/db/msgdb/src/moz.build
@@ -1,18 +1,17 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES += [
-    'nsDBFolderInfo.cpp',
-    'nsImapMailDatabase.cpp',
-    'nsMailDatabase.cpp',
-    'nsMsgDatabase.cpp',
-    'nsMsgHdr.cpp',
-    'nsMsgOfflineImapOperation.cpp',
-    'nsMsgThread.cpp',
-    'nsNewsDatabase.cpp',
+    "nsDBFolderInfo.cpp",
+    "nsImapMailDatabase.cpp",
+    "nsMailDatabase.cpp",
+    "nsMsgDatabase.cpp",
+    "nsMsgHdr.cpp",
+    "nsMsgOfflineImapOperation.cpp",
+    "nsMsgThread.cpp",
+    "nsNewsDatabase.cpp",
 ]
 
-FINAL_LIBRARY = 'mail'
-
+FINAL_LIBRARY = "mail"
--- a/mailnews/db/msgdb/test/moz.build
+++ b/mailnews/db/msgdb/test/moz.build
@@ -1,7 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
-
+XPCSHELL_TESTS_MANIFESTS += ["unit/xpcshell.ini"]
--- a/mailnews/extensions/bayesian-spam-filter/moz.build
+++ b/mailnews/extensions/bayesian-spam-filter/moz.build
@@ -1,13 +1,12 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES += [
-    'nsBayesianFilter.cpp',
+    "nsBayesianFilter.cpp",
 ]
 
-FINAL_LIBRARY = 'mail'
+FINAL_LIBRARY = "mail"
 
-XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini']
-
+XPCSHELL_TESTS_MANIFESTS += ["test/unit/xpcshell.ini"]
--- a/mailnews/extensions/dsn/moz.build
+++ b/mailnews/extensions/dsn/moz.build
@@ -1,18 +1,18 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'DSNService.jsm',
+    "DSNService.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
 JS_PREFERENCE_FILES += [
-    'dsn.js',
+    "dsn.js",
 ]
--- a/mailnews/extensions/fts3/moz.build
+++ b/mailnews/extensions/fts3/moz.build
@@ -1,21 +1,21 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'nsIFts3Tokenizer.idl',
+    "nsIFts3Tokenizer.idl",
 ]
 
-XPIDL_MODULE = 'fts3tok'
+XPIDL_MODULE = "fts3tok"
 
 SOURCES += [
-    'fts3_porter.c',
-    'Normalize.c',
-    'nsFts3Tokenizer.cpp',
-    'nsGlodaRankerFunction.cpp',
+    "fts3_porter.c",
+    "Normalize.c",
+    "nsFts3Tokenizer.cpp",
+    "nsGlodaRankerFunction.cpp",
 ]
 
-FINAL_LIBRARY = 'mail'
+FINAL_LIBRARY = "mail"
 
-CXXFLAGS += CONFIG['SQLITE_CFLAGS']
+CXXFLAGS += CONFIG["SQLITE_CFLAGS"]
--- a/mailnews/extensions/mailviews/moz.build
+++ b/mailnews/extensions/mailviews/moz.build
@@ -1,21 +1,21 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES += [
-    'nsMsgMailViewList.cpp',
+    "nsMsgMailViewList.cpp",
 ]
 
-FINAL_LIBRARY = 'mail'
+FINAL_LIBRARY = "mail"
 
 XPIDL_SOURCES += [
-    'nsIMsgMailView.idl',
-    'nsIMsgMailViewList.idl',
+    "nsIMsgMailView.idl",
+    "nsIMsgMailViewList.idl",
 ]
 
-XPIDL_MODULE = 'mailview'
+XPIDL_MODULE = "mailview"
 
 FINAL_TARGET_FILES.defaults.messenger += [
-    'mailViews.dat',
+    "mailViews.dat",
 ]
--- a/mailnews/extensions/mdn/moz.build
+++ b/mailnews/extensions/mdn/moz.build
@@ -1,27 +1,26 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
 JS_PREFERENCE_PP_FILES += [
-    'mdn.js',
+    "mdn.js",
 ]
 
-XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini']
+XPCSHELL_TESTS_MANIFESTS += ["test/unit/xpcshell.ini"]
 
 SOURCES += [
-    'nsMsgMdnGenerator.cpp',
+    "nsMsgMdnGenerator.cpp",
 ]
 
 EXTRA_JS_MODULES += [
-    'MDNService.jsm',
+    "MDNService.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
 
-FINAL_LIBRARY = 'mail'
-
+FINAL_LIBRARY = "mail"
--- a/mailnews/extensions/moz.build
+++ b/mailnews/extensions/moz.build
@@ -1,16 +1,15 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # These extensions are not optional.
 DIRS += [
-    'mdn',
-    'mailviews',
-    'bayesian-spam-filter',
-    'offline-startup',
-    'newsblog',
-    'fts3',
-    'smime',
+    "mdn",
+    "mailviews",
+    "bayesian-spam-filter",
+    "offline-startup",
+    "newsblog",
+    "fts3",
+    "smime",
 ]
-
--- a/mailnews/extensions/newsblog/moz.build
+++ b/mailnews/extensions/newsblog/moz.build
@@ -1,17 +1,16 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'FeedUtils.jsm',
-    'NewsBlog.jsm',
+    "FeedUtils.jsm",
+    "NewsBlog.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
 
-JAR_MANIFESTS += ['jar.mn']
-XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini']
-
+JAR_MANIFESTS += ["jar.mn"]
+XPCSHELL_TESTS_MANIFESTS += ["test/unit/xpcshell.ini"]
--- a/mailnews/extensions/offline-startup/moz.build
+++ b/mailnews/extensions/offline-startup/moz.build
@@ -1,12 +1,12 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES += [
-    'OfflineStartup.jsm',
+    "OfflineStartup.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
--- a/mailnews/extensions/smime/moz.build
+++ b/mailnews/extensions/smime/moz.build
@@ -1,37 +1,36 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'nsICertPickDialogs.idl',
-    'nsICMSDecoder.idl',
-    'nsICMSEncoder.idl',
-    'nsICMSMessage.idl',
-    'nsICMSMessageErrors.idl',
-    'nsICMSSecureMessage.idl',
-    'nsIEncryptedSMIMEURIsSrvc.idl',
-    'nsIMsgSMIMEHeaderSink.idl',
-    'nsISMimeJSHelper.idl',
-    'nsIUserCertPicker.idl',
+    "nsICertPickDialogs.idl",
+    "nsICMSDecoder.idl",
+    "nsICMSEncoder.idl",
+    "nsICMSMessage.idl",
+    "nsICMSMessageErrors.idl",
+    "nsICMSSecureMessage.idl",
+    "nsIEncryptedSMIMEURIsSrvc.idl",
+    "nsIMsgSMIMEHeaderSink.idl",
+    "nsISMimeJSHelper.idl",
+    "nsIUserCertPicker.idl",
 ]
 
-XPIDL_MODULE = 'msgsmime'
+XPIDL_MODULE = "msgsmime"
 
 SOURCES += [
-    'nsCertPicker.cpp',
-    'nsCMS.cpp',
-    'nsCMSSecureMessage.cpp',
-    'nsEncryptedSMIMEURIsService.cpp',
-    'nsMsgComposeSecure.cpp',
-    'nsSMimeJSHelper.cpp',
+    "nsCertPicker.cpp",
+    "nsCMS.cpp",
+    "nsCMSSecureMessage.cpp",
+    "nsEncryptedSMIMEURIsService.cpp",
+    "nsMsgComposeSecure.cpp",
+    "nsSMimeJSHelper.cpp",
 ]
 
-FINAL_LIBRARY = 'mail'
+FINAL_LIBRARY = "mail"
 
 LOCAL_INCLUDES += [
-    '/%s/security/certverifier' % CONFIG['mozreltopsrcdir'],
-    '/%s/security/manager/pki' % CONFIG['mozreltopsrcdir'],
-    '/%s/security/manager/ssl' % CONFIG['mozreltopsrcdir']
+    "/%s/security/certverifier" % CONFIG["mozreltopsrcdir"],
+    "/%s/security/manager/pki" % CONFIG["mozreltopsrcdir"],
+    "/%s/security/manager/ssl" % CONFIG["mozreltopsrcdir"],
 ]
-
--- a/mailnews/imap/public/moz.build
+++ b/mailnews/imap/public/moz.build
@@ -1,32 +1,31 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'nsIAutoSyncFolderStrategy.idl',
-    'nsIAutoSyncManager.idl',
-    'nsIAutoSyncMsgStrategy.idl',
-    'nsIAutoSyncState.idl',
-    'nsIImapFlagAndUidState.idl',
-    'nsIImapHeaderXferInfo.idl',
-    'nsIImapIncomingServer.idl',
-    'nsIImapMailFolderSink.idl',
-    'nsIImapMessageSink.idl',
-    'nsIImapMockChannel.idl',
-    'nsIImapProtocol.idl',
-    'nsIImapProtocolSink.idl',
-    'nsIImapServerSink.idl',
-    'nsIImapService.idl',
-    'nsIImapUrl.idl',
-    'nsIMailboxSpec.idl',
-    'nsIMsgImapMailFolder.idl',
+    "nsIAutoSyncFolderStrategy.idl",
+    "nsIAutoSyncManager.idl",
+    "nsIAutoSyncMsgStrategy.idl",
+    "nsIAutoSyncState.idl",
+    "nsIImapFlagAndUidState.idl",
+    "nsIImapHeaderXferInfo.idl",
+    "nsIImapIncomingServer.idl",
+    "nsIImapMailFolderSink.idl",
+    "nsIImapMessageSink.idl",
+    "nsIImapMockChannel.idl",
+    "nsIImapProtocol.idl",
+    "nsIImapProtocolSink.idl",
+    "nsIImapServerSink.idl",
+    "nsIImapService.idl",
+    "nsIImapUrl.idl",
+    "nsIMailboxSpec.idl",
+    "nsIMsgImapMailFolder.idl",
 ]
 
-XPIDL_MODULE = 'msgimap'
+XPIDL_MODULE = "msgimap"
 
 EXPORTS += [
-    'nsIIMAPHostSessionList.h',
-    'nsMsgImapCID.h',
+    "nsIIMAPHostSessionList.h",
+    "nsMsgImapCID.h",
 ]
-
--- a/mailnews/imap/src/moz.build
+++ b/mailnews/imap/src/moz.build
@@ -1,38 +1,38 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXPORTS += [
-    'nsImapCore.h',
+    "nsImapCore.h",
 ]
 
 SOURCES += [
-    'nsAutoSyncManager.cpp',
-    'nsAutoSyncState.cpp',
-    'nsIMAPBodyShell.cpp',
-    'nsImapFlagAndUidState.cpp',
-    'nsIMAPGenericParser.cpp',
-    'nsIMAPHostSessionList.cpp',
-    'nsImapIncomingServer.cpp',
-    'nsImapMailFolder.cpp',
-    'nsIMAPNamespace.cpp',
-    'nsImapOfflineSync.cpp',
-    'nsImapProtocol.cpp',
-    'nsImapSearchResults.cpp',
-    'nsImapServerResponseParser.cpp',
-    'nsImapService.cpp',
-    'nsImapStringBundle.cpp',
-    'nsImapUndoTxn.cpp',
-    'nsImapUrl.cpp',
-    'nsImapUtils.cpp',
-    'nsSyncRunnableHelpers.cpp',
+    "nsAutoSyncManager.cpp",
+    "nsAutoSyncState.cpp",
+    "nsIMAPBodyShell.cpp",
+    "nsImapFlagAndUidState.cpp",
+    "nsIMAPGenericParser.cpp",
+    "nsIMAPHostSessionList.cpp",
+    "nsImapIncomingServer.cpp",
+    "nsImapMailFolder.cpp",
+    "nsIMAPNamespace.cpp",
+    "nsImapOfflineSync.cpp",
+    "nsImapProtocol.cpp",
+    "nsImapSearchResults.cpp",
+    "nsImapServerResponseParser.cpp",
+    "nsImapService.cpp",
+    "nsImapStringBundle.cpp",
+    "nsImapUndoTxn.cpp",
+    "nsImapUrl.cpp",
+    "nsImapUtils.cpp",
+    "nsSyncRunnableHelpers.cpp",
 ]
 
-FINAL_LIBRARY = 'mail'
+FINAL_LIBRARY = "mail"
 
 LOCAL_INCLUDES += [
     # for nsImapProtocol.cpp
-    '/ipc/chromium/src',
-    '/netwerk/base',
+    "/ipc/chromium/src",
+    "/netwerk/base",
 ]
--- a/mailnews/imap/test/moz.build
+++ b/mailnews/imap/test/moz.build
@@ -1,22 +1,22 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
+XPCSHELL_TESTS_MANIFESTS += ["unit/xpcshell.ini"]
 
 LOCAL_INCLUDES += [
-   '../../base/src',
-   '../src',
-   '/%s/xpcom/tests' % CONFIG['mozreltopsrcdir'],
+    "../../base/src",
+    "../src",
+    "/%s/xpcom/tests" % CONFIG["mozreltopsrcdir"],
 ]
 
 USE_LIBS += [
-    'msgbsutl_s',
-    'msgimap_s',
-    'nspr',
-    'xpcomglue_s',
-    'xul',
+    "msgbsutl_s",
+    "msgimap_s",
+    "nspr",
+    "xpcomglue_s",
+    "xul",
 ]
 
-OS_LIBS += CONFIG['MOZ_ZLIB_LIBS']
+OS_LIBS += CONFIG["MOZ_ZLIB_LIBS"]
--- a/mailnews/import/build/moz.build
+++ b/mailnews/import/build/moz.build
@@ -1,32 +1,32 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES += [
-    'nsImportModule.cpp',
+    "nsImportModule.cpp",
 ]
 
 USE_LIBS += [
-    'nspr',
+    "nspr",
 ]
 
-Library('import')
-FINAL_LIBRARY = 'xul'
+Library("import")
+FINAL_LIBRARY = "xul"
 
 # js needs to come after xul for now, because it is an archive and its content
 # is discarded when it comes first.
 USE_LIBS += [
-    'js',
+    "js",
 ]
 
 LOCAL_INCLUDES += [
-    '../src',
+    "../src",
 ]
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
-    OS_LIBS += CONFIG['TK_LIBS']
-    OS_LIBS += ['-framework Cocoa']
+if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
+    OS_LIBS += CONFIG["TK_LIBS"]
+    OS_LIBS += ["-framework Cocoa"]
 
-if CONFIG['OS_ARCH'] != 'WINNT':
-    OS_LIBS += CONFIG['MOZ_ZLIB_LIBS']
+if CONFIG["OS_ARCH"] != "WINNT":
+    OS_LIBS += CONFIG["MOZ_ZLIB_LIBS"]
--- a/mailnews/import/public/moz.build
+++ b/mailnews/import/public/moz.build
@@ -1,20 +1,19 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'nsIImportABDescriptor.idl',
-    'nsIImportAddressBooks.idl',
-    'nsIImportFieldMap.idl',
-    'nsIImportFilters.idl',
-    'nsIImportGeneric.idl',
-    'nsIImportMail.idl',
-    'nsIImportMailboxDescriptor.idl',
-    'nsIImportModule.idl',
-    'nsIImportService.idl',
-    'nsIImportSettings.idl',
+    "nsIImportABDescriptor.idl",
+    "nsIImportAddressBooks.idl",
+    "nsIImportFieldMap.idl",
+    "nsIImportFilters.idl",
+    "nsIImportGeneric.idl",
+    "nsIImportMail.idl",
+    "nsIImportMailboxDescriptor.idl",
+    "nsIImportModule.idl",
+    "nsIImportService.idl",
+    "nsIImportSettings.idl",
 ]
 
-XPIDL_MODULE = 'import'
-
+XPIDL_MODULE = "import"
--- a/mailnews/import/src/moz.build
+++ b/mailnews/import/src/moz.build
@@ -1,89 +1,88 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES += [
-    'ImportCharSet.cpp',
-    'ImportOutFile.cpp',
-    'ImportTranslate.cpp',
-    'MorkImport.cpp',
-    'nsAddrDatabase.cpp',
-    'nsImportABDescriptor.cpp',
-    'nsImportAddressBooks.cpp',
-    'nsImportEmbeddedImageData.cpp',
-    'nsImportEncodeScan.cpp',
-    'nsImportFieldMap.cpp',
-    'nsImportMail.cpp',
-    'nsImportMailboxDescriptor.cpp',
-    'nsImportScanFile.cpp',
-    'nsImportService.cpp',
-    'nsImportStringBundle.cpp',
-    'nsImportTranslator.cpp',
-    'nsTextAddress.cpp',
-    'nsTextImport.cpp',
-    'nsVCardAddress.cpp',
-    'nsVCardImport.cpp',
+    "ImportCharSet.cpp",
+    "ImportOutFile.cpp",
+    "ImportTranslate.cpp",
+    "MorkImport.cpp",
+    "nsAddrDatabase.cpp",
+    "nsImportABDescriptor.cpp",
+    "nsImportAddressBooks.cpp",
+    "nsImportEmbeddedImageData.cpp",
+    "nsImportEncodeScan.cpp",
+    "nsImportFieldMap.cpp",
+    "nsImportMail.cpp",
+    "nsImportMailboxDescriptor.cpp",
+    "nsImportScanFile.cpp",
+    "nsImportService.cpp",
+    "nsImportStringBundle.cpp",
+    "nsImportTranslator.cpp",
+    "nsTextAddress.cpp",
+    "nsTextImport.cpp",
+    "nsVCardAddress.cpp",
+    "nsVCardImport.cpp",
 ]
 
-if not CONFIG['MOZ_SUITE']:
+if not CONFIG["MOZ_SUITE"]:
     EXTRA_COMPONENTS += [
-        'SeamonkeyImport.manifest',
+        "SeamonkeyImport.manifest",
     ]
 
     EXTRA_JS_MODULES += [
-        'SeamonkeyImport.jsm',
+        "SeamonkeyImport.jsm",
     ]
 
     XPCOM_MANIFESTS += [
-        'components.conf',
+        "components.conf",
     ]
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
+if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
     SOURCES += [
-        'nsAppleMailImport.cpp',
-        'nsEmlxHelperUtils.mm',
+        "nsAppleMailImport.cpp",
+        "nsEmlxHelperUtils.mm",
     ]
 
-if CONFIG['OS_ARCH'] == 'WINNT':
+if CONFIG["OS_ARCH"] == "WINNT":
     UNIFIED_SOURCES += [
-        'nsBeckyAddressBooks.cpp',
-        'nsBeckyFilters.cpp',
-        'nsBeckyImport.cpp',
-        'nsBeckyMail.cpp',
-        'nsBeckySettings.cpp',
-        'nsBeckyStringBundle.cpp',
-        'nsBeckyUtils.cpp',
+        "nsBeckyAddressBooks.cpp",
+        "nsBeckyFilters.cpp",
+        "nsBeckyImport.cpp",
+        "nsBeckyMail.cpp",
+        "nsBeckySettings.cpp",
+        "nsBeckyStringBundle.cpp",
+        "nsBeckyUtils.cpp",
     ]
 
-    if CONFIG['MOZ_MAPI_SUPPORT']:
+    if CONFIG["MOZ_MAPI_SUPPORT"]:
         SOURCES += [
-            'MapiApi.cpp',
-            'MapiMessage.cpp',
-            'MapiMimeTypes.cpp',
-            'nsOutlookCompose.cpp',
-            'nsOutlookImport.cpp',
-            'nsOutlookMail.cpp',
-            'nsOutlookSettings.cpp',
-            'nsOutlookStringBundle.cpp',
-            'rtfDecoder.cpp',
-            'rtfMailDecoder.cpp',
+            "MapiApi.cpp",
+            "MapiMessage.cpp",
+            "MapiMimeTypes.cpp",
+            "nsOutlookCompose.cpp",
+            "nsOutlookImport.cpp",
+            "nsOutlookMail.cpp",
+            "nsOutlookSettings.cpp",
+            "nsOutlookStringBundle.cpp",
+            "rtfDecoder.cpp",
+            "rtfMailDecoder.cpp",
         ]
 
-        SOURCES['rtfDecoder.cpp'].flags += ['-Wno-switch']
+        SOURCES["rtfDecoder.cpp"].flags += ["-Wno-switch"]
 
-    if CONFIG['CC_TYPE'] in ('msvc', 'clang-cl'):
+    if CONFIG["CC_TYPE"] in ("msvc", "clang-cl"):
         SOURCES += [
-            'nsWMImport.cpp',
-            'nsWMSettings.cpp',
-            'nsWMStringBundle.cpp',
-            'nsWMUtils.cpp',
+            "nsWMImport.cpp",
+            "nsWMSettings.cpp",
+            "nsWMStringBundle.cpp",
+            "nsWMUtils.cpp",
         ]
 
 EXPORTS += [
-    'ImportDebug.h',
-    'nsVCardAddress.h',
+    "ImportDebug.h",
+    "nsVCardAddress.h",
 ]
 
-FINAL_LIBRARY = 'import'
-
+FINAL_LIBRARY = "import"
--- a/mailnews/import/test/moz.build
+++ b/mailnews/import/test/moz.build
@@ -1,15 +1,14 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
+XPCSHELL_TESTS_MANIFESTS += ["unit/xpcshell.ini"]
 
 EXTRA_JS_MODULES += [
-  'unit/resources/TestMailImporter.jsm',
+    "unit/resources/TestMailImporter.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-  'components.conf',
+    "components.conf",
 ]
-
--- a/mailnews/intl/moz.build
+++ b/mailnews/intl/moz.build
@@ -1,38 +1,38 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'nsICharsetConverterManager.idl',
+    "nsICharsetConverterManager.idl",
 ]
 
 UNIFIED_SOURCES += [
-    'nsCharsetAlias.cpp',
-    'nsCharsetConverterManager.cpp',
-    'nsMUTF7ToUnicode.cpp',
-    'nsUnicodeToMUTF7.cpp',
-    'nsUnicodeToUTF7.cpp',
-    'nsUTF7ToUnicode.cpp',
+    "nsCharsetAlias.cpp",
+    "nsCharsetConverterManager.cpp",
+    "nsMUTF7ToUnicode.cpp",
+    "nsUnicodeToMUTF7.cpp",
+    "nsUnicodeToUTF7.cpp",
+    "nsUTF7ToUnicode.cpp",
 ]
 
-XPIDL_MODULE = 'commuconv'
+XPIDL_MODULE = "commuconv"
 
 LOCAL_INCLUDES += [
-    '/%s/intl/locale' % CONFIG['mozreltopsrcdir'],
+    "/%s/intl/locale" % CONFIG["mozreltopsrcdir"],
 ]
 
 GENERATED_FILES += [
-    'charsetalias.properties.h',
+    "charsetalias.properties.h",
 ]
-charsetalias = GENERATED_FILES['charsetalias.properties.h']
-charsetalias.script = '/%s/intl/locale/props2arrays.py' % CONFIG['mozreltopsrcdir']
-charsetalias.inputs = ['charsetalias.properties']
+charsetalias = GENERATED_FILES["charsetalias.properties.h"]
+charsetalias.script = "/%s/intl/locale/props2arrays.py" % CONFIG["mozreltopsrcdir"]
+charsetalias.inputs = ["charsetalias.properties"]
 
-FINAL_LIBRARY = 'mail'
+FINAL_LIBRARY = "mail"
 
 # Tests need more attention before they can be enabled.
-TEST_DIRS += ['test']
+TEST_DIRS += ["test"]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
--- a/mailnews/intl/test/moz.build
+++ b/mailnews/intl/test/moz.build
@@ -1,7 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
-
+XPCSHELL_TESTS_MANIFESTS += ["unit/xpcshell.ini"]
--- a/mailnews/jsaccount/moz.build
+++ b/mailnews/jsaccount/moz.build
@@ -1,23 +1,20 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-DIRS += [
-  'public',
-  'src'
-]
+DIRS += ["public", "src"]
 
 EXTRA_JS_MODULES.jsaccount += [
-  'modules/JaBaseUrl.jsm',
-  'modules/JSAccountUtils.jsm',
-  'test/unit/resources/TestJaMsgProtocolInfoComponent.jsm',
+    "modules/JaBaseUrl.jsm",
+    "modules/JSAccountUtils.jsm",
+    "test/unit/resources/TestJaMsgProtocolInfoComponent.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-  'test/components.conf',
+    "test/components.conf",
 ]
 
 
-TEST_DIRS += ['test']
+TEST_DIRS += ["test"]
--- a/mailnews/jsaccount/public/moz.build
+++ b/mailnews/jsaccount/public/moz.build
@@ -1,18 +1,17 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'msgIDelegateList.idl',
-    'msgIJaUrl.idl',
-    'msgIOverride.idl',
+    "msgIDelegateList.idl",
+    "msgIJaUrl.idl",
+    "msgIOverride.idl",
 ]
 
 EXPORTS += [
-    'msgJsAccountCID.h',
+    "msgJsAccountCID.h",
 ]
 
-XPIDL_MODULE = 'msgjsaccount'
-
+XPIDL_MODULE = "msgjsaccount"
--- a/mailnews/jsaccount/src/moz.build
+++ b/mailnews/jsaccount/src/moz.build
@@ -1,28 +1,28 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES += [
-    'DelegateList.cpp',
-    'JaAbDirectory.cpp',
-    'JaCompose.cpp',
-    'JaIncomingServer.cpp',
-    'JaMsgFolder.cpp',
-    'JaSend.cpp',
-    'JaUrl.cpp',
+    "DelegateList.cpp",
+    "JaAbDirectory.cpp",
+    "JaCompose.cpp",
+    "JaIncomingServer.cpp",
+    "JaMsgFolder.cpp",
+    "JaSend.cpp",
+    "JaUrl.cpp",
 ]
 
 EXPORTS += [
-    'DelegateList.h',
-    'JaAbDirectory.h',
-    'JaCompose.h',
-    'JaIncomingServer.h',
-    'JaMsgFolder.h',
-    'JaSend.h',
-    'JaUrl.h',
+    "DelegateList.h",
+    "JaAbDirectory.h",
+    "JaCompose.h",
+    "JaIncomingServer.h",
+    "JaMsgFolder.h",
+    "JaSend.h",
+    "JaUrl.h",
 ]
 
-Library('JsAccount')
-FINAL_LIBRARY = 'mail'
+Library("JsAccount")
+FINAL_LIBRARY = "mail"
--- a/mailnews/jsaccount/test/idl/moz.build
+++ b/mailnews/jsaccount/test/idl/moz.build
@@ -1,15 +1,15 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # Any copyright is dedicated to the Public Domain.
 # http://creativecommons.org/publicdomain/zero/1.0/
 
 XPIDL_SOURCES += [
-  'msgIFooUrl.idl',
+    "msgIFooUrl.idl",
 ]
 
-XPIDL_MODULE = 'testJsAccount'
+XPIDL_MODULE = "testJsAccount"
 
-if 'comm' in CONFIG['MOZ_BUILD_APP']:
-  test_harness_base = TEST_HARNESS_FILES.xpcshell.comm
+if "comm" in CONFIG["MOZ_BUILD_APP"]:
+    test_harness_base = TEST_HARNESS_FILES.xpcshell.comm
 else:
-  test_harness_base = TEST_HARNESS_FILES.xpcshell
+    test_harness_base = TEST_HARNESS_FILES.xpcshell
--- a/mailnews/jsaccount/test/moz.build
+++ b/mailnews/jsaccount/test/moz.build
@@ -1,15 +1,15 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # Any copyright is dedicated to the Public Domain.
 # http://creativecommons.org/publicdomain/zero/1.0/
 
 TEST_DIRS += [
-  'idl',
+    "idl",
 ]
 
-XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
+XPCSHELL_TESTS_MANIFESTS += ["unit/xpcshell.ini"]
 
 TESTING_JS_MODULES.mailnews += [
-  'unit/resources/testJaBaseIncomingServer.jsm',
-  'unit/resources/testJaBaseMsgFolder.jsm',
+    "unit/resources/testJaBaseIncomingServer.jsm",
+    "unit/resources/testJaBaseMsgFolder.jsm",
 ]
--- a/mailnews/local/public/moz.build
+++ b/mailnews/local/public/moz.build
@@ -1,31 +1,30 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'nsILocalMailIncomingServer.idl',
-    'nsIMailboxService.idl',
-    'nsIMailboxUrl.idl',
-    'nsIMovemailIncomingServer.idl',
-    'nsIMovemailService.idl',
-    'nsIMsgLocalMailFolder.idl',
-    'nsIMsgParseMailMsgState.idl',
-    'nsINewsBlogFeedDownloader.idl',
-    'nsINoIncomingServer.idl',
-    'nsINoneService.idl',
-    'nsIPop3IncomingServer.idl',
-    'nsIPop3Protocol.idl',
-    'nsIPop3Service.idl',
-    'nsIPop3Sink.idl',
-    'nsIPop3URL.idl',
-    'nsIRssIncomingServer.idl',
-    'nsIRssService.idl',
+    "nsILocalMailIncomingServer.idl",
+    "nsIMailboxService.idl",
+    "nsIMailboxUrl.idl",
+    "nsIMovemailIncomingServer.idl",
+    "nsIMovemailService.idl",
+    "nsIMsgLocalMailFolder.idl",
+    "nsIMsgParseMailMsgState.idl",
+    "nsINewsBlogFeedDownloader.idl",
+    "nsINoIncomingServer.idl",
+    "nsINoneService.idl",
+    "nsIPop3IncomingServer.idl",
+    "nsIPop3Protocol.idl",
+    "nsIPop3Service.idl",
+    "nsIPop3Sink.idl",
+    "nsIPop3URL.idl",
+    "nsIRssIncomingServer.idl",
+    "nsIRssService.idl",
 ]
 
-XPIDL_MODULE = 'msglocal'
+XPIDL_MODULE = "msglocal"
 
 EXPORTS += [
-    'nsMsgLocalCID.h',
+    "nsMsgLocalCID.h",
 ]
-
--- a/mailnews/local/src/moz.build
+++ b/mailnews/local/src/moz.build
@@ -1,36 +1,35 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES += [
-    'nsLocalMailFolder.cpp',
-    'nsLocalUndoTxn.cpp',
-    'nsLocalUtils.cpp',
-    'nsMailboxProtocol.cpp',
-    'nsMailboxServer.cpp',
-    'nsMailboxService.cpp',
-    'nsMailboxUrl.cpp',
-    'nsMsgBrkMBoxStore.cpp',
-    'nsMsgLocalStoreUtils.cpp',
-    'nsMsgMaildirStore.cpp',
-    'nsNoIncomingServer.cpp',
-    'nsNoneService.cpp',
-    'nsParseMailbox.cpp',
-    'nsPop3IncomingServer.cpp',
-    'nsPop3Protocol.cpp',
-    'nsPop3Service.cpp',
-    'nsPop3Sink.cpp',
-    'nsPop3URL.cpp',
-    'nsRssIncomingServer.cpp',
-    'nsRssService.cpp',
+    "nsLocalMailFolder.cpp",
+    "nsLocalUndoTxn.cpp",
+    "nsLocalUtils.cpp",
+    "nsMailboxProtocol.cpp",
+    "nsMailboxServer.cpp",
+    "nsMailboxService.cpp",
+    "nsMailboxUrl.cpp",
+    "nsMsgBrkMBoxStore.cpp",
+    "nsMsgLocalStoreUtils.cpp",
+    "nsMsgMaildirStore.cpp",
+    "nsNoIncomingServer.cpp",
+    "nsNoneService.cpp",
+    "nsParseMailbox.cpp",
+    "nsPop3IncomingServer.cpp",
+    "nsPop3Protocol.cpp",
+    "nsPop3Service.cpp",
+    "nsPop3Sink.cpp",
+    "nsPop3URL.cpp",
+    "nsRssIncomingServer.cpp",
+    "nsRssService.cpp",
 ]
 
-if CONFIG['MOZ_MOVEMAIL']:
+if CONFIG["MOZ_MOVEMAIL"]:
     SOURCES += [
-        'nsMovemailIncomingServer.cpp',
-        'nsMovemailService.cpp',
+        "nsMovemailIncomingServer.cpp",
+        "nsMovemailService.cpp",
     ]
 
-FINAL_LIBRARY = 'mail'
-
+FINAL_LIBRARY = "mail"
--- a/mailnews/local/test/moz.build
+++ b/mailnews/local/test/moz.build
@@ -1,7 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
-
+XPCSHELL_TESTS_MANIFESTS += ["unit/xpcshell.ini"]
--- a/mailnews/mapi/mapiDll/moz.build
+++ b/mailnews/mapi/mapiDll/moz.build
@@ -1,22 +1,22 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # Statically link against the CRT, so that we don't go hunting around for it
 # and not find it when we're loaded into explorer.exe or similar
-SharedLibrary('mozMapi32')
+SharedLibrary("mozMapi32")
 USE_STATIC_LIBS = True
 
 SOURCES += [
-    'MapiDll.cpp',
+    "MapiDll.cpp",
 ]
 
 OS_LIBS += [
-    'ole32',
+    "ole32",
 ]
 
-DEFINES['UNICODE'] = True
-DEFINES['_UNICODE'] = True
+DEFINES["UNICODE"] = True
+DEFINES["_UNICODE"] = True
 
-DEFFILE = 'Mapi32.def'
+DEFFILE = "Mapi32.def"
--- a/mailnews/mapi/mapihook/build/moz.build
+++ b/mailnews/mapi/mapihook/build/moz.build
@@ -1,40 +1,35 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-SharedLibrary('MapiProxy')
+SharedLibrary("MapiProxy")
 
 OS_LIBS += [
-    'rpcrt4',
-]
-
-SOURCES += [
-    '!dlldata.c',
-    '!msgMapi_i.c',
-    '!msgMapi_p.c'
+    "rpcrt4",
 ]
 
-GENERATED_FILES += [
-    'dlldata.c',
-    'msgMapi.h',
-    'msgMapi_i.c',
-    'msgMapi_p.c'
-]
+SOURCES += ["!dlldata.c", "!msgMapi_i.c", "!msgMapi_p.c"]
 
-for var in ('REGISTER_PROXY_DLL', 'UNICODE', '_UNICODE'):
+GENERATED_FILES += ["dlldata.c", "msgMapi.h", "msgMapi_i.c", "msgMapi_p.c"]
+
+for var in ("REGISTER_PROXY_DLL", "UNICODE", "_UNICODE"):
     DEFINES[var] = True
 
-DEFFILE = 'MapiProxy.def'
+DEFFILE = "MapiProxy.def"
 
 # The Windows MIDL code generator creates things like:
 #
 #   #endif !_MIDL_USE_GUIDDEF_
 #
 # which clang-cl complains about.  MSVC doesn't, so turn this warning off.
-if CONFIG['CC_TYPE'] == 'clang-cl':
-    CFLAGS += ['-Wno-extra-tokens']
+if CONFIG["CC_TYPE"] == "clang-cl":
+    CFLAGS += ["-Wno-extra-tokens"]
 
 # clang-cl complains about these in generated code:
-if CONFIG['CC_TYPE'] == 'clang-cl':
-    CFLAGS += ['-Wno-extern-initializer','-Wno-missing-braces','-Wno-unused-const-variable']
+if CONFIG["CC_TYPE"] == "clang-cl":
+    CFLAGS += [
+        "-Wno-extern-initializer",
+        "-Wno-missing-braces",
+        "-Wno-unused-const-variable",
+    ]
--- a/mailnews/mapi/mapihook/moz.build
+++ b/mailnews/mapi/mapihook/moz.build
@@ -1,11 +1,10 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'public',
-    'build',
-    'src',
+    "public",
+    "build",
+    "src",
 ]
-
--- a/mailnews/mapi/mapihook/public/moz.build
+++ b/mailnews/mapi/mapihook/public/moz.build
@@ -1,11 +1,10 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'nsIMapiSupport.idl',
+    "nsIMapiSupport.idl",
 ]
 
-XPIDL_MODULE = 'mapihook'
-
+XPIDL_MODULE = "mapihook"
--- a/mailnews/mapi/mapihook/src/moz.build
+++ b/mailnews/mapi/mapihook/src/moz.build
@@ -1,27 +1,27 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES += [
-    '!../build/msgMapi_i.c',
-    'msgMapiFactory.cpp',
-    'msgMapiHook.cpp',
-    'msgMapiImp.cpp',
-    'msgMapiMain.cpp',
-    'msgMapiSupport.cpp',
-    'Registry.cpp',
+    "!../build/msgMapi_i.c",
+    "msgMapiFactory.cpp",
+    "msgMapiHook.cpp",
+    "msgMapiImp.cpp",
+    "msgMapiMain.cpp",
+    "msgMapiSupport.cpp",
+    "Registry.cpp",
 ]
 
-FINAL_LIBRARY = 'xul'
+FINAL_LIBRARY = "xul"
 
 OS_LIBS += [
-    'ole32',
+    "ole32",
 ]
 
-DEFINES['UNICODE'] = True
-DEFINES['_UNICODE'] = True
+DEFINES["UNICODE"] = True
+DEFINES["_UNICODE"] = True
 
 # clang-cl rightly complains about switch on nsresult.
-if CONFIG['CC_TYPE'] == 'clang-cl':
-    CXXFLAGS += ['-Wno-switch']
+if CONFIG["CC_TYPE"] == "clang-cl":
+    CXXFLAGS += ["-Wno-switch"]
--- a/mailnews/mapi/test/moz.build
+++ b/mailnews/mapi/test/moz.build
@@ -1,7 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
-
+XPCSHELL_TESTS_MANIFESTS += ["unit/xpcshell.ini"]
--- a/mailnews/mime/cthandlers/glue/moz.build
+++ b/mailnews/mime/cthandlers/glue/moz.build
@@ -1,18 +1,17 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXPORTS += [
-    'nsMimeContentTypeHandler.h',
+    "nsMimeContentTypeHandler.h",
 ]
 
 SOURCES += [
-    'mimexpcom.cpp',
-    'nsMimeContentTypeHandler.cpp',
+    "mimexpcom.cpp",
+    "nsMimeContentTypeHandler.cpp",
 ]
 
-FINAL_LIBRARY = 'mail'
+FINAL_LIBRARY = "mail"
 
-Library('mimecthglue_s')
-
+Library("mimecthglue_s")
--- a/mailnews/mime/cthandlers/moz.build
+++ b/mailnews/mime/cthandlers/moz.build
@@ -1,11 +1,10 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # pgpmime depends on glue.
 DIRS += [
-    'glue',
-    'pgpmime',
+    "glue",
+    "pgpmime",
 ]
-
--- a/mailnews/mime/cthandlers/pgpmime/moz.build
+++ b/mailnews/mime/cthandlers/pgpmime/moz.build
@@ -1,20 +1,20 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXPORTS += [
-    'nsPgpMimeProxy.h',
+    "nsPgpMimeProxy.h",
 ]
 
 SOURCES += [
-    'nsPgpMimeProxy.cpp',
+    "nsPgpMimeProxy.cpp",
 ]
 
-FINAL_LIBRARY = 'mail'
+FINAL_LIBRARY = "mail"
 
-Library('pgpmime_s')
+Library("pgpmime_s")
 
 LOCAL_INCLUDES += [
-    '../glue',
+    "../glue",
 ]
--- a/mailnews/mime/emitters/moz.build
+++ b/mailnews/mime/emitters/moz.build
@@ -1,21 +1,20 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXPORTS += [
-    'nsMimeEmitterCID.h',
+    "nsMimeEmitterCID.h",
 ]
 
 SOURCES += [
-    'nsEmitterUtils.cpp',
-    'nsMimeBaseEmitter.cpp',
-    'nsMimeHtmlEmitter.cpp',
-    'nsMimePlainEmitter.cpp',
-    'nsMimeRawEmitter.cpp',
-    'nsMimeRebuffer.cpp',
-    'nsMimeXmlEmitter.cpp',
+    "nsEmitterUtils.cpp",
+    "nsMimeBaseEmitter.cpp",
+    "nsMimeHtmlEmitter.cpp",
+    "nsMimePlainEmitter.cpp",
+    "nsMimeRawEmitter.cpp",
+    "nsMimeRebuffer.cpp",
+    "nsMimeXmlEmitter.cpp",
 ]
 
-FINAL_LIBRARY = 'mail'
-
+FINAL_LIBRARY = "mail"
--- a/mailnews/mime/moz.build
+++ b/mailnews/mime/moz.build
@@ -1,23 +1,23 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'public',
-    'src',
-    'emitters',
-    'cthandlers',
+    "public",
+    "src",
+    "emitters",
+    "cthandlers",
 ]
 
-TEST_DIRS += ['test']
+TEST_DIRS += ["test"]
 
 EXTRA_JS_MODULES.jsmime += [
-    'jsmime/jsmime.js',
+    "jsmime/jsmime.js",
 ]
 
 TESTING_JS_MODULES.jsmime += [
-    'jsmime/test/unit/mock_date.js',
+    "jsmime/test/unit/mock_date.js",
 ]
 
-XPCSHELL_TESTS_MANIFESTS += ['jsmime/test/unit/xpcshell.ini']
+XPCSHELL_TESTS_MANIFESTS += ["jsmime/test/unit/xpcshell.ini"]
--- a/mailnews/mime/public/moz.build
+++ b/mailnews/mime/public/moz.build
@@ -1,30 +1,30 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'msgIStructuredHeaders.idl',
-    'nsIMimeConverter.idl',
-    'nsIMimeEmitter.idl',
-    'nsIMimeHeaders.idl',
-    'nsIMimeMiscStatus.idl',
-    'nsIMimeStreamConverter.idl',
-    'nsIMsgHeaderParser.idl',
-    'nsIPgpMimeProxy.idl',
-    'nsISimpleMimeConverter.idl',
+    "msgIStructuredHeaders.idl",
+    "nsIMimeConverter.idl",
+    "nsIMimeEmitter.idl",
+    "nsIMimeHeaders.idl",
+    "nsIMimeMiscStatus.idl",
+    "nsIMimeStreamConverter.idl",
+    "nsIMsgHeaderParser.idl",
+    "nsIPgpMimeProxy.idl",
+    "nsISimpleMimeConverter.idl",
 ]
 
-XPIDL_MODULE = 'mime'
+XPIDL_MODULE = "mime"
 
 EXPORTS += [
-    'nsIMimeContentTypeHandler.h',
-    'nsIMimeObjectClassAccess.h',
-    'nsMailHeaders.h',
-    'nsMsgMimeCID.h',
+    "nsIMimeContentTypeHandler.h",
+    "nsIMimeObjectClassAccess.h",
+    "nsMailHeaders.h",
+    "nsMsgMimeCID.h",
 ]
 
 EXPORTS.mozilla.mailnews += [
-    'MimeEncoder.h',
-    'MimeHeaderParser.h',
+    "MimeEncoder.h",
+    "MimeHeaderParser.h",
 ]
--- a/mailnews/mime/src/moz.build
+++ b/mailnews/mime/src/moz.build
@@ -1,88 +1,88 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXPORTS += [
-    'mimecont.h',
-    'mimecryp.h',
-    'mimecth.h',
-    'mimehdrs.h',
-    'mimei.h',
-    'mimeleaf.h',
-    'mimemoz2.h',
-    'mimemsig.h',
-    'mimemult.h',
-    'mimeobj.h',
-    'mimepbuf.h',
-    'mimetext.h',
-    'modlmime.h',
-    'modmimee.h',
-    'nsMimeStringResources.h',
-    'nsStreamConverter.h',
+    "mimecont.h",
+    "mimecryp.h",
+    "mimecth.h",
+    "mimehdrs.h",
+    "mimei.h",
+    "mimeleaf.h",
+    "mimemoz2.h",
+    "mimemsig.h",
+    "mimemult.h",
+    "mimeobj.h",
+    "mimepbuf.h",
+    "mimetext.h",
+    "modlmime.h",
+    "modmimee.h",
+    "nsMimeStringResources.h",
+    "nsStreamConverter.h",
 ]
 
 SOURCES += [
-    'comi18n.cpp',
-    'mimebuf.cpp',
-    'mimecms.cpp',
-    'mimecom.cpp',
-    'mimecont.cpp',
-    'mimecryp.cpp',
-    'mimecth.cpp',
-    'mimedrft.cpp',
-    'mimeebod.cpp',
-    'mimeenc.cpp',
-    'mimeeobj.cpp',
-    'mimehdrs.cpp',
-    'MimeHeaderParser.cpp',
-    'mimei.cpp',
-    'mimeiimg.cpp',
-    'mimeleaf.cpp',
-    'mimemalt.cpp',
-    'mimemapl.cpp',
-    'mimemcms.cpp',
-    'mimemdig.cpp',
-    'mimemmix.cpp',
-    'mimemoz2.cpp',
-    'mimempar.cpp',
-    'mimemrel.cpp',
-    'mimemsg.cpp',
-    'mimemsig.cpp',
-    'mimemult.cpp',
-    'mimeobj.cpp',
-    'mimepbuf.cpp',
-    'mimesun.cpp',
-    'mimetenr.cpp',
-    'mimetext.cpp',
-    'mimeTextHTMLParsed.cpp',
-    'mimethpl.cpp',
-    'mimethsa.cpp',
-    'mimethtm.cpp',
-    'mimetpfl.cpp',
-    'mimetpla.cpp',
-    'mimetric.cpp',
-    'mimeunty.cpp',
-    'nsMimeObjectClassAccess.cpp',
-    'nsSimpleMimeConverterStub.cpp',
-    'nsStreamConverter.cpp',
+    "comi18n.cpp",
+    "mimebuf.cpp",
+    "mimecms.cpp",
+    "mimecom.cpp",
+    "mimecont.cpp",
+    "mimecryp.cpp",
+    "mimecth.cpp",
+    "mimedrft.cpp",
+    "mimeebod.cpp",
+    "mimeenc.cpp",
+    "mimeeobj.cpp",
+    "mimehdrs.cpp",
+    "MimeHeaderParser.cpp",
+    "mimei.cpp",
+    "mimeiimg.cpp",
+    "mimeleaf.cpp",
+    "mimemalt.cpp",
+    "mimemapl.cpp",
+    "mimemcms.cpp",
+    "mimemdig.cpp",
+    "mimemmix.cpp",
+    "mimemoz2.cpp",
+    "mimempar.cpp",
+    "mimemrel.cpp",
+    "mimemsg.cpp",
+    "mimemsig.cpp",
+    "mimemult.cpp",
+    "mimeobj.cpp",
+    "mimepbuf.cpp",
+    "mimesun.cpp",
+    "mimetenr.cpp",
+    "mimetext.cpp",
+    "mimeTextHTMLParsed.cpp",
+    "mimethpl.cpp",
+    "mimethsa.cpp",
+    "mimethtm.cpp",
+    "mimetpfl.cpp",
+    "mimetpla.cpp",
+    "mimetric.cpp",
+    "mimeunty.cpp",
+    "nsMimeObjectClassAccess.cpp",
+    "nsSimpleMimeConverterStub.cpp",
+    "nsStreamConverter.cpp",
 ]
 
 EXTRA_COMPONENTS += [
-    'msgMime.manifest',
+    "msgMime.manifest",
 ]
 
 EXTRA_JS_MODULES += [
-    'extraMimeParsers.jsm',
-    'jsmime.jsm',
-    'MimeJSComponents.jsm',
-    'mimeParser.jsm',
+    "extraMimeParsers.jsm",
+    "jsmime.jsm",
+    "MimeJSComponents.jsm",
+    "mimeParser.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
 
-FINAL_LIBRARY = 'mail'
+FINAL_LIBRARY = "mail"
 
-DEFINES['ENABLE_SMIME'] = True
+DEFINES["ENABLE_SMIME"] = True
--- a/mailnews/mime/test/moz.build
+++ b/mailnews/mime/test/moz.build
@@ -1,7 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
-
+XPCSHELL_TESTS_MANIFESTS += ["unit/xpcshell.ini"]
--- a/mailnews/moz.build
+++ b/mailnews/moz.build
@@ -1,87 +1,88 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'addrbook',
-    'base',
-    'compose',
-    'db/gloda',
-    'db/mork',
-    'db/msgdb',
-    'extensions',
-    'imap/public',
-    'imap/src',
-    'import/public',
-    'import/src',
-    'intl',
-    'jsaccount',
-    'local/public',
-    'local/src',
-    'mime',
-    'news',
-    'search/public',
-    'search/src',
+    "addrbook",
+    "base",
+    "compose",
+    "db/gloda",
+    "db/mork",
+    "db/msgdb",
+    "extensions",
+    "imap/public",
+    "imap/src",
+    "import/public",
+    "import/src",
+    "intl",
+    "jsaccount",
+    "local/public",
+    "local/src",
+    "mime",
+    "news",
+    "search/public",
+    "search/src",
 ]
 
 TEST_DIRS += [
-    'imap/test',
-    'import/test',
-    'local/test',
-    'search/test',
+    "imap/test",
+    "import/test",
+    "local/test",
+    "search/test",
 ]
 
-if CONFIG['MOZ_MAPI_SUPPORT']:
+if CONFIG["MOZ_MAPI_SUPPORT"]:
     DIRS += [
-        'mapi/mapiDll',
-        'mapi/mapihook',
+        "mapi/mapiDll",
+        "mapi/mapihook",
     ]
-    TEST_DIRS += ['mapi/test']
+    TEST_DIRS += ["mapi/test"]
 
 DIRS += [
-    'build',
-    'import/build',
+    "build",
+    "import/build",
 ]
 
-if CONFIG['MOZ_MOVEMAIL'] and not (
-        CONFIG['MOZ_THUNDERBIRD'] and CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa'):
-    DEFINES['MOZ_MOVEMAIL'] = True
+if CONFIG["MOZ_MOVEMAIL"] and not (
+    CONFIG["MOZ_THUNDERBIRD"] and CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa"
+):
+    DEFINES["MOZ_MOVEMAIL"] = True
 
-DEFINES['OS_ARCH'] = CONFIG['OS_ARCH']
-DEFINES['MOZ_WIDGET_TOOLKIT'] = CONFIG['MOZ_WIDGET_TOOLKIT']
+DEFINES["OS_ARCH"] = CONFIG["OS_ARCH"]
+DEFINES["MOZ_WIDGET_TOOLKIT"] = CONFIG["MOZ_WIDGET_TOOLKIT"]
 
-JAR_MANIFESTS += ['jar.mn']
+JAR_MANIFESTS += ["jar.mn"]
 
 TESTING_JS_MODULES.mailnews += [
-    'test/fakeserver/Auth.jsm',
-    'test/fakeserver/Imapd.jsm',
-    'test/fakeserver/Maild.jsm',
-    'test/fakeserver/Nntpd.jsm',
-    'test/fakeserver/Pop3d.jsm',
-    'test/fakeserver/Smtpd.jsm',
-    'test/resources/IMAPpump.jsm',
-    'test/resources/LocalAccountUtils.jsm',
-    'test/resources/MailTestUtils.jsm',
-    'test/resources/MessageGenerator.jsm',
-    'test/resources/NetworkTestUtils.jsm',
-    'test/resources/PromiseTestUtils.jsm',
-    'test/resources/smimeUtils.jsm',
+    "test/fakeserver/Auth.jsm",
+    "test/fakeserver/Imapd.jsm",
+    "test/fakeserver/Maild.jsm",
+    "test/fakeserver/Nntpd.jsm",
+    "test/fakeserver/Pop3d.jsm",
+    "test/fakeserver/Smtpd.jsm",
+    "test/resources/IMAPpump.jsm",
+    "test/resources/LocalAccountUtils.jsm",
+    "test/resources/MailTestUtils.jsm",
+    "test/resources/MessageGenerator.jsm",
+    "test/resources/NetworkTestUtils.jsm",
+    "test/resources/PromiseTestUtils.jsm",
+    "test/resources/smimeUtils.jsm",
 ]
 
-if 'comm' in CONFIG['MOZ_BUILD_APP']:
-  test_harness_base = TEST_HARNESS_FILES.xpcshell.comm
+if "comm" in CONFIG["MOZ_BUILD_APP"]:
+    test_harness_base = TEST_HARNESS_FILES.xpcshell.comm
 else:
-  test_harness_base = TEST_HARNESS_FILES.xpcshell
+    test_harness_base = TEST_HARNESS_FILES.xpcshell
 
 test_harness_base.mailnews.data += [
-    '/%s/mailnews/test/data/**' % CONFIG['commreltopsrcdir'],
+    "/%s/mailnews/test/data/**" % CONFIG["commreltopsrcdir"],
 ]
 
 test_harness_base.mailnews.resources += [
-    '/%s/mailnews/test/resources/**' % CONFIG['commreltopsrcdir'],
+    "/%s/mailnews/test/resources/**" % CONFIG["commreltopsrcdir"],
 ]
 
 JS_PREFERENCE_PP_FILES += [
-    'mailnews.js',
+    "mailnews.js",
 ]
--- a/mailnews/moz.configure
+++ b/mailnews/moz.configure
@@ -3,51 +3,54 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # =========================================================
 # = MAPI support (Windows only)
 # =========================================================
 
-option('--disable-mapi',
-       help='Disable MAPI support',
-       when=target_is_windows)
+option("--disable-mapi", help="Disable MAPI support", when=target_is_windows)
 
 
-@depends_if('--enable-mapi',
-            when=target_is_windows)
+@depends_if("--enable-mapi", when=target_is_windows)
 def mapi_support(arg):
     return True
 
 
-set_config('MOZ_MAPI_SUPPORT', mapi_support)
-set_define('MOZ_MAPI_SUPPORT', mapi_support)
+set_config("MOZ_MAPI_SUPPORT", mapi_support)
+set_define("MOZ_MAPI_SUPPORT", mapi_support)
 
 # =========================================================
 # = Experimental OpenPGP integration
 # =========================================================
 
-option('--enable-openpgp', default=True,
-       help='Enable building of the Experimental OpenPGP integration')
+option(
+    "--enable-openpgp",
+    default=True,
+    help="Enable building of the Experimental OpenPGP integration",
+)
 
 
-@depends_if('--enable-openpgp')
+@depends_if("--enable-openpgp")
 def openpgp(arg):
     return True
 
 
-set_config('MOZ_OPENPGP', openpgp)
-set_define('MOZ_OPENPGP', openpgp)
+set_config("MOZ_OPENPGP", openpgp)
+set_define("MOZ_OPENPGP", openpgp)
 
-include('../third_party/openpgp.configure', when='--enable-openpgp')
+include("../third_party/openpgp.configure", when="--enable-openpgp")
 
-set_config('MOZ_MOVEMAIL', target_is_unix)
-set_define('HAVE_MOVEMAIL', target_is_unix)
+set_config("MOZ_MOVEMAIL", target_is_unix)
+set_define("HAVE_MOVEMAIL", target_is_unix)
 
 
-option('--enable-calendar', default=False,
-       help='Deprecated. Please remove it from your mozconfig.')
+option(
+    "--enable-calendar",
+    default=False,
+    help="Deprecated. Please remove it from your mozconfig.",
+)
 
 
-@depends_if('--enable-calendar')
+@depends_if("--enable-calendar")
 def calendar_deprecated(arg):
     return True
--- a/mailnews/news/moz.build
+++ b/mailnews/news/moz.build
@@ -1,12 +1,11 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += [
-    'public',
-    'src',
+    "public",
+    "src",
 ]
 
-TEST_DIRS += ['test']
-
+TEST_DIRS += ["test"]
--- a/mailnews/news/public/moz.build
+++ b/mailnews/news/public/moz.build
@@ -1,24 +1,23 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'nsIMsgNewsFolder.idl',
-    'nsIMsgOfflineNewsState.idl',
-    'nsINewsDownloadDialogArgs.idl',
-    'nsINNTPArticleList.idl',
-    'nsINntpIncomingServer.idl',
-    'nsINNTPNewsgroupList.idl',
-    'nsINNTPNewsgroupPost.idl',
-    'nsINNTPProtocol.idl',
-    'nsINntpService.idl',
-    'nsINntpUrl.idl',
+    "nsIMsgNewsFolder.idl",
+    "nsIMsgOfflineNewsState.idl",
+    "nsINewsDownloadDialogArgs.idl",
+    "nsINNTPArticleList.idl",
+    "nsINntpIncomingServer.idl",
+    "nsINNTPNewsgroupList.idl",
+    "nsINNTPNewsgroupPost.idl",
+    "nsINNTPProtocol.idl",
+    "nsINntpService.idl",
+    "nsINntpUrl.idl",
 ]
 
-XPIDL_MODULE = 'msgnews'
+XPIDL_MODULE = "msgnews"
 
 EXPORTS += [
-    'nsMsgNewsCID.h',
+    "nsMsgNewsCID.h",
 ]
-
--- a/mailnews/news/src/moz.build
+++ b/mailnews/news/src/moz.build
@@ -1,30 +1,29 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES += [
-    'nsNewsDownloadDialogArgs.cpp',
-    'nsNewsDownloader.cpp',
-    'nsNewsFolder.cpp',
-    'nsNewsUtils.cpp',
-    'nsNNTPArticleList.cpp',
-    'nsNntpIncomingServer.cpp',
-    'nsNntpMockChannel.cpp',
-    'nsNNTPNewsgroupList.cpp',
-    'nsNNTPNewsgroupPost.cpp',
-    'nsNNTPProtocol.cpp',
-    'nsNntpService.cpp',
-    'nsNntpUrl.cpp',
+    "nsNewsDownloadDialogArgs.cpp",
+    "nsNewsDownloader.cpp",
+    "nsNewsFolder.cpp",
+    "nsNewsUtils.cpp",
+    "nsNNTPArticleList.cpp",
+    "nsNntpIncomingServer.cpp",
+    "nsNntpMockChannel.cpp",
+    "nsNNTPNewsgroupList.cpp",
+    "nsNNTPNewsgroupPost.cpp",
+    "nsNNTPProtocol.cpp",
+    "nsNntpService.cpp",
+    "nsNntpUrl.cpp",
 ]
 
 EXTRA_JS_MODULES += [
-    'NewsAutoCompleteSearch.jsm',
+    "NewsAutoCompleteSearch.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
 
-FINAL_LIBRARY = 'mail'
-
+FINAL_LIBRARY = "mail"
--- a/mailnews/news/test/moz.build
+++ b/mailnews/news/test/moz.build
@@ -1,7 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
-
+XPCSHELL_TESTS_MANIFESTS += ["unit/xpcshell.ini"]
--- a/mailnews/search/public/moz.build
+++ b/mailnews/search/public/moz.build
@@ -1,38 +1,37 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPIDL_SOURCES += [
-    'nsIMsgFilter.idl',
-    'nsIMsgFilterCustomAction.idl',
-    'nsIMsgFilterHitNotify.idl',
-    'nsIMsgFilterList.idl',
-    'nsIMsgFilterPlugin.idl',
-    'nsIMsgFilterService.idl',
-    'nsIMsgOperationListener.idl',
-    'nsIMsgSearchAdapter.idl',
-    'nsIMsgSearchCustomTerm.idl',
-    'nsIMsgSearchNotify.idl',
-    'nsIMsgSearchScopeTerm.idl',
-    'nsIMsgSearchSession.idl',
-    'nsIMsgSearchTerm.idl',
-    'nsIMsgSearchValidityManager.idl',
-    'nsIMsgSearchValidityTable.idl',
-    'nsIMsgSearchValue.idl',
-    'nsIMsgTraitService.idl',
-    'nsMsgFilterCore.idl',
-    'nsMsgSearchCore.idl',
+    "nsIMsgFilter.idl",
+    "nsIMsgFilterCustomAction.idl",
+    "nsIMsgFilterHitNotify.idl",
+    "nsIMsgFilterList.idl",
+    "nsIMsgFilterPlugin.idl",
+    "nsIMsgFilterService.idl",
+    "nsIMsgOperationListener.idl",
+    "nsIMsgSearchAdapter.idl",
+    "nsIMsgSearchCustomTerm.idl",
+    "nsIMsgSearchNotify.idl",
+    "nsIMsgSearchScopeTerm.idl",
+    "nsIMsgSearchSession.idl",
+    "nsIMsgSearchTerm.idl",
+    "nsIMsgSearchValidityManager.idl",
+    "nsIMsgSearchValidityTable.idl",
+    "nsIMsgSearchValue.idl",
+    "nsIMsgTraitService.idl",
+    "nsMsgFilterCore.idl",
+    "nsMsgSearchCore.idl",
 ]
 
-XPIDL_MODULE = 'msgsearch'
+XPIDL_MODULE = "msgsearch"
 
 EXPORTS += [
-    'nsMsgBodyHandler.h',
-    'nsMsgResultElement.h',
-    'nsMsgSearchAdapter.h',
-    'nsMsgSearchBoolExpression.h',
-    'nsMsgSearchScopeTerm.h',
-    'nsMsgSearchTerm.h',
+    "nsMsgBodyHandler.h",
+    "nsMsgResultElement.h",
+    "nsMsgSearchAdapter.h",
+    "nsMsgSearchBoolExpression.h",
+    "nsMsgSearchScopeTerm.h",
+    "nsMsgSearchTerm.h",
 ]
-
--- a/mailnews/search/src/moz.build
+++ b/mailnews/search/src/moz.build
@@ -1,37 +1,37 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES += [
-    'nsMsgBodyHandler.cpp',
-    'nsMsgFilter.cpp',
-    'nsMsgFilterList.cpp',
-    'nsMsgFilterService.cpp',
-    'nsMsgImapSearch.cpp',
-    'nsMsgLocalSearch.cpp',
-    'nsMsgSearchAdapter.cpp',
-    'nsMsgSearchNews.cpp',
-    'nsMsgSearchSession.cpp',
-    'nsMsgSearchTerm.cpp',
-    'nsMsgSearchValue.cpp',
+    "nsMsgBodyHandler.cpp",
+    "nsMsgFilter.cpp",
+    "nsMsgFilterList.cpp",
+    "nsMsgFilterService.cpp",
+    "nsMsgImapSearch.cpp",
+    "nsMsgLocalSearch.cpp",
+    "nsMsgSearchAdapter.cpp",
+    "nsMsgSearchNews.cpp",
+    "nsMsgSearchSession.cpp",
+    "nsMsgSearchTerm.cpp",
+    "nsMsgSearchValue.cpp",
 ]
 
 EXTRA_JS_MODULES += [
-    'MsgTraitService.jsm',
-    'PeriodicFilterManager.jsm',
+    "MsgTraitService.jsm",
+    "PeriodicFilterManager.jsm",
 ]
 
 XPCOM_MANIFESTS += [
-    'components.conf',
+    "components.conf",
 ]
 
-FINAL_LIBRARY = 'mail'
+FINAL_LIBRARY = "mail"
 
 FINAL_TARGET_FILES.isp += [
-    'Bogofilter.sfd',
-    'DSPAM.sfd',
-    'POPFile.sfd',
-    'SpamAssassin.sfd',
-    'SpamPal.sfd',
+    "Bogofilter.sfd",
+    "DSPAM.sfd",
+    "POPFile.sfd",
+    "SpamAssassin.sfd",
+    "SpamPal.sfd",
 ]
--- a/mailnews/search/test/moz.build
+++ b/mailnews/search/test/moz.build
@@ -1,7 +1,6 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
-
+XPCSHELL_TESTS_MANIFESTS += ["unit/xpcshell.ini"]
--- a/python/moz.build
+++ b/python/moz.build
@@ -1,9 +1,9 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # Default extra components to build config
-with Files('**'):
-    BUG_COMPONENT = ('Thunderbird', 'Build Config')
+with Files("**"):
+    BUG_COMPONENT = ("Thunderbird", "Build Config")
--- a/third_party/moz.build
+++ b/third_party/moz.build
@@ -1,19 +1,19 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-if CONFIG['TB_LIBOTR_PREBUILT']:
-    DEFINES['TB_LIBOTR_PREBUILT'] = CONFIG['TB_LIBOTR_PREBUILT']
+if CONFIG["TB_LIBOTR_PREBUILT"]:
+    DEFINES["TB_LIBOTR_PREBUILT"] = CONFIG["TB_LIBOTR_PREBUILT"]
 
-    if CONFIG['HAVE_64BIT_BUILD']:
-        DEFINES['HAVE_64BIT_BUILD'] = True
+    if CONFIG["HAVE_64BIT_BUILD"]:
+        DEFINES["HAVE_64BIT_BUILD"] = True
 
-if CONFIG['MOZ_OPENPGP']:
+if CONFIG["MOZ_OPENPGP"]:
     DIRS += [
-        'botan',
-        'bzip2',
-        'json-c',
-        'rnp',
-        'zlib',
+        "botan",
+        "bzip2",
+        "json-c",
+        "rnp",
+        "zlib",
     ]
--- a/third_party/openpgp.configure
+++ b/third_party/openpgp.configure
@@ -1,244 +1,304 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 #  This Source Code Form is subject to the terms of the Mozilla Public
 #  License, v. 2.0. If a copy of the MPL was not distributed with this
 #  file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 
 @template
-def noset_check_header(header, language='C++', flags=None, includes=None, when=None,
-                 onerror=lambda: None):
+def noset_check_header(
+    header, language="C++", flags=None, includes=None, when=None, onerror=lambda: None
+):
     if when is None:
         when = always
 
     if includes:
         includes = includes[:]
     else:
         includes = []
     includes.append(header)
 
-    return try_compile(includes=includes, language=language, flags=flags,
-                       check_msg='for %s' % header, when=when, onerror=onerror)
+    return try_compile(
+        includes=includes,
+        language=language,
+        flags=flags,
+        check_msg="for %s" % header,
+        when=when,
+        onerror=onerror,
+    )
 
 
 @template
-def check_symbol_exists(symbol, header, language='C', flags=None, includes=None,
-                        when=None, onerror=lambda: None):
+def check_symbol_exists(
+    symbol,
+    header,
+    language="C",
+    flags=None,
+    includes=None,
+    when=None,
+    onerror=lambda: None,
+):
     if when is None:
         when = always
 
     if includes:
         includes = includes[:]
     else:
         includes = []
-    includes.append('stdio.h')
+    includes.append("stdio.h")
 
     if isinstance(header, str):
         header = [header]
     includes.extend(header)
 
-    body = '''#ifndef %s
+    body = """#ifndef %s
 (void) %s;
 #endif
-''' % (symbol, symbol)
+""" % (
+        symbol,
+        symbol,
+    )
 
-    return try_compile(includes, body, language=language, flags=flags,
-                       check_msg='for %s' % symbol, when=when, onerror=onerror)
+    return try_compile(
+        includes,
+        body,
+        language=language,
+        flags=flags,
+        check_msg="for %s" % symbol,
+        when=when,
+        onerror=onerror,
+    )
 
 
-with only_when('--enable-compile-environment'):
+with only_when("--enable-compile-environment"):
     # Use system libraries when building librnp
     # ZLIB honors --with-system-zlib
 
     # JSON-C --with-system-json
-    option('--with-system-jsonc',
-           help='Use system JSON-C for librnp (located with pkgconfig)')
+    option(
+        "--with-system-jsonc",
+        help="Use system JSON-C for librnp (located with pkgconfig)",
+    )
 
-    jsonc_pkg = pkg_check_modules('MZLA_JSONC', 'json-c >= 0.11', when='--with-system-jsonc')
-    set_config('MZLA_SYSTEM_JSONC', depends_if(jsonc_pkg)(lambda _: True))
+    jsonc_pkg = pkg_check_modules(
+        "MZLA_JSONC", "json-c >= 0.11", when="--with-system-jsonc"
+    )
+    set_config("MZLA_SYSTEM_JSONC", depends_if(jsonc_pkg)(lambda _: True))
 
-    @depends('--with-system-jsonc')
+    @depends("--with-system-jsonc")
     def in_tree_jsonc(system_jsonc):
         if not system_jsonc:
             return True
 
-
     # Bzip2 --with-system-bz2
-    option('--with-system-bz2', nargs='?',
-           help='Use system Bzip2 for librnp (pkgconfig/given prefix)')
-    set_config('MZLA_SYSTEM_BZIP2', True, when='--with-system-bz2')
+    option(
+        "--with-system-bz2",
+        nargs="?",
+        help="Use system Bzip2 for librnp (pkgconfig/given prefix)",
+    )
+    set_config("MZLA_SYSTEM_BZIP2", True, when="--with-system-bz2")
 
     # Bzip2 does not include a pkgconfig file, but some Linux distributions add one
-    bzip2_pkg = pkg_check_modules('MZLA_BZIP2', 'bzip2 >= 1.0.6', when='--with-system-bz2',
-                                  allow_missing=True, config=False)
+    bzip2_pkg = pkg_check_modules(
+        "MZLA_BZIP2",
+        "bzip2 >= 1.0.6",
+        when="--with-system-bz2",
+        allow_missing=True,
+        config=False,
+    )
 
-    @depends_if('--with-system-bz2', bzip2_pkg)
+    @depends_if("--with-system-bz2", bzip2_pkg)
     def bzip2_flags(value, bzip2_pkg):
         if len(value):
             # A path (eg. /usr/local was given)
             return namespace(
-                cflags=('-I%s/include' % value[0],),
-                ldflags=('-L%s/lib' % value[0], '-lbz2'),
+                cflags=("-I%s/include" % value[0],),
+                ldflags=("-L%s/lib" % value[0], "-lbz2"),
             )
         if bzip2_pkg:
             cflags = list(bzip2_pkg.cflags)
             libs = bzip2_pkg.libs
-            return namespace(cflags=cflags, libs=libs, path=(value[0]), )
+            return namespace(
+                cflags=cflags,
+                libs=libs,
+                path=(value[0]),
+            )
         # Fallback
         return namespace(
-            ldflags=['-lbz2'],
+            ldflags=["-lbz2"],
         )
 
-    with only_when('--with-system-bz2'):
-        check_symbol('BZ2_bzread', flags=bzip2_flags.ldflags,
-                     onerror=lambda: die('--with-system-bz2 requested but symbol '
-                                         'BZ2_bzread not found.'))
+    with only_when("--with-system-bz2"):
+        check_symbol(
+            "BZ2_bzread",
+            flags=bzip2_flags.ldflags,
+            onerror=lambda: die(
+                "--with-system-bz2 requested but symbol " "BZ2_bzread not found."
+            ),
+        )
         c_compiler.try_compile(
             includes=[
-                'stdio.h',
-                'sys/types.h',
-                'bzlib.h',
+                "stdio.h",
+                "sys/types.h",
+                "bzlib.h",
             ],
-            body='''
+            body="""
                 #ifndef _BZLIB_H
                 #error _BZLIB_H bzlib.h not found
                 #endif
-            ''',
+            """,
             flags=bzip2_flags.cflags,
-            check_msg='for bzlib.h',
-            onerror=lambda: die('bzlib.h header not found')
+            check_msg="for bzlib.h",
+            onerror=lambda: die("bzlib.h header not found"),
         )
-        set_config('MZLA_BZIP2_CFLAGS', bzip2_flags.cflags)
-        set_config('MZLA_BZIP2_LIBS', bzip2_flags.ldflags)
-
+        set_config("MZLA_BZIP2_CFLAGS", bzip2_flags.cflags)
+        set_config("MZLA_BZIP2_LIBS", bzip2_flags.ldflags)
 
     # BOTAN --with-system-botan
-    option('--with-system-botan', help='Use system Botan for librnp (located with pkgconfig)')
+    option(
+        "--with-system-botan",
+        help="Use system Botan for librnp (located with pkgconfig)",
+    )
 
-    botan_pkg = pkg_check_modules('MZLA_BOTAN', 'botan-2 >= 2.8.0', when='--with-system-botan')
-    set_config('MZLA_SYSTEM_BOTAN', depends_if(botan_pkg)(lambda _: True))
-
+    botan_pkg = pkg_check_modules(
+        "MZLA_BOTAN", "botan-2 >= 2.8.0", when="--with-system-botan"
+    )
+    set_config("MZLA_SYSTEM_BOTAN", depends_if(botan_pkg)(lambda _: True))
 
     # Checks for building librnp itself
     # =================================
-    have_fcntl_h = check_header('fcntl.h')
-    have_string_h = check_header('string.h')
+    have_fcntl_h = check_header("fcntl.h")
+    have_string_h = check_header("string.h")
     check_headers(
-        'limits.h',
-        'sys/auxv.h',
-        'sys/cdefs.h',
-        'sys/resource.h',
-        'sys/param.h',
-        'sys/stat.h',
-        'sys/time.h',
-        'sys/wait.h',
+        "limits.h",
+        "sys/auxv.h",
+        "sys/cdefs.h",
+        "sys/resource.h",
+        "sys/param.h",
+        "sys/stat.h",
+        "sys/time.h",
+        "sys/wait.h",
     )
 
-    set_define('HAVE_MKDTEMP', check_symbol_exists('mkdtemp', ['stdlib.h','unistd.h']))
-    set_define('HAVE_REALPATH', check_symbol_exists('realpath', 'stdlib.h'))
-    set_define('HAVE_O_BINARY', check_symbol_exists('O_BINARY', 'fcntl.h'))
-    set_define('HAVE__O_BINARY', check_symbol_exists('_O_BINARY', 'fcntl.h'))
+    set_define("HAVE_MKDTEMP", check_symbol_exists("mkdtemp", ["stdlib.h", "unistd.h"]))
+    set_define("HAVE_REALPATH", check_symbol_exists("realpath", "stdlib.h"))
+    set_define("HAVE_O_BINARY", check_symbol_exists("O_BINARY", "fcntl.h"))
+    set_define("HAVE__O_BINARY", check_symbol_exists("_O_BINARY", "fcntl.h"))
 
     # Checks when building JSON-C from tree sources
     # =============================================
     with only_when(in_tree_jsonc):
-        have_stdlib_h = check_header('stdlib.h')
-        have_locale_h = check_header('locale.h')
-        have_strings_h = check_header('strings.h')
+        have_stdlib_h = check_header("stdlib.h")
+        have_locale_h = check_header("locale.h")
+        have_strings_h = check_header("strings.h")
+
+        check_headers("stdarg.h", "dlfcn.h", "endian.h", "memory.h", "xlocale.h")
+
+        set_define("JSON_C_HAVE_INTTYPES_H", noset_check_header("inttypes.h"))
+
+        set_define("HAVE_DECL__ISNAN", check_symbol_exists("_isnan", "float.h"))
 
-        check_headers(
-            'stdarg.h',
-            'dlfcn.h',
-            'endian.h',
-            'memory.h',
-            'xlocale.h'
+        set_define("HAVE_DECL__FINITE", check_symbol_exists("_finite", "float.h"))
+        set_define("HAVE_DECL_INFINITY", check_symbol_exists("INFINITY", "math.h"))
+        set_define("HAVE_DECL_ISINF", check_symbol_exists("isinf", "math.h"))
+        set_define("HAVE_DECL_ISNAN", check_symbol_exists("isnan", "math.h"))
+        set_define("HAVE_DECL_NAN", check_symbol_exists("nan", "math.h"))
+
+        set_define("HAVE_DOPRNT", check_symbol_exists("_doprnt", "stdio.h"))
+        set_define("HAVE_SNPRINTF", check_symbol_exists("snprintf", "stdio.h"))
+        set_define(
+            "HAVE_VASPRINTF",
+            check_symbol_exists("vasprintf", "stdio.h", flags=["-D_GNU_SOURCE"]),
         )
-
-        set_define('JSON_C_HAVE_INTTYPES_H', noset_check_header('inttypes.h'))
-
-        set_define('HAVE_DECL__ISNAN', check_symbol_exists('_isnan', 'float.h'))
+        set_define("HAVE_VSNPRINTF", check_symbol_exists("vsnprintf", "stdio.h"))
+        set_define("HAVE_VPRINTF", check_symbol_exists("vprintf", "stdio.h"))
 
-        set_define('HAVE_DECL__FINITE', check_symbol_exists('_finite', 'float.h'))
-        set_define('HAVE_DECL_INFINITY', check_symbol_exists('INFINITY', 'math.h'))
-        set_define('HAVE_DECL_ISINF', check_symbol_exists('isinf', 'math.h'))
-        set_define('HAVE_DECL_ISNAN', check_symbol_exists('isnan', 'math.h'))
-        set_define('HAVE_DECL_NAN', check_symbol_exists('nan', 'math.h'))
-
-        set_define('HAVE_DOPRNT', check_symbol_exists('_doprnt', 'stdio.h'))
-        set_define('HAVE_SNPRINTF', check_symbol_exists('snprintf', 'stdio.h'))
-        set_define('HAVE_VASPRINTF',
-                   check_symbol_exists('vasprintf', 'stdio.h', flags=['-D_GNU_SOURCE']))
-        set_define('HAVE_VSNPRINTF', check_symbol_exists('vsnprintf', 'stdio.h'))
-        set_define('HAVE_VPRINTF', check_symbol_exists('vprintf', 'stdio.h'))
-
-        set_define('HAVE_OPEN', check_symbol_exists('open', 'fcntl.h', when=have_fcntl_h))
-        set_define('HAVE_REALLOC', check_symbol_exists('realloc', 'stdlib.h', when=have_stdlib_h))
-        set_define('HAVE_SETLOCALE', check_symbol_exists('setlocale', 'locale.h', when=have_locale_h))
-        set_define('HAVE_USELOCALE', check_symbol_exists('uselocale', 'locale.h', when=have_locale_h))
-        set_define('HAVE_STRCASECMP',
-                   check_symbol_exists('strcasecmp', 'strings.h', when=have_strings_h))
-        set_define('HAVE_STRNCASECMP',
-                   check_symbol_exists('strncasecmp', 'strings.h', when=have_strings_h))
-        set_define('HAVE_STRDUP', check_symbol_exists('strdup', 'string.h', when=have_string_h))
+        set_define(
+            "HAVE_OPEN", check_symbol_exists("open", "fcntl.h", when=have_fcntl_h)
+        )
+        set_define(
+            "HAVE_REALLOC",
+            check_symbol_exists("realloc", "stdlib.h", when=have_stdlib_h),
+        )
+        set_define(
+            "HAVE_SETLOCALE",
+            check_symbol_exists("setlocale", "locale.h", when=have_locale_h),
+        )
+        set_define(
+            "HAVE_USELOCALE",
+            check_symbol_exists("uselocale", "locale.h", when=have_locale_h),
+        )
+        set_define(
+            "HAVE_STRCASECMP",
+            check_symbol_exists("strcasecmp", "strings.h", when=have_strings_h),
+        )
+        set_define(
+            "HAVE_STRNCASECMP",
+            check_symbol_exists("strncasecmp", "strings.h", when=have_strings_h),
+        )
+        set_define(
+            "HAVE_STRDUP", check_symbol_exists("strdup", "string.h", when=have_string_h)
+        )
 
 
 @depends(c_compiler, target, when=compile_environment)
-@checking('for clang_rt.builtins path', lambda x: x if x is None else x.clang_rt_lib)
-@imports(_from='os', _import='pathsep')
-@imports(_from='os.path', _import='isdir')
-@imports(_from='os.path', _import='exists')
-@imports(_from='os.path', _import='join')
+@checking("for clang_rt.builtins path", lambda x: x if x is None else x.clang_rt_lib)
+@imports(_from="os", _import="pathsep")
+@imports(_from="os.path", _import="isdir")
+@imports(_from="os.path", _import="exists")
+@imports(_from="os.path", _import="join")
 def clang_rt_builtins(compiler_info, target):
-    if compiler_info.type == 'clang-cl':
-        if target.raw_cpu in ['i686']:
-            rt_arch = 'i386'
+    if compiler_info.type == "clang-cl":
+        if target.raw_cpu in ["i686"]:
+            rt_arch = "i386"
         else:
             rt_arch = target.raw_cpu
 
-        clang_rt_builtins = 'clang_rt.builtins-{}'.format(rt_arch)
+        clang_rt_builtins = "clang_rt.builtins-{}".format(rt_arch)
         clang_cl = compiler_info.compiler
         flags = []
         flags.extend(compiler_info.flags)
-        flags.append('-clang:-print-search-dirs')
+        flags.append("-clang:-print-search-dirs")
         clang_search_dirs = check_cmd_output(clang_cl, *flags)
         for line in clang_search_dirs.splitlines():
-            name, _, value = line.partition(': =')
-            if name == 'libraries':
+            name, _, value = line.partition(": =")
+            if name == "libraries":
                 for dir in value.split(pathsep):
                     if dir.endswith(compiler_info.version.vstring):
-                        clang_rt_dir = join(dir, 'lib/windows')
+                        clang_rt_dir = join(dir, "lib/windows")
                         clang_rt_lib = join(clang_rt_dir, clang_rt_builtins)
                         if isdir(clang_rt_dir):
-                            if exists('{}.lib'.format(clang_rt_lib)):
+                            if exists("{}.lib".format(clang_rt_lib)):
                                 return namespace(
                                     clang_rt_path=clang_rt_dir,
-                                    clang_rt_lib=clang_rt_lib
+                                    clang_rt_lib=clang_rt_lib,
                                 )
-        die('Cannot find clang_rt.builtins path.')
+        die("Cannot find clang_rt.builtins path.")
 
 
-set_config('COMPILER_RT_BUILTIN_PATH', clang_rt_builtins.clang_rt_path, when=is_windows)
-set_config('COMPILER_RT_BUILTIN_LIB', clang_rt_builtins.clang_rt_lib, when=is_windows)
+set_config("COMPILER_RT_BUILTIN_PATH", clang_rt_builtins.clang_rt_path, when=is_windows)
+set_config("COMPILER_RT_BUILTIN_LIB", clang_rt_builtins.clang_rt_lib, when=is_windows)
 
 
 @depends(c_compiler, cxx_compiler, when=compile_environment)
 def rnp_compiler(c_compiler, cxx_compiler):
     # Replace -std=gnu++17 or -std=c++17 with -std=gnu++11 or -std=c++11
     _cxxflags = []
     for f in cxx_compiler.flags:
-        if f == '-std=c++17':
-            _cxxflags.append('-std=c++14')
-        elif f == '-std=gnu++17':
-            _cxxflags.append('-std=gnu++11')
+        if f == "-std=c++17":
+            _cxxflags.append("-std=c++14")
+        elif f == "-std=gnu++17":
+            _cxxflags.append("-std=gnu++11")
         else:
             _cxxflags.append(f)
 
-    rnp_cc = ' '.join(list(c_compiler.wrapper) + [c_compiler.compiler] + c_compiler.flags)
-    rnp_cxx = ' '.join(list(cxx_compiler.wrapper) + [cxx_compiler.compiler] + _cxxflags)
+    rnp_cc = " ".join(
+        list(c_compiler.wrapper) + [c_compiler.compiler] + c_compiler.flags
+    )
+    rnp_cxx = " ".join(list(cxx_compiler.wrapper) + [cxx_compiler.compiler] + _cxxflags)
 
-    return namespace(rnp_cc=rnp_cc,
-                     rnp_cxx=rnp_cxx)
+    return namespace(rnp_cc=rnp_cc, rnp_cxx=rnp_cxx)
+
 
-set_config('MZLA_RNP_CC', rnp_compiler.rnp_cc)
-set_config('MZLA_RNP_CXX', rnp_compiler.rnp_cxx)
-
+set_config("MZLA_RNP_CC", rnp_compiler.rnp_cc)
+set_config("MZLA_RNP_CXX", rnp_compiler.rnp_cxx)