Bug 1347712 - Change the testing configurations into ESLint configurations within eslint-plugin-mozilla - automatically update .eslintrc.js test config files for new config locations. r=jaws
authorMark Banner <standard8@mozilla.com>
Mon, 20 Mar 2017 12:36:37 +0100
changeset 348766 1ee2cb31c1d141d6b091749464aedc8507f04c44
parent 348765 6bf90d2bed355aff80f8baa917bc16bece7a6713
child 348767 e52ee73071ad0ad9f980d5319a35f2a3ac63dec3
push id39289
push usermbanner@mozilla.com
push dateWed, 22 Mar 2017 09:54:02 +0000
treeherderautoland@6f536e25896d [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjaws
bugs1347712
milestone55.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1347712 - Change the testing configurations into ESLint configurations within eslint-plugin-mozilla - automatically update .eslintrc.js test config files for new config locations. r=jaws MozReview-Commit-ID: LH0CQOPfoe6
accessible/tests/browser/.eslintrc.js
browser/base/content/test/alerts/.eslintrc.js
browser/base/content/test/captivePortal/.eslintrc.js
browser/base/content/test/chrome/.eslintrc.js
browser/base/content/test/general/.eslintrc.js
browser/base/content/test/newtab/.eslintrc.js
browser/base/content/test/pageinfo/.eslintrc.js
browser/base/content/test/plugins/.eslintrc.js
browser/base/content/test/popupNotifications/.eslintrc.js
browser/base/content/test/referrer/.eslintrc.js
browser/base/content/test/siteIdentity/.eslintrc.js
browser/base/content/test/social/.eslintrc.js
browser/base/content/test/tabPrompts/.eslintrc.js
browser/base/content/test/tabcrashed/.eslintrc.js
browser/base/content/test/tabs/.eslintrc.js
browser/base/content/test/urlbar/.eslintrc.js
browser/base/content/test/webrtc/.eslintrc.js
browser/components/contextualidentity/test/browser/.eslintrc.js
browser/components/customizableui/test/.eslintrc.js
browser/components/dirprovider/tests/unit/.eslintrc.js
browser/components/downloads/test/browser/.eslintrc.js
browser/components/downloads/test/unit/.eslintrc.js
browser/components/extensions/test/browser/.eslintrc.js
browser/components/extensions/test/xpcshell/.eslintrc.js
browser/components/feeds/test/.eslintrc.js
browser/components/feeds/test/chrome/.eslintrc.js
browser/components/feeds/test/unit/.eslintrc.js
browser/components/migration/tests/browser/.eslintrc.js
browser/components/migration/tests/unit/.eslintrc.js
browser/components/newtab/tests/browser/.eslintrc.js
browser/components/newtab/tests/xpcshell/.eslintrc.js
browser/components/originattributes/test/browser/.eslintrc.js
browser/components/places/tests/browser/.eslintrc.js
browser/components/places/tests/chrome/.eslintrc.js
browser/components/places/tests/unit/.eslintrc.js
browser/components/preferences/in-content/tests/.eslintrc.js
browser/components/privatebrowsing/test/browser/.eslintrc.js
browser/components/safebrowsing/content/test/.eslintrc.js
browser/components/search/test/.eslintrc.js
browser/components/selfsupport/test/.eslintrc.js
browser/components/sessionstore/test/.eslintrc.js
browser/components/sessionstore/test/unit/.eslintrc.js
browser/components/shell/test/.eslintrc.js
browser/components/shell/test/unit/.eslintrc.js
browser/components/syncedtabs/test/browser/.eslintrc.js
browser/components/syncedtabs/test/xpcshell/.eslintrc.js
browser/components/tests/browser/.eslintrc.js
browser/components/tests/unit/.eslintrc.js
browser/components/translation/test/.eslintrc.js
browser/components/translation/test/unit/.eslintrc.js
browser/components/uitour/test/.eslintrc.js
browser/experiments/test/xpcshell/.eslintrc.js
browser/extensions/formautofill/test/browser/.eslintrc.js
browser/extensions/formautofill/test/unit/.eslintrc.js
browser/extensions/pdfjs/test/.eslintrc.js
browser/extensions/pocket/test/.eslintrc.js
browser/extensions/webcompat-reporter/test/browser/.eslintrc.js
browser/extensions/webcompat/test/.eslintrc.js
browser/modules/test/browser/.eslintrc.js
browser/modules/test/unit/.eslintrc.js
browser/tools/mozscreenshots/.eslintrc.js
devtools/.eslintrc.mochitests.js
devtools/.eslintrc.xpcshell.js
devtools/client/memory/.eslintrc.js
devtools/shared/security/tests/chrome/.eslintrc.js
devtools/shared/webconsole/test/.eslintrc.js
security/manager/ssl/tests/mochitest/browser/.eslintrc.js
security/manager/ssl/tests/mochitest/mixedcontent/.eslintrc.js
security/manager/ssl/tests/mochitest/stricttransportsecurity/.eslintrc.js
security/manager/ssl/tests/unit/.eslintrc.js
services/cloudsync/tests/mochitest/.eslintrc.js
services/cloudsync/tests/xpcshell/.eslintrc.js
services/common/tests/unit/.eslintrc.js
services/crypto/component/tests/unit/.eslintrc.js
services/crypto/tests/unit/.eslintrc.js
services/fxaccounts/tests/browser/.eslintrc.js
services/fxaccounts/tests/mochitest/.eslintrc.js
services/fxaccounts/tests/xpcshell/.eslintrc.js
services/sync/tests/tps/.eslintrc.js
services/sync/tests/unit/.eslintrc.js
storage/test/unit/.eslintrc.js
toolkit/components/aboutmemory/tests/.eslintrc.js
toolkit/components/aboutmemory/tests/xpcshell/.eslintrc.js
toolkit/components/aboutperformance/tests/browser/.eslintrc.js
toolkit/components/addoncompat/tests/browser/.eslintrc.js
toolkit/components/alerts/test/.eslintrc.js
toolkit/components/asyncshutdown/tests/xpcshell/.eslintrc.js
toolkit/components/autocomplete/tests/unit/.eslintrc.js
toolkit/components/captivedetect/test/unit/.eslintrc.js
toolkit/components/commandlines/test/unit/.eslintrc.js
toolkit/components/commandlines/test/unit_unix/.eslintrc.js
toolkit/components/commandlines/test/unit_win/.eslintrc.js
toolkit/components/contentprefs/tests/mochitest/.eslintrc.js
toolkit/components/contentprefs/tests/unit/.eslintrc.js
toolkit/components/contentprefs/tests/unit_cps2/.eslintrc.js
toolkit/components/contextualidentity/tests/unit/.eslintrc.js
toolkit/components/crashes/tests/xpcshell/.eslintrc.js
toolkit/components/crashmonitor/test/unit/.eslintrc.js
toolkit/components/ctypes/tests/chrome/.eslintrc.js
toolkit/components/ctypes/tests/unit/.eslintrc.js
toolkit/components/downloads/test/unit/.eslintrc.js
toolkit/components/extensions/test/browser/.eslintrc.js
toolkit/components/extensions/test/mochitest/.eslintrc.js
toolkit/components/extensions/test/xpcshell/.eslintrc.js
toolkit/components/feeds/test/.eslintrc.js
toolkit/components/filepicker/test/unit/.eslintrc.js
toolkit/components/filewatcher/tests/xpcshell/.eslintrc.js
toolkit/components/formautofill/test/.eslintrc.js
toolkit/components/formautofill/test/browser/.eslintrc.js
toolkit/components/formautofill/test/chrome/.eslintrc.js
toolkit/components/formautofill/test/xpcshell/.eslintrc.js
toolkit/components/jsdownloads/test/browser/.eslintrc.js
toolkit/components/jsdownloads/test/data/.eslintrc.js
toolkit/components/jsdownloads/test/unit/.eslintrc.js
toolkit/components/lz4/tests/xpcshell/.eslintrc.js
toolkit/components/mediasniffer/test/unit/.eslintrc.js
toolkit/components/mozintl/test/.eslintrc.js
toolkit/components/mozprotocol/tests/.eslintrc.js
toolkit/components/osfile/tests/mochi/.eslintrc.js
toolkit/components/osfile/tests/xpcshell/.eslintrc.js
toolkit/components/passwordmgr/test/.eslintrc.js
toolkit/components/passwordmgr/test/browser/.eslintrc.js
toolkit/components/passwordmgr/test/unit/.eslintrc.js
toolkit/components/perf/.eslintrc.js
toolkit/components/perfmonitoring/tests/browser/.eslintrc.js
toolkit/components/places/tests/.eslintrc.js
toolkit/components/places/tests/bookmarks/.eslintrc.js
toolkit/components/places/tests/browser/.eslintrc.js
toolkit/components/places/tests/chrome/.eslintrc.js
toolkit/components/places/tests/expiration/.eslintrc.js
toolkit/components/places/tests/favicons/.eslintrc.js
toolkit/components/places/tests/history/.eslintrc.js
toolkit/components/places/tests/migration/.eslintrc.js
toolkit/components/places/tests/queries/.eslintrc.js
toolkit/components/places/tests/unifiedcomplete/.eslintrc.js
toolkit/components/places/tests/unit/.eslintrc.js
toolkit/components/printing/tests/.eslintrc.js
toolkit/components/promiseworker/tests/xpcshell/.eslintrc.js
toolkit/components/prompts/test/.eslintrc.js
toolkit/components/reader/test/.eslintrc.js
toolkit/components/remotebrowserutils/tests/browser/.eslintrc.js
toolkit/components/satchel/test/.eslintrc.js
toolkit/components/satchel/test/browser/.eslintrc.js
toolkit/components/satchel/test/unit/.eslintrc.js
toolkit/components/search/tests/xpcshell/.eslintrc.js
toolkit/components/social/test/xpcshell/.eslintrc.js
toolkit/components/startup/tests/browser/.eslintrc.js
toolkit/components/startup/tests/unit/.eslintrc.js
toolkit/components/telemetry/tests/browser/.eslintrc.js
toolkit/components/telemetry/tests/unit/.eslintrc.js
toolkit/components/terminator/tests/xpcshell/.eslintrc.js
toolkit/components/thumbnails/test/.eslintrc.js
toolkit/components/timermanager/tests/unit/.eslintrc.js
toolkit/components/tooltiptext/tests/.eslintrc.js
toolkit/components/url-classifier/tests/mochitest/.eslintrc.js
toolkit/components/url-classifier/tests/unit/.eslintrc.js
toolkit/components/urlformatter/tests/unit/.eslintrc.js
toolkit/components/viewsource/test/.eslintrc.js
toolkit/components/viewsource/test/browser/.eslintrc.js
toolkit/components/windowcreator/test/.eslintrc.js
toolkit/components/windowcreator/tests/unit/.eslintrc.js
toolkit/components/windowwatcher/test/.eslintrc.js
toolkit/components/workerloader/tests/.eslintrc.js
toolkit/components/xulstore/tests/chrome/.eslintrc.js
toolkit/components/xulstore/tests/xpcshell/.eslintrc.js
toolkit/content/tests/browser/.eslintrc.js
toolkit/content/tests/chrome/.eslintrc.js
toolkit/content/tests/mochitest/.eslintrc.js
toolkit/content/tests/unit/.eslintrc.js
toolkit/content/tests/widgets/.eslintrc.js
toolkit/crashreporter/test/browser/.eslintrc.js
toolkit/crashreporter/test/unit/.eslintrc.js
toolkit/crashreporter/test/unit_ipc/.eslintrc.js
toolkit/forgetaboutsite/test/browser/.eslintrc.js
toolkit/forgetaboutsite/test/unit/.eslintrc.js
toolkit/modules/subprocess/test/xpcshell/.eslintrc.js
toolkit/modules/tests/browser/.eslintrc.js
toolkit/modules/tests/chrome/.eslintrc.js
toolkit/modules/tests/modules/.eslintrc.js
toolkit/modules/tests/xpcshell/.eslintrc.js
toolkit/mozapps/downloads/tests/chrome/.eslintrc.js
toolkit/mozapps/downloads/tests/unit/.eslintrc.js
toolkit/mozapps/extensions/test/browser/.eslintrc.js
toolkit/mozapps/extensions/test/mochitest/.eslintrc.js
toolkit/mozapps/extensions/test/xpcshell/.eslintrc.js
toolkit/mozapps/extensions/test/xpinstall/.eslintrc.js
toolkit/mozapps/update/tests/chrome/.eslintrc.js
toolkit/mozapps/update/tests/unit_aus_update/.eslintrc.js
toolkit/mozapps/update/tests/unit_base_updater/.eslintrc.js
toolkit/mozapps/update/tests/unit_service_updater/.eslintrc.js
toolkit/profile/test/.eslintrc.js
toolkit/themes/osx/mochitests/.eslintrc.js
toolkit/xre/test/.eslintrc.js
--- a/accessible/tests/browser/.eslintrc.js
+++ b/accessible/tests/browser/.eslintrc.js
@@ -1,13 +1,13 @@
 "use strict";
 
 module.exports = { // eslint-disable-line no-undef
   "extends": [
-    "../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ],
   // All globals made available in the test environment.
   "globals": {
     // Content scripts have global 'content' object
     "content": true,
 
     "add_task": true,
 
--- a/browser/base/content/test/alerts/.eslintrc.js
+++ b/browser/base/content/test/alerts/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/base/content/test/captivePortal/.eslintrc.js
+++ b/browser/base/content/test/captivePortal/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/base/content/test/chrome/.eslintrc.js
+++ b/browser/base/content/test/chrome/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/browser/base/content/test/general/.eslintrc.js
+++ b/browser/base/content/test/general/.eslintrc.js
@@ -1,8 +1,8 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js",
-    "../../../../../testing/mochitest/mochitest.eslintrc.js",
+    "plugin:mozilla/browser-test",
+    "plugin:mozilla/mochitest-test",
   ]
 };
--- a/browser/base/content/test/newtab/.eslintrc.js
+++ b/browser/base/content/test/newtab/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/base/content/test/pageinfo/.eslintrc.js
+++ b/browser/base/content/test/pageinfo/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/base/content/test/plugins/.eslintrc.js
+++ b/browser/base/content/test/plugins/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/base/content/test/popupNotifications/.eslintrc.js
+++ b/browser/base/content/test/popupNotifications/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/base/content/test/referrer/.eslintrc.js
+++ b/browser/base/content/test/referrer/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/base/content/test/siteIdentity/.eslintrc.js
+++ b/browser/base/content/test/siteIdentity/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/base/content/test/social/.eslintrc.js
+++ b/browser/base/content/test/social/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/base/content/test/tabPrompts/.eslintrc.js
+++ b/browser/base/content/test/tabPrompts/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/base/content/test/tabcrashed/.eslintrc.js
+++ b/browser/base/content/test/tabcrashed/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/base/content/test/tabs/.eslintrc.js
+++ b/browser/base/content/test/tabs/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/base/content/test/urlbar/.eslintrc.js
+++ b/browser/base/content/test/urlbar/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/base/content/test/webrtc/.eslintrc.js
+++ b/browser/base/content/test/webrtc/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/components/contextualidentity/test/browser/.eslintrc.js
+++ b/browser/components/contextualidentity/test/browser/.eslintrc.js
@@ -1,11 +1,11 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ],
 
   "rules": {
     "no-undef": "error"
   }
 };
