diff --git a/dom/base/Document.cpp b/dom/base/Document.cpp
index ce2cbca..60fda48 100644
--- a/dom/base/Document.cpp
+++ b/dom/base/Document.cpp
@@ -17084,6 +17084,7 @@ void Document::RemoveToplevelLoadingDocument(Document* aDoc) {
 StylePrefersColorScheme Document::PrefersColorScheme(
     IgnoreRFP aIgnoreRFP) const {
   if (aIgnoreRFP == IgnoreRFP::No &&
+      !StaticPrefs::privacy_override_rfp_for_color_scheme() &&
       nsContentUtils::ShouldResistFingerprinting(this)) {
     return StylePrefersColorScheme::Light;
   }
diff --git a/modules/libref/init/StaticPrefList.yaml b/modules/libref/init/StaticPrefList.yaml
index b4b2dc7..e65d43f 100644
--- a/modules/libpref/init/StaticPrefList.yaml
+++ b/modules/libpref/init/StaticPrefList.yaml
@@ -9863,6 +9863,12 @@
   value: false
   mirror: always
 
+# Allows overriding RFP for only the dark/light pref
+- name: privacy.override_rfp_for_color_scheme
+  type: bool
+  value: false
+  mirror: always
+
 # We automatically decline canvas permission requests if they are not initiated
 # from user input. Just in case that breaks something, we allow the user to
 # revert this behavior with this obscure pref. We do not intend to support this
