Bug 920223 - Part 2: Mass convert MOCHITEST_CHROME_FILES to manifests; rs=Ms2ger
☠☠ backed out by deac6e30aaf2 ☠ ☠
authorGregory Szorc <gps@mozilla.com>
Mon, 30 Sep 2013 09:52:01 +0200
changeset 149239 68b6b152f51a6cf0ba2743950cc9a43f3aecaa57
parent 149238 77bff106b704be59212d9b3295548e8b197e616b
child 149240 8b02873ee07edd54a36acf1d1d8a97a96e925deb
push id25380
push userryanvm@gmail.com
push dateMon, 30 Sep 2013 20:16:36 +0000
treeherdermozilla-central@1332fc1c15e1 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersMs2ger
bugs920223
milestone27.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 920223 - Part 2: Mass convert MOCHITEST_CHROME_FILES to manifests; rs=Ms2ger
browser/base/content/test/chrome/Makefile.in
browser/base/content/test/chrome/chrome.ini
browser/base/content/test/chrome/moz.build
browser/components/feeds/test/chrome/Makefile.in
browser/components/feeds/test/chrome/chrome.ini
browser/components/feeds/test/chrome/moz.build
browser/components/places/tests/chrome/Makefile.in
browser/components/places/tests/chrome/chrome.ini
browser/components/places/tests/chrome/moz.build
browser/devtools/app-manager/test/Makefile.in
browser/devtools/app-manager/test/chrome.ini
browser/devtools/app-manager/test/moz.build
browser/modules/test/chrome/Makefile.in
browser/modules/test/chrome/chrome.ini
browser/modules/test/chrome/moz.build
content/base/test/Makefile.in
content/base/test/chrome.ini
content/base/test/chrome/Makefile.in
content/base/test/chrome/chrome.ini
content/base/test/chrome/moz.build
content/base/test/csp/Makefile.in
content/base/test/csp/chrome.ini
content/base/test/csp/moz.build
content/base/test/moz.build
content/canvas/test/chrome/Makefile.in
content/canvas/test/chrome/chrome.ini
content/canvas/test/chrome/moz.build
content/events/test/Makefile.in
content/events/test/chrome.ini
content/events/test/moz.build
content/html/content/test/Makefile.in
content/html/content/test/chrome.ini
content/html/content/test/moz.build
content/xbl/test/Makefile.in
content/xbl/test/chrome.ini
content/xbl/test/moz.build
content/xul/content/test/Makefile.in
content/xul/content/test/chrome.ini
content/xul/content/test/moz.build
content/xul/document/test/Makefile.in
content/xul/document/test/chrome.ini
content/xul/document/test/moz.build
content/xul/templates/tests/chrome/Makefile.in
content/xul/templates/tests/chrome/chrome.ini
content/xul/templates/tests/chrome/moz.build
docshell/test/chrome/Makefile.in
docshell/test/chrome/chrome.ini
docshell/test/chrome/moz.build
dom/apps/tests/Makefile.in
dom/apps/tests/chrome.ini
dom/apps/tests/moz.build
dom/base/test/Makefile.in
dom/base/test/chrome.ini
dom/base/test/moz.build
dom/bindings/test/Makefile.in
dom/bindings/test/chrome.ini
dom/bindings/test/moz.build
dom/contacts/tests/Makefile.in
dom/contacts/tests/chrome.ini
dom/contacts/tests/moz.build
dom/devicestorage/test/Makefile.in
dom/devicestorage/test/chrome.ini
dom/devicestorage/test/moz.build
dom/encoding/test/Makefile.in
dom/encoding/test/chrome.ini
dom/encoding/test/moz.build
dom/indexedDB/test/Makefile.in
dom/indexedDB/test/chrome.ini
dom/indexedDB/test/moz.build
dom/ipc/tests/Makefile.in
dom/ipc/tests/chrome.ini
dom/ipc/tests/moz.build
dom/phonenumberutils/tests/Makefile.in
dom/phonenumberutils/tests/chrome.ini
dom/phonenumberutils/tests/moz.build
dom/plugins/test/mochitest/Makefile.in
dom/plugins/test/mochitest/chrome.ini
dom/plugins/test/mochitest/moz.build
dom/settings/tests/Makefile.in
dom/settings/tests/chrome.ini
dom/settings/tests/moz.build
dom/system/tests/Makefile.in
dom/system/tests/chrome.ini
dom/system/tests/moz.build
dom/tests/mochitest/chrome/Makefile.in
dom/tests/mochitest/chrome/chrome.ini
dom/tests/mochitest/chrome/moz.build
dom/tests/mochitest/general/Makefile.in
dom/tests/mochitest/general/chrome.ini
dom/tests/mochitest/general/moz.build
dom/tests/mochitest/localstorage/Makefile.in
dom/tests/mochitest/localstorage/chrome.ini
dom/tests/mochitest/localstorage/moz.build
dom/tests/mochitest/notification/Makefile.in
dom/tests/mochitest/notification/chrome.ini
dom/tests/mochitest/notification/moz.build
dom/tests/mochitest/sessionstorage/Makefile.in
dom/tests/mochitest/sessionstorage/chrome.ini
dom/tests/mochitest/sessionstorage/moz.build
dom/tests/mochitest/webapps/Makefile.in
dom/tests/mochitest/webapps/chrome.ini
dom/tests/mochitest/webapps/moz.build
dom/tests/mochitest/whatwg/Makefile.in
dom/tests/mochitest/whatwg/chrome.ini
dom/tests/mochitest/whatwg/moz.build
dom/workers/test/Makefile.in
dom/workers/test/chrome.ini
dom/workers/test/moz.build
editor/composer/test/Makefile.in
editor/composer/test/chrome.ini
editor/composer/test/moz.build
editor/libeditor/base/tests/Makefile.in
editor/libeditor/base/tests/chrome.ini
editor/libeditor/base/tests/moz.build
editor/libeditor/html/tests/Makefile.in
editor/libeditor/html/tests/chrome.ini
editor/libeditor/html/tests/moz.build
editor/libeditor/text/tests/Makefile.in
editor/libeditor/text/tests/chrome.ini
editor/libeditor/text/tests/moz.build
extensions/cookie/test/Makefile.in
extensions/cookie/test/chrome.ini
extensions/cookie/test/moz.build
extensions/spellcheck/tests/chrome/Makefile.in
extensions/spellcheck/tests/chrome/chrome.ini
extensions/spellcheck/tests/chrome/moz.build
extensions/universalchardet/tests/Makefile.in
extensions/universalchardet/tests/chrome.ini
extensions/universalchardet/tests/moz.build
image/test/mochitest/Makefile.in
image/test/mochitest/chrome.ini
image/test/mochitest/moz.build
js/xpconnect/tests/chrome/Makefile.in
js/xpconnect/tests/chrome/chrome.ini
js/xpconnect/tests/chrome/moz.build
layout/base/tests/chrome/Makefile.in
layout/base/tests/chrome/chrome.ini
layout/base/tests/chrome/moz.build
layout/forms/test/Makefile.in
layout/forms/test/chrome.ini
layout/forms/test/moz.build
layout/generic/test/Makefile.in
layout/generic/test/chrome.ini
layout/generic/test/moz.build
layout/inspector/tests/chrome/Makefile.in
layout/inspector/tests/chrome/chrome.ini
layout/inspector/tests/chrome/moz.build
layout/style/test/chrome/Makefile.in
layout/style/test/chrome/chrome.ini
layout/style/test/chrome/moz.build
layout/xul/base/test/Makefile.in
layout/xul/base/test/chrome.ini
layout/xul/base/test/moz.build
layout/xul/test/Makefile.in
layout/xul/test/chrome.ini
layout/xul/test/moz.build
modules/libjar/test/chrome/Makefile.in
modules/libjar/test/chrome/chrome.ini
modules/libjar/test/chrome/moz.build
security/manager/ssl/tests/mochitest/bugs/Makefile.in
security/manager/ssl/tests/mochitest/bugs/chrome.ini
security/manager/ssl/tests/mochitest/bugs/moz.build
security/manager/ssl/tests/mochitest/stricttransportsecurity/Makefile.in
security/manager/ssl/tests/mochitest/stricttransportsecurity/chrome.ini
security/manager/ssl/tests/mochitest/stricttransportsecurity/moz.build
toolkit/components/aboutmemory/tests/Makefile.in
toolkit/components/aboutmemory/tests/chrome.ini
toolkit/components/aboutmemory/tests/moz.build
toolkit/components/console/tests/Makefile.in
toolkit/components/console/tests/chrome.ini
toolkit/components/console/tests/moz.build
toolkit/components/feeds/test/Makefile.in
toolkit/components/feeds/test/chrome.ini
toolkit/components/feeds/test/moz.build
toolkit/components/osfile/tests/mochi/Makefile.in
toolkit/components/osfile/tests/mochi/chrome.ini
toolkit/components/osfile/tests/mochi/moz.build
toolkit/components/passwordmgr/test/Makefile.in
toolkit/components/passwordmgr/test/chrome.ini
toolkit/components/passwordmgr/test/moz.build
toolkit/components/places/tests/chrome/Makefile.in
toolkit/components/places/tests/chrome/chrome.ini
toolkit/components/places/tests/chrome/moz.build
toolkit/components/url-classifier/tests/mochitest/Makefile.in
toolkit/components/url-classifier/tests/mochitest/chrome.ini
toolkit/components/url-classifier/tests/mochitest/moz.build
toolkit/components/viewsource/test/Makefile.in
toolkit/components/viewsource/test/chrome.ini
toolkit/components/viewsource/test/moz.build
toolkit/components/workerloader/tests/Makefile.in
toolkit/components/workerloader/tests/chrome.ini
toolkit/components/workerloader/tests/moz.build
toolkit/content/tests/chrome/Makefile.in
toolkit/content/tests/chrome/chrome.ini
toolkit/content/tests/chrome/moz.build
toolkit/content/tests/widgets/Makefile.in
toolkit/content/tests/widgets/chrome.ini
toolkit/content/tests/widgets/moz.build
toolkit/devtools/server/tests/mochitest/Makefile.in
toolkit/devtools/server/tests/mochitest/chrome.ini
toolkit/devtools/server/tests/mochitest/moz.build
toolkit/devtools/webconsole/test/Makefile.in
toolkit/devtools/webconsole/test/chrome.ini
toolkit/devtools/webconsole/test/moz.build
toolkit/identity/tests/chrome/Makefile.in
toolkit/identity/tests/chrome/chrome.ini
toolkit/identity/tests/chrome/moz.build
toolkit/modules/tests/chrome/Makefile.in
toolkit/modules/tests/chrome/chrome.ini
toolkit/modules/tests/chrome/moz.build
toolkit/mozapps/downloads/tests/chrome/Makefile.in
toolkit/mozapps/downloads/tests/chrome/chrome.ini
toolkit/mozapps/downloads/tests/chrome/moz.build
toolkit/mozapps/update/test/chrome/Makefile.in
toolkit/mozapps/update/test/chrome/chrome.ini
toolkit/mozapps/update/test/chrome/moz.build
toolkit/profile/test/Makefile.in
toolkit/profile/test/chrome.ini
toolkit/profile/test/moz.build
toolkit/themes/osx/mochitests/Makefile.in
toolkit/themes/osx/mochitests/chrome.ini
toolkit/themes/osx/mochitests/moz.build
xpfe/appshell/src/test/Makefile.in
xpfe/appshell/src/test/chrome.ini
xpfe/appshell/src/test/moz.build
--- a/browser/base/content/test/chrome/Makefile.in
+++ b/browser/base/content/test/chrome/Makefile.in
@@ -1,7 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-  test_aboutCrashed.xul \
-  $(NULL)
new file mode 100644
--- /dev/null
+++ b/browser/base/content/test/chrome/chrome.ini
@@ -0,0 +1,3 @@
+[DEFAULT]
+
+[test_aboutCrashed.xul]
--- a/browser/base/content/test/chrome/moz.build
+++ b/browser/base/content/test/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/browser/components/feeds/test/chrome/Makefile.in
+++ b/browser/components/feeds/test/chrome/Makefile.in
@@ -3,14 +3,8 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # sample_feed.atom was copied from toolkit/components/places/tests/chrome
 MOCHITEST_FILES	= \
 		sample_feed.atom \
 		$(NULL)
 
-MOCHITEST_CHROME_FILES	= \
-		test_423060.xul \
-		test_bug368464.html \
-		test_bug408328.html \
-		test_maxSniffing.html \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/browser/components/feeds/test/chrome/chrome.ini
@@ -0,0 +1,6 @@
+[DEFAULT]
+
+[test_423060.xul]
+[test_bug368464.html]
+[test_bug408328.html]
+[test_maxSniffing.html]
--- a/browser/components/feeds/test/chrome/moz.build
+++ b/browser/components/feeds/test/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/browser/components/places/tests/chrome/Makefile.in
+++ b/browser/components/places/tests/chrome/Makefile.in
@@ -1,16 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-	head.js \
-	test_treeview_date.xul \
-	test_bug485100-change-case-loses-tag.xul \
-	test_bug427633_no_newfolder_if_noip.xul \
-	test_0_multiple_left_pane.xul \
-	test_0_bug510634.xul \
-	test_bug549192.xul \
-	test_bug549491.xul \
-	test_editBookmarkOverlay_tags_liveUpdate.xul \
-	test_bug631374_tags_selector_scroll.xul \
-	$(NULL)
new file mode 100644
--- /dev/null
+++ b/browser/components/places/tests/chrome/chrome.ini
@@ -0,0 +1,12 @@
+[DEFAULT]
+support-files = head.js
+
+[test_0_bug510634.xul]
+[test_0_multiple_left_pane.xul]
+[test_bug427633_no_newfolder_if_noip.xul]
+[test_bug485100-change-case-loses-tag.xul]
+[test_bug549192.xul]
+[test_bug549491.xul]
+[test_bug631374_tags_selector_scroll.xul]
+[test_editBookmarkOverlay_tags_liveUpdate.xul]
+[test_treeview_date.xul]
--- a/browser/components/places/tests/chrome/moz.build
+++ b/browser/components/places/tests/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/browser/devtools/app-manager/test/Makefile.in
+++ b/browser/devtools/app-manager/test/Makefile.in
@@ -1,12 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-		test_template.html \
-		test_connection_store.html \
-		test_device_store.html \
-		test_projects_store.html \
-		test_remain_connected.html \
-		hosted_app.manifest \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/browser/devtools/app-manager/test/chrome.ini
@@ -0,0 +1,8 @@
+[DEFAULT]
+support-files = hosted_app.manifest
+
+[test_connection_store.html]
+[test_device_store.html]
+[test_projects_store.html]
+[test_remain_connected.html]
+[test_template.html]
--- a/browser/devtools/app-manager/test/moz.build
+++ b/browser/devtools/app-manager/test/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/browser/modules/test/chrome/Makefile.in
+++ b/browser/modules/test/chrome/Makefile.in
@@ -1,8 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-		test_sharedframe.xul \
-		sharedframe.xul \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/browser/modules/test/chrome/chrome.ini
@@ -0,0 +1,4 @@
+[DEFAULT]
+support-files = sharedframe.xul
+
+[test_sharedframe.xul]
--- a/browser/modules/test/chrome/moz.build
+++ b/browser/modules/test/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/content/base/test/Makefile.in
+++ b/content/base/test/Makefile.in
@@ -8,21 +8,16 @@
 # anything but B2G (Bug 900707).
 ifdef MOZ_CHILD_PERMISSIONS
 MOCHITEST_FILES += \
 		test_messagemanager_assertpermission.html \
 		test_child_process_shutdown_message.html \
 		$(NULL)
 endif
 
-MOCHITEST_CHROME_FILES =	\
-		test_bug357450.js \
-		test_copypaste.xul \
-		$(NULL)
-
 # This test fails on the Mac for some reason
 ifneq (,$(filter gtk2 gtk3 windows,$(MOZ_WIDGET_TOOLKIT)))
 MOCHITEST_FILES += \
 		test_copyimage.html \
 		$(NULL)
 endif
 
 # Disabled for now. Mochitest isn't reliable enough for these.
new file mode 100644
--- /dev/null
+++ b/content/base/test/chrome.ini
@@ -0,0 +1,4 @@
+[DEFAULT]
+
+[test_bug357450.js]
+[test_copypaste.xul]
--- a/content/base/test/chrome/Makefile.in
+++ b/content/base/test/chrome/Makefile.in
@@ -4,64 +4,15 @@
 
 MOCHITEST_FILES = \
     bug421622-referer.sjs \
     nochrome_bug765993.html \
     nochrome_bug765993.js \
     nochrome_bug765993.js^headers^ \
     $(NULL)
 
-MOCHITEST_CHROME_FILES = \
-    test_bug206691.xul \
-    test_bug380418.html \
-    test_bug380418.html^headers^ \
-    test_bug383430.html \
-    test_bug391728.html \
-    blockPluginHard.xml \
-    blockNoPlugins.xml \
-    file_bug391728.html \
-    file_bug391728_2.html \
-    test_bug421622.xul \
-    test_bug429785.xul \
-    test_bug430050.xul \
-    test_bug467123.xul \
-    test_title.xul \
-    title_window.xul \
-    test_bug549682.xul \
-    file_bug549682.xul \
-    test_bug616841.xul \
-    file_bug616841.xul \
-    test_bug635835.xul \
-    test_fileconstructor.xul \
-    fileconstructor_file.png \
-    test_bug339494.xul \
-    test_bug357450.xul \
-    test_bug571390.xul \
-    test_bug574596.html \
-    test_bug683852.xul \
-    test_bug599295.html \
-    test_bug650776.html \
-    test_bug650784.html \
-    test_bug750096.html \
-    test_bug752226-3.xul \
-    test_bug752226-4.xul \
-    test_bug682305.html \
-    test_bug780199.xul \
-    test_bug780529.xul \
-    test_bug800386.xul \
-    test_bug816340.xul \
-    file_bug816340.xul \
-    test_domparsing.xul \
-    test_bug814638.xul \
-    host_bug814638.xul \
-    test_document_register.xul \
-    frame_bug814638.xul \
-    test_bug914381.html \
-    test_bug765993.html \
-    $(NULL)
-
 ifneq ($(MOZ_WIDGET_TOOLKIT),cocoa)
 MOCHITEST_CHROME_FILES += \
     test_cpows.xul \
     cpows_parent.xul \
     cpows_child.js \
     $(NULL)
 endif