--- a/browser/components/customizableui/test/.eslintrc.js
+++ b/browser/components/customizableui/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/components/dirprovider/tests/unit/.eslintrc.js
+++ b/browser/components/dirprovider/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/browser/components/downloads/test/browser/.eslintrc.js
+++ b/browser/components/downloads/test/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/components/downloads/test/unit/.eslintrc.js
+++ b/browser/components/downloads/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/browser/components/extensions/test/browser/.eslintrc.js
+++ b/browser/components/extensions/test/browser/.eslintrc.js
@@ -1,12 +1,12 @@
 "use strict";
 
-module.exports = {  // eslint-disable-line no-undef
-  "extends": "../../../../../testing/mochitest/browser.eslintrc.js",
+module.exports = {
+  "extends": "plugin:mozilla/browser-test",
 
   "env": {
     "webextensions": true,
   },
 
   "globals": {
     "NetUtil": true,
     "XPCOMUtils": true,
--- a/browser/components/extensions/test/xpcshell/.eslintrc.js
+++ b/browser/components/extensions/test/xpcshell/.eslintrc.js
@@ -1,9 +1,9 @@
 "use strict";
 
-module.exports = {  // eslint-disable-line no-undef
-  "extends": "../../../../../testing/xpcshell/xpcshell.eslintrc.js",
+module.exports = {
+  "extends": "plugin:mozilla/xpcshell-test",
 
   "globals": {
     "browser": false,
   },
 };
--- a/browser/components/feeds/test/.eslintrc.js
+++ b/browser/components/feeds/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/mochitest.eslintrc.js"
+    "plugin:mozilla/mochitest-test"
   ]
 };
--- a/browser/components/feeds/test/chrome/.eslintrc.js
+++ b/browser/components/feeds/test/chrome/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/browser/components/feeds/test/unit/.eslintrc.js
+++ b/browser/components/feeds/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/browser/components/migration/tests/browser/.eslintrc.js
+++ b/browser/components/migration/tests/browser/.eslintrc.js
@@ -1,9 +1,9 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js",
-    "../../../../../testing/mochitest/mochitest.eslintrc.js",
+    "plugin:mozilla/browser-test",
+    "plugin:mozilla/mochitest-test",
   ]
 };
 
