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 160861 9872d86dfa0c8ee5220181dd5075a07b50d6d00c
parent 160860 940b2974f35b36a70b0c8a3f17a2647481b43590
child 160862 81820a46dee24536b42671ca92a6db5f3c3e17c6
push id37730
push usergszorc@mozilla.com
push dateTue, 17 Dec 2013 19:33:01 +0000
treeherdermozilla-inbound@9872d86dfa0c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersglandium
bugs774572
milestone29.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
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