new file mode 100644
--- /dev/null
+++ b/content/base/test/chrome/chrome.ini
@@ -0,0 +1,49 @@
+[DEFAULT]
+support-files =
+  blockNoPlugins.xml
+  blockPluginHard.xml
+  file_bug391728.html
+  file_bug391728_2.html
+  file_bug549682.xul
+  file_bug616841.xul
+  file_bug816340.xul
+  fileconstructor_file.png
+  frame_bug814638.xul
+  host_bug814638.xul
+  title_window.xul
+
+[test_bug206691.xul]
+[test_bug339494.xul]
+[test_bug357450.xul]
+[test_bug380418.html]
+[test_bug380418.html^headers^]
+[test_bug383430.html]
+[test_bug391728.html]
+[test_bug421622.xul]
+[test_bug429785.xul]
+[test_bug430050.xul]
+[test_bug467123.xul]
+[test_bug549682.xul]
+[test_bug571390.xul]
+[test_bug574596.html]
+[test_bug599295.html]
+[test_bug616841.xul]
+[test_bug635835.xul]
+[test_bug650776.html]
+[test_bug650784.html]
+[test_bug682305.html]
+[test_bug683852.xul]
+[test_bug750096.html]
+[test_bug752226-3.xul]
+[test_bug752226-4.xul]
+[test_bug765993.html]
+[test_bug780199.xul]
+[test_bug780529.xul]
+[test_bug800386.xul]
+[test_bug814638.xul]
+[test_bug816340.xul]
+[test_bug914381.html]
+[test_document_register.xul]
+[test_domparsing.xul]
+[test_fileconstructor.xul]
+[test_title.xul]
--- a/content/base/test/chrome/moz.build
+++ b/content/base/test/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/content/base/test/csp/Makefile.in
+++ b/content/base/test/csp/Makefile.in
@@ -5,14 +5,9 @@
 DEPTH := @DEPTH@
 topsrcdir := @top_srcdir@
 srcdir := @srcdir@
 VPATH := @srcdir@
 relativesrcdir := @relativesrcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-MOCHITEST_CHROME_FILES := \
-  test_csp_bug768029.html \
-  test_csp_bug773891.html \
-  $(NULL)
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/content/base/test/csp/chrome.ini
@@ -0,0 +1,4 @@
+[DEFAULT]
+
+[test_csp_bug768029.html]
+[test_csp_bug773891.html]
--- a/content/base/test/csp/moz.build
+++ b/content/base/test/csp/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/content/base/test/moz.build
+++ b/content/base/test/moz.build
@@ -21,8 +21,10 @@ if CONFIG['OS_ARCH'] != 'Darwin':
 CPP_UNIT_TESTS += [
     'TestGetURL.cpp',
     'TestNativeXMLHttpRequest.cpp',
     'TestPlainTextSerializer.cpp',
 ]
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/content/canvas/test/chrome/Makefile.in
+++ b/content/canvas/test/chrome/Makefile.in
@@ -1,9 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-	test_webgl_debug_renderer_info.html \
-	nonchrome_webgl_debug_renderer_info.html \
-	$(NULL)
new file mode 100644
--- /dev/null
+++ b/content/canvas/test/chrome/chrome.ini
@@ -0,0 +1,4 @@
+[DEFAULT]
+support-files = nonchrome_webgl_debug_renderer_info.html
+
+[test_webgl_debug_renderer_info.html]
--- a/content/canvas/test/chrome/moz.build
+++ b/content/canvas/test/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/content/events/test/Makefile.in
+++ b/content/events/test/Makefile.in
@@ -8,25 +8,8 @@
 ifeq (,$(filter gonk,$(MOZ_WIDGET_TOOLKIT)))
 # THESE TESTS (BELOW) DO NOT RUN ON B2G
 MOCHITEST_FILES += \
 		test_bug864040.html \
 		$(NULL)
 # THESE TESTS (ABOVE) DO NOT RUN ON B2G
 endif
 
-MOCHITEST_CHROME_FILES = \
-		test_bug336682_2.xul \
-		test_bug336682.js \
-		test_bug586961.xul \
-		test_bug415498.xul \
-		bug415498-doc1.html \
-		bug415498-doc2.html \
-		test_bug591249.xul \
-		bug591249_iframe.xul \
-		bug602962.xul \
-		test_bug602962.xul \
-		test_bug617528.xul \
-		window_bug617528.xul \
-		test_bug679494.xul \
-		file_bug679494.html \
-		test_eventctors.xul \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/content/events/test/chrome.ini
@@ -0,0 +1,18 @@
+[DEFAULT]
+support-files =
+  bug415498-doc1.html
+  bug415498-doc2.html
+  bug591249_iframe.xul
+  bug602962.xul
+  file_bug679494.html
+  window_bug617528.xul
+
+[test_bug336682.js]
+[test_bug336682_2.xul]
+[test_bug415498.xul]
+[test_bug586961.xul]
+[test_bug591249.xul]
+[test_bug602962.xul]
+[test_bug617528.xul]
+[test_bug679494.xul]
+[test_eventctors.xul]
--- a/content/events/test/moz.build
+++ b/content/events/test/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/content/html/content/test/Makefile.in
+++ b/content/html/content/test/Makefile.in
@@ -1,14 +1,10 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-		test_allowMedia.html \
-		$(NULL)
-
 MOCHITEST_BROWSER_FILES = \
 		browser_bug649778.js \
 		file_bug649778.html \
 		file_bug649778.html^headers^ \
 		$(NULL)
new file mode 100644
--- /dev/null
+++ b/content/html/content/test/chrome.ini
@@ -0,0 +1,3 @@
+[DEFAULT]
+
+[test_allowMedia.html]
--- a/content/html/content/test/moz.build
+++ b/content/html/content/test/moz.build
@@ -11,8 +11,10 @@
 # We can't have index.html in this directory because it would prevent
 # running the tests here.
 TEST_DIRS += ['bug649134']
 
 TEST_DIRS += ['forms']
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/content/xbl/test/Makefile.in
+++ b/content/xbl/test/Makefile.in
@@ -1,13 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-		test_bug378518.xul \
-		test_bug398135.xul \
-		test_bug398492.xul \
-		test_bug721452.xul \
-		test_bug723676.xul \
-		test_bug772966.xul \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/content/xbl/test/chrome.ini
@@ -0,0 +1,8 @@
+[DEFAULT]
+
+[test_bug378518.xul]
+[test_bug398135.xul]
+[test_bug398492.xul]
+[test_bug721452.xul]
+[test_bug723676.xul]
+[test_bug772966.xul]
--- a/content/xbl/test/moz.build
+++ b/content/xbl/test/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/content/xul/content/test/Makefile.in
+++ b/content/xul/content/test/Makefile.in
@@ -1,13 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-		test_bug233643.xul \
-		test_bug236853.xul \
-		file_bug236853.rdf \
-		test_bug398289.html \
-		398289-resource.xul \
-		test_bug775972.xul \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/content/xul/content/test/chrome.ini
@@ -0,0 +1,9 @@
+[DEFAULT]
+support-files =
+  398289-resource.xul
+  file_bug236853.rdf
+
+[test_bug233643.xul]
+[test_bug236853.xul]
+[test_bug398289.html]
+[test_bug775972.xul]
--- a/content/xul/content/test/moz.build
+++ b/content/xul/content/test/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/content/xul/document/test/Makefile.in
+++ b/content/xul/document/test/Makefile.in
@@ -1,25 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES	= \
-		test_bug311681.xul \
-		test_bug199692.xul \
-		test_bug391002.xul \
-		test_bug403868.xul \
-		test_bug414907.xul \
-		test_bug418216.xul \
-		test_bug445177.xul \
-		test_bug449457.xul \
-		test_bug468176.xul \
-		test_bug583948.xul \
-		window_bug583948.xul \
-		test_bug497875.xul \
-		bug497875-iframe.xul \
-		test_bug335375.xul \
-		overlay1_bug335375.xul \
-		overlay2_bug335375.xul \
-		test_bug757137.xul \
-		window_bug757137.xul \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/content/xul/document/test/chrome.ini
@@ -0,0 +1,21 @@
+[DEFAULT]
+support-files =
+  bug497875-iframe.xul
+  overlay1_bug335375.xul
+  overlay2_bug335375.xul
+  window_bug583948.xul
+  window_bug757137.xul
+
+[test_bug199692.xul]
+[test_bug311681.xul]
+[test_bug335375.xul]
+[test_bug391002.xul]
+[test_bug403868.xul]
+[test_bug414907.xul]
+[test_bug418216.xul]
+[test_bug445177.xul]
+[test_bug449457.xul]
+[test_bug468176.xul]
+[test_bug497875.xul]
+[test_bug583948.xul]
+[test_bug757137.xul]
--- a/content/xul/document/test/moz.build
+++ b/content/xul/document/test/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/content/xul/templates/tests/chrome/Makefile.in
+++ b/content/xul/templates/tests/chrome/Makefile.in
@@ -1,235 +1,16 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # NOTE: it is important that the first test of the test_tmpl_* tests here use
 #       datasources="rdf:null" to ensure that the real animals.rdf datasource
 #       can be synchronously loaded before the tests run.
-MOCHITEST_CHROME_FILES = \
-		test_bug476634.xul \
-		templates_shared.js \
-		animals.rdf \
-		animals.xml \
-		animals.sqlite \
-		test_tmpl_bindingsextendedsyntax.xul \
-		test_tmpl_bindingsmultiple.xul \
-		test_tmpl_bindingsquerysyntax.xul \
-		test_tmpl_bindingsreversed.xul \
-		test_tmpl_bindingssameastriple.xul \
-		test_tmpl_containerandmembervariablechanged.xul \
-		test_tmpl_containervariablechanged.xul \
-		test_tmpl_containmentattribute.xul \
-		test_tmpl_defaultcontainervariableisuri.xul \
-		test_tmpl_extendedsyntaxemptyconditions.xul \
-		test_tmpl_extendedsyntaxotherrefvariable.xul \
-		test_tmpl_extendedsyntaxremoveunmatched.xul \
-		test_tmpl_extendedsyntaxsimplevariablesubstitution.xul \
-		test_tmpl_extendedsyntaxtworulesrecurse.xul \
-		test_tmpl_extendedsyntaxusinganinterveningcontainer.xul \
-		test_tmpl_extendedsyntax.xul \
-		test_tmpl_extendedvariablesubstitution.xul \
-		test_tmpl_gridelement.xul \
-		test_tmpl_htmlelementextendedsyntaxwithbinding.xul \
-		test_tmpl_htmlelementquerysyntaxrecursive.xul \
-		test_tmpl_htmlelementquerysyntaxwithmultiplerules.xul \
-		test_tmpl_htmlelementsimplesyntaxusingatextnode.xul \
-		test_tmpl_htmlelementsimplesyntax.xul \
-		test_tmpl_listboxelement.xul \
-		test_tmpl_literalasmember.xul \
-		test_tmpl_membervariablechanged.xul \
-		test_tmpl_membervariablesubstitution.xul \
-		test_tmpl_menuelementrecursive.xul \
-		test_tmpl_menuelement.xul \
-		test_tmpl_menulistelement.xul \
-		test_tmpl_mixedsyntaxiscontainerisempty.xul \
-		test_tmpl_mixedsyntaxiscontainer.xul \
-		test_tmpl_mixedsyntaxisempty.xul \
-		test_tmpl_noactionuriattribute.xul \
-		test_tmpl_noaction.xul \
-		test_tmpl_parentconditions.xul \
-		test_tmpl_parentcontenttag.xul \
-		test_tmpl_parentsimplesyntax.xul \
-		test_tmpl_query3tripleswherecontains.xul \
-		test_tmpl_query3triples.xul \
-		test_tmpl_querymember3tripleswhereequals.xul \
-		test_tmpl_querymemberandtwotriples.xul \
-		test_tmpl_querymembertriplemembertriple.xul \
-		test_tmpl_queryresourcematch.xul \
-		test_tmpl_queryreversetriple.xul \
-		test_tmpl_queryselfwithtriple.xul \
-		test_tmpl_querysetone.xul \
-		test_tmpl_querysettwowithcondition.xul \
-		test_tmpl_querysettwo.xul \
-		test_tmpl_querysyntaxmultiplerulesfirstconditionall.xul \
-		test_tmpl_querysyntaxmultiplerulestwoconditions.xul \
-		test_tmpl_querysyntaxmultiplerules.xul \
-		test_tmpl_querysyntax.xul \
-		test_tmpl_querytripleandmembermerge.xul \
-		test_tmpl_querytripleobjecttosubject.xul \
-		test_tmpl_querytwomembersfiltered.xul \
-		test_tmpl_querytwomembers.xul \
-		test_tmpl_querytwotriples.xul \
-		test_tmpl_queryupwardsmember.xul \
-		test_tmpl_queryupwardsmembertripleandfilteringtriple.xul \
-		test_tmpl_querywithemptyconditions.xul \
-		test_tmpl_referenceasmember.xul \
-		test_tmpl_selfgenerationextendedsyntax.xul \
-		test_tmpl_selfgenerationsimplesyntax.xul \
-		test_tmpl_simplesyntaxenclosedinacontainerwitharule.xul \
-		test_tmpl_simplesyntaxenclosedinacontainer.xul \
-		test_tmpl_simplesyntaxiteratingoverasinglevalue.xul \
-		test_tmpl_simplesyntaxusinganinterveningcontainer.xul \
-		test_tmpl_simplesyntaxusingatextnode.xul \
-		test_tmpl_simplesyntaxusingcontainerasthegenerationelement.xul \
-		test_tmpl_simplesyntaxusingdontrecurse.xul \
-		test_tmpl_simplesyntaxusingrecursivegenerationagain.xul \
-		test_tmpl_simplesyntaxusingrecursivegeneration.xul \
-		test_tmpl_simplesyntaxwithtwovariablesused.xul \
-		test_tmpl_simplevariablesubstitutioncaretsatbeginningandend.xul \
-		test_tmpl_simplevariablesubstitutioncaretsubstitution.xul \
-		test_tmpl_simplevariablesubstitutionnovariable.xul \
-		test_tmpl_simplevariablesubstitutionquestionmarkaspartofvariable.xul \
-		test_tmpl_simplevariablesubstitutionquestionmarksubstitution.xul \
-		test_tmpl_simplevariablesubstitutiontextandvariable.xul \
-		test_tmpl_simplevariablesubstitutionvariableandtextconcatenated.xul \
-		test_tmpl_simplevariablesubstitutionvariablesconcatenated.xul \
-		test_tmpl_simplesyntaxfilterwithmultiplerules.xul \
-		test_tmpl_simplesyntaxfilterwithrule.xul \
-		test_tmpl_simplesyntaxfilter.xul \
-		test_tmpl_sortascendingquerysyntax.xul \
-		test_tmpl_sortdescendingquerysyntax.xul \
-		test_tmpl_sortascendinginteger.xul \
-		test_tmpl_sortunknownascendingquerysyntax.xul \
-		test_tmpl_sortresourceascendingquerysyntax.xul \
-		test_tmpl_sortresourcedescendingquerysyntax.xul \
-		test_tmpl_sortresourcesettopredicateascendingquerysyntax.xul \
-		test_tmpl_sortresourcesettopredicatedescendingquerysyntax.xul \
-		test_tmpl_sortresource2settopredicateascendingquerysyntax.xul \
-		test_tmpl_sortresource2settopredicatedescendingquerysyntax.xul \
-		test_tmpl_sorttworesourcessettopredicateascendingquerysyntax.xul \
-		test_tmpl_sorttworesourcesasstringsettopredicatedescendingquerysyntax.xul \
-		test_tmpl_sorttwovariablesascendingquerysyntax.xul \
-		test_tmpl_sorttwovariablesascendingsimplesyntax.xul \
-		test_tmpl_sorttwovariablesdescendingquerysyntax.xul \
-		test_tmpl_sortresource2descendingsimplesyntax.xul \
-		test_tmpl_sortascendingtworulesquerysyntax.xul \
-		test_tmpl_sortascendingtworuleswithcontainerquerysyntax.xul \
-		test_tmpl_sortascendingtworuleswithdifferentcontainerquerysyntax.xul \
-		test_tmpl_sortquerymemberandtwotriples.xul \
-		test_tmpl_storage_baddatasource.xul \
-		test_tmpl_storage_badquery.xul \
-		test_tmpl_storage_bad_parameters.xul \
-		test_tmpl_storage_bad_parameters_2.xul \
-		test_tmpl_storage_bad_parameters_3.xul \
-		test_tmpl_storage_dynamicparameters.xul \
-		test_tmpl_storage_listbox.xul \
-		test_tmpl_storage_multiqueries.xul \
-		test_tmpl_storage_parameters.xul \
-		test_tmpl_storage_rule.xul \
-		test_tmpl_storage_simple.xul \
-		test_tmpl_storage_sortintegerasc.xul \
-		test_tmpl_storage_sortintegerdesc.xul \
-		test_tmpl_storage_sortstringasc.xul \
-		test_tmpl_storage_sortstringdesc.xul \
-		test_tmpl_storage_tree.xul \
-		test_tmpl_twogenerationnodes.xul \
-		test_tmpl_treeelementquerysyntaxtreebuilder.xul \
-		test_tmpl_treeelementquerysyntax.xul \
-		test_tmpl_treeelementsimplesyntaxrecursivetreebuilder.xul \
-		test_tmpl_treeelementsimplesyntaxrecursive.xul \
-		test_tmpl_treeelementsimplesyntaxnotrecursivetreebuilder.xul \
-		test_tmpl_treeelementsimplesyntaxnotrecursive.xul \
-		test_tmpl_treeelementquerysyntaxrecursivetreebuilder.xul \
-		test_tmpl_treeelementquerysyntaxrecursive.xul \
-		test_tmpl_treeelementquerysyntaxnotrecursivetreebuilder.xul \
-		test_tmpl_treeelementquerysyntaxnotrecursive.xul \
-		test_tmpl_treeelementquerysyntaxrecursivemultiplerulestreebuilder.xul \
-		test_tmpl_treeelementquerysyntaxrecursivemultiplerules.xul \
-		test_tmpl_treeelementtreecell.xul \
-		test_tmpl_treeelementtreecelltreebuilder.xul \
-		test_tmpl_treeelementtreecellsortascending.xul \
-		test_tmpl_treeelementtreecellsortascendingtreebuilder.xul \
-		test_tmpl_treeelementtreeitemonly.xul \
-		test_tmpl_treeelementtreeitemsortascending.xul \
-		test_tmpl_whereequals.xul \
-		test_tmpl_whereequalswrongcase.xul \
-		test_tmpl_whereequalssamevariable.xul \
-		test_tmpl_wheresubjectequalsvariable.xul \
-		test_tmpl_wherestartswith.xul \
-		test_tmpl_wherestartswithvariable.xul \
-		test_tmpl_wherestartswithunknownvariable.xul \
-		test_tmpl_wheresubjectstartswithvariable.xul \
-		test_tmpl_whereendswith.xul \
-		test_tmpl_wherecontains.xul \
-		test_tmpl_wherebeforeuppercase.xul \
-		test_tmpl_wherebeforelowercase.xul \
-		test_tmpl_whereafteruppercase.xul \
-		test_tmpl_whereafterlowercase.xul \
-		test_tmpl_whereequalsignorecase.xul \
-		test_tmpl_wherestartswithignorecase.xul \
-		test_tmpl_whereendswithignorecase.xul \
-		test_tmpl_wherecontainsignorecase.xul \
-		test_tmpl_wherebeforeignorecase.xul \
-		test_tmpl_whereafterignorecase.xul \
-		test_tmpl_whereequalsmultiple.xul \
-		test_tmpl_wherestartswithmultiple.xul \
-		test_tmpl_whereequalsnegation.xul \
-		test_tmpl_whereequalsnegationwrongcase.xul \
-		test_tmpl_whereequalsnegationignorecase.xul \
-		test_tmpl_whereequalsmultiplenegation.xul \
-		test_tmpl_whereequalsmultiplenegationignorecase.xul \
-		test_tmpl_wherestartswithnegation.xul \
-		test_tmpl_whereendswithnegation.xul \
-		test_tmpl_wherecontainsnegation.xul \
-		test_tmpl_wherebeforenegation.xul \
-		test_tmpl_whereafternegation.xul \
-		test_tmpl_wherenorel.xul \
-		test_tmpl_wherenovalue.xul \
-		test_tmpl_wherenosubject.xul \
-		test_tmpl_whereequalsresource.xul \
-		test_tmpl_wherecontainsresource.xul \
-		test_tmpl_wherecontainstwo.xul \
-		test_tmpl_whereequalsothervariable.xul \
-		test_tmpl_wheregreater.xul \
-		test_tmpl_whereless.xul \
-		test_tmpl_wheregreaternegation.xul \
-		test_tmpl_wherelessnegation.xul \
-		test_tmpl_whereequalsnumber.xul \
-		test_tmpl_wherecontainsnumber.xul \
-		test_tmpl_wheregreaterstring.xul \
-		test_tmpl_wherelessstring.xul \
-		test_tmpl_wheregreaternegationstring.xul \
-		test_tmpl_wherelessnegationstring.xul \
-		test_tmpl_wherecontainsnumberstring.xul \
-		test_tmpl_xmlquerysimple.xul \
-		test_tmpl_xmlquerywithdifferentmember.xul \
-		test_tmpl_xmlquerywithassign.xul \
-		test_tmpl_xmlquerywithassignmentandcondition.xul \
-		test_tmpl_xmlquerywithassignmentandconditiondontrecurse.xul \
-		test_tmpl_xmlquerywithbindinginbindings.xul \
-		test_tmpl_xmlquerywithbindinginrule.xul \
-		test_tmpl_xmlquerywithsort.xul \
-		test_tmpl_xmlquerywithsortotherfield.xul \
-		test_tmpl_xmlquerywithmultiplequeries.xul \
-		test_tmpl_xmlquerywithothertypes.xul \
-		test_tmpl_xmlquerywithinlinedata.xul \
-		test_tmpl_xmlquerywithinlinedatawithmultiplequeries.xul \
-		test_tmpl_invalidqp.xul \
-		test_tmpl_errors.xul \
-		test_tmpl_regenerate.xul \
-		test_bug441785.xul \
-		test_bug329335.xul \
-		bug441785-1.rdf \
-		bug441785-2.rdf \
-		test_sortservice.xul \
-		$(NULL)
-
 # bugs 742455 and 823470
 ifneq ($(OS_ARCH),WINNT)
 MOCHITEST_CHROME_FILES += \
 		test_bug330010.xul \
 		file_bug330010.rdf \
 		$(NULL)
 endif
 