--- a/browser/components/migration/tests/unit/.eslintrc.js
+++ b/browser/components/migration/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
-module.exports = { // eslint-disable-line no-undef
+module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/browser/components/newtab/tests/browser/.eslintrc.js
+++ b/browser/components/newtab/tests/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/components/newtab/tests/xpcshell/.eslintrc.js
+++ b/browser/components/newtab/tests/xpcshell/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/browser/components/originattributes/test/browser/.eslintrc.js
+++ b/browser/components/originattributes/test/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/components/places/tests/browser/.eslintrc.js
+++ b/browser/components/places/tests/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/components/places/tests/chrome/.eslintrc.js
+++ b/browser/components/places/tests/chrome/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/browser/components/places/tests/unit/.eslintrc.js
+++ b/browser/components/places/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/browser/components/preferences/in-content/tests/.eslintrc.js
+++ b/browser/components/preferences/in-content/tests/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/components/privatebrowsing/test/browser/.eslintrc.js
+++ b/browser/components/privatebrowsing/test/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/components/safebrowsing/content/test/.eslintrc.js
+++ b/browser/components/safebrowsing/content/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/components/search/test/.eslintrc.js
+++ b/browser/components/search/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/components/selfsupport/test/.eslintrc.js
+++ b/browser/components/selfsupport/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/components/sessionstore/test/.eslintrc.js
+++ b/browser/components/sessionstore/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/components/sessionstore/test/unit/.eslintrc.js
+++ b/browser/components/sessionstore/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/browser/components/shell/test/.eslintrc.js
+++ b/browser/components/shell/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/components/shell/test/unit/.eslintrc.js
+++ b/browser/components/shell/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/browser/components/syncedtabs/test/browser/.eslintrc.js
+++ b/browser/components/syncedtabs/test/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/components/syncedtabs/test/xpcshell/.eslintrc.js
+++ b/browser/components/syncedtabs/test/xpcshell/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/browser/components/tests/browser/.eslintrc.js
+++ b/browser/components/tests/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/components/tests/unit/.eslintrc.js
+++ b/browser/components/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/browser/components/translation/test/.eslintrc.js
+++ b/browser/components/translation/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/components/translation/test/unit/.eslintrc.js
+++ b/browser/components/translation/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/browser/components/uitour/test/.eslintrc.js
+++ b/browser/components/uitour/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/experiments/test/xpcshell/.eslintrc.js
+++ b/browser/experiments/test/xpcshell/.eslintrc.js
@@ -1,13 +1,13 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ],
 
   "rules": {
     "no-unused-vars": ["error", {
       "vars": "all",
       "varsIgnorePattern": "^(Cc|Ci|Cr|Cu|EXPORTED_SYMBOLS)$",
       "args": "none"
     }]
--- a/browser/extensions/formautofill/test/browser/.eslintrc.js
+++ b/browser/extensions/formautofill/test/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
-module.exports = { // eslint-disable-line no-undef
+module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js",
+    "plugin:mozilla/browser-test",
   ],
 };
