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 149252 68b6b152f51a6cf0ba2743950cc9a43f3aecaa57
parent 149251 77bff106b704be59212d9b3295548e8b197e616b
child 149253 8b02873ee07edd54a36acf1d1d8a97a96e925deb
push id2885
push userryanvm@gmail.com
push dateMon, 30 Sep 2013 20:57:20 +0000
treeherderfx-team@2fa72efe5bd3 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersMs2ger
bugs920223
milestone27.0a1
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']
+