new file mode 100644
--- /dev/null
+++ b/content/xul/templates/tests/chrome/chrome.ini
@@ -0,0 +1,219 @@
+[DEFAULT]
+support-files =
+  animals.rdf
+  animals.sqlite
+  animals.xml
+  bug441785-1.rdf
+  bug441785-2.rdf
+  templates_shared.js
+
+[test_bug329335.xul]
+[test_bug441785.xul]
+[test_bug476634.xul]
+[test_sortservice.xul]
+[test_tmpl_bindingsextendedsyntax.xul]
+[test_tmpl_bindingsmultiple.xul]
+[test_tmpl_bindingsquerysyntax.xul]
+[test_tmpl_bindingsreversed.xul]
+[test_tmpl_bindingssameastriple.xul]
+[test_tmpl_containerandmembervariablechanged.xul]
+[test_tmpl_containervariablechanged.xul]
+[test_tmpl_containmentattribute.xul]
+[test_tmpl_defaultcontainervariableisuri.xul]
+[test_tmpl_errors.xul]
+[test_tmpl_extendedsyntax.xul]
+[test_tmpl_extendedsyntaxemptyconditions.xul]
+[test_tmpl_extendedsyntaxotherrefvariable.xul]
+[test_tmpl_extendedsyntaxremoveunmatched.xul]
+[test_tmpl_extendedsyntaxsimplevariablesubstitution.xul]
+[test_tmpl_extendedsyntaxtworulesrecurse.xul]
+[test_tmpl_extendedsyntaxusinganinterveningcontainer.xul]
+[test_tmpl_extendedvariablesubstitution.xul]
+[test_tmpl_gridelement.xul]
+[test_tmpl_htmlelementextendedsyntaxwithbinding.xul]
+[test_tmpl_htmlelementquerysyntaxrecursive.xul]
+[test_tmpl_htmlelementquerysyntaxwithmultiplerules.xul]
+[test_tmpl_htmlelementsimplesyntax.xul]
+[test_tmpl_htmlelementsimplesyntaxusingatextnode.xul]
+[test_tmpl_invalidqp.xul]
+[test_tmpl_listboxelement.xul]
+[test_tmpl_literalasmember.xul]
+[test_tmpl_membervariablechanged.xul]
+[test_tmpl_membervariablesubstitution.xul]
+[test_tmpl_menuelement.xul]
+[test_tmpl_menuelementrecursive.xul]
+[test_tmpl_menulistelement.xul]
+[test_tmpl_mixedsyntaxiscontainer.xul]
+[test_tmpl_mixedsyntaxiscontainerisempty.xul]
+[test_tmpl_mixedsyntaxisempty.xul]
+[test_tmpl_noaction.xul]
+[test_tmpl_noactionuriattribute.xul]
+[test_tmpl_parentconditions.xul]
+[test_tmpl_parentcontenttag.xul]
+[test_tmpl_parentsimplesyntax.xul]
+[test_tmpl_query3triples.xul]
+[test_tmpl_query3tripleswherecontains.xul]
+[test_tmpl_querymember3tripleswhereequals.xul]
+[test_tmpl_querymemberandtwotriples.xul]
+[test_tmpl_querymembertriplemembertriple.xul]
+[test_tmpl_queryresourcematch.xul]
+[test_tmpl_queryreversetriple.xul]
+[test_tmpl_queryselfwithtriple.xul]
+[test_tmpl_querysetone.xul]
+[test_tmpl_querysettwo.xul]
+[test_tmpl_querysettwowithcondition.xul]
+[test_tmpl_querysyntax.xul]
+[test_tmpl_querysyntaxmultiplerules.xul]
+[test_tmpl_querysyntaxmultiplerulesfirstconditionall.xul]
+[test_tmpl_querysyntaxmultiplerulestwoconditions.xul]
+[test_tmpl_querytripleandmembermerge.xul]
+[test_tmpl_querytripleobjecttosubject.xul]
+[test_tmpl_querytwomembers.xul]
+[test_tmpl_querytwomembersfiltered.xul]
+[test_tmpl_querytwotriples.xul]
+[test_tmpl_queryupwardsmember.xul]
+[test_tmpl_queryupwardsmembertripleandfilteringtriple.xul]
+[test_tmpl_querywithemptyconditions.xul]
+[test_tmpl_referenceasmember.xul]
+[test_tmpl_regenerate.xul]
+[test_tmpl_selfgenerationextendedsyntax.xul]
+[test_tmpl_selfgenerationsimplesyntax.xul]
+[test_tmpl_simplesyntaxenclosedinacontainer.xul]
+[test_tmpl_simplesyntaxenclosedinacontainerwitharule.xul]
+[test_tmpl_simplesyntaxfilter.xul]
+[test_tmpl_simplesyntaxfilterwithmultiplerules.xul]
+[test_tmpl_simplesyntaxfilterwithrule.xul]
+[test_tmpl_simplesyntaxiteratingoverasinglevalue.xul]
+[test_tmpl_simplesyntaxusinganinterveningcontainer.xul]
+[test_tmpl_simplesyntaxusingatextnode.xul]
+[test_tmpl_simplesyntaxusingcontainerasthegenerationelement.xul]
+[test_tmpl_simplesyntaxusingdontrecurse.xul]
+[test_tmpl_simplesyntaxusingrecursivegeneration.xul]
+[test_tmpl_simplesyntaxusingrecursivegenerationagain.xul]
+[test_tmpl_simplesyntaxwithtwovariablesused.xul]
+[test_tmpl_simplevariablesubstitutioncaretsatbeginningandend.xul]
+[test_tmpl_simplevariablesubstitutioncaretsubstitution.xul]
+[test_tmpl_simplevariablesubstitutionnovariable.xul]
+[test_tmpl_simplevariablesubstitutionquestionmarkaspartofvariable.xul]
+[test_tmpl_simplevariablesubstitutionquestionmarksubstitution.xul]
+[test_tmpl_simplevariablesubstitutiontextandvariable.xul]
+[test_tmpl_simplevariablesubstitutionvariableandtextconcatenated.xul]
+[test_tmpl_simplevariablesubstitutionvariablesconcatenated.xul]
+[test_tmpl_sortascendinginteger.xul]
+[test_tmpl_sortascendingquerysyntax.xul]
+[test_tmpl_sortascendingtworulesquerysyntax.xul]
+[test_tmpl_sortascendingtworuleswithcontainerquerysyntax.xul]
+[test_tmpl_sortascendingtworuleswithdifferentcontainerquerysyntax.xul]
+[test_tmpl_sortdescendingquerysyntax.xul]
+[test_tmpl_sortquerymemberandtwotriples.xul]
+[test_tmpl_sortresource2descendingsimplesyntax.xul]
+[test_tmpl_sortresource2settopredicateascendingquerysyntax.xul]
+[test_tmpl_sortresource2settopredicatedescendingquerysyntax.xul]
+[test_tmpl_sortresourceascendingquerysyntax.xul]
+[test_tmpl_sortresourcedescendingquerysyntax.xul]
+[test_tmpl_sortresourcesettopredicateascendingquerysyntax.xul]
+[test_tmpl_sortresourcesettopredicatedescendingquerysyntax.xul]
+[test_tmpl_sorttworesourcesasstringsettopredicatedescendingquerysyntax.xul]
+[test_tmpl_sorttworesourcessettopredicateascendingquerysyntax.xul]
+[test_tmpl_sorttwovariablesascendingquerysyntax.xul]
+[test_tmpl_sorttwovariablesascendingsimplesyntax.xul]
+[test_tmpl_sorttwovariablesdescendingquerysyntax.xul]
+[test_tmpl_sortunknownascendingquerysyntax.xul]
+[test_tmpl_storage_bad_parameters.xul]
+[test_tmpl_storage_bad_parameters_2.xul]
+[test_tmpl_storage_bad_parameters_3.xul]
+[test_tmpl_storage_baddatasource.xul]
+[test_tmpl_storage_badquery.xul]
+[test_tmpl_storage_dynamicparameters.xul]
+[test_tmpl_storage_listbox.xul]
+[test_tmpl_storage_multiqueries.xul]
+[test_tmpl_storage_parameters.xul]
+[test_tmpl_storage_rule.xul]
+[test_tmpl_storage_simple.xul]
+[test_tmpl_storage_sortintegerasc.xul]
+[test_tmpl_storage_sortintegerdesc.xul]
+[test_tmpl_storage_sortstringasc.xul]
+[test_tmpl_storage_sortstringdesc.xul]
+[test_tmpl_storage_tree.xul]
+[test_tmpl_treeelementquerysyntax.xul]
+[test_tmpl_treeelementquerysyntaxnotrecursive.xul]
+[test_tmpl_treeelementquerysyntaxnotrecursivetreebuilder.xul]
+[test_tmpl_treeelementquerysyntaxrecursive.xul]
+[test_tmpl_treeelementquerysyntaxrecursivemultiplerules.xul]
+[test_tmpl_treeelementquerysyntaxrecursivemultiplerulestreebuilder.xul]
+[test_tmpl_treeelementquerysyntaxrecursivetreebuilder.xul]
+[test_tmpl_treeelementquerysyntaxtreebuilder.xul]
+[test_tmpl_treeelementsimplesyntaxnotrecursive.xul]
+[test_tmpl_treeelementsimplesyntaxnotrecursivetreebuilder.xul]
+[test_tmpl_treeelementsimplesyntaxrecursive.xul]
+[test_tmpl_treeelementsimplesyntaxrecursivetreebuilder.xul]
+[test_tmpl_treeelementtreecell.xul]
+[test_tmpl_treeelementtreecellsortascending.xul]
+[test_tmpl_treeelementtreecellsortascendingtreebuilder.xul]
+[test_tmpl_treeelementtreecelltreebuilder.xul]
+[test_tmpl_treeelementtreeitemonly.xul]
+[test_tmpl_treeelementtreeitemsortascending.xul]
+[test_tmpl_twogenerationnodes.xul]
+[test_tmpl_whereafterignorecase.xul]
+[test_tmpl_whereafterlowercase.xul]
+[test_tmpl_whereafternegation.xul]
+[test_tmpl_whereafteruppercase.xul]
+[test_tmpl_wherebeforeignorecase.xul]
+[test_tmpl_wherebeforelowercase.xul]
+[test_tmpl_wherebeforenegation.xul]
+[test_tmpl_wherebeforeuppercase.xul]
+[test_tmpl_wherecontains.xul]
+[test_tmpl_wherecontainsignorecase.xul]
+[test_tmpl_wherecontainsnegation.xul]
+[test_tmpl_wherecontainsnumber.xul]
+[test_tmpl_wherecontainsnumberstring.xul]
+[test_tmpl_wherecontainsresource.xul]
+[test_tmpl_wherecontainstwo.xul]
+[test_tmpl_whereendswith.xul]
+[test_tmpl_whereendswithignorecase.xul]
+[test_tmpl_whereendswithnegation.xul]
+[test_tmpl_whereequals.xul]
+[test_tmpl_whereequalsignorecase.xul]
+[test_tmpl_whereequalsmultiple.xul]
+[test_tmpl_whereequalsmultiplenegation.xul]
+[test_tmpl_whereequalsmultiplenegationignorecase.xul]
+[test_tmpl_whereequalsnegation.xul]
+[test_tmpl_whereequalsnegationignorecase.xul]
+[test_tmpl_whereequalsnegationwrongcase.xul]
+[test_tmpl_whereequalsnumber.xul]
+[test_tmpl_whereequalsothervariable.xul]
+[test_tmpl_whereequalsresource.xul]
+[test_tmpl_whereequalssamevariable.xul]
+[test_tmpl_whereequalswrongcase.xul]
+[test_tmpl_wheregreater.xul]
+[test_tmpl_wheregreaternegation.xul]
+[test_tmpl_wheregreaternegationstring.xul]
+[test_tmpl_wheregreaterstring.xul]
+[test_tmpl_whereless.xul]
+[test_tmpl_wherelessnegation.xul]
+[test_tmpl_wherelessnegationstring.xul]
+[test_tmpl_wherelessstring.xul]
+[test_tmpl_wherenorel.xul]
+[test_tmpl_wherenosubject.xul]
+[test_tmpl_wherenovalue.xul]
+[test_tmpl_wherestartswith.xul]
+[test_tmpl_wherestartswithignorecase.xul]
+[test_tmpl_wherestartswithmultiple.xul]
+[test_tmpl_wherestartswithnegation.xul]
+[test_tmpl_wherestartswithunknownvariable.xul]
+[test_tmpl_wherestartswithvariable.xul]
+[test_tmpl_wheresubjectequalsvariable.xul]
+[test_tmpl_wheresubjectstartswithvariable.xul]
+[test_tmpl_xmlquerysimple.xul]
+[test_tmpl_xmlquerywithassign.xul]
+[test_tmpl_xmlquerywithassignmentandcondition.xul]
+[test_tmpl_xmlquerywithassignmentandconditiondontrecurse.xul]
+[test_tmpl_xmlquerywithbindinginbindings.xul]
+[test_tmpl_xmlquerywithbindinginrule.xul]
+[test_tmpl_xmlquerywithdifferentmember.xul]
+[test_tmpl_xmlquerywithinlinedata.xul]
+[test_tmpl_xmlquerywithinlinedatawithmultiplequeries.xul]
+[test_tmpl_xmlquerywithmultiplequeries.xul]
+[test_tmpl_xmlquerywithothertypes.xul]
+[test_tmpl_xmlquerywithsort.xul]
+[test_tmpl_xmlquerywithsortotherfield.xul]
--- a/content/xul/templates/tests/chrome/moz.build
+++ b/content/xul/templates/tests/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/docshell/test/chrome/Makefile.in
+++ b/docshell/test/chrome/Makefile.in
@@ -15,94 +15,15 @@ MOCHITEST_FILES =	\
 		215405_nocache.html \
 		215405_nocache.html^headers^ \
 		582176_dummy.html \
 		582176_xml.xml \
 		582176_xslt.xsl \
 		allowContentRetargeting.sjs \
 		$(NULL)
 
-MOCHITEST_CHROME_FILES =	\
-                test_bug89419.xul \
-                bug89419_window.xul \
-                89419.html \
-		test_bug92598.xul \
-		bug92598_window.xul \
-		92598_nostore.html \
-		test_bug112564.xul \
-		bug112564_window.xul \
-		test_bug113934.xul \
-		bug113934_window.xul \
-		test_bug215405.xul \
-		bug215405_window.xul \
-		test_bug293235.xul \
-		bug293235_window.xul \
-		bug293235.html \
-		bug293235_p2.html \
-		test_bug294258.xul \
-		bug294258_window.xul \
-		bug294258_testcase.html \
-		test_bug298622.xul \
-		bug298622_window.xul \
-		test_bug301397.xul \
-		bug301397_window.xul \
-		bug301397_1.html \
-		bug301397_2.html \
-		bug301397_3.html \
-		bug301397_4.html \
-		test_bug303267.xul \
-		bug303267.html \
-		bug303267_window.xul \
-		test_bug321671.xul \
-		bug321671_window.xul \
-		test_bug360511.xul \
-		bug360511_window.xul \
-		bug360511_case1.html \
-		bug360511_case2.html \
-		test_bug364461.xul \
-		bug364461_window.xul \
-		test_bug396519.xul \
-		bug396519_window.xul \
-		test_bug396649.xul \
-		bug396649_window.xul \
-		test_bug582176.xul \
-		bug582176_window.xul \
-		test_bug428288.html \
-		test_bug608669.xul \
-		bug608669.xul \
-		test_bug449778.xul \
-		bug449778_window.xul \
-		test_bug449780.xul \
-		bug449780_window.xul \
-		bug454235-subframe.xul \
-		test_bug453650.xul \
-		test_bug456980.xul \
-		test_bug662200.xul \
-		bug662200_window.xul \
-		662200a.html \
-		662200b.html \
-		662200c.html \
-		test_bug690056.xul \
-		bug690056_window.xul \
-		test_bug311007.xul \
-		bug311007_window.xul \
-		test_principalInherit.xul \
-		test_mozFrameType.xul \
-		mozFrameType_window.xul \
-		test_bug789773.xul \
-		test_private_hidden_window.html \
-		test_bug909218.html \
-		bug909218.html \
-		bug909218.js \
-    docshell_helpers.js \
-    generic.html \
-    test_bug846906.xul \
-    bug846906.html \
-    test_allowContentRetargeting.html \
-    $(NULL)
-
 ifneq ($(MOZ_WIDGET_TOOLKIT),gtk2)
 MOCHITEST_CHROME_FILES += \
 		test_bug454235.xul \
 		$(NULL)
 else
 $(filter disabled-temporarily--bug-684176, test_bug454235.xul)
 endif