--- a/browser/extensions/formautofill/test/unit/.eslintrc.js
+++ b/browser/extensions/formautofill/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
-module.exports = { // eslint-disable-line no-undef
+module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js",
+    "plugin:mozilla/xpcshell-test",
   ],
 };
--- a/browser/extensions/pdfjs/test/.eslintrc.js
+++ b/browser/extensions/pdfjs/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/extensions/pocket/test/.eslintrc.js
+++ b/browser/extensions/pocket/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/extensions/webcompat-reporter/test/browser/.eslintrc.js
+++ b/browser/extensions/webcompat-reporter/test/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/extensions/webcompat/test/.eslintrc.js
+++ b/browser/extensions/webcompat/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/modules/test/browser/.eslintrc.js
+++ b/browser/modules/test/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/browser/modules/test/unit/.eslintrc.js
+++ b/browser/modules/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/browser/tools/mozscreenshots/.eslintrc.js
+++ b/browser/tools/mozscreenshots/.eslintrc.js
@@ -1,13 +1,13 @@
 "use strict";
 
-module.exports = { // eslint-disable-line no-undef
+module.exports = {
   "extends": [
-    "../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ],
 
   "rules": {
     "no-unused-vars": ["error", {
       "vars": "all",
       "varsIgnorePattern": "^(Cc|Ci|Cr|Cu|EXPORTED_SYMBOLS)$",
       "args": "none"
     }]
--- a/devtools/.eslintrc.mochitests.js
+++ b/devtools/.eslintrc.mochitests.js
@@ -1,12 +1,12 @@
 // Parent config file for all devtools browser mochitest files.
 module.exports = {
   "extends": [
-    "../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ],
   // All globals made available in the test environment.
   "globals": {
     "DevToolsUtils": true,
     "gDevTools": true,
     "once": true,
     "synthesizeKeyFromKeyTag": true,
     "TargetFactory": true,
--- a/devtools/.eslintrc.xpcshell.js
+++ b/devtools/.eslintrc.xpcshell.js
@@ -1,19 +1,19 @@
 // Parent config file for all devtools xpcshell files.
 module.exports = {
   "extends": [
-    "../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ],
   "rules": {
     // Allow non-camelcase so that run_test doesn't produce a warning.
-    "camelcase": 0,
+    "camelcase": "off",
     // Allow using undefined variables so that tests can refer to functions
     // and variables defined in head.js files, without having to maintain a
     // list of globals in each .eslintrc file.
     // Note that bug 1168340 will eventually help auto-registering globals
     // from head.js files.
-    "no-undef": 0,
-    "block-scoped-var": 0,
+    "no-undef": "off",
+    "block-scoped-var": "off",
     // Tests can always import anything.
-    "mozilla/reject-some-requires": 0,
+    "mozilla/reject-some-requires": "off",
   }
 };
--- a/devtools/client/memory/.eslintrc.js
+++ b/devtools/client/memory/.eslintrc.js
@@ -1,11 +1,11 @@
-"use strict";
-
-module.exports = {
-  "env": {
-    "browser": true,
-  },
-  "globals": {
-    "d3": true,
-    "dagreD3": true,
-  }
-};
+"use strict";
+
+module.exports = {
+  "env": {
+    "browser": true,
+  },
+  "globals": {
+    "d3": true,
+    "dagreD3": true,
+  }
+};
--- a/devtools/shared/security/tests/chrome/.eslintrc.js
+++ b/devtools/shared/security/tests/chrome/.eslintrc.js
@@ -1,6 +1,6 @@
 "use strict";
 
 module.exports = {
   // Extend from the shared list of defined globals for mochitests.
-  "extends": "../../../../../testing/mochitest/chrome.eslintrc.js"
+  "extends": "plugin:mozilla/chrome-test"
 };
--- a/devtools/shared/webconsole/test/.eslintrc.js
+++ b/devtools/shared/webconsole/test/.eslintrc.js
@@ -1,6 +1,6 @@
 "use strict";
 
 module.exports = {
   // Extend from the shared list of defined globals for mochitests.
-  "extends": "../../../../testing/mochitest/chrome.eslintrc.js"
+  "extends": "plugin:mozilla/chrome-test"
 };
--- a/security/manager/ssl/tests/mochitest/browser/.eslintrc.js
+++ b/security/manager/ssl/tests/mochitest/browser/.eslintrc.js
@@ -1,5 +1,5 @@
 "use strict";
 
 module.exports = { // eslint-disable-line no-undef
-  "extends": "../../../../../../testing/mochitest/browser.eslintrc.js"
+  "extends": "plugin:mozilla/browser-test"
 };
--- a/security/manager/ssl/tests/mochitest/mixedcontent/.eslintrc.js
+++ b/security/manager/ssl/tests/mochitest/mixedcontent/.eslintrc.js
@@ -1,9 +1,9 @@
 "use strict";
 
 module.exports = { // eslint-disable-line no-undef
-  "extends": "../../../../../../testing/mochitest/mochitest.eslintrc.js",
+  "extends": "plugin:mozilla/mochitest-test",
   "rules": {
 	// Boilerplate runTest and afterNavigationtest calls use opening braces on newline.
     "brace-style": "off"
   }
 };
--- a/security/manager/ssl/tests/mochitest/stricttransportsecurity/.eslintrc.js
+++ b/security/manager/ssl/tests/mochitest/stricttransportsecurity/.eslintrc.js
@@ -1,9 +1,9 @@
 "use strict";
 
 module.exports = { // eslint-disable-line no-undef
   // mochitest-chrome tests also exist in this directory, but don't appear to
   // use anything not also available to plain mochitests. Since plain mochitests
   // are the majority, we take the safer option and only extend the
   // mochitest-plain eslintrc file.
-  "extends": "../../../../../../testing/mochitest/mochitest.eslintrc.js"
+  "extends": "plugin:mozilla/mochitest-test"
 };
--- a/security/manager/ssl/tests/unit/.eslintrc.js
+++ b/security/manager/ssl/tests/unit/.eslintrc.js
@@ -1,5 +1,5 @@
 "use strict";
 
 module.exports = { // eslint-disable-line no-undef
-  "extends": "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+  "extends": "plugin:mozilla/xpcshell-test"
 };
--- a/services/cloudsync/tests/mochitest/.eslintrc.js
+++ b/services/cloudsync/tests/mochitest/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/services/cloudsync/tests/xpcshell/.eslintrc.js
+++ b/services/cloudsync/tests/xpcshell/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/services/common/tests/unit/.eslintrc.js
+++ b/services/common/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/services/crypto/component/tests/unit/.eslintrc.js
+++ b/services/crypto/component/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/services/crypto/tests/unit/.eslintrc.js
+++ b/services/crypto/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/services/fxaccounts/tests/browser/.eslintrc.js
+++ b/services/fxaccounts/tests/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/services/fxaccounts/tests/mochitest/.eslintrc.js
+++ b/services/fxaccounts/tests/mochitest/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/mochitest.eslintrc.js"
+    "plugin:mozilla/mochitest-test"
   ]
 };
--- a/services/fxaccounts/tests/xpcshell/.eslintrc.js
+++ b/services/fxaccounts/tests/xpcshell/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/services/sync/tests/tps/.eslintrc.js
+++ b/services/sync/tests/tps/.eslintrc.js
@@ -1,13 +1,13 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/mochitest.eslintrc.js"
+    "plugin:mozilla/mochitest-test"
   ],
 
   globals: {
     // Globals specific to mozmill
     "assert": false,
     "controller": false,
     "findElement": false,
     "mozmill": false,
--- a/services/sync/tests/unit/.eslintrc.js
+++ b/services/sync/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/storage/test/unit/.eslintrc.js
+++ b/storage/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/aboutmemory/tests/.eslintrc.js
+++ b/toolkit/components/aboutmemory/tests/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/toolkit/components/aboutmemory/tests/xpcshell/.eslintrc.js
+++ b/toolkit/components/aboutmemory/tests/xpcshell/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/aboutperformance/tests/browser/.eslintrc.js
+++ b/toolkit/components/aboutperformance/tests/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/components/addoncompat/tests/browser/.eslintrc.js
+++ b/toolkit/components/addoncompat/tests/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/components/alerts/test/.eslintrc.js
+++ b/toolkit/components/alerts/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/mochitest.eslintrc.js"
+    "plugin:mozilla/mochitest-test"
   ]
 };
--- a/toolkit/components/asyncshutdown/tests/xpcshell/.eslintrc.js
+++ b/toolkit/components/asyncshutdown/tests/xpcshell/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/autocomplete/tests/unit/.eslintrc.js
+++ b/toolkit/components/autocomplete/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/captivedetect/test/unit/.eslintrc.js
+++ b/toolkit/components/captivedetect/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/commandlines/test/unit/.eslintrc.js
+++ b/toolkit/components/commandlines/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/commandlines/test/unit_unix/.eslintrc.js
+++ b/toolkit/components/commandlines/test/unit_unix/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/commandlines/test/unit_win/.eslintrc.js
+++ b/toolkit/components/commandlines/test/unit_win/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/contentprefs/tests/mochitest/.eslintrc.js
+++ b/toolkit/components/contentprefs/tests/mochitest/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/mochitest.eslintrc.js"
+    "plugin:mozilla/mochitest-test"
   ]
 };
--- a/toolkit/components/contentprefs/tests/unit/.eslintrc.js
+++ b/toolkit/components/contentprefs/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/contentprefs/tests/unit_cps2/.eslintrc.js
+++ b/toolkit/components/contentprefs/tests/unit_cps2/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/contextualidentity/tests/unit/.eslintrc.js
+++ b/toolkit/components/contextualidentity/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/crashes/tests/xpcshell/.eslintrc.js
+++ b/toolkit/components/crashes/tests/xpcshell/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/crashmonitor/test/unit/.eslintrc.js
+++ b/toolkit/components/crashmonitor/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/ctypes/tests/chrome/.eslintrc.js
+++ b/toolkit/components/ctypes/tests/chrome/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/toolkit/components/ctypes/tests/unit/.eslintrc.js
+++ b/toolkit/components/ctypes/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/downloads/test/unit/.eslintrc.js
+++ b/toolkit/components/downloads/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/extensions/test/browser/.eslintrc.js
+++ b/toolkit/components/extensions/test/browser/.eslintrc.js
@@ -1,19 +1,19 @@
 "use strict";
 
-module.exports = { // eslint-disable-line no-undef
-  "extends": "../../../../../testing/mochitest/mochitest.eslintrc.js",
+module.exports = {
+  "extends": "plugin:mozilla/mochitest-test",
 
   "env": {
     "webextensions": true,
   },
 
   "globals": {
     "BrowserTestUtils": true,
     "ExtensionTestUtils": false,
     "XPCOMUtils": true,
   },
 
   "rules": {
-    "no-shadow": 0,
+    "no-shadow": "off",
   },
 };
--- a/toolkit/components/extensions/test/mochitest/.eslintrc.js
+++ b/toolkit/components/extensions/test/mochitest/.eslintrc.js
@@ -1,12 +1,12 @@
 "use strict";
 
 module.exports = { // eslint-disable-line no-undef
-  "extends": "../../../../../testing/mochitest/mochitest.eslintrc.js",
+  "extends": "plugin:mozilla/mochitest-test",
 
   "env": {
     "browser": true,
     "webextensions": true,
   },
 
   "globals": {
     "onmessage": true,
--- a/toolkit/components/extensions/test/xpcshell/.eslintrc.js
+++ b/toolkit/components/extensions/test/xpcshell/.eslintrc.js
@@ -1,12 +1,12 @@
 "use strict";
 
-module.exports = { // eslint-disable-line no-undef
-  "extends": "../../../../../testing/xpcshell/xpcshell.eslintrc.js",
+module.exports = {
+  "extends": "plugin:mozilla/xpcshell-test",
 
   "globals": {
     "browser": false,
   },
 
   "env": {
     "browser": true,
   }
--- a/toolkit/components/feeds/test/.eslintrc.js
+++ b/toolkit/components/feeds/test/.eslintrc.js
@@ -1,8 +1,8 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/chrome.eslintrc.js",
-    "../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/chrome-test",
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/filepicker/test/unit/.eslintrc.js
+++ b/toolkit/components/filepicker/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/filewatcher/tests/xpcshell/.eslintrc.js
+++ b/toolkit/components/filewatcher/tests/xpcshell/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/formautofill/test/.eslintrc.js
+++ b/toolkit/components/formautofill/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/components/formautofill/test/browser/.eslintrc.js
+++ b/toolkit/components/formautofill/test/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/components/formautofill/test/chrome/.eslintrc.js
+++ b/toolkit/components/formautofill/test/chrome/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/toolkit/components/formautofill/test/xpcshell/.eslintrc.js
+++ b/toolkit/components/formautofill/test/xpcshell/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/jsdownloads/test/browser/.eslintrc.js
+++ b/toolkit/components/jsdownloads/test/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/components/jsdownloads/test/data/.eslintrc.js
+++ b/toolkit/components/jsdownloads/test/data/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/jsdownloads/test/unit/.eslintrc.js
+++ b/toolkit/components/jsdownloads/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/lz4/tests/xpcshell/.eslintrc.js
+++ b/toolkit/components/lz4/tests/xpcshell/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/mediasniffer/test/unit/.eslintrc.js
+++ b/toolkit/components/mediasniffer/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/mozintl/test/.eslintrc.js
+++ b/toolkit/components/mozintl/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/mozprotocol/tests/.eslintrc.js
+++ b/toolkit/components/mozprotocol/tests/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ],
 };
--- a/toolkit/components/osfile/tests/mochi/.eslintrc.js
+++ b/toolkit/components/osfile/tests/mochi/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/toolkit/components/osfile/tests/xpcshell/.eslintrc.js
+++ b/toolkit/components/osfile/tests/xpcshell/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/passwordmgr/test/.eslintrc.js
+++ b/toolkit/components/passwordmgr/test/.eslintrc.js
@@ -1,13 +1,13 @@
 "use strict";
 
 module.exports = { // eslint-disable-line no-undef
   "extends": [
-    "../../../../testing/mochitest/mochitest.eslintrc.js",
-    "../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/mochitest-test",
+    "plugin:mozilla/chrome-test"
   ],
   "rules": {
     "brace-style": "off",
     "no-undef": "off",
     "no-unused-vars": "off",
   },
 };
--- a/toolkit/components/passwordmgr/test/browser/.eslintrc.js
+++ b/toolkit/components/passwordmgr/test/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/components/passwordmgr/test/unit/.eslintrc.js
+++ b/toolkit/components/passwordmgr/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/perf/.eslintrc.js
+++ b/toolkit/components/perf/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/toolkit/components/perfmonitoring/tests/browser/.eslintrc.js
+++ b/toolkit/components/perfmonitoring/tests/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/components/places/tests/.eslintrc.js
+++ b/toolkit/components/places/tests/.eslintrc.js
@@ -1,9 +1,9 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/mochitest.eslintrc.js",
-    "../../../../testing/mochitest/chrome.eslintrc.js",
-    "../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/mochitest-test",
+    "plugin:mozilla/chrome-test",
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/places/tests/bookmarks/.eslintrc.js
+++ b/toolkit/components/places/tests/bookmarks/.eslintrc.js
@@ -1,10 +1,10 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ],
   "parserOptions": {
     "ecmaVersion": 8,
   },
 };
--- a/toolkit/components/places/tests/browser/.eslintrc.js
+++ b/toolkit/components/places/tests/browser/.eslintrc.js
@@ -1,8 +1,8 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js",
-    "../../../../../testing/mochitest/mochitest.eslintrc.js"
+    "plugin:mozilla/browser-test",
+    "plugin:mozilla/mochitest-test"
   ]
 };
--- a/toolkit/components/places/tests/chrome/.eslintrc.js
+++ b/toolkit/components/places/tests/chrome/.eslintrc.js
@@ -1,8 +1,8 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/chrome.eslintrc.js",
-    "../../../../../testing/mochitest/mochitest.eslintrc.js"
+    "plugin:mozilla/chrome-test",
+    "plugin:mozilla/mochitest-test"
   ]
 };
