diff --git a/dom/serializers/moz.build b/dom/serializers/moz.build
index b0a0a35b6f2c27acc2a81bf3a0e476df84ca433f..79c820664d8a474e99f4b7b245c22d679fe2833e 100644
--- a/dom/serializers/moz.build
+++ b/dom/serializers/moz.build
@@ -33,4 +33,6 @@ UNIFIED_SOURCES += [
 
 FINAL_LIBRARY = "xul"
 
+REQUIRES_UNIFIED_BUILD = True
+
 CRASHTEST_MANIFESTS += ["crashtests/crashtests.list"]
diff --git a/dom/serializers/nsDocumentEncoder.cpp b/dom/serializers/nsDocumentEncoder.cpp
index fd5cea1e842c4095353ad9075fb4a749f9f613a5..3fbbb942546b2d2c863450eed8ab8f2a05391073 100644
--- a/dom/serializers/nsDocumentEncoder.cpp
+++ b/dom/serializers/nsDocumentEncoder.cpp
@@ -17,8 +17,6 @@
 #include "nsCRT.h"
 #include "nsIContentSerializer.h"
 #include "nsIDocumentEncoder.h"
-#include "nsINode.h"
-#include "nsIContentInlines.h"
 #include "nsComponentManagerUtils.h"
 #include "nsIOutputStream.h"
 #include "nsRange.h"
diff --git a/intl/hyphenation/glue/moz.build b/intl/hyphenation/glue/moz.build
index 306edca2ebc0ded99ee69d033cc2573256e3ca18..6e700f762acea4fd7586f93907fe30d5d06a061b 100644
--- a/intl/hyphenation/glue/moz.build
+++ b/intl/hyphenation/glue/moz.build
@@ -20,3 +20,5 @@ FINAL_LIBRARY = "xul"
 
 if CONFIG["COMPILE_ENVIRONMENT"]:
     CbindgenHeader("mapped_hyph.h", inputs=["/third_party/rust/mapped_hyph"])
+
+REQUIRES_UNIFIED_BUILD = True
diff --git a/intl/hyphenation/glue/nsHyphenator.cpp b/intl/hyphenation/glue/nsHyphenator.cpp
index 129f30f9d550d03ea34fe46517c57d50de2a39b7..47b0964e49c3344fc4fd8e7178f9a4ca5c7ef8ad 100644
--- a/intl/hyphenation/glue/nsHyphenator.cpp
+++ b/intl/hyphenation/glue/nsHyphenator.cpp
@@ -6,7 +6,6 @@
 #include "nsHyphenator.h"
 
 #include "mozilla/dom/ContentChild.h"
-#include "mozilla/Omnijar.h"
 #include "nsContentUtils.h"
 #include "nsIChannel.h"
 #include "nsIFile.h"
@@ -17,7 +16,6 @@
 #include "nsNetUtil.h"
 #include "nsUnicodeProperties.h"
 #include "nsUTF8Utils.h"
-#include "nsZipArchive.h"
 
 #include "mapped_hyph.h"
 
diff --git a/js/xpconnect/wrappers/FilteringWrapper.cpp b/js/xpconnect/wrappers/FilteringWrapper.cpp
index f4812e04ba8241e5316c97d822c26ec61bc28c62..53c95c95919104d4a4954e360de48901877e1c99 100644
--- a/js/xpconnect/wrappers/FilteringWrapper.cpp
+++ b/js/xpconnect/wrappers/FilteringWrapper.cpp
@@ -11,7 +11,6 @@
 #include "nsJSUtils.h"
 #include "mozilla/ErrorResult.h"
 #include "xpcpublic.h"
-#include "xpcprivate.h"
 
 #include "jsapi.h"
 #include "js/Symbol.h"
@@ -63,9 +62,8 @@ bool AppendCrossOriginWhitelistedPropNames(JSContext* cx,
     MOZ_ASSERT(!props[n].isSymbol(), "Unexpected existing symbol-name prop");
   }
 #endif
-  if (!props.reserve(
-          props.length() +
-          mozilla::ArrayLength(sCrossOriginWhitelistedSymbolCodes))) {
+  if (!props.reserve(props.length() +
+                     ArrayLength(sCrossOriginWhitelistedSymbolCodes))) {
     return false;
   }
 
diff --git a/js/xpconnect/wrappers/WrapperFactory.cpp b/js/xpconnect/wrappers/WrapperFactory.cpp
index 43d7776963b6e0fd63bf21391209242d26110786..0a90c9e448aa06b458bc8d9a33e2d7818f6b7770 100644
--- a/js/xpconnect/wrappers/WrapperFactory.cpp
+++ b/js/xpconnect/wrappers/WrapperFactory.cpp
@@ -30,13 +30,6 @@ using namespace mozilla;
 
 namespace xpc {
 
-#ifndef MOZ_UNIFIED_BUILD
-extern template class FilteringWrapper<js::CrossCompartmentSecurityWrapper,
-                                       Opaque>;
-extern template class FilteringWrapper<js::CrossCompartmentSecurityWrapper,
-                                       OpaqueWithCall>;
-#endif
-
 // When chrome pulls a naked property across the membrane using
 // .wrappedJSObject, we want it to cross the membrane into the
 // chrome compartment without automatically being wrapped into an
diff --git a/js/xpconnect/wrappers/moz.build b/js/xpconnect/wrappers/moz.build
index fcf07a01818cdca6a5fa3b8010c938026fd97c72..8d19a30cb694f7855ded1660ec932747f6e412c9 100644
--- a/js/xpconnect/wrappers/moz.build
+++ b/js/xpconnect/wrappers/moz.build
@@ -16,7 +16,7 @@ UNIFIED_SOURCES += [
     "WrapperFactory.cpp",
 ]
 
-# XrayWrapper needs to be built separately because of template instantiations.
+# XrayWrapper needs to be built separately becaue of template instantiations.
 SOURCES += [
     "XrayWrapper.cpp",
 ]
@@ -30,3 +30,5 @@ LOCAL_INCLUDES += [
     "../src",
     "/caps",
 ]
+
+REQUIRES_UNIFIED_BUILD = True
diff --git a/modules/libjar/zipwriter/moz.build b/modules/libjar/zipwriter/moz.build
index 4d94522536313395a418007c707af02a5de4f56d..58d9b1d81d24158cbf87ad9993e75be0eccd884f 100644
--- a/modules/libjar/zipwriter/moz.build
+++ b/modules/libjar/zipwriter/moz.build
@@ -25,3 +25,5 @@ XPCOM_MANIFESTS += [
 ]
 
 FINAL_LIBRARY = "xul"
+
+REQUIRES_UNIFIED_BUILD = True
diff --git a/modules/libmar/sign/moz.build b/modules/libmar/sign/moz.build
index 92f0d6cefd33b82ad813a7e9272de76afed2dc21..f280e50381081994afcbecbfc4f7e26ecf45c300 100644
--- a/modules/libmar/sign/moz.build
+++ b/modules/libmar/sign/moz.build
@@ -28,3 +28,5 @@ c11_flags = ["-std=gnu11"]
 if CONFIG["CC_TYPE"] == "clang-cl":
     c11_flags.insert(0, "-Xclang")
 CFLAGS += c11_flags
+
+REQUIRES_UNIFIED_BUILD = True
diff --git a/security/manager/pki/moz.build b/security/manager/pki/moz.build
index 5f0bf9573874ca55b29731a273ee6ddaa69ef4a9..73d3d09eba45362933c59d223c4e9d166fb80c56 100644
--- a/security/manager/pki/moz.build
+++ b/security/manager/pki/moz.build
@@ -32,3 +32,5 @@ if CONFIG["CC_TYPE"] in ("clang", "gcc"):
     CXXFLAGS += [
         "-Wno-unused-parameter",
     ]
+
+REQUIRES_UNIFIED_BUILD = True
diff --git a/security/manager/pki/nsNSSDialogHelper.cpp b/security/manager/pki/nsNSSDialogHelper.cpp
index 18691aa6e97222d6be7959fa449f631df559ae51..4b204af85d1fc26bce63cf0206e00c5980a5e419 100644
--- a/security/manager/pki/nsNSSDialogHelper.cpp
+++ b/security/manager/pki/nsNSSDialogHelper.cpp
@@ -6,7 +6,6 @@
 
 #include "nsNSSDialogHelper.h"
 
-#include "mozIDOMWindow.h"
 #include "mozilla/dom/ScriptSettings.h"
 #include "nsCOMPtr.h"
 #include "nsIWindowWatcher.h"
diff --git a/security/manager/pki/nsNSSDialogs.cpp b/security/manager/pki/nsNSSDialogs.cpp
index b1c1a939d5c503ce9cc44fbe769ccfd7f3faeef2..54705052daaff68f3b6f7c2576924acb22141f06 100644
--- a/security/manager/pki/nsNSSDialogs.cpp
+++ b/security/manager/pki/nsNSSDialogs.cpp
@@ -25,7 +25,6 @@
 #include "nsIX509Cert.h"
 #include "nsNSSDialogHelper.h"
 #include "nsPromiseFlatString.h"
-#include "nsServiceManagerUtils.h"
 #include "nsString.h"
 #include "nsVariant.h"
 
diff --git a/startupcache/StartupCacheInfo.cpp b/startupcache/StartupCacheInfo.cpp
index 184fa1f42f92375eb24a1ebdf4361a668976392a..461948d9c2f29e90b605d4f8d58f6113d5d5276b 100644
--- a/startupcache/StartupCacheInfo.cpp
+++ b/startupcache/StartupCacheInfo.cpp
@@ -3,12 +3,10 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-#include "StartupCache.h"
 #include "StartupCacheInfo.h"
 
 #include "mozilla/Components.h"
 #include "mozilla/RefPtr.h"
-#include "mozilla/StaticPtr.h"
 
 using namespace mozilla;
 using namespace mozilla::scache;
diff --git a/startupcache/moz.build b/startupcache/moz.build
index a05aebd4729950904e85b0f6706f204daec6d5c0..4ee94be455ee43f2b616d8c2882da1166028cafd 100644
--- a/startupcache/moz.build
+++ b/startupcache/moz.build
@@ -32,3 +32,5 @@ XPIDL_SOURCES += [
 ]
 
 FINAL_LIBRARY = "xul"
+
+REQUIRES_UNIFIED_BUILD = True
diff --git a/toolkit/components/perfmonitoring/moz.build b/toolkit/components/perfmonitoring/moz.build
index 193e5df7db208eff1ea383f2755ea3b2d63cf649..ca0936822255c0ef442178d974c8b1ef43a1af70 100644
--- a/toolkit/components/perfmonitoring/moz.build
+++ b/toolkit/components/perfmonitoring/moz.build
@@ -21,3 +21,5 @@ LOCAL_INCLUDES += ["/dom/base"]
 FINAL_LIBRARY = "xul"
 
 include("/ipc/chromium/chromium-config.mozbuild")
+
+REQUIRES_UNIFIED_BUILD = True
diff --git a/toolkit/components/printingui/ipc/moz.build b/toolkit/components/printingui/ipc/moz.build
index 99ff60c0e68142625f3a1fd7f039350cc4fad05b..a2aaeae1e53273cc196ce6b56a5598556b9200f1 100644
--- a/toolkit/components/printingui/ipc/moz.build
+++ b/toolkit/components/printingui/ipc/moz.build
@@ -11,3 +11,5 @@ IPDL_SOURCES += [
 include("/ipc/chromium/chromium-config.mozbuild")
 
 FINAL_LIBRARY = "xul"
+
+REQUIRES_UNIFIED_BUILD = True
diff --git a/toolkit/components/startup/moz.build b/toolkit/components/startup/moz.build
index 4127f90e676e4035dc85e0a2bc8027d944edc7fe..c60737f3e840bf134b26918d47318c49668537ef 100644
--- a/toolkit/components/startup/moz.build
+++ b/toolkit/components/startup/moz.build
@@ -22,3 +22,5 @@ FINAL_LIBRARY = "xul"
 
 with Files("**"):
     BUG_COMPONENT = ("Toolkit", "Startup and Profile System")
+
+REQUIRES_UNIFIED_BUILD = True
diff --git a/uriloader/preload/PreloaderBase.cpp b/uriloader/preload/PreloaderBase.cpp
index d61694e38139cb1a34db097f9abea9756256086b..0ad46dc47167b873184f3a6e04b66b8620033089 100644
--- a/uriloader/preload/PreloaderBase.cpp
+++ b/uriloader/preload/PreloaderBase.cpp
@@ -8,11 +8,10 @@
 #include "mozilla/Telemetry.h"
 #include "nsContentUtils.h"
 #include "nsIAsyncVerifyRedirectCallback.h"
-#include "nsIHttpChannel.h"
+#include "nsIChannel.h"
 #include "nsILoadGroup.h"
 #include "nsIInterfaceRequestorUtils.h"
 #include "nsIRedirectResultListener.h"
-#include "nsNetUtil.h"
 
 // Change this if we want to cancel and remove the associated preload on removal
 // of all <link rel=preload> tags from the tree.
diff --git a/uriloader/preload/moz.build b/uriloader/preload/moz.build
index 27a2f8cf0019e1851e2ec449cb6247ef2155158f..39bf8447818d30a6e20bfc0cc12fad52417a24a5 100644
--- a/uriloader/preload/moz.build
+++ b/uriloader/preload/moz.build
@@ -24,3 +24,5 @@ UNIFIED_SOURCES += [
 ]
 
 FINAL_LIBRARY = "xul"
+
+REQUIRES_UNIFIED_BUILD = True