new file mode 100644
--- /dev/null
+++ b/docshell/test/chrome/chrome.ini
@@ -0,0 +1,79 @@
+[DEFAULT]
+support-files =
+  662200a.html
+  662200b.html
+  662200c.html
+  89419.html
+  92598_nostore.html
+  bug112564_window.xul
+  bug113934_window.xul
+  bug215405_window.xul
+  bug293235.html
+  bug293235_p2.html
+  bug293235_window.xul
+  bug294258_testcase.html
+  bug294258_window.xul
+  bug298622_window.xul
+  bug301397_1.html
+  bug301397_2.html
+  bug301397_3.html
+  bug301397_4.html
+  bug301397_window.xul
+  bug303267.html
+  bug303267_window.xul
+  bug311007_window.xul
+  bug321671_window.xul
+  bug360511_case1.html
+  bug360511_case2.html
+  bug360511_window.xul
+  bug364461_window.xul
+  bug396519_window.xul
+  bug396649_window.xul
+  bug449778_window.xul
+  bug449780_window.xul
+  bug454235-subframe.xul
+  bug582176_window.xul
+  bug608669.xul
+  bug662200_window.xul
+  bug690056_window.xul
+  bug846906.html
+  bug89419_window.xul
+  bug909218.html
+  bug909218.js
+  bug92598_window.xul
+  docshell_helpers.js
+  generic.html
+  mozFrameType_window.xul
+
+[test_allowContentRetargeting.html]
+[test_bug112564.xul]
+[test_bug113934.xul]
+[test_bug215405.xul]
+[test_bug293235.xul]
+[test_bug294258.xul]
+[test_bug298622.xul]
+[test_bug301397.xul]
+[test_bug303267.xul]
+[test_bug311007.xul]
+[test_bug321671.xul]
+[test_bug360511.xul]
+[test_bug364461.xul]
+[test_bug396519.xul]
+[test_bug396649.xul]
+[test_bug428288.html]
+[test_bug449778.xul]
+[test_bug449780.xul]
+[test_bug453650.xul]
+[test_bug456980.xul]
+[test_bug582176.xul]
+[test_bug608669.xul]
+[test_bug662200.xul]
+[test_bug690056.xul]
+[test_bug789773.xul]
+[test_bug846906.xul]
+[test_bug89419.xul]
+[test_bug909218.html]
+[test_bug92598.xul]
+[test_mozFrameType.xul]
+[test_principalInherit.xul]
+[test_private_hidden_window.html]
--- a/docshell/test/chrome/moz.build
+++ b/docshell/test/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/apps/tests/Makefile.in
+++ b/dom/apps/tests/Makefile.in
@@ -1,9 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-  test_apps_service.xul \
-  test_operator_app_install.xul \
-  test_operator_app_install.js \
-  $(NULL)
new file mode 100644
--- /dev/null
+++ b/dom/apps/tests/chrome.ini
@@ -0,0 +1,5 @@
+[DEFAULT]
+
+[test_apps_service.xul]
+[test_operator_app_install.js]
+[test_operator_app_install.xul]
--- a/dom/apps/tests/moz.build
+++ b/dom/apps/tests/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/.
 
 XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/base/test/Makefile.in
+++ b/dom/base/test/Makefile.in
@@ -1,9 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-   test_bug715041.xul \
-   test_bug715041_removal.xul \
-   test_domrequesthelper.xul \
-   $(NULL)
new file mode 100644
--- /dev/null
+++ b/dom/base/test/chrome.ini
@@ -0,0 +1,5 @@
+[DEFAULT]
+
+[test_bug715041.xul]
+[test_bug715041_removal.xul]
+[test_domrequesthelper.xul]
--- a/dom/base/test/moz.build
+++ b/dom/base/test/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/bindings/test/Makefile.in
+++ b/dom/bindings/test/Makefile.in
@@ -39,22 +39,16 @@ bindinggen_dependencies := \
   ../Configuration.py \
   ../Codegen.py \
   ../ParserResults.pkl \
   ../parser/WebIDL.py \
   ../Makefile \
   $(GLOBAL_DEPS) \
   $(NULL)
 
-MOCHITEST_CHROME_FILES = \
-  test_bug775543.html \
-  test_bug707564-chrome.html \
-  test_document_location_set_via_xray.html \
-  $(NULL)
-
 ifdef GNU_CC
 CXXFLAGS += -Wno-uninitialized
 endif
 
 # Include rules.mk before any of our targets so our first target is coming from
 # rules.mk and running make with no target in this dir does the right thing.
 include $(topsrcdir)/config/rules.mk
 