--- a/toolkit/components/places/tests/expiration/.eslintrc.js
+++ b/toolkit/components/places/tests/expiration/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/places/tests/favicons/.eslintrc.js
+++ b/toolkit/components/places/tests/favicons/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/places/tests/history/.eslintrc.js
+++ b/toolkit/components/places/tests/history/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/places/tests/migration/.eslintrc.js
+++ b/toolkit/components/places/tests/migration/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/places/tests/queries/.eslintrc.js
+++ b/toolkit/components/places/tests/queries/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/places/tests/unifiedcomplete/.eslintrc.js
+++ b/toolkit/components/places/tests/unifiedcomplete/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/places/tests/unit/.eslintrc.js
+++ b/toolkit/components/places/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/printing/tests/.eslintrc.js
+++ b/toolkit/components/printing/tests/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ],
 };
--- a/toolkit/components/promiseworker/tests/xpcshell/.eslintrc.js
+++ b/toolkit/components/promiseworker/tests/xpcshell/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/prompts/test/.eslintrc.js
+++ b/toolkit/components/prompts/test/.eslintrc.js
@@ -1,11 +1,11 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/mochitest.eslintrc.js"
+    "plugin:mozilla/mochitest-test"
   ],
   "rules": {
     // ownerGlobal doesn't exist in content privileged windows.
     "mozilla/use-ownerGlobal": "off",
   }
 };
