diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index 51a55ab..b83978f 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -929,7 +929,6 @@
   ]
   deps = [
     ":media_factory",
-    "../api:field_trials_view",
     "../api:libjingle_peerconnection_api",
     "../api:media_stream_interface",
     "../api:refcountedbase",
@@ -937,7 +936,6 @@
     "../api:sequence_checker",
     "../api/environment",
     "../api/neteq:neteq_api",
-    "../api/transport:field_trial_based_config",
     "../api/transport:sctp_transport_factory_interface",
     "../media:rtc_data_sctp_transport_factory",
     "../media:rtc_media_base",
diff --git a/pc/connection_context.cc b/pc/connection_context.cc
index df4522b..56a6e91 100644
--- a/pc/connection_context.cc
+++ b/pc/connection_context.cc
@@ -15,7 +15,6 @@
 #include <vector>
 
 #include "api/environment/environment.h"
-#include "api/transport/field_trial_based_config.h"
 #include "media/base/media_engine.h"
 #include "media/sctp/sctp_transport_factory.h"
 #include "pc/media_factory.h"
@@ -63,8 +62,7 @@
 
 std::unique_ptr<SctpTransportFactoryInterface> MaybeCreateSctpFactory(
     std::unique_ptr<SctpTransportFactoryInterface> factory,
-    rtc::Thread* network_thread,
-    const FieldTrialsView& field_trials) {
+    rtc::Thread* network_thread) {
   if (factory) {
     return factory;
   }
@@ -113,8 +111,7 @@
       default_socket_factory_(std::move(dependencies->packet_socket_factory)),
       sctp_factory_(
           MaybeCreateSctpFactory(std::move(dependencies->sctp_factory),
-                                 network_thread(),
-                                 env_.field_trials())),
+                                 network_thread())),
       use_rtx_(true) {
   RTC_DCHECK_RUN_ON(signaling_thread_);
   RTC_DCHECK(!(default_network_manager_ && network_monitor_factory_))
diff --git a/pc/connection_context.h b/pc/connection_context.h
index 232d8e3..28b2d1c 100644
--- a/pc/connection_context.h
+++ b/pc/connection_context.h
@@ -15,7 +15,6 @@
 #include <string>
 
 #include "api/environment/environment.h"
-#include "api/field_trials_view.h"
 #include "api/media_stream_interface.h"
 #include "api/peer_connection_interface.h"
 #include "api/ref_counted_base.h"
@@ -80,12 +79,6 @@
   // but they are not supposed to change after creating the PeerConnection.
   const Environment& env() const { return env_; }
 
-  // Field trials associated with the PeerConnectionFactory.
-  // Note: that there can be different field trials for different
-  // PeerConnections (but they are not supposed change after creating the
-  // PeerConnection).
-  const FieldTrialsView& field_trials() const { return env_.field_trials(); }
-
   // Accessors only used from the PeerConnectionFactory class
   rtc::NetworkManager* default_network_manager() {
     RTC_DCHECK_RUN_ON(signaling_thread_);
diff --git a/pc/peer_connection_factory.h b/pc/peer_connection_factory.h
index 66f6725..66afebb 100644
--- a/pc/peer_connection_factory.h
+++ b/pc/peer_connection_factory.h
@@ -109,7 +109,7 @@
   }
 
   const FieldTrialsView& field_trials() const {
-    return context_->field_trials();
+    return context_->env().field_trials();
   }
 
   cricket::MediaEngineInterface* media_engine() const;
