Bug 774572 - Part 2: Define JAR_MANIFESTS in moz.build files; r=glandium
authorGregory Szorc <gps@mozilla.com>
Tue, 10 Dec 2013 16:18:11 +0900
changeset 160924 9872d86dfa0c8ee5220181dd5075a07b50d6d00c
parent 160923 940b2974f35b36a70b0c8a3f17a2647481b43590
child 160925 81820a46dee24536b42671ca92a6db5f3c3e17c6
push id1
push userroot
push dateMon, 20 Oct 2014 17:29:22 +0000
reviewersglandium
bugs774572
milestone29.0a1
Bug 774572 - Part 2: Define JAR_MANIFESTS in moz.build files; r=glandium Every directory with a jar.mn now has JAR_MANIFESTS defined in its moz.build file. We also removed the may_skip special consideration of jar.mn files because this information is now available during tier traversal by the reader courtesy of the variables being present in moz.build files.
accessible/src/jsat/moz.build
b2g/branding/official/content/moz.build
b2g/branding/official/locales/moz.build
b2g/branding/unofficial/content/moz.build
b2g/branding/unofficial/locales/moz.build
b2g/chrome/moz.build
b2g/locales/moz.build
browser/base/moz.build
browser/branding/aurora/content/moz.build
browser/branding/aurora/locales/moz.build
browser/branding/nightly/content/moz.build
browser/branding/nightly/locales/moz.build
browser/branding/official/content/moz.build
browser/branding/official/locales/moz.build
browser/branding/unofficial/content/moz.build
browser/branding/unofficial/locales/moz.build
browser/components/certerror/moz.build
browser/components/customizableui/content/moz.build
browser/components/downloads/moz.build
browser/components/feeds/moz.build
browser/components/migration/moz.build
browser/components/places/moz.build
browser/components/preferences/in-content/moz.build
browser/components/preferences/moz.build
browser/components/privatebrowsing/moz.build
browser/components/search/moz.build
browser/components/sessionstore/moz.build
browser/components/shell/moz.build
browser/components/tabview/moz.build
browser/devtools/moz.build
browser/locales/moz.build
browser/metro/base/moz.build
browser/metro/locales/moz.build
browser/metro/theme/moz.build
browser/themes/linux/communicator/moz.build
browser/themes/linux/moz.build
browser/themes/osx/communicator/moz.build
browser/themes/osx/moz.build
browser/themes/windows/communicator/moz.build
browser/themes/windows/moz.build
config/config.mk
config/rules.mk
config/tests/src-simple/Makefile.in
config/tests/src-simple/moz.build
content/xbl/builtin/android/moz.build
content/xbl/builtin/emacs/moz.build
content/xbl/builtin/mac/moz.build
content/xbl/builtin/unix/moz.build
content/xbl/builtin/win/moz.build
content/xml/document/resources/moz.build
content/xslt/tests/buster/moz.build
docshell/resources/content/moz.build
dom/inputmethod/moz.build
dom/ipc/moz.build
dom/locales/moz.build
dom/src/moz.build
intl/uconv/src/moz.build
js/src/config/config.mk
js/src/config/rules.mk
layout/generic/moz.build
layout/ipc/moz.build
layout/mathml/moz.build
layout/style/moz.build
layout/style/xbl-marquee/moz.build
layout/tools/layout-debug/ui/moz.build
layout/tools/recording/moz.build
layout/tools/reftest/moz.build
mobile/android/branding/aurora/content/moz.build
mobile/android/branding/aurora/locales/moz.build
mobile/android/branding/beta/content/moz.build
mobile/android/branding/beta/locales/moz.build
mobile/android/branding/nightly/content/moz.build
mobile/android/branding/nightly/locales/moz.build
mobile/android/branding/official/content/moz.build
mobile/android/branding/official/locales/moz.build
mobile/android/branding/unofficial/content/moz.build
mobile/android/branding/unofficial/locales/moz.build
mobile/android/chrome/moz.build
mobile/android/locales/moz.build
mobile/android/themes/core/moz.build
mobile/locales/moz.build
netwerk/locales/moz.build
netwerk/test/httpserver/moz.build
python/mozbuild/mozbuild/backend/recursivemake.py
python/mozbuild/mozbuild/frontend/emitter.py
security/manager/locales/moz.build
security/manager/pki/resources/moz.build
services/sync/locales/moz.build
testing/marionette/atoms/moz.build
testing/marionette/moz.build
testing/mochitest/moz.build
testing/specialpowers/moz.build
toolkit/components/aboutmemory/moz.build
toolkit/components/alerts/moz.build
toolkit/components/apppicker/moz.build
toolkit/components/console/moz.build
toolkit/components/cookie/moz.build
toolkit/components/filepicker/moz.build
toolkit/components/help/moz.build
toolkit/components/passwordmgr/moz.build
toolkit/components/printing/moz.build
toolkit/components/prompts/moz.build
toolkit/components/satchel/moz.build
toolkit/components/thumbnails/moz.build
toolkit/components/typeaheadfind/moz.build
toolkit/components/url-classifier/tests/moz.build
toolkit/components/viewconfig/moz.build
toolkit/components/viewsource/moz.build
toolkit/content/moz.build
toolkit/crashreporter/moz.build
toolkit/locales/moz.build
toolkit/mozapps/downloads/moz.build
toolkit/mozapps/extensions/moz.build
toolkit/mozapps/handling/moz.build
toolkit/mozapps/plugins/moz.build
toolkit/mozapps/preferences/moz.build
toolkit/mozapps/update/moz.build
toolkit/obsolete/moz.build
toolkit/profile/moz.build
toolkit/themes/faststripe/global/moz.build
toolkit/themes/linux/global/moz.build
toolkit/themes/linux/help/moz.build
toolkit/themes/linux/mozapps/moz.build
toolkit/themes/os2/global/moz.build
toolkit/themes/osx/global/moz.build
toolkit/themes/osx/help/moz.build
toolkit/themes/osx/mozapps/moz.build
toolkit/themes/windows/global/moz.build
toolkit/themes/windows/help/moz.build
toolkit/themes/windows/mozapps/moz.build
tools/quitter/moz.build
webapprt/locales/moz.build
webapprt/moz.build
xpfe/components/autocomplete/moz.build
xulrunner/examples/simple/moz.build
--- a/accessible/src/jsat/moz.build
+++ b/accessible/src/jsat/moz.build
@@ -11,8 +11,10 @@ EXTRA_JS_MODULES += [
     'Constants.jsm',
     'EventManager.jsm',
     'OutputGenerator.jsm',
     'Presentation.jsm',
     'TouchAdapter.jsm',
     'TraversalRules.jsm',
     'Utils.jsm'
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/b2g/branding/official/content/moz.build
+++ b/b2g/branding/official/content/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/b2g/branding/official/locales/moz.build
+++ b/b2g/branding/official/locales/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/b2g/branding/unofficial/content/moz.build
+++ b/b2g/branding/unofficial/content/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/b2g/branding/unofficial/locales/moz.build
+++ b/b2g/branding/unofficial/locales/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/b2g/chrome/moz.build
+++ b/b2g/chrome/moz.build
@@ -2,8 +2,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/.
 
 DEFINES['AB_CD'] = CONFIG['MOZ_UI_LOCALE']
 DEFINES['PACKAGE'] = 'browser'
 DEFINES['MOZ_APP_VERSION'] = CONFIG['MOZ_APP_VERSION']
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/b2g/locales/moz.build
+++ b/b2g/locales/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/base/moz.build
+++ b/browser/base/moz.build
@@ -29,8 +29,10 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('win
     DEFINES['HAVE_SHELL_SERVICE'] = 1
     DEFINES['CONTEXT_COPY_IMAGE_CONTENTS'] = 1
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'cocoa'):
     DEFINES['CAN_DRAW_IN_TITLEBAR'] = 1
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'gtk2', 'gtk3'):
     DEFINES['MENUBAR_CAN_AUTOHIDE'] = 1
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/branding/aurora/content/moz.build
+++ b/browser/branding/aurora/content/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/branding/aurora/locales/moz.build
+++ b/browser/branding/aurora/locales/moz.build
@@ -1,7 +1,9 @@
 # -*- 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/.
 
 DEFINES['MOZ_DISTRIBUTION_ID_UNQUOTED'] = CONFIG['MOZ_DISTRIBUTION_ID']
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/branding/nightly/content/moz.build
+++ b/browser/branding/nightly/content/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/branding/nightly/locales/moz.build
+++ b/browser/branding/nightly/locales/moz.build
@@ -1,7 +1,9 @@
 # -*- 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/.
 
 DEFINES['MOZ_DISTRIBUTION_ID_UNQUOTED'] = CONFIG['MOZ_DISTRIBUTION_ID']
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/branding/official/content/moz.build
+++ b/browser/branding/official/content/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/branding/official/locales/moz.build
+++ b/browser/branding/official/locales/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/branding/unofficial/content/moz.build
+++ b/browser/branding/unofficial/content/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/branding/unofficial/locales/moz.build
+++ b/browser/branding/unofficial/locales/moz.build
@@ -1,7 +1,9 @@
 # -*- 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/.
 
 DEFINES['MOZ_DISTRIBUTION_ID_UNQUOTED'] = CONFIG['MOZ_DISTRIBUTION_ID']
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/components/certerror/moz.build
+++ b/browser/components/certerror/moz.build
@@ -2,8 +2,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/.
 
 BROWSER_CHROME_MANIFESTS += [
     'test/browser.ini',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/components/customizableui/content/moz.build
+++ b/browser/components/customizableui/content/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/components/downloads/moz.build
+++ b/browser/components/downloads/moz.build
@@ -8,8 +8,10 @@ DIRS += ['src']
 
 XPCSHELL_TESTS_MANIFESTS += [
     'test/unit/xpcshell.ini',
 ]
 
 BROWSER_CHROME_MANIFESTS += [
     'test/browser/browser.ini',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/components/feeds/moz.build
+++ b/browser/components/feeds/moz.build
@@ -12,8 +12,10 @@ XPCSHELL_TESTS_MANIFESTS += [
 
 MOCHITEST_CHROME_MANIFESTS += [
     'test/chrome/chrome.ini',
 ]
 
 MOCHITEST_MANIFESTS += [
     'test/mochitest.ini'
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/components/migration/moz.build
+++ b/browser/components/migration/moz.build
@@ -4,8 +4,10 @@
 # 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']
 
 XPCSHELL_TESTS_MANIFESTS += [
     'tests/unit/xpcshell.ini',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/components/places/moz.build
+++ b/browser/components/places/moz.build
@@ -12,8 +12,10 @@ XPCSHELL_TESTS_MANIFESTS += [
 
 MOCHITEST_CHROME_MANIFESTS += [
     'tests/chrome/chrome.ini'
 ]
 
 BROWSER_CHROME_MANIFESTS += [
     'tests/browser/browser.ini',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/components/preferences/in-content/moz.build
+++ b/browser/components/preferences/in-content/moz.build
@@ -4,8 +4,10 @@
 # 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/.
 
 for var in ('MOZ_APP_NAME', 'MOZ_MACBUNDLE_NAME'):
     DEFINES[var] = CONFIG[var]
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'gtk2', 'cocoa'):
     DEFINES['HAVE_SHELL_SERVICE'] = 1
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/components/preferences/moz.build
+++ b/browser/components/preferences/moz.build
@@ -11,8 +11,10 @@ BROWSER_CHROME_MANIFESTS += [
     'tests/browser.ini',
 ]
 
 for var in ('MOZ_APP_NAME', 'MOZ_MACBUNDLE_NAME'):
     DEFINES[var] = CONFIG[var]
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'gtk2', 'gtk3', 'cocoa'):
     DEFINES['HAVE_SHELL_SERVICE'] = 1
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/components/privatebrowsing/moz.build
+++ b/browser/components/privatebrowsing/moz.build
@@ -2,8 +2,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/.
 
 BROWSER_CHROME_MANIFESTS += [
     'test/browser/browser.ini',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/components/search/moz.build
+++ b/browser/components/search/moz.build
@@ -2,8 +2,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/.
 
 BROWSER_CHROME_MANIFESTS += [
     'test/browser.ini',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/components/sessionstore/moz.build
+++ b/browser/components/sessionstore/moz.build
@@ -15,8 +15,10 @@ XPIDL_MODULE = 'sessionstore'
 
 XPCSHELL_TESTS_MANIFESTS += [
     'test/unit/xpcshell.ini',
 ]
 
 BROWSER_CHROME_MANIFESTS += [
     'test/browser.ini',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/components/shell/moz.build
+++ b/browser/components/shell/moz.build
@@ -8,8 +8,10 @@ DIRS += ['public', 'src']
 
 XPCSHELL_TESTS_MANIFESTS += [
     'test/unit/xpcshell.ini'
 ]
 
 BROWSER_CHROME_MANIFESTS += [
     'test/browser.ini',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/components/tabview/moz.build
+++ b/browser/components/tabview/moz.build
@@ -5,8 +5,10 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 EXTRA_JS_MODULES = ['modules/utils.jsm']
 JS_MODULES_PATH  = 'modules/tabview'
 
 BROWSER_CHROME_MANIFESTS += [
     'test/browser.ini',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/devtools/moz.build
+++ b/browser/devtools/moz.build
@@ -25,8 +25,10 @@ DIRS += [
     'tilt',
     'webconsole',
 ]
 
 EXTRA_COMPONENTS += [
     'devtools-clhandler.js',
     'devtools-clhandler.manifest',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/locales/moz.build
+++ b/browser/locales/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/metro/base/moz.build
+++ b/browser/metro/base/moz.build
@@ -7,8 +7,10 @@
 METRO_CHROME_MANIFESTS += ['tests/mochiperf/metro.ini', 'tests/mochitest/metro.ini']
 XPCSHELL_TESTS_MANIFESTS += ['tests/unit/xpcshell.ini']
 
 DIST_SUBDIR = 'metro'
 
 DEFINES['AB_CD'] = CONFIG['MOZ_UI_LOCALE']
 DEFINES['PACKAGE'] = 'browser'
 DEFINES['MOZ_APP_VERSION'] = CONFIG['MOZ_APP_VERSION']
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/metro/locales/moz.build
+++ b/browser/metro/locales/moz.build
@@ -2,8 +2,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/.
 
 # Process desktop related resource we reuse here.
 DIRS += ['import']
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/metro/theme/moz.build
+++ b/browser/metro/theme/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/themes/linux/communicator/moz.build
+++ b/browser/themes/linux/communicator/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/themes/linux/moz.build
+++ b/browser/themes/linux/moz.build
@@ -1,8 +1,9 @@
 # -*- 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 += ['communicator']
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/themes/osx/communicator/moz.build
+++ b/browser/themes/osx/communicator/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/themes/osx/moz.build
+++ b/browser/themes/osx/moz.build
@@ -1,8 +1,9 @@
 # -*- 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 += ['communicator']
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/themes/windows/communicator/moz.build
+++ b/browser/themes/windows/communicator/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/browser/themes/windows/moz.build
+++ b/browser/themes/windows/moz.build
@@ -1,8 +1,9 @@
 # -*- 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 += ['communicator']
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/config/config.mk
+++ b/config/config.mk
@@ -46,16 +46,17 @@ endif
   FORCE_STATIC_LIB \
   FINAL_LIBRARY \
   HOST_CSRCS \
   HOST_CMMSRCS \
   HOST_LIBRARY_NAME \
   HOST_PROGRAM \
   HOST_SIMPLE_PROGRAMS \
   IS_COMPONENT \
+  JAR_MANIFEST \
   JAVA_JAR_TARGETS \
   JS_MODULES_PATH \
   LIBRARY_NAME \
   LIBXUL_LIBRARY \
   MODULE \
   MSVC_ENABLE_PGO \
   NO_DIST_INSTALL \
   PARALLEL_DIRS \
--- a/config/rules.mk
+++ b/config/rules.mk
@@ -1279,27 +1279,25 @@ SDK_BINARY_FILES := $(SDK_BINARY)
 SDK_BINARY_DEST := $(SDK_BIN_DIR)
 INSTALL_TARGETS += SDK_BINARY
 endif
 endif # SDK_BINARY
 
 ################################################################################
 # CHROME PACKAGING
 
-JAR_MANIFEST := $(srcdir)/jar.mn
-
 chrome::
 	$(MAKE) realchrome
 	$(LOOP_OVER_PARALLEL_DIRS)
 	$(LOOP_OVER_DIRS)
 	$(LOOP_OVER_TOOL_DIRS)
 
 $(FINAL_TARGET)/chrome: $(call mkdir_deps,$(FINAL_TARGET)/chrome)
 
-ifneq (,$(wildcard $(JAR_MANIFEST)))
+ifneq (,$(JAR_MANIFEST))
 ifndef NO_DIST_INSTALL
 
 ifdef XPI_NAME
 ifdef XPI_ROOT_APPID
 # For add-on packaging we may specify that an application
 # sub-dir should be added to the root chrome manifest with
 # a specific application id.
 MAKE_JARS_FLAGS += --root-manifest-entry-appid='$(XPI_ROOT_APPID)'
@@ -1316,16 +1314,23 @@ endif
 
 libs realchrome:: $(FINAL_TARGET)/chrome
 	$(call py_action,jar_maker,\
 	  $(QUIET) -j $(FINAL_TARGET)/chrome \
 	  $(MAKE_JARS_FLAGS) $(XULPPFLAGS) $(DEFINES) $(ACDEFINES) \
 	  $(JAR_MANIFEST))
 
 endif
+
+# This is a temporary check to ensure patches relying on the old behavior
+# of silently picking up jar.mn files continue to work.
+else # No JAR_MANIFEST
+ifneq (,$(wildcard $(srcdir)/jar.mn))
+$(error $(srcdir) contains a jar.mn file but this file is not declared in a JAR_MANIFESTS variable in a moz.build file)
+endif
 endif
 
 ifneq ($(DIST_FILES),)
 DIST_FILES_PATH := $(FINAL_TARGET)
 DIST_FILES_FLAGS := $(XULAPP_DEFINES)
 PP_TARGETS += DIST_FILES
 endif
 
--- a/config/tests/src-simple/Makefile.in
+++ b/config/tests/src-simple/Makefile.in
@@ -1,16 +1,18 @@
 #
 # 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/.
 
 LOCALE_SRCDIR = $(srcdir)/l10n
 
+EXTERNALLY_MANAGED_MAKE_FILE := 1
 STANDALONE_MAKEFILE := 1
+JAR_MANIFEST := $(srcdir)/jar.mn
 
 include $(topsrcdir)/config/config.mk
 
 XPI_NAME = test_jar_mn
 
 DEFINES += \
 	-DAB_CD=ab-X-stuff \
 	$(NULL)
--- a/config/tests/src-simple/moz.build
+++ b/config/tests/src-simple/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/content/xbl/builtin/android/moz.build
+++ b/content/xbl/builtin/android/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/content/xbl/builtin/emacs/moz.build
+++ b/content/xbl/builtin/emacs/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/content/xbl/builtin/mac/moz.build
+++ b/content/xbl/builtin/mac/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/content/xbl/builtin/unix/moz.build
+++ b/content/xbl/builtin/unix/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/content/xbl/builtin/win/moz.build
+++ b/content/xbl/builtin/win/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/content/xml/document/resources/moz.build
+++ b/content/xml/document/resources/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/content/xslt/tests/buster/moz.build
+++ b/content/xslt/tests/buster/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/docshell/resources/content/moz.build
+++ b/docshell/resources/content/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/dom/inputmethod/moz.build
+++ b/dom/inputmethod/moz.build
@@ -13,8 +13,10 @@ XPIDL_MODULE = 'dom_inputmethod'
 EXTRA_COMPONENTS += [
     'InputMethod.manifest',
     'MozKeyboard.js',
 ]
 
 EXTRA_JS_MODULES += [
     'Keyboard.jsm',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/dom/ipc/moz.build
+++ b/dom/ipc/moz.build
@@ -111,8 +111,10 @@ LOCAL_INCLUDES += [
 DEFINES['BIN_SUFFIX'] = '"%s"' % CONFIG['BIN_SUFFIX']
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gtk2', 'gonk', 'qt'):
     DEFINES['MOZ_ENABLE_FREETYPE'] = True
 
 for var in ('MOZ_PERMISSIONS', 'MOZ_CHILD_PERMISSIONS'):
     if CONFIG[var]:
         DEFINES[var] = True
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/dom/locales/moz.build
+++ b/dom/locales/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/dom/src/moz.build
+++ b/dom/src/moz.build
@@ -8,8 +8,10 @@ DIRS += [
     'jsurl',
     'events',
     'storage',
     'offline',
     'json',
     'geolocation',
     'notification',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/intl/uconv/src/moz.build
+++ b/intl/uconv/src/moz.build
@@ -228,8 +228,10 @@ LOCAL_INCLUDES += [
     '../ucvko',
     '../ucvlatin',
     '../ucvtw',
     '../ucvtw2',
     '../util',
 ]
 
 FINAL_LIBRARY = 'xul'
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/js/src/config/config.mk
+++ b/js/src/config/config.mk
@@ -46,16 +46,17 @@ endif
   FORCE_STATIC_LIB \
   FINAL_LIBRARY \
   HOST_CSRCS \
   HOST_CMMSRCS \
   HOST_LIBRARY_NAME \
   HOST_PROGRAM \
   HOST_SIMPLE_PROGRAMS \
   IS_COMPONENT \
+  JAR_MANIFEST \
   JAVA_JAR_TARGETS \
   JS_MODULES_PATH \
   LIBRARY_NAME \
   LIBXUL_LIBRARY \
   MODULE \
   MSVC_ENABLE_PGO \
   NO_DIST_INSTALL \
   PARALLEL_DIRS \
--- a/js/src/config/rules.mk
+++ b/js/src/config/rules.mk
@@ -1279,27 +1279,25 @@ SDK_BINARY_FILES := $(SDK_BINARY)
 SDK_BINARY_DEST := $(SDK_BIN_DIR)
 INSTALL_TARGETS += SDK_BINARY
 endif
 endif # SDK_BINARY
 
 ################################################################################
 # CHROME PACKAGING
 
-JAR_MANIFEST := $(srcdir)/jar.mn
-
 chrome::
 	$(MAKE) realchrome
 	$(LOOP_OVER_PARALLEL_DIRS)
 	$(LOOP_OVER_DIRS)
 	$(LOOP_OVER_TOOL_DIRS)
 
 $(FINAL_TARGET)/chrome: $(call mkdir_deps,$(FINAL_TARGET)/chrome)
 
-ifneq (,$(wildcard $(JAR_MANIFEST)))
+ifneq (,$(JAR_MANIFEST))
 ifndef NO_DIST_INSTALL
 
 ifdef XPI_NAME
 ifdef XPI_ROOT_APPID
 # For add-on packaging we may specify that an application
 # sub-dir should be added to the root chrome manifest with
 # a specific application id.
 MAKE_JARS_FLAGS += --root-manifest-entry-appid='$(XPI_ROOT_APPID)'
@@ -1316,16 +1314,23 @@ endif
 
 libs realchrome:: $(FINAL_TARGET)/chrome
 	$(call py_action,jar_maker,\
 	  $(QUIET) -j $(FINAL_TARGET)/chrome \
 	  $(MAKE_JARS_FLAGS) $(XULPPFLAGS) $(DEFINES) $(ACDEFINES) \
 	  $(JAR_MANIFEST))
 
 endif
+
+# This is a temporary check to ensure patches relying on the old behavior
+# of silently picking up jar.mn files continue to work.
+else # No JAR_MANIFEST
+ifneq (,$(wildcard $(srcdir)/jar.mn))
+$(error $(srcdir) contains a jar.mn file but this file is not declared in a JAR_MANIFESTS variable in a moz.build file)
+endif
 endif
 
 ifneq ($(DIST_FILES),)
 DIST_FILES_PATH := $(FINAL_TARGET)
 DIST_FILES_FLAGS := $(XULAPP_DEFINES)
 PP_TARGETS += DIST_FILES
 endif
 
--- a/layout/generic/moz.build
+++ b/layout/generic/moz.build
@@ -116,8 +116,10 @@ LOCAL_INCLUDES += [
     '../../dom/plugins/base',
     '../base',
     '../forms',
     '../style',
     '../svg',
     '../tables',
     '../xul',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/layout/ipc/moz.build
+++ b/layout/ipc/moz.build
@@ -26,8 +26,10 @@ include('/ipc/chromium/chromium-config.m
 FINAL_LIBRARY = 'gklayout'
 
 LOCAL_INCLUDES += [
     '/content/base/src',
     '/layout/base',
     '/layout/generic',
     '/layout/xul',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/layout/mathml/moz.build
+++ b/layout/mathml/moz.build
@@ -41,8 +41,10 @@ LOCAL_INCLUDES += [
     '/content/base/src',
     '/content/mathml/content/src',
 ]
 
 if CONFIG['ENABLE_TESTS']:
     PARALLEL_DIRS += [
         'tests',
     ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/layout/style/moz.build
+++ b/layout/style/moz.build
@@ -149,8 +149,10 @@ LOCAL_INCLUDES += [
     '../../content/html/content/src',
     '../../content/xbl/src',
     '../../content/xul/document/src',
     '../base',
     '../generic',
     '../xul',
     '/dom/base',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/layout/style/xbl-marquee/moz.build
+++ b/layout/style/xbl-marquee/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/layout/tools/layout-debug/ui/moz.build
+++ b/layout/tools/layout-debug/ui/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/layout/tools/recording/moz.build
+++ b/layout/tools/recording/moz.build
@@ -3,8 +3,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/.
 
 EXTRA_COMPONENTS += [
     'recording-cmdline.js',
     'recording-cmdline.manifest',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/layout/tools/reftest/moz.build
+++ b/layout/tools/reftest/moz.build
@@ -3,8 +3,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/.
 
 EXTRA_COMPONENTS += [
     'reftest-cmdline.js',
 ]
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/mobile/android/branding/aurora/content/moz.build
+++ b/mobile/android/branding/aurora/content/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/mobile/android/branding/aurora/locales/moz.build
+++ b/mobile/android/branding/aurora/locales/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/mobile/android/branding/beta/content/moz.build
+++ b/mobile/android/branding/beta/content/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/mobile/android/branding/beta/locales/moz.build
+++ b/mobile/android/branding/beta/locales/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/mobile/android/branding/nightly/content/moz.build
+++ b/mobile/android/branding/nightly/content/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/mobile/android/branding/nightly/locales/moz.build
+++ b/mobile/android/branding/nightly/locales/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/mobile/android/branding/official/content/moz.build
+++ b/mobile/android/branding/official/content/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/mobile/android/branding/official/locales/moz.build
+++ b/mobile/android/branding/official/locales/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/mobile/android/branding/unofficial/content/moz.build
+++ b/mobile/android/branding/unofficial/content/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/mobile/android/branding/unofficial/locales/moz.build
+++ b/mobile/android/branding/unofficial/locales/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/mobile/android/chrome/moz.build
+++ b/mobile/android/chrome/moz.build
@@ -3,8 +3,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/.
 
 DEFINES['AB_CD'] = CONFIG['MOZ_UI_LOCALE']
 DEFINES['PACKAGE'] = 'browser'
 DEFINES['MOZ_APP_VERSION'] = CONFIG['MOZ_APP_VERSION']
 DEFINES['ANDROID_PACKAGE_NAME'] = CONFIG['ANDROID_PACKAGE_NAME']
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/mobile/android/locales/moz.build
+++ b/mobile/android/locales/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/mobile/android/themes/core/moz.build
+++ b/mobile/android/themes/core/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/mobile/locales/moz.build
+++ b/mobile/locales/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/netwerk/locales/moz.build
+++ b/netwerk/locales/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/netwerk/test/httpserver/moz.build
+++ b/netwerk/test/httpserver/moz.build
@@ -11,8 +11,9 @@ XPIDL_SOURCES += [
 XPIDL_MODULE = 'test_necko'
 
 XPCSHELL_TESTS_MANIFESTS += ['test/xpcshell.ini']
 
 EXTRA_COMPONENTS += [
     'httpd.js',
 ]
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/python/mozbuild/mozbuild/backend/recursivemake.py
+++ b/python/mozbuild/mozbuild/backend/recursivemake.py
@@ -682,21 +682,16 @@ class RecursiveMakeBackend(CommonBackend
                         if tier in ('compile', 'binaries'):
                             continue
                         if bf.relobjdir in skiplist:
                             skiplist.remove(bf.relobjdir)
                 else:
                     self.log(logging.DEBUG, 'stub_makefile',
                         {'path': makefile}, 'Creating stub Makefile: {path}')
 
-                # Can't skip directories with a jar.mn for the 'libs' tier.
-                if bf.relobjdir in self._may_skip['libs'] and \
-                        os.path.exists(mozpath.join(srcdir, 'jar.mn')):
-                    self._may_skip['libs'].remove(bf.relobjdir)
-
                 obj = self.Substitution()
                 obj.output_path = makefile
                 obj.input_path = makefile_in
                 obj.topsrcdir = bf.environment.topsrcdir
                 obj.topobjdir = bf.environment.topobjdir
                 self._create_makefile(obj, stub=stub)
 
         # Write out a master list of all IPDL source files.
--- a/python/mozbuild/mozbuild/frontend/emitter.py
+++ b/python/mozbuild/mozbuild/frontend/emitter.py
@@ -385,16 +385,27 @@ class TreeMetadataEmitter(LoggingMixin):
         jar_manifests = sandbox.get('JAR_MANIFESTS', [])
         if len(jar_manifests) > 1:
             raise SandboxValidationError('While JAR_MANIFESTS is a list, '
                 'it is currently limited to one value.')
 
         for path in jar_manifests:
             yield JARManifest(sandbox, mozpath.join(sandbox['SRCDIR'], path))
 
+        # Temporary test to look for jar.mn files that creep in without using
+        # the new declaration. Before, we didn't require jar.mn files to
+        # declared anywhere (they were discovered). This will detect people
+        # relying on the old behavior.
+        if os.path.exists(os.path.join(sandbox['SRCDIR'], 'jar.mn')):
+            if 'jar.mn' not in jar_manifests:
+                raise SandboxValidationError('A jar.mn exists in %s but it '
+                    'is not referenced in the corresponding moz.build file. '
+                    'Please define JAR_MANIFESTS in the moz.build file.' %
+                    sandbox['SRCDIR'])
+
         for name, jar in sandbox.get('JAVA_JAR_TARGETS', {}).items():
             yield SandboxWrapped(sandbox, jar)
 
         if passthru.variables:
             yield passthru
 
     def _create_substitution(self, cls, sandbox, path):
         if os.path.isabs(path):
--- a/security/manager/locales/moz.build
+++ b/security/manager/locales/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/security/manager/pki/resources/moz.build
+++ b/security/manager/pki/resources/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/services/sync/locales/moz.build
+++ b/services/sync/locales/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
--- a/testing/marionette/atoms/moz.build
+++ b/testing/marionette/atoms/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/testing/marionette/moz.build
+++ b/testing/marionette/moz.build
@@ -3,8 +3,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/.
 
 DIRS += ['components', 'atoms']
 
 if CONFIG['ENABLE_TESTS']:
     DEFINES['ENABLE_TESTS'] = True
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/testing/mochitest/moz.build
+++ b/testing/mochitest/moz.build
@@ -12,8 +12,10 @@ DIRS += [
     'chrome',
     'ssltunnel',
 ]
 
 if CONFIG['MOZ_BUILD_APP'] == 'mobile/android':
     DIRS += ['roboextender']
 
 XPI_NAME = 'mochijar'
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/testing/specialpowers/moz.build
+++ b/testing/specialpowers/moz.build
@@ -4,8 +4,10 @@
 # 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 += [
     'components/SpecialPowersObserver.js',
 ]
 
 XPI_NAME = 'specialpowers'
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/components/aboutmemory/moz.build
+++ b/toolkit/components/aboutmemory/moz.build
@@ -1,7 +1,9 @@
 # -*- 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/.
 
 TEST_DIRS += ['tests']
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/components/alerts/moz.build
+++ b/toolkit/components/alerts/moz.build
@@ -15,8 +15,10 @@ XPIDL_MODULE = 'alerts'
 UNIFIED_SOURCES += [
     'nsAlertsService.cpp',
     'nsXULAlerts.cpp',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'toolkitcomps'
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/components/apppicker/moz.build
+++ b/toolkit/components/apppicker/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/components/console/moz.build
+++ b/toolkit/components/console/moz.build
@@ -5,8 +5,10 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 TEST_DIRS += ['tests']
 
 EXTRA_COMPONENTS += [
     'jsconsole-clhandler.js',
     'jsconsole-clhandler.manifest',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/components/cookie/moz.build
+++ b/toolkit/components/cookie/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/components/filepicker/moz.build
+++ b/toolkit/components/filepicker/moz.build
@@ -18,8 +18,10 @@ if CONFIG['MOZ_XUL'] and \
         ]
         EXTRA_PP_COMPONENTS += [
             'nsFilePicker.manifest',
         ]
         DIRS += [
             'test',
         ]
         FINAL_LIBRARY = 'xul'
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/components/help/moz.build
+++ b/toolkit/components/help/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/components/passwordmgr/moz.build
+++ b/toolkit/components/passwordmgr/moz.build
@@ -28,8 +28,10 @@ EXTRA_COMPONENTS += [
 EXTRA_PP_COMPONENTS += [
     'storage-mozStorage.js',
 ]
 
 EXTRA_JS_MODULES += [
     'InsecurePasswordUtils.jsm',
     'LoginManagerContent.jsm',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/components/printing/moz.build
+++ b/toolkit/components/printing/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/components/prompts/moz.build
+++ b/toolkit/components/prompts/moz.build
@@ -1,8 +1,10 @@
 # -*- 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 += ['src']
 TEST_DIRS += ['test']
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/components/satchel/moz.build
+++ b/toolkit/components/satchel/moz.build
@@ -39,8 +39,10 @@ EXTRA_JS_MODULES += [
     'nsFormAutoCompleteResult.jsm',
 ]
 
 EXTRA_PP_JS_MODULES += [
     'FormHistory.jsm',
 ]
 
 FINAL_LIBRARY = 'xul'
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/components/thumbnails/moz.build
+++ b/toolkit/components/thumbnails/moz.build
@@ -11,8 +11,10 @@ EXTRA_COMPONENTS += [
     'PageThumbsProtocol.js',
 ]
 
 EXTRA_JS_MODULES += [
     'BackgroundPageThumbs.jsm',
     'PageThumbs.jsm',
     'PageThumbsWorker.js',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/components/typeaheadfind/moz.build
+++ b/toolkit/components/typeaheadfind/moz.build
@@ -10,8 +10,10 @@ XPIDL_SOURCES += [
 
 XPIDL_MODULE = 'fastfind'
 
 SOURCES += [
     'nsTypeAheadFind.cpp',
 ]
 
 FINAL_LIBRARY = 'toolkitcomps'
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/components/url-classifier/tests/moz.build
+++ b/toolkit/components/url-classifier/tests/moz.build
@@ -2,8 +2,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/.
 
 TEST_TOOL_DIRS += ['mochitest']
 
 XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/components/viewconfig/moz.build
+++ b/toolkit/components/viewconfig/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/components/viewsource/moz.build
+++ b/toolkit/components/viewsource/moz.build
@@ -1,7 +1,9 @@
 # -*- 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/.
 
 TEST_DIRS += ['test']
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/content/moz.build
+++ b/toolkit/content/moz.build
@@ -10,8 +10,10 @@ for var in ('target', 'ac_configure_args
             'CXX', 'CXX_VERSION'):
     DEFINES[var] = CONFIG[var]
 
 if CONFIG['OS_TARGET'] == 'Android':
     DEFINES['ANDROID_PACKAGE_NAME'] = CONFIG['ANDROID_PACKAGE_NAME']
 
 if 'stlport' in CONFIG['STLPORT_LIBS']:
     DEFINES['USE_STLPORT'] = True
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/crashreporter/moz.build
+++ b/toolkit/crashreporter/moz.build
@@ -89,8 +89,10 @@ if CONFIG['OS_TARGET'] == 'Android':
     DEFINES['_STLP_NO_MEMBER_TEMPLATES'] = True
 
 if CONFIG['OS_ARCH'] == 'SunOS':
     # there's no define for this normally
     DEFINES['XP_SOLARIS'] = True
 
 DEFINES['UNICODE'] = True
 DEFINES['_UNICODE'] = True
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/locales/moz.build
+++ b/toolkit/locales/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/mozapps/downloads/moz.build
+++ b/toolkit/mozapps/downloads/moz.build
@@ -19,8 +19,9 @@ EXTRA_JS_MODULES += [
     'DownloadPaths.jsm',
     'DownloadUtils.jsm',
 ]
 
 EXTRA_PP_JS_MODULES += [
     'DownloadTaskbarProgress.jsm',
 ]
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/mozapps/extensions/moz.build
+++ b/toolkit/mozapps/extensions/moz.build
@@ -50,8 +50,10 @@ if CONFIG['MOZ_UPDATE_CHANNEL'] not in (
 
 # This is used in multiple places, so is defined here to avoid it getting
 # out of sync.
 DEFINES['MOZ_EXTENSIONS_DB_SCHEMA'] = 15
 
 # Additional debugging info is exposed in debug builds
 if CONFIG['MOZ_DEBUG']:
     DEFINES['MOZ_EM_DEBUG'] = 1
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/mozapps/handling/moz.build
+++ b/toolkit/mozapps/handling/moz.build
@@ -3,8 +3,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/.
 
 EXTRA_COMPONENTS += [
     'nsContentDispatchChooser.js',
     'nsContentDispatchChooser.manifest',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/mozapps/plugins/moz.build
+++ b/toolkit/mozapps/plugins/moz.build
@@ -4,8 +4,10 @@
 # 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/.
 
 TEST_DIRS += ['tests']
 
 EXTRA_COMPONENTS += [
     'pluginGlue.manifest',
 ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/mozapps/preferences/moz.build
+++ b/toolkit/mozapps/preferences/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/mozapps/update/moz.build
+++ b/toolkit/mozapps/update/moz.build
@@ -40,8 +40,10 @@ if CONFIG['MOZ_UPDATER']:
     EXTRA_COMPONENTS += [
         'nsUpdateService.manifest',
     ]
 
     EXTRA_PP_COMPONENTS += [
         'nsUpdateService.js',
         'nsUpdateServiceStub.js',
     ]
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/obsolete/moz.build
+++ b/toolkit/obsolete/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/profile/moz.build
+++ b/toolkit/profile/moz.build
@@ -23,8 +23,10 @@ UNIFIED_SOURCES += [
 LOCAL_INCLUDES += [
     '../xre',
     '/profile/dirserviceprovider/src',
 ]
 
 FAIL_ON_WARNINGS = True
 
 FINAL_LIBRARY = 'xulapp_s'
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/themes/faststripe/global/moz.build
+++ b/toolkit/themes/faststripe/global/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/themes/linux/global/moz.build
+++ b/toolkit/themes/linux/global/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/themes/linux/help/moz.build
+++ b/toolkit/themes/linux/help/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/themes/linux/mozapps/moz.build
+++ b/toolkit/themes/linux/mozapps/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/themes/os2/global/moz.build
+++ b/toolkit/themes/os2/global/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/themes/osx/global/moz.build
+++ b/toolkit/themes/osx/global/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/themes/osx/help/moz.build
+++ b/toolkit/themes/osx/help/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/themes/osx/mozapps/moz.build
+++ b/toolkit/themes/osx/mozapps/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/themes/windows/global/moz.build
+++ b/toolkit/themes/windows/global/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/themes/windows/help/moz.build
+++ b/toolkit/themes/windows/help/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/toolkit/themes/windows/mozapps/moz.build
+++ b/toolkit/themes/windows/mozapps/moz.build
@@ -1,6 +1,7 @@
 # -*- 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/.
 
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/tools/quitter/moz.build
+++ b/tools/quitter/moz.build
@@ -4,8 +4,10 @@
 # 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 += [
     'QuitterObserver.js',
 ]
 
 XPI_NAME = 'quitter'
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/webapprt/locales/moz.build
+++ b/webapprt/locales/moz.build
@@ -1,4 +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']
\ No newline at end of file
--- a/webapprt/moz.build
+++ b/webapprt/moz.build
@@ -39,8 +39,10 @@ export('DIST_SUBDIR')
 if CONFIG['MOZ_DEBUG']:
     DEFINES['MOZ_DEBUG'] = 1
 
 if CONFIG['MOZILLA_OFFICIAL']:
     DEFINES['MOZILLA_OFFICIAL'] = True
 
 DEFINES['GRE_MILESTONE'] = CONFIG['GRE_MILESTONE']
 DEFINES['MOZ_APP_BASENAME'] = CONFIG['MOZ_APP_BASENAME']
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/xpfe/components/autocomplete/moz.build
+++ b/xpfe/components/autocomplete/moz.build
@@ -1,5 +1,7 @@
 # -*- 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/.
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
--- a/xulrunner/examples/simple/moz.build
+++ b/xulrunner/examples/simple/moz.build
@@ -2,8 +2,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 += ['components']
 
 XPI_NAME = 'simple'
+
+JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file