--- a/toolkit/components/reader/test/.eslintrc.js
+++ b/toolkit/components/reader/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/components/remotebrowserutils/tests/browser/.eslintrc.js
+++ b/toolkit/components/remotebrowserutils/tests/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/components/satchel/test/.eslintrc.js
+++ b/toolkit/components/satchel/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/mochitest.eslintrc.js"
+    "plugin:mozilla/mochitest-test"
   ]
 };
--- a/toolkit/components/satchel/test/browser/.eslintrc.js
+++ b/toolkit/components/satchel/test/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/components/satchel/test/unit/.eslintrc.js
+++ b/toolkit/components/satchel/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/search/tests/xpcshell/.eslintrc.js
+++ b/toolkit/components/search/tests/xpcshell/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/social/test/xpcshell/.eslintrc.js
+++ b/toolkit/components/social/test/xpcshell/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/startup/tests/browser/.eslintrc.js
+++ b/toolkit/components/startup/tests/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/components/startup/tests/unit/.eslintrc.js
+++ b/toolkit/components/startup/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/telemetry/tests/browser/.eslintrc.js
+++ b/toolkit/components/telemetry/tests/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/components/telemetry/tests/unit/.eslintrc.js
+++ b/toolkit/components/telemetry/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/terminator/tests/xpcshell/.eslintrc.js
+++ b/toolkit/components/terminator/tests/xpcshell/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/thumbnails/test/.eslintrc.js
+++ b/toolkit/components/thumbnails/test/.eslintrc.js
@@ -1,8 +1,8 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js",
-    "../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/browser-test",
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/timermanager/tests/unit/.eslintrc.js
+++ b/toolkit/components/timermanager/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/tooltiptext/tests/.eslintrc.js
+++ b/toolkit/components/tooltiptext/tests/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/components/url-classifier/tests/mochitest/.eslintrc.js
+++ b/toolkit/components/url-classifier/tests/mochitest/.eslintrc.js
@@ -1,8 +1,8 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/mochitest.eslintrc.js",
-    "../../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/mochitest-test",
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/toolkit/components/url-classifier/tests/unit/.eslintrc.js
+++ b/toolkit/components/url-classifier/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/urlformatter/tests/unit/.eslintrc.js
+++ b/toolkit/components/urlformatter/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/components/viewsource/test/.eslintrc.js
+++ b/toolkit/components/viewsource/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/toolkit/components/viewsource/test/browser/.eslintrc.js
+++ b/toolkit/components/viewsource/test/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/components/windowcreator/test/.eslintrc.js
+++ b/toolkit/components/windowcreator/test/.eslintrc.js
@@ -1,9 +1,9 @@
 "use strict";
 
 module.exports = { // eslint-disable-line no-undef
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js",
-    "../../../../testing/mochitest/chrome.eslintrc.js",
-    "../../../../testing/mochitest/mochitest.eslintrc.js",
+    "plugin:mozilla/browser-test",
+    "plugin:mozilla/chrome-test",
+    "plugin:mozilla/mochitest-test",
   ]
 };