new file mode 100644
--- /dev/null
+++ b/dom/bindings/test/chrome.ini
@@ -0,0 +1,5 @@
+[DEFAULT]
+
+[test_bug707564-chrome.html]
+[test_bug775543.html]
+[test_document_location_set_via_xray.html]
--- a/dom/bindings/test/moz.build
+++ b/dom/bindings/test/moz.build
@@ -14,8 +14,10 @@ CPP_SOURCES += [
 LIBXUL_LIBRARY = True
 # Do NOT export this library.  We don't actually want our test code
 # being added to libxul or anything.
 
 LIBRARY_NAME = 'dombindings_test_s'
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/contacts/tests/Makefile.in
+++ b/dom/contacts/tests/Makefile.in
@@ -1,7 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-  test_contacts_upgrade.html \
-  $(NULL)
new file mode 100644
--- /dev/null
+++ b/dom/contacts/tests/chrome.ini
@@ -0,0 +1,3 @@
+[DEFAULT]
+
+[test_contacts_upgrade.html]
--- a/dom/contacts/tests/moz.build
+++ b/dom/contacts/tests/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/devicestorage/test/Makefile.in
+++ b/dom/devicestorage/test/Makefile.in
@@ -4,11 +4,8 @@
 
 #  man, our mime database sucks hard.  followup bug # 788273
 #		test_add.html \
 
 # Possible race between the time we write a file, and the
 # time it takes to be reflected by statfs().  Bug # 791287
 #                 test_diskSpace.html \
 
-MOCHITEST_CHROME_FILES =\
-		test_app_permissions.html \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/dom/devicestorage/test/chrome.ini
@@ -0,0 +1,3 @@
+[DEFAULT]
+
+[test_app_permissions.html]
--- a/dom/devicestorage/test/moz.build
+++ b/dom/devicestorage/test/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/encoding/test/Makefile.in
+++ b/dom/encoding/test/Makefile.in
@@ -1,8 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-  file_stringencoding.jsm \
-  test_stringencoding.xul \
-  $(NULL)
new file mode 100644
--- /dev/null
+++ b/dom/encoding/test/chrome.ini
@@ -0,0 +1,4 @@
+[DEFAULT]
+support-files = file_stringencoding.jsm
+
+[test_stringencoding.xul]
--- a/dom/encoding/test/moz.build
+++ b/dom/encoding/test/moz.build
@@ -5,8 +5,10 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 TEST_DIRS += ['unit']
 
 XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/indexedDB/test/Makefile.in
+++ b/dom/indexedDB/test/Makefile.in
@@ -1,19 +1,14 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.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_bug847147.html disabled for timeouts
 #   test_writer_starvation.html  disabled for infinite loops, bug 595368
-MOCHITEST_CHROME_FILES = \
-  chromeHelpers.js \
-  test_globalObjects.xul \
-  $(NULL)
-
 ifeq (browser,$(MOZ_BUILD_APP))
 MOCHITEST_BROWSER_FILES = \
   browser_forgetThisSite.js \
   browser_forgetThisSiteAdd.html \
   browser_forgetThisSiteGet.html \
   browserHelpers.js \
   browser_permissionsPrompt.html \
   browser_permissionsPromptAllow.js \
new file mode 100644
--- /dev/null
+++ b/dom/indexedDB/test/chrome.ini
@@ -0,0 +1,4 @@
+[DEFAULT]
+support-files = chromeHelpers.js
+
+[test_globalObjects.xul]
--- a/dom/indexedDB/test/moz.build
+++ b/dom/indexedDB/test/moz.build
@@ -7,8 +7,10 @@
 DIRS += ['extensions']
 
 TEST_DIRS += ['unit']
 
 XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/ipc/tests/Makefile.in
+++ b/dom/ipc/tests/Makefile.in
@@ -1,9 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-  test_process_error.xul \
-  process_error.xul \
-  process_error_contentscript.js \
-  $(NULL)
new file mode 100644
--- /dev/null
+++ b/dom/ipc/tests/chrome.ini
@@ -0,0 +1,6 @@
+[DEFAULT]
+support-files =
+  process_error.xul
+  process_error_contentscript.js
+
+[test_process_error.xul]
--- a/dom/ipc/tests/moz.build
+++ b/dom/ipc/tests/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/phonenumberutils/tests/Makefile.in
+++ b/dom/phonenumberutils/tests/Makefile.in
@@ -1,9 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-  test_phonenumber.xul \
-  test_phonenumberutils.xul \
-  test_phonenumberservice.xul \
-  $(NULL)
new file mode 100644
--- /dev/null
+++ b/dom/phonenumberutils/tests/chrome.ini
@@ -0,0 +1,5 @@
+[DEFAULT]
+
+[test_phonenumber.xul]
+[test_phonenumberservice.xul]
+[test_phonenumberutils.xul]
--- a/dom/phonenumberutils/tests/moz.build
+++ b/dom/phonenumberutils/tests/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/plugins/test/mochitest/Makefile.in
+++ b/dom/plugins/test/mochitest/Makefile.in
@@ -8,29 +8,16 @@ ifeq ($(OS_ARCH),WINNT)
 MOCHITEST_FILES += \
   test_windowed_invalidate.html \
   $(NULL)
 
 # test_positioning.html \ disabled due to oddness, perhaps scrolling of the
 # mochitest window?
 endif
 
-MOCHITEST_CHROME_FILES = \
-  utils.js \
-  test_clear_site_data.html \
-  test_npruntime.xul   \
-  test_wmode.xul \
-  test_bug479979.xul \
-  test_bug751809.html \
-  test_refresh_navigator_plugins.html \
-  test_plugin_tag_clicktoplay.html \
-  privatemode_perwindowpb.xul \
-  test_privatemode_perwindowpb.xul \
-  $(NULL)
-
 ifneq ($(MOZ_WIDGET_TOOLKIT),cocoa)
 MOCHITEST_FILES += \
   test_visibility.html \
   $(NULL)
 
 ifneq ($(OS_ARCH),WINNT)
 MOCHITEST_CHROME_FILES += \
   test_xulbrowser_plugin_visibility.xul \
new file mode 100644
--- /dev/null
+++ b/dom/plugins/test/mochitest/chrome.ini
@@ -0,0 +1,13 @@
+[DEFAULT]
+support-files =
+  privatemode_perwindowpb.xul
+  utils.js
+
+[test_bug479979.xul]
+[test_bug751809.html]
+[test_clear_site_data.html]
+[test_npruntime.xul]
+[test_plugin_tag_clicktoplay.html]
+[test_privatemode_perwindowpb.xul]
+[test_refresh_navigator_plugins.html]
+[test_wmode.xul]
--- a/dom/plugins/test/mochitest/moz.build
+++ b/dom/plugins/test/mochitest/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/settings/tests/Makefile.in
+++ b/dom/settings/tests/Makefile.in
@@ -1,8 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-  test_settings_service.xul \
-  test_settings_service.js \
-  $(NULL)
new file mode 100644
--- /dev/null
+++ b/dom/settings/tests/chrome.ini
@@ -0,0 +1,4 @@
+[DEFAULT]
+
+[test_settings_service.js]
+[test_settings_service.xul]
--- a/dom/settings/tests/moz.build
+++ b/dom/settings/tests/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/system/tests/Makefile.in
+++ b/dom/system/tests/Makefile.in
@@ -1,4 +0,0 @@
-MOCHITEST_CHROME_FILES = \
-	test_constants.xul \
-	worker_constants.js \
-        $(NULL)
new file mode 100644
--- /dev/null
+++ b/dom/system/tests/chrome.ini
@@ -0,0 +1,4 @@
+[DEFAULT]
+support-files = worker_constants.js
+
+[test_constants.xul]
--- a/dom/system/tests/moz.build
+++ b/dom/system/tests/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/.
 
 MODULE = 'test_domsystem'
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/tests/mochitest/chrome/Makefile.in
+++ b/dom/tests/mochitest/chrome/Makefile.in
@@ -1,66 +1,13 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-		MozEnteredDomFullscreen_chrome.xul \
-		fullscreen.xul \
-		test_fullscreen_preventdefault.xul \
-		fullscreen_preventdefault.xul \
-		focus_window2.xul \
-		focus_frameset.html \
-		child_focus_frame.html \
-		test_focus_switchbinding.xul \
-		test_focus.xul \
-		window_focus.xul \
-		test_focused_link_scroll.xul \
-		test_geolocation.xul \
-		test_activation.xul \
-		window_activation.xul \
-		test_DOMWindowCreated.xul \
-		DOMWindowCreated_chrome.xul \
-		DOMWindowCreated_content.html \
-		test_sandbox_image.xul \
-		test_cyclecollector.xul \
-		test_popup_blocker_chrome.xul \
-		test_moving_xhr.xul \
-		test_nodesFromRect.html \
-		489127.html \
-		test_focus_docnav.xul \
-		window_focus_docnav.xul \
-		test_clonewrapper.xul \
-		test_moving_nodeList.xul \
-		test_callback_wrapping.xul \
-		window_callback_wrapping.xul \
-		test_sandbox_postMessage.html \
-		test_sandbox_bindings.xul \
-		test_selectAtPoint.html \
-		selectAtPoint.html \
-		test_bug799299.xul \
-		file_bug799299.xul \
-		test_bug800817.xul \
-		file_bug800817.xul \
-		test_bug830396.xul \
-		test_subscript_bindings.xul \
-		file_subscript_bindings.js \
-		test_sandbox_eventhandler.xul \
-		test_DOM_element_instanceof.xul \
-		file_DOM_element_instanceof.xul \
-		test_bug830858.xul \
-		file_bug830858.xul \
-		test_indexedSetter.html \
-		test_queryCaretRect.html \
-		queryCaretRectWin.html \
-		queryCaretRectUnix.html \
-		test_xray_event_constructor.xul \
-		$(NULL)
-
 ifeq (WINNT,$(OS_ARCH))
 MOCHITEST_CHROME_FILES += \
 		test_sizemode_attribute.xul \
 		sizemode_attribute.xul \
 		$(NULL)
 endif
 
 ifneq (Linux,$(OS_ARCH))
new file mode 100644
--- /dev/null
+++ b/dom/tests/mochitest/chrome/chrome.ini
@@ -0,0 +1,53 @@
+[DEFAULT]
+support-files =
+  489127.html
+  DOMWindowCreated_chrome.xul
+  DOMWindowCreated_content.html
+  MozEnteredDomFullscreen_chrome.xul
+  child_focus_frame.html
+  file_DOM_element_instanceof.xul
+  file_bug799299.xul
+  file_bug800817.xul
+  file_bug830858.xul
+  file_subscript_bindings.js
+  focus_frameset.html
+  focus_window2.xul
+  fullscreen.xul
+  fullscreen_preventdefault.xul
+  queryCaretRectUnix.html
+  queryCaretRectWin.html
+  selectAtPoint.html
+  window_activation.xul
+  window_callback_wrapping.xul
+  window_focus.xul
+  window_focus_docnav.xul
+
+[test_DOMWindowCreated.xul]
+[test_DOM_element_instanceof.xul]
+[test_activation.xul]
+[test_bug799299.xul]
+[test_bug800817.xul]
+[test_bug830396.xul]
+[test_bug830858.xul]
+[test_callback_wrapping.xul]
+[test_clonewrapper.xul]
+[test_cyclecollector.xul]
+[test_focus.xul]
+[test_focus_docnav.xul]
+[test_focus_switchbinding.xul]
+[test_focused_link_scroll.xul]
+[test_fullscreen_preventdefault.xul]
+[test_geolocation.xul]
+[test_indexedSetter.html]
+[test_moving_nodeList.xul]
+[test_moving_xhr.xul]
+[test_nodesFromRect.html]
+[test_popup_blocker_chrome.xul]
+[test_queryCaretRect.html]
+[test_sandbox_bindings.xul]
+[test_sandbox_eventhandler.xul]
+[test_sandbox_image.xul]
+[test_sandbox_postMessage.html]
+[test_selectAtPoint.html]
+[test_subscript_bindings.xul]
+[test_xray_event_constructor.xul]
--- a/dom/tests/mochitest/chrome/moz.build
+++ b/dom/tests/mochitest/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/tests/mochitest/general/Makefile.in
+++ b/dom/tests/mochitest/general/Makefile.in
@@ -1,13 +1,7 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # Disable this test until bug 795711 is fixed.
 #		test_network_events.html
-MOCHITEST_CHROME_FILES = \
-		test_innerScreen.xul \
-		test_offsets.xul \
-		test_offsets.js \
-                test_offsets.css \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/dom/tests/mochitest/general/chrome.ini
@@ -0,0 +1,6 @@
+[DEFAULT]
+
+[test_innerScreen.xul]
+[test_offsets.css]
+[test_offsets.js]
+[test_offsets.xul]
--- a/dom/tests/mochitest/general/moz.build
+++ b/dom/tests/mochitest/general/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/tests/mochitest/localstorage/Makefile.in
+++ b/dom/tests/mochitest/localstorage/Makefile.in
@@ -1,14 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-    test_localStorageBasePrivateBrowsing_perwindowpb.html \
-    test_localStorageFromChrome.xhtml \
-    test_localStorageQuotaPrivateBrowsing_perwindowpb.html \
-    test_app_uninstall.html \
-    test_clear_browser_data.html \
-    frame_clear_browser_data.html \
-    page_blank.html \
-    $(NULL)
new file mode 100644
--- /dev/null
+++ b/dom/tests/mochitest/localstorage/chrome.ini
@@ -0,0 +1,10 @@
+[DEFAULT]
+support-files =
+  frame_clear_browser_data.html
+  page_blank.html
+
+[test_app_uninstall.html]
+[test_clear_browser_data.html]
+[test_localStorageBasePrivateBrowsing_perwindowpb.html]
+[test_localStorageFromChrome.xhtml]
+[test_localStorageQuotaPrivateBrowsing_perwindowpb.html]
--- a/dom/tests/mochitest/localstorage/moz.build
+++ b/dom/tests/mochitest/localstorage/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/tests/mochitest/notification/Makefile.in
+++ b/dom/tests/mochitest/notification/Makefile.in
@@ -1,8 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-		test_system_principal.xul \
-		$(NULL)
-
new file mode 100644
--- /dev/null
+++ b/dom/tests/mochitest/notification/chrome.ini
@@ -0,0 +1,3 @@
+[DEFAULT]
+
+[test_system_principal.xul]
--- a/dom/tests/mochitest/notification/moz.build
+++ b/dom/tests/mochitest/notification/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/tests/mochitest/sessionstorage/Makefile.in
+++ b/dom/tests/mochitest/sessionstorage/Makefile.in
@@ -1,8 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-    test_sessionStorageFromChrome.xhtml \
-    $(NULL)
new file mode 100644
--- /dev/null
+++ b/dom/tests/mochitest/sessionstorage/chrome.ini
@@ -0,0 +1,3 @@
+[DEFAULT]
+
+[test_sessionStorageFromChrome.xhtml]
--- a/dom/tests/mochitest/sessionstorage/moz.build
+++ b/dom/tests/mochitest/sessionstorage/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/tests/mochitest/webapps/Makefile.in
+++ b/dom/tests/mochitest/webapps/Makefile.in
@@ -1,20 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-    install_and_redirect_helper.xul \
-    cross_origin.html \
-    head.js \
-    test_bug_765063.xul \
-    test_bug_771294.xul \
-    test_cross_origin.xul \
-    test_install_app.xul \
-    test_list_api.xul \
-    test_install_errors.xul \
-    test_install_utf8.xul \
-    test_install_receipts.xul \
-    test_getNotInstalled.xul \
-    test_launch_paths.xul \
-    $(NULL)
-
new file mode 100644
--- /dev/null
+++ b/dom/tests/mochitest/webapps/chrome.ini
@@ -0,0 +1,16 @@
+[DEFAULT]
+support-files =
+  cross_origin.html
+  head.js
+  install_and_redirect_helper.xul
+
+[test_bug_765063.xul]
+[test_bug_771294.xul]
+[test_cross_origin.xul]
+[test_getNotInstalled.xul]
+[test_install_app.xul]
+[test_install_errors.xul]
+[test_install_receipts.xul]
+[test_install_utf8.xul]
+[test_launch_paths.xul]
+[test_list_api.xul]
--- a/dom/tests/mochitest/webapps/moz.build
+++ b/dom/tests/mochitest/webapps/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 += ['apps']
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/tests/mochitest/whatwg/Makefile.in
+++ b/dom/tests/mochitest/whatwg/Makefile.in
@@ -41,11 +41,8 @@ MOCHITEST_FILES	= \
 		postMessage_structured_clone_helper.html \
 		$(filter disabled-for-intermittent-failures--bug-696306, test_bug500328.html) \
 		$(filter disabled-for-intermittent-failures--bug-696306, file_bug500328_1.html) \
 		$(filter disabled-for-intermittent-failures--bug-696306, file_bug500328_2.html) \
 		test_postMessage_transfer.html \
 		postMessage_transfer_helper.html \
 		$(NULL)
 
-MOCHITEST_CHROME_FILES	= \
-		test_postMessage_chrome.html \
-		$(NULL)		
new file mode 100644
--- /dev/null
+++ b/dom/tests/mochitest/whatwg/chrome.ini
@@ -0,0 +1,3 @@
+[DEFAULT]
+
+[test_postMessage_chrome.html]
--- a/dom/tests/mochitest/whatwg/moz.build
+++ b/dom/tests/mochitest/whatwg/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/dom/workers/test/Makefile.in
+++ b/dom/workers/test/Makefile.in
@@ -4,43 +4,8 @@
 
 # Bug 842344, 842386 - Disabled on Windows & OSX for intermittent failures.
 ifeq (,$(filter Darwin WINNT,$(OS_ARCH)))
 MOCHITEST_FILES += \
   test_xhr_timeout.html \
   $(NULL)
 endif
 
-MOCHITEST_CHROME_FILES = \
-  test_chromeWorker.xul \
-  test_chromeWorkerJSM.xul \
-  test_extension.xul \
-  test_extensionBootstrap.xul \
-  test_file.xul \
-  test_fileSlice.xul \
-  test_fileBlobPosting.xul \
-  test_filePosting.xul \
-  test_fileReaderSync.xul \
-  test_fileReaderSyncErrors.xul \
-  test_fileReadSlice.xul \
-  test_fileSubWorker.xul \
-  test_fileBlobSubWorker.xul \
-  file_worker.js \
-  fileBlob_worker.js \
-  fileSlice_worker.js \
-  filePosting_worker.js \
-  fileReaderSync_worker.js \
-  fileReaderSyncErrors_worker.js \
-  fileReadSlice_worker.js \
-  fileSubWorker_worker.js \
-  fileBlobSubWorker_worker.js \
-  WorkerTest.jsm \
-  WorkerTest_worker.js \
-  WorkerTest_subworker.js \
-  chromeWorker_worker.js \
-  chromeWorker_subworker.js \
-  test_workersDisabled.xul \
-  workersDisabled_worker.js \
-  dom_worker_helper.js \
-  test_bug883784.xul \
-  test_bug883784.jsm \
-  jsm_url_worker.js \
-  $(NULL)
new file mode 100644
--- /dev/null
+++ b/dom/workers/test/chrome.ini
@@ -0,0 +1,36 @@
+[DEFAULT]
+support-files =
+  WorkerTest.jsm
+  WorkerTest_subworker.js
+  WorkerTest_worker.js
+  chromeWorker_subworker.js
+  chromeWorker_worker.js
+  dom_worker_helper.js
+  fileBlobSubWorker_worker.js
+  fileBlob_worker.js
+  filePosting_worker.js
+  fileReadSlice_worker.js
+  fileReaderSyncErrors_worker.js
+  fileReaderSync_worker.js
+  fileSlice_worker.js
+  fileSubWorker_worker.js
+  file_worker.js
+  jsm_url_worker.js
+  workersDisabled_worker.js
+
+[test_bug883784.jsm]
+[test_bug883784.xul]
+[test_chromeWorker.xul]
+[test_chromeWorkerJSM.xul]
+[test_extension.xul]
+[test_extensionBootstrap.xul]
+[test_file.xul]
+[test_fileBlobPosting.xul]
+[test_fileBlobSubWorker.xul]
+[test_filePosting.xul]
+[test_fileReadSlice.xul]
+[test_fileReaderSync.xul]
+[test_fileReaderSyncErrors.xul]
+[test_fileSlice.xul]
+[test_fileSubWorker.xul]
+[test_workersDisabled.xul]
--- a/dom/workers/test/moz.build
+++ b/dom/workers/test/moz.build
@@ -6,8 +6,10 @@
 
 DIRS += [
     'extensions',
     'subdir',
 ]
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/editor/composer/test/Makefile.in
+++ b/editor/composer/test/Makefile.in
@@ -1,11 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-		test_bug434998.xul \
-		test_bug338427.html \
-		test_bug678842.html \
-		test_async_UpdateCurrentDictionary.html \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/editor/composer/test/chrome.ini
@@ -0,0 +1,6 @@
+[DEFAULT]
+
+[test_async_UpdateCurrentDictionary.html]
+[test_bug338427.html]
+[test_bug434998.xul]
+[test_bug678842.html]
--- a/editor/composer/test/moz.build
+++ b/editor/composer/test/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/editor/libeditor/base/tests/Makefile.in
+++ b/editor/libeditor/base/tests/Makefile.in
@@ -1,12 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-		test_selection_move_commands.xul \
-                test_bug46555.html \
-		test_bug646194.xul \
-		test_dragdrop.html \
-		test_bug599983.xul \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/editor/libeditor/base/tests/chrome.ini
@@ -0,0 +1,7 @@
+[DEFAULT]
+
+[test_bug46555.html]
+[test_bug599983.xul]
+[test_bug646194.xul]
+[test_dragdrop.html]
+[test_selection_move_commands.xul]
--- a/editor/libeditor/base/tests/moz.build
+++ b/editor/libeditor/base/tests/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/editor/libeditor/html/tests/Makefile.in
+++ b/editor/libeditor/html/tests/Makefile.in
@@ -6,27 +6,15 @@
 _DATA_FILES = \
 		data/cfhtml-chromium.txt \
 		data/cfhtml-firefox.txt \
 		data/cfhtml-ie.txt \
 		data/cfhtml-ooo.txt \
 		data/cfhtml-nocontext.txt \
 		$(NULL)
 
-MOCHITEST_CHROME_FILES = \
-		test_contenteditable_text_input_handling.html \
-		test_bug366682.html \
-		test_bug489202.xul \
-		test_bug490879.xul \
-		test_bug607584.xul \
-		test_bug616590.xul \
-		test_bug635636.html \
-		test_bug780908.xul \
-		green.png \
-		$(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
 libs::
 	(cd $(srcdir) && tar $(TAR_CREATE_FLAGS) - browserscope 2> /dev/null) | (cd $(DEPTH)/_tests/testing/mochitest/tests/$(relativesrcdir) && tar -xf -)
 
 libs:: $(_DATA_FILES)
 	$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/tests/$(relativesrcdir)/data
new file mode 100644
--- /dev/null
+++ b/editor/libeditor/html/tests/chrome.ini
@@ -0,0 +1,11 @@
+[DEFAULT]
+support-files = green.png
+
+[test_bug366682.html]
+[test_bug489202.xul]
+[test_bug490879.xul]
+[test_bug607584.xul]
+[test_bug616590.xul]
+[test_bug635636.html]
+[test_bug780908.xul]
+[test_contenteditable_text_input_handling.html]
--- a/editor/libeditor/html/tests/moz.build
+++ b/editor/libeditor/html/tests/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/editor/libeditor/text/tests/Makefile.in
+++ b/editor/libeditor/text/tests/Makefile.in
@@ -6,14 +6,8 @@
 # disables the key handling test on gtk because gtk overrides some key events
 # on our editor, and the combinations depend on the system.
 ifndef MOZ_WIDGET_GTK
 MOCHITEST_FILES += \
 		test_texteditor_keyevent_handling.html \
 		$(NULL)
 endif
 
-MOCHITEST_CHROME_FILES = \
-		test_bug471319.html \
-		test_bug483651.html \
-		test_bug636465.xul \
-		test_bug830600.html \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/editor/libeditor/text/tests/chrome.ini
@@ -0,0 +1,6 @@
+[DEFAULT]
+
+[test_bug471319.html]
+[test_bug483651.html]
+[test_bug636465.xul]
+[test_bug830600.html]
--- a/editor/libeditor/text/tests/moz.build
+++ b/editor/libeditor/text/tests/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/extensions/cookie/test/Makefile.in
+++ b/extensions/cookie/test/Makefile.in
@@ -1,15 +1,8 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-  test_permissionmanager_app_isolation.html \
-  test_app_uninstall_permissions.html \
-  test_app_uninstall_cookies.html \
-  channel_utils.js \
-  $(NULL)
-
 MOCHITEST_BROWSER_FILES = \
   browser_test_favicon.js \
   $(NULL)
new file mode 100644
--- /dev/null
+++ b/extensions/cookie/test/chrome.ini
@@ -0,0 +1,6 @@
+[DEFAULT]
+support-files = channel_utils.js
+
+[test_app_uninstall_cookies.html]
+[test_app_uninstall_permissions.html]
+[test_permissionmanager_app_isolation.html]
--- a/extensions/cookie/test/moz.build
+++ b/extensions/cookie/test/moz.build
@@ -9,8 +9,10 @@ MODULE = 'test_cookies'
 XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
 
 # FIXME/bug 575918: out-of-process xpcshell is broken on OS X
 if CONFIG['OS_ARCH'] != 'Darwin':
     XPCSHELL_TESTS_MANIFESTS += ['unit_ipc/xpcshell.ini']
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/extensions/spellcheck/tests/chrome/Makefile.in
+++ b/extensions/spellcheck/tests/chrome/Makefile.in
@@ -1,7 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = 	test_add_remove_dictionaries.xul \
-				$(NULL)
new file mode 100644
--- /dev/null
+++ b/extensions/spellcheck/tests/chrome/chrome.ini
@@ -0,0 +1,3 @@
+[DEFAULT]
+
+[test_add_remove_dictionaries.xul]
--- a/extensions/spellcheck/tests/chrome/moz.build
+++ b/extensions/spellcheck/tests/chrome/moz.build
@@ -1,7 +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 += ['base', 'map']
+
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/extensions/universalchardet/tests/Makefile.in
+++ b/extensions/universalchardet/tests/Makefile.in
@@ -1,63 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES =	\
-		CharsetDetectionTests.js \
-		bug9357_text.html \
-		test_bug9357.html \
-		bug171813_text.html \
-		test_bug171813.html \
-		bug306272_text.html \
-		test_bug306272.html \
-		bug421271_text.html \
-		test_bug421271.html \
-		bug426271_text-euc-jp.html \
-		test_bug426271-euc-jp.html \
-		bug426271_text-utf-8.html \
-		test_bug426271-utf-8.html \
-		bug431054_text.html \
-		test_bug431054.html \
-		test_bug431054-japanese.html \
-		bug488426_text.html \
-		test_bug488426.html \
-		bug547487_text.html \
-		test_bug547487.html \
-		bug620106_text.html \
-		test_bug620106.html \
-		bug631751le_text.html \
-		test_bug631751le.html \
-		bug631751be_text.html \
-		test_bug631751be.html \
-		bug638318_text.html \
-		test_bug638318.html \
-		bug811363-1.text \
-		bug811363-2.text \
-		bug811363-3.text \
-		bug811363-4.text \
-		bug811363-5.text \
-		bug811363-6.text \
-		bug811363-7.text \
-		bug811363-8.text \
-		bug811363-9.text \
-		bug811363-invalid-1.text \
-		bug811363-invalid-2.text \
-		bug811363-invalid-3.text \
-		bug811363-invalid-4.text \
-		bug811363-invalid-5.text \
-		test_bug811363-1-1.html \
-		test_bug811363-1-2.html \
-		test_bug811363-1-3.html \
-		test_bug811363-1-4.html \
-		test_bug811363-1-5.html \
-		test_bug811363-2-1.html \
-		test_bug811363-2-2.html \
-		test_bug811363-2-3.html \
-		test_bug811363-2-4.html \
-		test_bug811363-2-5.html \
-		test_bug811363-2-6.html \
-		test_bug811363-2-7.html \
-		test_bug811363-2-8.html \
-		test_bug811363-2-9.html \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/extensions/universalchardet/tests/chrome.ini
@@ -0,0 +1,59 @@
+[DEFAULT]
+support-files =
+  CharsetDetectionTests.js
+  bug171813_text.html
+  bug306272_text.html
+  bug421271_text.html
+  bug426271_text-euc-jp.html
+  bug426271_text-utf-8.html
+  bug431054_text.html
+  bug488426_text.html
+  bug547487_text.html
+  bug620106_text.html
+  bug631751be_text.html
+  bug631751le_text.html
+  bug638318_text.html
+  bug811363-1.text
+  bug811363-2.text
+  bug811363-3.text
+  bug811363-4.text
+  bug811363-5.text
+  bug811363-6.text
+  bug811363-7.text
+  bug811363-8.text
+  bug811363-9.text
+  bug811363-invalid-1.text
+  bug811363-invalid-2.text
+  bug811363-invalid-3.text
+  bug811363-invalid-4.text
+  bug811363-invalid-5.text
+  bug9357_text.html
+
+[test_bug171813.html]
+[test_bug306272.html]
+[test_bug421271.html]
+[test_bug426271-euc-jp.html]
+[test_bug426271-utf-8.html]
+[test_bug431054-japanese.html]
+[test_bug431054.html]
+[test_bug488426.html]
+[test_bug547487.html]
+[test_bug620106.html]
+[test_bug631751be.html]
+[test_bug631751le.html]
+[test_bug638318.html]
+[test_bug811363-1-1.html]
+[test_bug811363-1-2.html]
+[test_bug811363-1-3.html]
+[test_bug811363-1-4.html]
+[test_bug811363-1-5.html]
+[test_bug811363-2-1.html]
+[test_bug811363-2-2.html]
+[test_bug811363-2-3.html]
+[test_bug811363-2-4.html]
+[test_bug811363-2-5.html]
+[test_bug811363-2-6.html]
+[test_bug811363-2-7.html]
+[test_bug811363-2-8.html]
+[test_bug811363-2-9.html]
+[test_bug9357.html]
--- a/extensions/universalchardet/tests/moz.build
+++ b/extensions/universalchardet/tests/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/image/test/mochitest/Makefile.in
+++ b/image/test/mochitest/Makefile.in
@@ -1,47 +1,8 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # Tests disabled due to intermittent orange
 # test_bug435296.html disabled - See bug 578591
 # test_bug478398.html disabled - See bug 579139
-MOCHITEST_CHROME_FILES = imgutils.js \
-                animationPolling.js \
-                lime-anim-100x100.svg \
-                lime-anim-100x100-2.svg \
-                animation.svg \
-                test_animSVGImage.html \
-                test_animSVGImage2.html \
-                test_animation.html \
-                test_animation2.html \
-                animated-gif-finalframe.gif \
-                animated-gif.gif \
-                animated-gif2.gif \
-                purple.gif \
-                test_svg_animatedGIF.html \
-                test_bullet_animation.html \
-                test_background_image_anim.html \
-                filter.svg \
-                filter-final.svg \
-                test_svg_filter_animation.html \
-                test_xultree_animation.xhtml \
-                test_changeOfSource.html \
-                test_changeOfSource2.html \
-                test_undisplayed_iframe.html \
-                iframe.html \
-                ref-iframe.html \
-                test_net_failedtoprocess.html \
-                invalid.jpg \
-                damon.jpg \
-                test_removal_onload.html \
-                test_removal_ondecode.html \
-                bad.jpg \
-                rillybad.jpg \
-                red.png \
-                lime100x100.svg \
-                test_synchronized_animation.html \
-                animated1.gif \
-                animated2.gif \
-                test_staticClone.html \
-                $(NULL)
new file mode 100644
--- /dev/null
+++ b/image/test/mochitest/chrome.ini
@@ -0,0 +1,41 @@
+[DEFAULT]
+support-files =
+  animated-gif-finalframe.gif
+  animated-gif.gif
+  animated-gif2.gif
+  animated1.gif
+  animated2.gif
+  animation.svg
+  animationPolling.js
+  bad.jpg
+  damon.jpg
+  filter-final.svg
+  filter.svg
+  iframe.html
+  imgutils.js
+  invalid.jpg
+  lime-anim-100x100-2.svg
+  lime-anim-100x100.svg
+  lime100x100.svg
+  purple.gif
+  red.png
+  ref-iframe.html
+  rillybad.jpg
+
+[test_animSVGImage.html]
+[test_animSVGImage2.html]
+[test_animation.html]
+[test_animation2.html]
+[test_background_image_anim.html]
+[test_bullet_animation.html]
+[test_changeOfSource.html]
+[test_changeOfSource2.html]
+[test_net_failedtoprocess.html]
+[test_removal_ondecode.html]
+[test_removal_onload.html]
+[test_staticClone.html]
+[test_svg_animatedGIF.html]
+[test_svg_filter_animation.html]
+[test_synchronized_animation.html]
+[test_undisplayed_iframe.html]
+[test_xultree_animation.xhtml]
--- a/image/test/mochitest/moz.build
+++ b/image/test/mochitest/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/js/xpconnect/tests/chrome/Makefile.in
+++ b/js/xpconnect/tests/chrome/Makefile.in
@@ -1,81 +1,12 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-		test_bug361111.xul \
-		test_bug448587.xul \
-		test_bug484459.xul \
-		test_bug500931.xul \
-		bug503926.xul \
-		test_bug503926.xul \
-		test_bug533596.xul \
-		test_bug571849.xul \
-		test_bug596580.xul \
-		test_bug601803.xul \
-		test_bug610390.xul \
-		test_bug614757.xul \
-		test_bug616992.xul \
-		test_bug618176.xul \
-		file_bug618176.xul \
-		test_bug654370.xul \
-		test_bug658560.xul \
-		test_bug658909.xul \
-		test_bug664689.xul \
-		test_bug679861.xul \
-		test_bug706301.xul \
-		test_bug726949.xul \
-		test_bug732665.xul \
-		test_bug738244.xul \
-		test_bug743843.xul \
-		test_bug760076.xul \
-		test_bug760109.xul \
-		test_bug760131.html \
-		test_bug763343.xul \
-		test_bug771429.xul \
-		test_bug773962.xul \
-		test_bug792280.xul \
-		test_bug793433.xul \
-		test_bug795275.xul \
-		test_bug799348.xul \
-		test_bug801241.xul \
-		test_bug812415.xul \
-		test_bug853283.xul \
-		test_bug853571.xul \
-		test_bug860494.xul \
-		test_bug895340.xul \
-		test_APIExposer.xul \
-		test_chrometoSource.xul \
-		outoflinexulscript.js \
-		subscript.js \
-		utf8_subscript.js \
-		test_cows.xul \
-		test_documentdomain.xul \
-		test_doublewrappedcompartments.xul \
-		test_evalInSandbox.xul \
-		file_evalInSandbox.html \
-		test_evalInWindow.xul \
-		test_exnstack.xul \
-		test_expandosharing.xul \
-		file_expandosharing.jsm \
-		test_exposeInDerived.xul \
-		test_getweakmapkeys.xul \
-		test_mozMatchesSelector.xul \
-		test_nodelists.xul \
-		test_precisegc.xul \
-		test_sandboxImport.xul \
-		test_weakmap_keys_preserved.xul \
-		test_weakmap_keys_preserved2.xul \
-		test_weakref.xul \
-		test_wrappers.xul \
-		test_paris_weakmap_keys.xul \
-		$(NULL)
-
 ifneq ($(OS_ARCH),WINNT)
 MOCHITEST_CHROME_FILES += \
 		test_weakmaps.xul \
 		$(NULL)
 else
 $(filter disabled-temporarily--bug-820471, test_weakmaps.xul)
 endif
 
new file mode 100644
--- /dev/null
+++ b/js/xpconnect/tests/chrome/chrome.ini
@@ -0,0 +1,69 @@
+[DEFAULT]
+support-files =
+  bug503926.xul
+  file_bug618176.xul
+  file_evalInSandbox.html
+  file_expandosharing.jsm
+  outoflinexulscript.js
+  subscript.js
+  utf8_subscript.js
+
+[test_APIExposer.xul]
+[test_bug361111.xul]
+[test_bug448587.xul]
+[test_bug484459.xul]
+[test_bug500931.xul]
+[test_bug503926.xul]
+[test_bug533596.xul]
+[test_bug571849.xul]
+[test_bug596580.xul]
+[test_bug601803.xul]
+[test_bug610390.xul]
+[test_bug614757.xul]
+[test_bug616992.xul]
+[test_bug618176.xul]
+[test_bug654370.xul]
+[test_bug658560.xul]
+[test_bug658909.xul]
+[test_bug664689.xul]
+[test_bug679861.xul]
+[test_bug706301.xul]
+[test_bug726949.xul]
+[test_bug732665.xul]
+[test_bug738244.xul]
+[test_bug743843.xul]
+[test_bug760076.xul]
+[test_bug760109.xul]
+[test_bug760131.html]
+[test_bug763343.xul]
+[test_bug771429.xul]
+[test_bug773962.xul]
+[test_bug792280.xul]
+[test_bug793433.xul]
+[test_bug795275.xul]
+[test_bug799348.xul]
+[test_bug801241.xul]
+[test_bug812415.xul]
+[test_bug853283.xul]
+[test_bug853571.xul]
+[test_bug860494.xul]
+[test_bug895340.xul]
+[test_chrometoSource.xul]
+[test_cows.xul]
+[test_documentdomain.xul]
+[test_doublewrappedcompartments.xul]
+[test_evalInSandbox.xul]
+[test_evalInWindow.xul]
+[test_exnstack.xul]
+[test_expandosharing.xul]
+[test_exposeInDerived.xul]
+[test_getweakmapkeys.xul]
+[test_mozMatchesSelector.xul]
+[test_nodelists.xul]
+[test_paris_weakmap_keys.xul]
+[test_precisegc.xul]
+[test_sandboxImport.xul]
+[test_weakmap_keys_preserved.xul]
+[test_weakmap_keys_preserved2.xul]
+[test_weakref.xul]
+[test_wrappers.xul]
--- a/js/xpconnect/tests/chrome/moz.build
+++ b/js/xpconnect/tests/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/layout/base/tests/chrome/Makefile.in
+++ b/layout/base/tests/chrome/Makefile.in
@@ -1,58 +1,12 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-	test_bug370436.html \
-	test_bug396367-1.html \
-	test_bug396367-2.html \
-	test_bug420499.xul \
-	test_bug458898.html \
-	test_bug495648.xul \
-	bug495648.rdf \
-	test_bug504311.xul \
-	test_bug514660.xul \
-	test_bug533845.xul \
-	test_bug551434.html \
-	bug551434_childframe.html \
-	test_bug708062.html \
-	test_chrome_content_integration.xul \
-	     chrome_content_integration_window.xul \
-	test_chrome_over_plugin.xul \
-	     chrome_over_plugin_window.xul \
-	test_default_background.xul \
-	     default_background_window.xul \
-	test_no_clip_iframe.xul \
-	     no_clip_iframe_window.xul \
-	     no_clip_iframe_subdoc.html \
-	test_prerendered_transforms.html \
-	test_printpreview.xul \
-	     printpreview_helper.xul \
-	     animated.gif \
-	test_printpreview_bug396024.xul \
-	     printpreview_bug396024_helper.xul \
-	test_printpreview_bug482976.xul \
-	     printpreview_bug482976_helper.xul \
-	test_scrolling_repaints.html \
-	test_transformed_scrolling_repaints.html \
-	test_transformed_scrolling_repaints_2.html \
-	test_transformed_scrolling_repaints_3.html \
-	transformed_scrolling_repaints_3_window.html \
-	     test_fixed_bg_scrolling_repaints.html \
-	test_dialog_with_positioning.html \
-	     dialog_with_positioning_window.xul \
-	blue-32x32.png \
-	test_passpointerevents.html \
-	     passpointerevents_window.html \
-	test_bug812817.xul \
-	test_bug847890_paintFlashing.html \
-	$(NULL)
-
 ifdef MOZ_DEBUG
 # Disabled on Mac because of Bug 748219
 ifneq (cocoa,$(MOZ_WIDGET_TOOLKIT))
 MOCHITEST_CHROME_FILES += \
 	test_leaf_layers_partition_browser_window.xul \
 	$(NULL)
 endif
 endif
new file mode 100644
--- /dev/null
+++ b/layout/base/tests/chrome/chrome.ini
@@ -0,0 +1,46 @@
+[DEFAULT]
+support-files =
+  animated.gif
+  blue-32x32.png
+  bug495648.rdf
+  bug551434_childframe.html
+  chrome_content_integration_window.xul
+  chrome_over_plugin_window.xul
+  default_background_window.xul
+  dialog_with_positioning_window.xul
+  no_clip_iframe_subdoc.html
+  no_clip_iframe_window.xul
+  passpointerevents_window.html
+  printpreview_bug396024_helper.xul
+  printpreview_bug482976_helper.xul
+  printpreview_helper.xul
+  transformed_scrolling_repaints_3_window.html
+
+[test_bug370436.html]
+[test_bug396367-1.html]
+[test_bug396367-2.html]
+[test_bug420499.xul]
+[test_bug458898.html]
+[test_bug495648.xul]
+[test_bug504311.xul]
+[test_bug514660.xul]
+[test_bug533845.xul]
+[test_bug551434.html]
+[test_bug708062.html]
+[test_bug812817.xul]
+[test_bug847890_paintFlashing.html]
+[test_chrome_content_integration.xul]
+[test_chrome_over_plugin.xul]
+[test_default_background.xul]
+[test_dialog_with_positioning.html]
+[test_fixed_bg_scrolling_repaints.html]
+[test_no_clip_iframe.xul]
+[test_passpointerevents.html]
+[test_prerendered_transforms.html]
+[test_printpreview.xul]
+[test_printpreview_bug396024.xul]
+[test_printpreview_bug482976.xul]
+[test_scrolling_repaints.html]
+[test_transformed_scrolling_repaints.html]
+[test_transformed_scrolling_repaints_2.html]
+[test_transformed_scrolling_repaints_3.html]
--- a/layout/base/tests/chrome/moz.build
+++ b/layout/base/tests/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/layout/forms/test/Makefile.in
+++ b/layout/forms/test/Makefile.in
@@ -1,12 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-		     bug536567_iframe.html \
-		test_bug536567_perwindowpb.html \
-		     bug536567_subframe.html \
-		test_bug665540.html \
-		     bug665540_window.xul \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/layout/forms/test/chrome.ini
@@ -0,0 +1,8 @@
+[DEFAULT]
+support-files =
+  bug536567_iframe.html
+  bug536567_subframe.html
+  bug665540_window.xul
+
+[test_bug536567_perwindowpb.html]
+[test_bug665540.html]
--- a/layout/forms/test/moz.build
+++ b/layout/forms/test/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/layout/generic/test/Makefile.in
+++ b/layout/generic/test/Makefile.in
@@ -104,22 +104,8 @@ MOCHITEST_FILES = \
 # Disable the caret movement by word test on Linux because the shortcut keys
 # are defined in system level.  So, it depends on the environment.
 ifndef MOZ_WIDGET_GTK
 MOCHITEST_FILES += \
   test_movement_by_words.html \
   $(NULL)
 endif
 
-MOCHITEST_CHROME_FILES = \
-  frame_selection_underline.xhtml \
-  frame_selection_underline-ref.xhtml \
-  frame_selection_underline.css \
-  test_selection_underline.html \
-  test_bug632379.xul \
-  test_bug508115.xul \
-  test_bug469613.xul \
-  test_bug469774.xul \
-  test_backspace_delete.xul \
-  test_bug514732-2.xul \
-  file_bug514732_window.xul \
-  test_selection_preventDefault.html \
-  $(NULL)
new file mode 100644
--- /dev/null
+++ b/layout/generic/test/chrome.ini
@@ -0,0 +1,15 @@
+[DEFAULT]
+support-files =
+  file_bug514732_window.xul
+  frame_selection_underline-ref.xhtml
+  frame_selection_underline.css
+  frame_selection_underline.xhtml
+
+[test_backspace_delete.xul]
+[test_bug469613.xul]
+[test_bug469774.xul]
+[test_bug508115.xul]
+[test_bug514732-2.xul]
+[test_bug632379.xul]
+[test_selection_preventDefault.html]
+[test_selection_underline.html]
--- a/layout/generic/test/moz.build
+++ b/layout/generic/test/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/layout/inspector/tests/chrome/Makefile.in
+++ b/layout/inspector/tests/chrome/Makefile.in
@@ -1,16 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES =\
-		test_bug467669.xul \
-		test_bug467669.css \
-		test_bug695639.xul \
-		test_bug695639.css \
-		GentiumPlus-R.woff \
-		test_bug708874.xul \
-		test_bug708874.css \
-		test_bug727834.xul \
-		test_bug727834.css \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/layout/inspector/tests/chrome/chrome.ini
@@ -0,0 +1,11 @@
+[DEFAULT]
+support-files = GentiumPlus-R.woff
+
+[test_bug467669.css]
+[test_bug467669.xul]
+[test_bug695639.css]
+[test_bug695639.xul]
+[test_bug708874.css]
+[test_bug708874.xul]
+[test_bug727834.css]
+[test_bug727834.xul]
--- a/layout/inspector/tests/chrome/moz.build
+++ b/layout/inspector/tests/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/layout/style/test/chrome/Makefile.in
+++ b/layout/style/test/chrome/Makefile.in
@@ -1,19 +1,8 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-    test_bug535806.xul \
-    bug535806-css.css \
-    bug535806-html.html \
-    bug535806-xul.xul \
-    test_hover.html \
-    test_moz_document_rules.html \
-    hover_helper.html \
-    test_additional_sheets.html \
-    $(NULL)
-
 MOCHITEST_FILES = \
     moz_document_helper.html \
     additional_sheets_helper.html \
     $(NULL)
new file mode 100644
--- /dev/null
+++ b/layout/style/test/chrome/chrome.ini
@@ -0,0 +1,11 @@
+[DEFAULT]
+support-files =
+  bug535806-css.css
+  bug535806-html.html
+  bug535806-xul.xul
+  hover_helper.html
+
+[test_additional_sheets.html]
+[test_bug535806.xul]
+[test_hover.html]
+[test_moz_document_rules.html]
--- a/layout/style/test/chrome/moz.build
+++ b/layout/style/test/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/layout/xul/base/test/Makefile.in
+++ b/layout/xul/base/test/Makefile.in
@@ -1,15 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES =	test_bug381167.xhtml \
-		test_bug393970.xul \
-		test_bug477754.xul \
-		test_popupSizeTo.xul \
-		test_stack.xul \
-		test_resizer.xul \
-		window_resizer.xul \
-		window_resizer_element.xul \
-		test_windowminmaxsize.xul \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/layout/xul/base/test/chrome.ini
@@ -0,0 +1,12 @@
+[DEFAULT]
+support-files =
+  window_resizer.xul
+  window_resizer_element.xul
+
+[test_bug381167.xhtml]
+[test_bug393970.xul]
+[test_bug477754.xul]
+[test_popupSizeTo.xul]
+[test_resizer.xul]
+[test_stack.xul]
+[test_windowminmaxsize.xul]
--- a/layout/xul/base/test/moz.build
+++ b/layout/xul/base/test/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/layout/xul/test/Makefile.in
+++ b/layout/xul/test/Makefile.in
@@ -1,18 +1,10 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-		test_bug159346.xul \
-		test_bug372685.xul \
-		test_bug398982-1.xul \
-		test_bug398982-2.xul \
-		test_bug703150.xul \
-		$(NULL)
-
 MOCHITEST_BROWSER_FILES = \
 		browser_bug685470.js \
 		browser_bug703210.js \
 		browser_bug706743.js \
 		$(NULL)
new file mode 100644
--- /dev/null
+++ b/layout/xul/test/chrome.ini
@@ -0,0 +1,7 @@
+[DEFAULT]
+
+[test_bug159346.xul]
+[test_bug372685.xul]
+[test_bug398982-1.xul]
+[test_bug398982-2.xul]
+[test_bug703150.xul]
--- a/layout/xul/test/moz.build
+++ b/layout/xul/test/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/modules/libjar/test/chrome/Makefile.in
+++ b/modules/libjar/test/chrome/Makefile.in
@@ -1,13 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-		test_bug386153.html    \
-		signed.zip             \
-		unsigned.zip           \
-		signed-badca.zip       \
-		signed-tampered.zip    \
-		signed-added.zip       \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/modules/libjar/test/chrome/chrome.ini
@@ -0,0 +1,9 @@
+[DEFAULT]
+support-files =
+  signed-added.zip
+  signed-badca.zip
+  signed-tampered.zip
+  signed.zip
+  unsigned.zip
+
+[test_bug386153.html]
--- a/modules/libjar/test/chrome/moz.build
+++ b/modules/libjar/test/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/security/manager/ssl/tests/mochitest/bugs/Makefile.in
+++ b/security/manager/ssl/tests/mochitest/bugs/Makefile.in
@@ -6,14 +6,8 @@
 # test_generateCRMFRequest.html tests crypto.generateCRMFRequest, which isn't
 # available if legacy crypto has been disabled.
 ifndef MOZ_DISABLE_CRYPTOLEGACY
 MOCHITEST_FILES += \
         test_generateCRMFRequest.html \
         $(NULL)
 endif
 
-MOCHITEST_CHROME_FILES = \
-	test_certificate_overrides.html \
-        test_bug413909.html \
-        test_bug480619.html \
-        test_bug644006.html \
-        $(NULL)
new file mode 100644
--- /dev/null
+++ b/security/manager/ssl/tests/mochitest/bugs/chrome.ini
@@ -0,0 +1,6 @@
+[DEFAULT]
+
+[test_bug413909.html]
+[test_bug480619.html]
+[test_bug644006.html]
+[test_certificate_overrides.html]
--- a/security/manager/ssl/tests/mochitest/bugs/moz.build
+++ b/security/manager/ssl/tests/mochitest/bugs/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/security/manager/ssl/tests/mochitest/stricttransportsecurity/Makefile.in
+++ b/security/manager/ssl/tests/mochitest/stricttransportsecurity/Makefile.in
@@ -1,8 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES += \
-  test_sts_privatebrowsing_perwindowpb.html \
-  page_blank.html \
-  $(NULL)
new file mode 100644
--- /dev/null
+++ b/security/manager/ssl/tests/mochitest/stricttransportsecurity/chrome.ini
@@ -0,0 +1,4 @@
+[DEFAULT]
+support-files = page_blank.html
+
+[test_sts_privatebrowsing_perwindowpb.html]
--- a/security/manager/ssl/tests/mochitest/stricttransportsecurity/moz.build
+++ b/security/manager/ssl/tests/mochitest/stricttransportsecurity/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/.
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/components/aboutmemory/tests/Makefile.in
+++ b/toolkit/components/aboutmemory/tests/Makefile.in
@@ -1,24 +1,12 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES	= \
-		memory-reports-good.json \
-		memory-reports-bad.json \
-		memory-reports-diff1.json \
-		memory-reports-diff2.json \
-		test_aboutmemory.xul \
-		test_aboutmemory2.xul \
-		test_aboutmemory3.xul \
-		test_aboutmemory4.xul \
-		test_sqliteMultiReporter.xul \
-		$(NULL)
-
 ifndef MOZ_ASAN
 MOCHITEST_CHROME_FILES += \
   remote.xul \
   test_memoryReporters.xul \
   test_memoryReporters2.xul \
   $(NULL)
 endif
new file mode 100644
--- /dev/null
+++ b/toolkit/components/aboutmemory/tests/chrome.ini
@@ -0,0 +1,12 @@
+[DEFAULT]
+support-files =
+  memory-reports-bad.json
+  memory-reports-diff1.json
+  memory-reports-diff2.json
+  memory-reports-good.json
+
+[test_aboutmemory.xul]
+[test_aboutmemory2.xul]
+[test_aboutmemory3.xul]
+[test_aboutmemory4.xul]
+[test_sqliteMultiReporter.xul]
--- a/toolkit/components/aboutmemory/tests/moz.build
+++ b/toolkit/components/aboutmemory/tests/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/components/console/tests/Makefile.in
+++ b/toolkit/components/console/tests/Makefile.in
@@ -1,8 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES	= \
-		test_hugeURIs.xul \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/toolkit/components/console/tests/chrome.ini
@@ -0,0 +1,3 @@
+[DEFAULT]
+
+[test_hugeURIs.xul]
--- a/toolkit/components/console/tests/moz.build
+++ b/toolkit/components/console/tests/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/components/feeds/test/Makefile.in
+++ b/toolkit/components/feeds/test/Makefile.in
@@ -1,8 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-		test_bug675492.xul    \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/toolkit/components/feeds/test/chrome.ini
@@ -0,0 +1,3 @@
+[DEFAULT]
+
+[test_bug675492.xul]
--- a/toolkit/components/feeds/test/moz.build
+++ b/toolkit/components/feeds/test/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/components/osfile/tests/mochi/Makefile.in
+++ b/toolkit/components/osfile/tests/mochi/Makefile.in
@@ -1,17 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES := \
-  test_osfile_back.xul \
-  worker_handler.js \
-  worker_test_osfile_shared.js \
-  worker_test_osfile_unix.js \
-  worker_test_osfile_win.js \
-  test_osfile_front.xul \
-  worker_test_osfile_front.js \
-  test_osfile_comms.xul \
-  worker_test_osfile_comms.js \
-  test_osfile_async.xul \
-  main_test_osfile_async.js \
-  $(NULL)
new file mode 100644
--- /dev/null
+++ b/toolkit/components/osfile/tests/mochi/chrome.ini
@@ -0,0 +1,14 @@
+[DEFAULT]
+support-files =
+  main_test_osfile_async.js
+  worker_handler.js
+  worker_test_osfile_comms.js
+  worker_test_osfile_front.js
+  worker_test_osfile_shared.js
+  worker_test_osfile_unix.js
+  worker_test_osfile_win.js
+
+[test_osfile_async.xul]
+[test_osfile_back.xul]
+[test_osfile_comms.xul]
+[test_osfile_front.xul]
--- a/toolkit/components/osfile/tests/mochi/moz.build
+++ b/toolkit/components/osfile/tests/mochi/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/.
 
 MODULE = 'osfile'
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/components/passwordmgr/test/Makefile.in
+++ b/toolkit/components/passwordmgr/test/Makefile.in
@@ -7,18 +7,11 @@ include $(topsrcdir)/config/config.mk
 
 # Mochitest tests
 ifneq ($(OS_TARGET),Linux)
 MOCHITEST_FILES += \
     test_prompt.html \
     $(NULL)
 endif
 
-MOCHITEST_CHROME_FILES += \
-    test_privbrowsing_perwindowpb.html \
-    notification_common.js \
-    pwmgr_common.js \
-    formsubmit.sjs \
-    $(NULL)
-
 # This test doesn't pass because we can't ensure a cross-platform
 # event that occurs between DOMContentLoaded and Pageload
 # test_bug_221634.html
new file mode 100644
--- /dev/null
+++ b/toolkit/components/passwordmgr/test/chrome.ini
@@ -0,0 +1,7 @@
+[DEFAULT]
+support-files =
+  formsubmit.sjs
+  notification_common.js
+  pwmgr_common.js
+
+[test_privbrowsing_perwindowpb.html]
--- a/toolkit/components/passwordmgr/test/moz.build
+++ b/toolkit/components/passwordmgr/test/moz.build
@@ -7,8 +7,10 @@
 TEST_DIRS += ['browser', 'auth2']
 
 MODULE = 'test_passwordmgr'
 
 XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/components/places/tests/chrome/Makefile.in
+++ b/toolkit/components/places/tests/chrome/Makefile.in
@@ -7,20 +7,8 @@ MOCHITEST_FILES	= \
 		sample_feed.atom \
 		bad_links.atom \
 		rss_as_html.rss \
 		rss_as_html.rss^headers^ \
 		link-less-items.rss \
 		link-less-items-no-site-uri.rss \
 		$(NULL)
 
-MOCHITEST_CHROME_FILES	= \
-		test_371798.xul \
-		test_342484.xul \
-		test_341972a.xul \
-		test_341972b.xul \
-		test_favicon_annotations.xul \
-		test_303567.xul \
-		test_381357.xul \
-		test_history_post.xul \
-		history_post.sjs \
-		test_reloadLivemarks.xul \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/toolkit/components/places/tests/chrome/chrome.ini
@@ -0,0 +1,12 @@
+[DEFAULT]
+support-files = history_post.sjs
+
+[test_303567.xul]
+[test_341972a.xul]
+[test_341972b.xul]
+[test_342484.xul]
+[test_371798.xul]
+[test_381357.xul]
+[test_favicon_annotations.xul]
+[test_history_post.xul]
+[test_reloadLivemarks.xul]
--- a/toolkit/components/places/tests/chrome/moz.build
+++ b/toolkit/components/places/tests/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/components/url-classifier/tests/mochitest/Makefile.in
+++ b/toolkit/components/url-classifier/tests/mochitest/Makefile.in
@@ -1,8 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-  test_lookup_system_principal.html \
-  $(NULL)
new file mode 100644
--- /dev/null
+++ b/toolkit/components/url-classifier/tests/mochitest/chrome.ini
@@ -0,0 +1,3 @@
+[DEFAULT]
+
+[test_lookup_system_principal.html]
--- a/toolkit/components/url-classifier/tests/mochitest/moz.build
+++ b/toolkit/components/url-classifier/tests/mochitest/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/.
 
 MODULE = 'test_url-classifier'
 
 MOCHITEST_MANIFESTS += ['mochitest.ini']
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/components/viewsource/test/Makefile.in
+++ b/toolkit/components/viewsource/test/Makefile.in
@@ -1,9 +1,6 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 
-MOCHITEST_CHROME_FILES   = \
-                test_428653.xul \
-                $(NULL)
new file mode 100644
--- /dev/null
+++ b/toolkit/components/viewsource/test/chrome.ini
@@ -0,0 +1,3 @@
+[DEFAULT]
+
+[test_428653.xul]
--- a/toolkit/components/viewsource/test/moz.build
+++ b/toolkit/components/viewsource/test/moz.build
@@ -1,7 +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/.
 
 TEST_DIRS += ['browser']
+
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/components/workerloader/tests/Makefile.in
+++ b/toolkit/components/workerloader/tests/Makefile.in
@@ -1,18 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES := \
-  test_loading.xul \
-  worker_test_loading.js \
-  utils_worker.js \
-  utils_mainthread.js \
-  moduleA-depends.js \
-  moduleB-dependency.js \
-  moduleC-circular.js \
-  moduleD-circular.js \
-  moduleE-throws-during-require.js \
-  moduleF-syntax-error.js \
-  moduleG-throws-later.js \
-  moduleH-module-dot-exports.js \
-  $(NULL)
new file mode 100644
--- /dev/null
+++ b/toolkit/components/workerloader/tests/chrome.ini
@@ -0,0 +1,15 @@
+[DEFAULT]
+support-files =
+  moduleA-depends.js
+  moduleB-dependency.js
+  moduleC-circular.js
+  moduleD-circular.js
+  moduleE-throws-during-require.js
+  moduleF-syntax-error.js
+  moduleG-throws-later.js
+  moduleH-module-dot-exports.js
+  utils_mainthread.js
+  utils_worker.js
+  worker_test_loading.js
+
+[test_loading.xul]
--- a/toolkit/components/workerloader/tests/moz.build
+++ b/toolkit/components/workerloader/tests/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/.
 
 MODULE = 'workerloader'
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/content/tests/chrome/Makefile.in
+++ b/toolkit/content/tests/chrome/Makefile.in
@@ -1,161 +1,12 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-  ../widgets/popup_shared.js \
-  ../widgets/tree_shared.js \
- 	findbar_window.xul \
-		test_findbar.xul \
-		findbar_events_window.xul \
-		test_findbar_events.xul \
-		test_bug253481.xul \
-		bug263683_window.xul \
-		test_bug263683.xul \
-		bug304188_window.xul \
-		test_bug304188.xul \
-		bug331215_window.xul \
-		test_bug331215.xul \
-		bug360437_window.xul \
-		test_bug360437.xul \
-		bug366992_window.xul \
-		test_bug366992.xul \
-		test_bug409624.xul \
-		bug409624_window.xul \
-		test_bug418874.xul \
-		bug429723_window.xul \
-		test_bug429723.xul \
-		test_bug437844.xul \
-		bug451286_window.xul \
-		test_bug451286.xul \
-		test_bug471776.xul \
-		test_bug570192.xul \
-		test_bug624329.xul \
-		bug624329_window.xul \
-		test_popup_preventdefault_chrome.xul \
-		window_popup_preventdefault_chrome.xul \
-		test_largemenu.xul \
-		window_largemenu.xul \
-		test_popup_anchor.xul \
-		window_popup_anchor.xul \
-		frame_popup_anchor.xul \
-		test_preferences.xul \
-		window_preferences.xul \
-		window_preferences2.xul \
-		window_preferences3.xul \
-		window_preferences_commandretarget.xul \
-		test_autocomplete2.xul \
-		test_autocomplete3.xul \
-		test_autocomplete4.xul \
-		test_autocomplete5.xul \
-		test_autocomplete_delayOnPaste.xul \
-		file_autocomplete_with_composition.js \
-		test_autocomplete_with_composition_on_input.html \
-		test_autocomplete_with_composition_on_textbox.xul \
-		test_keys.xul \
-		window_keys.xul \
-		test_showcaret.xul \
-		window_showcaret.xul \
-		test_righttoleft.xul \
-		test_dialogfocus.xul \
-		dialog_dialogfocus.xul \
-		test_screenPersistence.xul \
-		window_screenPosSize.xul \
-		test_titlebar.xul \
-		window_titlebar.xul \
-		test_browser_drop.xul \
-		window_browser_drop.xul \
-		test_subframe_origin.xul \
-		window_subframe_origin.xul \
-		frame_subframe_origin_subframe1.xul \
-		frame_subframe_origin_subframe2.xul \
-		RegisterUnregisterChrome.js \
-		test_panel.xul \
-		window_panel.xul \
-		test_bug360220.xul \
-		test_bug365773.xul \
-		test_bug382990.xul \
-		test_bug457632.xul \
-		test_bug460942.xul \
-		test_bug509732.xul \
-		test_bug554279.xul \
-		test_bug557987.xul\
-		test_bug562554.xul \
-		test_bug585946.xul \
-		test_bug792324.xul \
-		test_button.xul \
-		test_closemenu_attribute.xul \
-		test_colorpicker_popup.xul \
-		test_menulist.xul \
-		test_menuitem_blink.xul \
-		test_menulist_keynav.xul \
-		test_popup_coords.xul \
-		test_popup_recreate.xul \
-		test_popup_preventdefault.xul \
-		test_notificationbox.xul \
-		test_scale.xul \
-		test_scaledrag.xul \
-		test_radio.xul \
-		test_tabbox.xul \
-		test_progressmeter.xul \
-		test_props.xul \
-		test_statusbar.xul \
-		test_timepicker.xul \
-		test_tree.xul \
-		test_tree_view.xul \
-		test_tree_single.xul \
-		test_textbox_emptytext.xul \
-		test_textbox_number.xul \
-		test_textbox_search.xul \
-		test_textbox_dictionary.xul\
-		test_toolbar.xul \
-		xul_selectcontrol.js \
-		test_popupincontent.xul \
-		test_panelfrommenu.xul \
-		test_hiddenitems.xul \
-		test_hiddenpaging.xul \
-		test_popup_tree.xul \
-		test_popup_keys.xul \
-		test_popuphidden.xul \
-		test_popup_scaled.xul \
-		test_popupremoving.xul \
-		test_popupremoving_frame.xul \
-		frame_popupremoving_frame.xul \
-		test_position.xul \
-		test_menu.xul \
-		test_menu_hide.xul \
-		test_focus_anons.xul \
-		test_tabindex.xul \
-		test_scrollbar.xul \
-		test_sorttemplate.xul \
-		test_contextmenu_list.xul \
-		test_richlist_direction.xul \
-		test_tooltip.xul \
-		test_popup_attribute.xul \
-		window_popup_attribute.xul \
-                test_popup_button.xul \
-                window_popup_button.xul \
-               	popup_childframe_node.xul \
-		popup_trigger.js \
-		test_tooltip_noautohide.xul \
-		test_deck.xul \
-		test_datepicker.xul \
-		test_menuchecks.xul \
-		test_menulist_null_value.xul \
-		test_tree_hier.xul \
-		test_tree_hier_cell.xul \
-		test_mousescroll.xul \
-		test_mousecapture.xul \
-		test_arrowpanel.xul \
-		test_menuitem_commands.xul \
-		test_popup_moveToAnchor.xul \
-		$(NULL)
-
 # test_panel_focus.xul won't work if the Full Keyboard Access preference is set to
 # textboxes and lists only, so skip this test on Mac
 ifneq (cocoa,$(MOZ_WIDGET_TOOLKIT))
 MOCHITEST_CHROME_FILES += test_panel_focus.xul \
                window_panel_focus.xul \
                test_chromemargin.xul \
                window_chromemargin.xul \
                bug451540_window.xul \
@@ -165,11 +16,8 @@ MOCHITEST_CHROME_FILES += test_autocompl
 endif
 
 ifeq ($(MOZ_WIDGET_TOOLKIT),windows)
 MOCHITEST_CHROME_FILES += $(filter disabled-temporarily, test_cursorsnap.xul) \
 		window_cursorsnap_dialog.xul \
 		window_cursorsnap_wizard.xul
 endif
 
-MOCHITEST_CHROME_FILES += test_about_networking.html \
-		file_about_networking_wsh.py
-
new file mode 100644
--- /dev/null
+++ b/toolkit/content/tests/chrome/chrome.ini
@@ -0,0 +1,151 @@
+[DEFAULT]
+support-files =
+  ../widgets/popup_shared.js
+  ../widgets/tree_shared.js
+  RegisterUnregisterChrome.js
+  bug263683_window.xul
+  bug304188_window.xul
+  bug331215_window.xul
+  bug360437_window.xul
+  bug366992_window.xul
+  bug409624_window.xul
+  bug429723_window.xul
+  bug451286_window.xul
+  bug624329_window.xul
+  dialog_dialogfocus.xul
+  file_about_networking_wsh.py
+  file_autocomplete_with_composition.js
+  findbar_events_window.xul
+  findbar_window.xul
+  frame_popup_anchor.xul
+  frame_popupremoving_frame.xul
+  frame_subframe_origin_subframe1.xul
+  frame_subframe_origin_subframe2.xul
+  popup_childframe_node.xul
+  popup_trigger.js
+  window_browser_drop.xul
+  window_keys.xul
+  window_largemenu.xul
+  window_panel.xul
+  window_popup_anchor.xul
+  window_popup_attribute.xul
+  window_popup_button.xul
+  window_popup_preventdefault_chrome.xul
+  window_preferences.xul
+  window_preferences2.xul
+  window_preferences3.xul
+  window_preferences_commandretarget.xul
+  window_screenPosSize.xul
+  window_showcaret.xul
+  window_subframe_origin.xul
+  window_titlebar.xul
+  xul_selectcontrol.js
+
+[test_about_networking.html]
+[test_arrowpanel.xul]
+[test_autocomplete2.xul]
+[test_autocomplete3.xul]
+[test_autocomplete4.xul]
+[test_autocomplete5.xul]
+[test_autocomplete_delayOnPaste.xul]
+[test_autocomplete_with_composition_on_input.html]
+[test_autocomplete_with_composition_on_textbox.xul]
+[test_browser_drop.xul]
+[test_bug253481.xul]
+[test_bug263683.xul]
+[test_bug304188.xul]
+[test_bug331215.xul]
+[test_bug360220.xul]
+[test_bug360437.xul]
+[test_bug365773.xul]
+[test_bug366992.xul]
+[test_bug382990.xul]
+[test_bug409624.xul]
+[test_bug418874.xul]
+[test_bug429723.xul]
+[test_bug437844.xul]
+[test_bug451286.xul]
+[test_bug457632.xul]
+[test_bug460942.xul]
+[test_bug471776.xul]
+[test_bug509732.xul]
+[test_bug554279.xul]
+[test_bug557987.xul]
+[test_bug562554.xul]
+[test_bug570192.xul]
+[test_bug585946.xul]
+[test_bug624329.xul]
+[test_bug792324.xul]
+[test_button.xul]
+[test_closemenu_attribute.xul]
+[test_colorpicker_popup.xul]
+[test_contextmenu_list.xul]
+[test_datepicker.xul]
+[test_deck.xul]
+[test_dialogfocus.xul]
+[test_findbar.xul]
+[test_findbar_events.xul]
+[test_focus_anons.xul]
+[test_hiddenitems.xul]
+[test_hiddenpaging.xul]
+[test_keys.xul]
+[test_largemenu.xul]
+[test_menu.xul]
+[test_menu_hide.xul]
+[test_menuchecks.xul]
+[test_menuitem_blink.xul]
+[test_menuitem_commands.xul]
+[test_menulist.xul]
+[test_menulist_keynav.xul]
+[test_menulist_null_value.xul]
+[test_mousecapture.xul]
+[test_mousescroll.xul]
+[test_notificationbox.xul]
+[test_panel.xul]
+[test_panelfrommenu.xul]
+[test_popup_anchor.xul]
+[test_popup_attribute.xul]
+[test_popup_button.xul]
+[test_popup_coords.xul]
+[test_popup_keys.xul]
+[test_popup_moveToAnchor.xul]
+[test_popup_preventdefault.xul]
+[test_popup_preventdefault_chrome.xul]
+[test_popup_recreate.xul]
+[test_popup_scaled.xul]
+[test_popup_tree.xul]
+[test_popuphidden.xul]
+[test_popupincontent.xul]
+[test_popupremoving.xul]
+[test_popupremoving_frame.xul]
+[test_position.xul]
+[test_preferences.xul]
+[test_progressmeter.xul]
+[test_props.xul]
+[test_radio.xul]
+[test_richlist_direction.xul]
+[test_righttoleft.xul]
+[test_scale.xul]
+[test_scaledrag.xul]
+[test_screenPersistence.xul]
+[test_scrollbar.xul]
+[test_showcaret.xul]
+[test_sorttemplate.xul]
+[test_statusbar.xul]
+[test_subframe_origin.xul]
+[test_tabbox.xul]
+[test_tabindex.xul]
+[test_textbox_dictionary.xul]
+[test_textbox_emptytext.xul]
+[test_textbox_number.xul]
+[test_textbox_search.xul]
+[test_timepicker.xul]
+[test_titlebar.xul]
+[test_toolbar.xul]
+[test_tooltip.xul]
+[test_tooltip_noautohide.xul]
+[test_tree.xul]
+[test_tree_hier.xul]
+[test_tree_hier_cell.xul]
+[test_tree_single.xul]
+[test_tree_view.xul]
--- a/toolkit/content/tests/chrome/moz.build
+++ b/toolkit/content/tests/chrome/moz.build
@@ -1,7 +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 += ['rtltest', 'rtlchrome']
+
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/content/tests/widgets/Makefile.in
+++ b/toolkit/content/tests/widgets/Makefile.in
@@ -28,23 +28,16 @@ MOCHITEST_FILES =	\
 		videocontrols_direction_test.js \
 		$(topsrcdir)/content/media/test/audio.wav \
 		$(topsrcdir)/browser/base/content/test/general/audio.ogg \
 		$(topsrcdir)/content/media/test/seek_with_sound.ogg \
 		videomask.css \
 		test_bug898940.html \
 		$(NULL)
 
-MOCHITEST_CHROME_FILES = \
-		tree_shared.js \
-		test_tree_column_reorder.xul \
-		test_editor_currentURI.xul \
-		test_popupreflows.xul \
-		$(NULL)
-
 ifneq (cocoa,$(MOZ_WIDGET_TOOLKIT))
 MOCHITEST_FILES += test_menubar.xul \
                window_menubar.xul
 endif
 
 # popup anchor tests don't work on android.
 ifneq (android,$(MOZ_WIDGET_TOOLKIT))
 MOCHITEST_FILES += \
new file mode 100644
--- /dev/null
+++ b/toolkit/content/tests/widgets/chrome.ini
@@ -0,0 +1,6 @@
+[DEFAULT]
+support-files = tree_shared.js
+
+[test_editor_currentURI.xul]
+[test_popupreflows.xul]
+[test_tree_column_reorder.xul]
--- a/toolkit/content/tests/widgets/moz.build
+++ b/toolkit/content/tests/widgets/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/devtools/server/tests/mochitest/Makefile.in
+++ b/toolkit/devtools/server/tests/mochitest/Makefile.in
@@ -1,34 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES	= \
-	inspector-helpers.js \
-	inspector-traversal-data.html \
-	inspector-styles-data.html \
-	inspector-styles-data.css \
-	test_inspector-changeattrs.html \
-	test_inspector-changevalue.html \
-	test_inspector-hide.html \
-	test_inspector-insert.html \
-	test_inspector-mutations-attr.html \
-	test_inspector-mutations-childlist.html \
-	test_inspector-mutations-frameload.html \
-	test_inspector-mutations-value.html \
-	test_inspector-release.html \
-	test_inspector-remove.html \
-	test_inspector-reload.html \
-	test_inspector-retain.html \
-	test_inspector-pseudoclass-lock.html \
-	test_inspector-traversal.html \
-	test_styles-applied.html \
-	test_styles-computed.html \
-	test_styles-matched.html \
-	test_styles-modify.html \
-	test_unsafeDereference.html \
-	test_makeGlobalObjectReference.html \
-	nonchrome_unsafeDereference.html \
-	test_connection-manager.html \
-	test_device.html \
-	$(NULL)
new file mode 100644
--- /dev/null
+++ b/toolkit/devtools/server/tests/mochitest/chrome.ini
@@ -0,0 +1,30 @@
+[DEFAULT]
+support-files =
+  inspector-helpers.js
+  inspector-styles-data.css
+  inspector-styles-data.html
+  inspector-traversal-data.html
+  nonchrome_unsafeDereference.html
+
+[test_connection-manager.html]
+[test_device.html]
+[test_inspector-changeattrs.html]
+[test_inspector-changevalue.html]
+[test_inspector-hide.html]
+[test_inspector-insert.html]
+[test_inspector-mutations-attr.html]
+[test_inspector-mutations-childlist.html]
+[test_inspector-mutations-frameload.html]
+[test_inspector-mutations-value.html]
+[test_inspector-pseudoclass-lock.html]
+[test_inspector-release.html]
+[test_inspector-reload.html]
+[test_inspector-remove.html]
+[test_inspector-retain.html]
+[test_inspector-traversal.html]
+[test_makeGlobalObjectReference.html]
+[test_styles-applied.html]
+[test_styles-computed.html]
+[test_styles-matched.html]
+[test_styles-modify.html]
+[test_unsafeDereference.html]
--- a/toolkit/devtools/server/tests/mochitest/moz.build
+++ b/toolkit/devtools/server/tests/mochitest/moz.build
@@ -1,5 +1,7 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/devtools/webconsole/test/Makefile.in
+++ b/toolkit/devtools/webconsole/test/Makefile.in
@@ -1,24 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-    test_basics.html \
-    test_cached_messages.html \
-    test_page_errors.html \
-    test_consoleapi.html \
-    test_jsterm.html \
-    test_object_actor.html \
-    test_network_get.html \
-    test_network_post.html \
-    test_network_longstring.html \
-    test_file_uri.html \
-    test_bug819670_getter_throws.html \
-    test_object_actor_native_getters.html \
-    test_object_actor_native_getters_lenient_this.html \
-    test_nsiconsolemessage.html \
-    network_requests_iframe.html \
-    data.json \
-    data.json^headers^ \
-    common.js \
-    $(NULL)
new file mode 100644
--- /dev/null
+++ b/toolkit/devtools/webconsole/test/chrome.ini
@@ -0,0 +1,21 @@
+[DEFAULT]
+support-files =
+  common.js
+  data.json
+  data.json^headers^
+  network_requests_iframe.html
+
+[test_basics.html]
+[test_bug819670_getter_throws.html]
+[test_cached_messages.html]
+[test_consoleapi.html]
+[test_file_uri.html]
+[test_jsterm.html]
+[test_network_get.html]
+[test_network_longstring.html]
+[test_network_post.html]
+[test_nsiconsolemessage.html]
+[test_object_actor.html]
+[test_object_actor_native_getters.html]
+[test_object_actor_native_getters_lenient_this.html]
+[test_page_errors.html]
--- a/toolkit/devtools/webconsole/test/moz.build
+++ b/toolkit/devtools/webconsole/test/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/identity/tests/chrome/Makefile.in
+++ b/toolkit/identity/tests/chrome/Makefile.in
@@ -1,15 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-		sandbox_content.html \
-		sandbox_content_alert.html \
-		sandbox_content_framed.html \
-		sandbox_content_perms.html \
-		sandbox_content_popup.html \
-		sandbox_content_redirect.html \
-		sandbox_content_redirect.html^headers^ \
-		sandbox_content.sjs \
-		test_sandbox.xul \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/toolkit/identity/tests/chrome/chrome.ini
@@ -0,0 +1,12 @@
+[DEFAULT]
+support-files =
+  sandbox_content.html
+  sandbox_content.sjs
+  sandbox_content_alert.html
+  sandbox_content_framed.html
+  sandbox_content_perms.html
+  sandbox_content_popup.html
+  sandbox_content_redirect.html
+  sandbox_content_redirect.html^headers^
+
+[test_sandbox.xul]
--- a/toolkit/identity/tests/chrome/moz.build
+++ b/toolkit/identity/tests/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/modules/tests/chrome/Makefile.in
+++ b/toolkit/modules/tests/chrome/Makefile.in
@@ -1,7 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-  test_bug544442_checkCert.xul \
-  $(NULL)
new file mode 100644
--- /dev/null
+++ b/toolkit/modules/tests/chrome/chrome.ini
@@ -0,0 +1,3 @@
+[DEFAULT]
+
+[test_bug544442_checkCert.xul]
--- a/toolkit/modules/tests/chrome/moz.build
+++ b/toolkit/modules/tests/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/mozapps/downloads/tests/chrome/Makefile.in
+++ b/toolkit/mozapps/downloads/tests/chrome/Makefile.in
@@ -1,44 +1,16 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # temporarily disabled test (bug 483200)
 #  test_retention_is_0_closes.xul \
 
-MOCHITEST_CHROME_FILES = \
-  test_basic_functionality.xul \
-  test_cleanup_search.xul \
-  test_clear_button_disabled.xul \
-  test_close_download_manager.xul \
-  test_delete_key_removes.xul \
-  test_destinationURI_annotation.xul \
-  test_esc_key_closes_clears.xul \
-  test_multi_select.xul \
-  test_multiword_search.xul \
-  test_pause_button_state.xul \
-  test_removeDownload_updates_ui.xul \
-  test_search_clearlist.xul \
-  test_search_keys.xul \
-  test_select_all.xul \
-  test_space_key_pauses_resumes.xul \
-  test_ui_stays_open_on_alert_clickback.xul \
-  test_unknownContentType_dialog_layout.xul \
-  test_bug_412360.xul \
-  test_bug_429247.xul \
-  test_bug_462172.xul \
-  test_close_on_last_window.xul \
-  unknownContentType_dialog_layout_data.txt \
-  unknownContentType_dialog_layout_data.txt^headers^ \
-  unknownContentType_dialog_layout_data.pif \
-  unknownContentType_dialog_layout_data.pif^headers^ \
-  utils.js \
-  $(NULL)
 ifneq (,$(filter cocoa, $(MOZ_WIDGET_TOOLKIT)))
 MOCHITEST_CHROME_FILES += \
   test_backspace_key_removes.xul \
   $(NULL)
 endif
 
 ifneq (,$(filter WINNT, $(OS_ARCH))$(filter cocoa, $(MOZ_WIDGET_TOOLKIT)))
 MOCHITEST_CHROME_FILES += \
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/downloads/tests/chrome/chrome.ini
@@ -0,0 +1,29 @@
+[DEFAULT]
+support-files =
+  unknownContentType_dialog_layout_data.pif
+  unknownContentType_dialog_layout_data.pif^headers^
+  unknownContentType_dialog_layout_data.txt
+  unknownContentType_dialog_layout_data.txt^headers^
+  utils.js
+
+[test_basic_functionality.xul]
+[test_bug_412360.xul]
+[test_bug_429247.xul]
+[test_bug_462172.xul]
+[test_cleanup_search.xul]
+[test_clear_button_disabled.xul]
+[test_close_download_manager.xul]
+[test_close_on_last_window.xul]
+[test_delete_key_removes.xul]
+[test_destinationURI_annotation.xul]
+[test_esc_key_closes_clears.xul]
+[test_multi_select.xul]
+[test_multiword_search.xul]
+[test_pause_button_state.xul]
+[test_removeDownload_updates_ui.xul]
+[test_search_clearlist.xul]
+[test_search_keys.xul]
+[test_select_all.xul]
+[test_space_key_pauses_resumes.xul]
+[test_ui_stays_open_on_alert_clickback.xul]
+[test_unknownContentType_dialog_layout.xul]
--- a/toolkit/mozapps/downloads/tests/chrome/moz.build
+++ b/toolkit/mozapps/downloads/tests/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/mozapps/update/test/chrome/Makefile.in
+++ b/toolkit/mozapps/update/test/chrome/Makefile.in
@@ -1,90 +1,11 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = \
-  ../unit/data/simple.mar \
-  ../unit/data/simple_no_pib.mar \
-  $(NULL)
-
-MOCHITEST_CHROME_FILES += \
-  test_0017_check_staging_basic.xul \
-  test_0027_check_staging_billboard.xul \
-  test_0011_check_basic.xul \
-  test_0012_check_basic_license.xul \
-  test_0013_check_incompat_basic.xul \
-  test_0015_check_incompat_basic_addons.xul \
-  test_0014_check_incompat_basic_license.xul \
-  test_0016_check_incompat_basic_license_addons.xul \
-  test_0021_check_billboard.xul \
-  test_0022_check_billboard_license.xul \
-  test_0023_check_incompat_billboard.xul \
-  test_0024_check_incompat_billboard_license.xul \
-  test_0025_check_incompat_billboard_addons.xul \
-  test_0026_check_incompat_billboard_license_addons.xul \
-  test_0031_available_basic.xul \
-  test_0032_available_basic_license.xul \
-  test_0033_available_incompat_basic.xul \
-  test_0034_available_incompat_basic_license.xul \
-  test_0035_available_incompat_basic_addons.xul \
-  test_0036_available_incompat_basic_license_addons.xul \
-  test_0037_available_staging_basic.xul \
-  test_0041_available_billboard.xul \
-  test_0042_available_billboard_license.xul \
-  test_0043_available_incompat_billboard.xul \
-  test_0044_available_incompat_billboard_license.xul \
-  test_0045_available_incompat_billboard_addons.xul \
-  test_0046_available_incompat_billboard_license_addons.xul \
-  test_0047_available_staging_billboard.xul \
-  test_0051_check_error_xml_malformed.xul \
-  test_0052_check_no_updates.xul \
-  test_0053_check_billboard_license_noAttr.xul \
-  test_0054_check_billboard_license_404.xul \
-  test_0061_check_verifyFailPartial_noComplete.xul \
-  test_0062_check_verifyFailComplete_noPartial.xul \
-  test_0063_check_verifyFailPartialComplete.xul \
-  test_0064_check_verifyFailPartial_successComplete.xul \
-  test_0071_notify_verifyFailPartial_noComplete.xul \
-  test_0072_notify_verifyFailComplete_noPartial.xul \
-  test_0073_notify_verifyFailPartialComplete.xul \
-  test_0074_notify_verifyFailPartial_successComplete.xul \
-  test_0081_error_patchApplyFailure_partial_only.xul \
-  test_0082_error_patchApplyFailure_complete_only.xul \
-  test_0083_error_patchApplyFailure_partial_complete.xul \
-  test_0084_error_patchApplyFailure_verify_failed.xul \
-  test_0091_installed.xul \
-  test_0092_finishedBackground.xul \
-  test_0093_restartNotification.xul \
-  test_0094_restartNotification_remote.xul \
-  test_0095_restartNotification_remoteInvalidNumber.xul \
-  test_0096_restartNotification_stagedBackground.xul \
-  test_0097_restartNotification_stagedServiceBackground.xul \
-  test_0101_background_restartNotification.xul \
-  test_0102_background_restartNotification_staging.xul \
-  test_0103_background_restartNotification_stagingService.xul \
-  test_0111_neverButton_basic.xul \
-  test_0112_neverButton_billboard.xul \
-  test_0113_showNeverForVersionRemovedWithPref.xul \
-  test_0121_check_requireBuiltinCert.xul \
-  test_0122_check_allowNonBuiltinCert_validCertAttrs.xul \
-  test_0123_check_allowNonBuiltinCert_noCertAttrsCheck.xul \
-  test_0131_check_invalidCertAttrs_noUpdate.xul \
-  test_0132_check_invalidCertAttrs_hasUpdate.xul \
-  test_0141_notify_invalidCertAttrs_noUpdate.xul \
-  test_0142_notify_invalidCertAttrs_hasUpdate.xul \
-  test_0151_notify_backgroundCheckError.xul \
-  test_0161_check_unsupported.xul \
-  test_0162_notify_unsupported.xul \
-  test_0900_deprecatedUpdateFormat_minor.xul \
-  test_0901_deprecatedUpdateFormat_major.xul \
-  test_9999_cleanup.xul \
-  $(NULL)
-
-
 include $(topsrcdir)/config/rules.mk
 
 libs:: 
 	$(PYTHON) $(MOZILLA_DIR)/config/Preprocessor.py -Fsubstitution $(DEFINES) $(ACDEFINES) $(srcdir)/utils.js > \
     $(DEPTH)/_tests/testing/mochitest/chrome/$(relativesrcdir)/utils.js
 	$(PYTHON) $(MOZILLA_DIR)/config/Preprocessor.py -Fsubstitution $(DEFINES) $(ACDEFINES) $(srcdir)/update.sjs > \
     $(DEPTH)/_tests/testing/mochitest/chrome/$(relativesrcdir)/update.sjs
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/update/test/chrome/chrome.ini
@@ -0,0 +1,75 @@
+[DEFAULT]
+support-files =
+  ../unit/data/simple.mar
+  ../unit/data/simple_no_pib.mar
+
+[test_0011_check_basic.xul]
+[test_0012_check_basic_license.xul]
+[test_0013_check_incompat_basic.xul]
+[test_0014_check_incompat_basic_license.xul]
+[test_0015_check_incompat_basic_addons.xul]
+[test_0016_check_incompat_basic_license_addons.xul]
+[test_0017_check_staging_basic.xul]
+[test_0021_check_billboard.xul]
+[test_0022_check_billboard_license.xul]
+[test_0023_check_incompat_billboard.xul]
+[test_0024_check_incompat_billboard_license.xul]
+[test_0025_check_incompat_billboard_addons.xul]
+[test_0026_check_incompat_billboard_license_addons.xul]
+[test_0027_check_staging_billboard.xul]
+[test_0031_available_basic.xul]
+[test_0032_available_basic_license.xul]
+[test_0033_available_incompat_basic.xul]
+[test_0034_available_incompat_basic_license.xul]
+[test_0035_available_incompat_basic_addons.xul]
+[test_0036_available_incompat_basic_license_addons.xul]
+[test_0037_available_staging_basic.xul]
+[test_0041_available_billboard.xul]
+[test_0042_available_billboard_license.xul]
+[test_0043_available_incompat_billboard.xul]
+[test_0044_available_incompat_billboard_license.xul]
+[test_0045_available_incompat_billboard_addons.xul]
+[test_0046_available_incompat_billboard_license_addons.xul]
+[test_0047_available_staging_billboard.xul]
+[test_0051_check_error_xml_malformed.xul]
+[test_0052_check_no_updates.xul]
+[test_0053_check_billboard_license_noAttr.xul]
+[test_0054_check_billboard_license_404.xul]
+[test_0061_check_verifyFailPartial_noComplete.xul]
+[test_0062_check_verifyFailComplete_noPartial.xul]
+[test_0063_check_verifyFailPartialComplete.xul]
+[test_0064_check_verifyFailPartial_successComplete.xul]
+[test_0071_notify_verifyFailPartial_noComplete.xul]
+[test_0072_notify_verifyFailComplete_noPartial.xul]
+[test_0073_notify_verifyFailPartialComplete.xul]
+[test_0074_notify_verifyFailPartial_successComplete.xul]
+[test_0081_error_patchApplyFailure_partial_only.xul]
+[test_0082_error_patchApplyFailure_complete_only.xul]
+[test_0083_error_patchApplyFailure_partial_complete.xul]
+[test_0084_error_patchApplyFailure_verify_failed.xul]
+[test_0091_installed.xul]
+[test_0092_finishedBackground.xul]
+[test_0093_restartNotification.xul]
+[test_0094_restartNotification_remote.xul]
+[test_0095_restartNotification_remoteInvalidNumber.xul]
+[test_0096_restartNotification_stagedBackground.xul]
+[test_0097_restartNotification_stagedServiceBackground.xul]
+[test_0101_background_restartNotification.xul]
+[test_0102_background_restartNotification_staging.xul]
+[test_0103_background_restartNotification_stagingService.xul]
+[test_0111_neverButton_basic.xul]
+[test_0112_neverButton_billboard.xul]
+[test_0113_showNeverForVersionRemovedWithPref.xul]
+[test_0121_check_requireBuiltinCert.xul]
+[test_0122_check_allowNonBuiltinCert_validCertAttrs.xul]
+[test_0123_check_allowNonBuiltinCert_noCertAttrsCheck.xul]
+[test_0131_check_invalidCertAttrs_noUpdate.xul]
+[test_0132_check_invalidCertAttrs_hasUpdate.xul]
+[test_0141_notify_invalidCertAttrs_noUpdate.xul]
+[test_0142_notify_invalidCertAttrs_hasUpdate.xul]
+[test_0151_notify_backgroundCheckError.xul]
+[test_0161_check_unsupported.xul]
+[test_0162_notify_unsupported.xul]
+[test_0900_deprecatedUpdateFormat_minor.xul]
+[test_0901_deprecatedUpdateFormat_major.xul]
+[test_9999_cleanup.xul]
--- a/toolkit/mozapps/update/test/chrome/moz.build
+++ b/toolkit/mozapps/update/test/chrome/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/profile/test/Makefile.in
+++ b/toolkit/profile/test/Makefile.in
@@ -1,8 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES   = \
-                test_create_profile.xul \
-                $(NULL)
new file mode 100644
--- /dev/null
+++ b/toolkit/profile/test/chrome.ini
@@ -0,0 +1,3 @@
+[DEFAULT]
+
+[test_create_profile.xul]
--- a/toolkit/profile/test/moz.build
+++ b/toolkit/profile/test/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/toolkit/themes/osx/mochitests/Makefile.in
+++ b/toolkit/themes/osx/mochitests/Makefile.in
@@ -1,7 +1,5 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES = 	test_bug510426.xul \
-		$(NULL)
new file mode 100644
--- /dev/null
+++ b/toolkit/themes/osx/mochitests/chrome.ini
@@ -0,0 +1,3 @@
+[DEFAULT]
+
+[test_bug510426.xul]
--- a/toolkit/themes/osx/mochitests/moz.build
+++ b/toolkit/themes/osx/mochitests/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+
--- a/xpfe/appshell/src/test/Makefile.in
+++ b/xpfe/appshell/src/test/Makefile.in
@@ -1,7 +1,4 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-MOCHITEST_CHROME_FILES := \
-  test_hiddenPrivateWindow.xul \
-  $(NULL)
new file mode 100644
--- /dev/null
+++ b/xpfe/appshell/src/test/chrome.ini
@@ -0,0 +1,3 @@
+[DEFAULT]
+
+[test_hiddenPrivateWindow.xul]
--- a/xpfe/appshell/src/test/moz.build
+++ b/xpfe/appshell/src/test/moz.build
@@ -1,6 +1,8 @@
 # -*- 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/.
 
+MOCHITEST_CHROME_MANIFESTS += ['chrome.ini']
+