diff --git a/experiments/field_trials.py b/experiments/field_trials.py
index 88c6a7e..e40af98 100755
--- a/experiments/field_trials.py
+++ b/experiments/field_trials.py
@@ -736,9 +736,6 @@
     FieldTrial('WebRTC-SetSocketReceiveBuffer',
                42223976,
                date(2024, 4, 1)),
-    FieldTrial('WebRTC-SignalNetworkPreferenceChange',
-               42221944,
-               date(2024, 4, 1)),
     FieldTrial('WebRTC-SimulcastEncoderAdapter-GetEncoderInfoOverride',
                NO_BUG,
                date(2024, 4, 1)),
@@ -878,7 +875,7 @@
 ])  # yapf: disable
 
 POLICY_EXEMPT_FIELD_TRIALS_DIGEST: str = \
-    '84f7bc41874cd36cc4d5306e86972f53fef83f29'
+    'b0b0cce63bfdf327229b569576a07b716db186b7'
 
 REGISTERED_FIELD_TRIALS: FrozenSet[FieldTrial] = ACTIVE_FIELD_TRIALS.union(
     POLICY_EXEMPT_FIELD_TRIALS)
diff --git a/rtc_base/network.cc b/rtc_base/network.cc
index b5530ab..79c9699 100644
--- a/rtc_base/network.cc
+++ b/rtc_base/network.cc
@@ -306,14 +306,8 @@
   return nullptr;
 }
 
-NetworkManagerBase::NetworkManagerBase(
-    const webrtc::FieldTrialsView* field_trials)
-    : field_trials_(field_trials),
-      enumeration_permission_(NetworkManager::ENUMERATION_ALLOWED),
-      signal_network_preference_change_(
-          field_trials
-              ? field_trials->IsEnabled("WebRTC-SignalNetworkPreferenceChange")
-              : false) {}
+NetworkManagerBase::NetworkManagerBase()
+    : enumeration_permission_(NetworkManager::ENUMERATION_ALLOWED) {}
 
 NetworkManager::EnumerationPermission
 NetworkManagerBase::enumeration_permission() const {
@@ -439,9 +433,6 @@
       }
       if (net->network_preference() != existing_net->network_preference()) {
         existing_net->set_network_preference(net->network_preference());
-        if (signal_network_preference_change_) {
-          *changed = true;
-        }
       }
       RTC_DCHECK(net->active());
     }
@@ -546,14 +537,13 @@
     NetworkMonitorFactory* network_monitor_factory,
     SocketFactory* socket_factory,
     const webrtc::FieldTrialsView* field_trials_view)
-    : NetworkManagerBase(field_trials_view),
-      field_trials_(field_trials_view),
+    : field_trials_(field_trials_view),
       network_monitor_factory_(network_monitor_factory),
       socket_factory_(socket_factory),
       allow_mac_based_ipv6_(
-          field_trials()->IsEnabled("WebRTC-AllowMACBasedIPv6")),
+          field_trials_->IsEnabled("WebRTC-AllowMACBasedIPv6")),
       bind_using_ifname_(
-          !field_trials()->IsDisabled("WebRTC-BindUsingInterfaceName")) {
+          !field_trials_->IsDisabled("WebRTC-BindUsingInterfaceName")) {
   RTC_DCHECK(socket_factory_);
 }
 
@@ -998,7 +988,7 @@
   }
   if (!network_monitor_) {
     network_monitor_.reset(
-        network_monitor_factory_->CreateNetworkMonitor(*field_trials()));
+        network_monitor_factory_->CreateNetworkMonitor(*field_trials_));
     if (!network_monitor_) {
       return;
     }
diff --git a/rtc_base/network.h b/rtc_base/network.h
index f75cf0d..cbc6402 100644
--- a/rtc_base/network.h
+++ b/rtc_base/network.h
@@ -191,7 +191,7 @@
 // Base class for NetworkManager implementations.
 class RTC_EXPORT NetworkManagerBase : public NetworkManager {
  public:
-  NetworkManagerBase(const webrtc::FieldTrialsView* field_trials = nullptr);
+  NetworkManagerBase();
 
   std::vector<const Network*> GetNetworks() const override;
   std::vector<const Network*> GetAnyAddressNetworks() override;
@@ -237,15 +237,8 @@
                                          int prefix_length,
                                          AdapterType type) const;
 
-  const webrtc::FieldTrialsView* field_trials() const {
-    return field_trials_.get();
-  }
-
  private:
   friend class NetworkTest;
-  webrtc::AlwaysValidPointer<const webrtc::FieldTrialsView,
-                             webrtc::FieldTrialBasedConfig>
-      field_trials_;
   EnumerationPermission enumeration_permission_;
 
   std::vector<Network*> networks_;
@@ -262,10 +255,6 @@
   // network id 0 because we only compare the network ids in the old and the new
   // best connections in the transport channel.
   uint16_t next_available_network_id_ = 1;
-
-  // True if calling network_preference() with a changed value
-  // should result in firing the SignalNetworkChanged signal.
-  bool signal_network_preference_change_ = false;
 };
 
 // Basic implementation of the NetworkManager interface that gets list