--- a/toolkit/components/windowcreator/tests/unit/.eslintrc.js
+++ b/toolkit/components/windowcreator/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = { // eslint-disable-line no-undef
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js",
+    "plugin:mozilla/xpcshell-test",
   ]
 };
--- a/toolkit/components/windowwatcher/test/.eslintrc.js
+++ b/toolkit/components/windowwatcher/test/.eslintrc.js
@@ -1,9 +1,9 @@
 "use strict";
 
 module.exports = { // eslint-disable-line no-undef
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js",
-    "../../../../testing/mochitest/chrome.eslintrc.js",
-    "../../../../testing/mochitest/mochitest.eslintrc.js",
+    "plugin:mozilla/browser-test",
+    "plugin:mozilla/chrome-test",
+    "plugin:mozilla/mochitest-test",
   ]
 };
--- a/toolkit/components/workerloader/tests/.eslintrc.js
+++ b/toolkit/components/workerloader/tests/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/toolkit/components/xulstore/tests/chrome/.eslintrc.js
+++ b/toolkit/components/xulstore/tests/chrome/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/toolkit/components/xulstore/tests/xpcshell/.eslintrc.js
+++ b/toolkit/components/xulstore/tests/xpcshell/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/content/tests/browser/.eslintrc.js
+++ b/toolkit/content/tests/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/content/tests/chrome/.eslintrc.js
+++ b/toolkit/content/tests/chrome/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/toolkit/content/tests/mochitest/.eslintrc.js
+++ b/toolkit/content/tests/mochitest/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/mochitest.eslintrc.js"
+    "plugin:mozilla/mochitest-test"
   ]
 };
--- a/toolkit/content/tests/unit/.eslintrc.js
+++ b/toolkit/content/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/content/tests/widgets/.eslintrc.js
+++ b/toolkit/content/tests/widgets/.eslintrc.js
@@ -1,8 +1,8 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/mochitest.eslintrc.js",
-    "../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/mochitest-test",
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/toolkit/crashreporter/test/browser/.eslintrc.js
+++ b/toolkit/crashreporter/test/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/crashreporter/test/unit/.eslintrc.js
+++ b/toolkit/crashreporter/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/crashreporter/test/unit_ipc/.eslintrc.js
+++ b/toolkit/crashreporter/test/unit_ipc/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/forgetaboutsite/test/browser/.eslintrc.js
+++ b/toolkit/forgetaboutsite/test/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/forgetaboutsite/test/unit/.eslintrc.js
+++ b/toolkit/forgetaboutsite/test/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/modules/subprocess/test/xpcshell/.eslintrc.js
+++ b/toolkit/modules/subprocess/test/xpcshell/.eslintrc.js
@@ -1,5 +1,5 @@
 "use strict";
 
-module.exports = { // eslint-disable-line no-undef
-  "extends": "../../../../../testing/xpcshell/xpcshell.eslintrc.js",
+module.exports = {
+  "extends": "plugin:mozilla/xpcshell-test",
 };
--- a/toolkit/modules/tests/browser/.eslintrc.js
+++ b/toolkit/modules/tests/browser/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/modules/tests/chrome/.eslintrc.js
+++ b/toolkit/modules/tests/chrome/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/toolkit/modules/tests/modules/.eslintrc.js
+++ b/toolkit/modules/tests/modules/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/modules/tests/xpcshell/.eslintrc.js
+++ b/toolkit/modules/tests/xpcshell/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/mozapps/downloads/tests/chrome/.eslintrc.js
+++ b/toolkit/mozapps/downloads/tests/chrome/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/toolkit/mozapps/downloads/tests/unit/.eslintrc.js
+++ b/toolkit/mozapps/downloads/tests/unit/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/mozapps/extensions/test/browser/.eslintrc.js
+++ b/toolkit/mozapps/extensions/test/browser/.eslintrc.js
@@ -1,11 +1,11 @@
 "use strict";
 
 module.exports = { // eslint-disable-line no-undef
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ],
 
   "rules": {
     "no-unused-vars": ["error", {"args": "none", "varsIgnorePattern": "^(Cc|Ci|Cr|Cu|EXPORTED_SYMBOLS|end_test)$"}],
   }
 };
--- a/toolkit/mozapps/extensions/test/mochitest/.eslintrc.js
+++ b/toolkit/mozapps/extensions/test/mochitest/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = { // eslint-disable-line no-undef
   "extends": [
-    "../../../../../testing/mochitest/mochitest.eslintrc.js"
+    "plugin:mozilla/mochitest-test"
   ]
 };
--- a/toolkit/mozapps/extensions/test/xpcshell/.eslintrc.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/.eslintrc.js
@@ -1,10 +1,10 @@
 "use strict";
 
 module.exports = { // eslint-disable-line no-undef
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ],
   "rules": {
     "no-unused-vars": ["error", {"args": "none", "varsIgnorePattern": "^(Cc|Ci|Cr|Cu|EXPORTED_SYMBOLS|end_test)$"}],
   }
 };
--- a/toolkit/mozapps/extensions/test/xpinstall/.eslintrc.js
+++ b/toolkit/mozapps/extensions/test/xpinstall/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
-module.exports = { // eslint-disable-line no-undef
+module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/browser-test"
   ]
 };
--- a/toolkit/mozapps/update/tests/chrome/.eslintrc.js
+++ b/toolkit/mozapps/update/tests/chrome/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/toolkit/mozapps/update/tests/unit_aus_update/.eslintrc.js
+++ b/toolkit/mozapps/update/tests/unit_aus_update/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/mozapps/update/tests/unit_base_updater/.eslintrc.js
+++ b/toolkit/mozapps/update/tests/unit_base_updater/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/mozapps/update/tests/unit_service_updater/.eslintrc.js
+++ b/toolkit/mozapps/update/tests/unit_service_updater/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
+    "plugin:mozilla/xpcshell-test"
   ]
 };
--- a/toolkit/profile/test/.eslintrc.js
+++ b/toolkit/profile/test/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/toolkit/themes/osx/mochitests/.eslintrc.js
+++ b/toolkit/themes/osx/mochitests/.eslintrc.js
@@ -1,7 +1,7 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../../testing/mochitest/chrome.eslintrc.js"
+    "plugin:mozilla/chrome-test"
   ]
 };
--- a/toolkit/xre/test/.eslintrc.js
+++ b/toolkit/xre/test/.eslintrc.js
@@ -1,8 +1,8 @@
 "use strict";
 
 module.exports = {
   "extends": [
-    "../../../testing/mochitest/mochitest.eslintrc.js",
-    "../../../testing/mochitest/browser.eslintrc.js"
+    "plugin:mozilla/mochitest-test",
+    "plugin:mozilla/browser-test"
   ]
 };