Replacing SequencedTaskChecker with SequenceChecker.

Bug: webrtc:9883
Change-Id: I5e3189da2a46e6f4ed1a3c5a5dfd2f7d75a16b5d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130961
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27518}
diff --git a/BUILD.gn b/BUILD.gn
index 0c2096b..bfe6d02 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -489,10 +489,10 @@
       "rtc_base:rtc_json_unittests",
       "rtc_base:rtc_numerics_unittests",
       "rtc_base:rtc_task_queue_unittests",
-      "rtc_base:sequenced_task_checker_unittests",
       "rtc_base:sigslot_unittest",
       "rtc_base:weak_ptr_unittests",
       "rtc_base/experiments:experiments_unittests",
+      "rtc_base/synchronization:sequence_checker_unittests",
       "rtc_base/task_utils:to_queued_task_unittests",
       "sdk:sdk_tests",
       "test/scenario/network:network_emulation_unittests",
diff --git a/call/BUILD.gn b/call/BUILD.gn
index 11be068..346cbe2 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -185,7 +185,7 @@
     "../modules/bitrate_controller",
     "../rtc_base:checks",
     "../rtc_base:rtc_base_approved",
-    "../rtc_base:sequenced_task_checker",
+    "../rtc_base/synchronization:sequence_checker",
     "../system_wrappers",
     "../system_wrappers:field_trial",
     "../system_wrappers:metrics",
@@ -244,10 +244,10 @@
     "../rtc_base:rtc_base_approved",
     "../rtc_base:rtc_task_queue",
     "../rtc_base:safe_minmax",
-    "../rtc_base:sequenced_task_checker",
     "../rtc_base/experiments:field_trial_parser",
     "../rtc_base/network:sent_packet",
     "../rtc_base/synchronization:rw_lock_wrapper",
+    "../rtc_base/synchronization:sequence_checker",
     "../system_wrappers",
     "../system_wrappers:field_trial",
     "../system_wrappers:metrics",
@@ -293,7 +293,7 @@
     "../api/units:timestamp",
     "../rtc_base:checks",
     "../rtc_base:rtc_base_approved",
-    "../rtc_base:sequenced_task_checker",
+    "../rtc_base/synchronization:sequence_checker",
     "//third_party/abseil-cpp/absl/memory",
     "//third_party/abseil-cpp/absl/types:optional",
   ]
@@ -324,7 +324,7 @@
     "../modules/utility",
     "../rtc_base:checks",
     "../rtc_base:rtc_base_approved",
-    "../rtc_base:sequenced_task_checker",
+    "../rtc_base/synchronization:sequence_checker",
     "../system_wrappers",
     "//third_party/abseil-cpp/absl/memory",
   ]
diff --git a/call/bitrate_allocator.cc b/call/bitrate_allocator.cc
index 9ddc786..9d2705f 100644
--- a/call/bitrate_allocator.cc
+++ b/call/bitrate_allocator.cc
@@ -77,7 +77,7 @@
 }
 
 void BitrateAllocator::UpdateStartRate(uint32_t start_rate_bps) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequenced_checker_);
+  RTC_DCHECK_RUN_ON(&sequenced_checker_);
   last_non_zero_bitrate_bps_ = start_rate_bps;
 }
 
@@ -100,7 +100,7 @@
                                         uint8_t fraction_loss,
                                         int64_t rtt,
                                         int64_t bwe_period_ms) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequenced_checker_);
+  RTC_DCHECK_RUN_ON(&sequenced_checker_);
   last_target_bps_ = target_bitrate_bps;
   last_link_capacity_bps_ = link_capacity_bps;
   last_non_zero_bitrate_bps_ =
@@ -161,7 +161,7 @@
 
 void BitrateAllocator::AddObserver(BitrateAllocatorObserver* observer,
                                    MediaStreamAllocationConfig config) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequenced_checker_);
+  RTC_DCHECK_RUN_ON(&sequenced_checker_);
   RTC_DCHECK_GT(config.bitrate_priority, 0);
   RTC_DCHECK(std::isnormal(config.bitrate_priority));
   auto it = FindObserverConfig(observer);
@@ -254,7 +254,7 @@
 }
 
 void BitrateAllocator::RemoveObserver(BitrateAllocatorObserver* observer) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequenced_checker_);
+  RTC_DCHECK_RUN_ON(&sequenced_checker_);
 
   auto it = FindObserverConfig(observer);
   if (it != bitrate_observer_configs_.end()) {
@@ -266,7 +266,7 @@
 
 int BitrateAllocator::GetStartBitrate(
     BitrateAllocatorObserver* observer) const {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequenced_checker_);
+  RTC_DCHECK_RUN_ON(&sequenced_checker_);
   const auto& it = FindObserverConfig(observer);
   if (it == bitrate_observer_configs_.end()) {
     // This observer hasn't been added yet, just give it its fair share.
@@ -285,7 +285,7 @@
 void BitrateAllocator::SetBitrateAllocationStrategy(
     std::unique_ptr<rtc::BitrateAllocationStrategy>
         bitrate_allocation_strategy) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequenced_checker_);
+  RTC_DCHECK_RUN_ON(&sequenced_checker_);
   bitrate_allocation_strategy_ = std::move(bitrate_allocation_strategy);
 }
 
diff --git a/call/bitrate_allocator.h b/call/bitrate_allocator.h
index bb2d149..f35f3f7 100644
--- a/call/bitrate_allocator.h
+++ b/call/bitrate_allocator.h
@@ -21,7 +21,7 @@
 
 #include "api/call/bitrate_allocation.h"
 #include "rtc_base/bitrate_allocation_strategy.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 
 namespace webrtc {
 
@@ -226,7 +226,7 @@
   // AudioPriorityBitrateAllocationStrategy.
   static uint8_t GetTransmissionMaxBitrateMultiplier();
 
-  rtc::SequencedTaskChecker sequenced_checker_;
+  SequenceChecker sequenced_checker_;
   LimitObserver* const limit_observer_ RTC_GUARDED_BY(&sequenced_checker_);
   // Stored in a list to keep track of the insertion order.
   ObserverConfigs bitrate_observer_configs_ RTC_GUARDED_BY(&sequenced_checker_);
diff --git a/call/call.cc b/call/call.cc
index 38a4dd5..84f29d8 100644
--- a/call/call.cc
+++ b/call/call.cc
@@ -50,9 +50,9 @@
 #include "rtc_base/location.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/numerics/safe_minmax.h"
-#include "rtc_base/sequenced_task_checker.h"
 #include "rtc_base/strings/string_builder.h"
 #include "rtc_base/synchronization/rw_lock_wrapper.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/thread_annotations.h"
 #include "rtc_base/time_utils.h"
 #include "rtc_base/trace_event.h"
@@ -285,7 +285,7 @@
   const std::unique_ptr<CallStats> call_stats_;
   const std::unique_ptr<BitrateAllocator> bitrate_allocator_;
   Call::Config config_;
-  rtc::SequencedTaskChecker configuration_sequence_checker_;
+  SequenceChecker configuration_sequence_checker_;
 
   NetworkState audio_network_state_;
   NetworkState video_network_state_;
@@ -493,7 +493,7 @@
 }
 
 Call::~Call() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&configuration_sequence_checker_);
 
   RTC_CHECK(audio_send_ssrcs_.empty());
   RTC_CHECK(video_send_ssrcs_.empty());
@@ -698,14 +698,14 @@
 }
 
 PacketReceiver* Call::Receiver() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&configuration_sequence_checker_);
   return this;
 }
 
 webrtc::AudioSendStream* Call::CreateAudioSendStream(
     const webrtc::AudioSendStream::Config& config) {
   TRACE_EVENT0("webrtc", "Call::CreateAudioSendStream");
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&configuration_sequence_checker_);
 
   RTC_DCHECK(media_transport() == config.media_transport);
 
@@ -747,7 +747,7 @@
 
 void Call::DestroyAudioSendStream(webrtc::AudioSendStream* send_stream) {
   TRACE_EVENT0("webrtc", "Call::DestroyAudioSendStream");
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&configuration_sequence_checker_);
   RTC_DCHECK(send_stream != nullptr);
 
   send_stream->Stop();
@@ -776,7 +776,7 @@
 webrtc::AudioReceiveStream* Call::CreateAudioReceiveStream(
     const webrtc::AudioReceiveStream::Config& config) {
   TRACE_EVENT0("webrtc", "Call::CreateAudioReceiveStream");
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&configuration_sequence_checker_);
   RegisterRateObserver();
   event_log_->Log(absl::make_unique<RtcEventAudioReceiveStreamConfig>(
       CreateRtcLogStreamConfig(config)));
@@ -806,7 +806,7 @@
 void Call::DestroyAudioReceiveStream(
     webrtc::AudioReceiveStream* receive_stream) {
   TRACE_EVENT0("webrtc", "Call::DestroyAudioReceiveStream");
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&configuration_sequence_checker_);
   RTC_DCHECK(receive_stream != nullptr);
   webrtc::internal::AudioReceiveStream* audio_receive_stream =
       static_cast<webrtc::internal::AudioReceiveStream*>(receive_stream);
@@ -836,7 +836,7 @@
     VideoEncoderConfig encoder_config,
     std::unique_ptr<FecController> fec_controller) {
   TRACE_EVENT0("webrtc", "Call::CreateVideoSendStream");
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&configuration_sequence_checker_);
 
   RTC_DCHECK(media_transport() == config.media_transport);
 
@@ -891,7 +891,7 @@
 void Call::DestroyVideoSendStream(webrtc::VideoSendStream* send_stream) {
   TRACE_EVENT0("webrtc", "Call::DestroyVideoSendStream");
   RTC_DCHECK(send_stream != nullptr);
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&configuration_sequence_checker_);
 
   send_stream->Stop();
 
@@ -929,7 +929,7 @@
 webrtc::VideoReceiveStream* Call::CreateVideoReceiveStream(
     webrtc::VideoReceiveStream::Config configuration) {
   TRACE_EVENT0("webrtc", "Call::CreateVideoReceiveStream");
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&configuration_sequence_checker_);
 
   receive_side_cc_.SetSendPeriodicFeedback(
       SendPeriodicFeedback(configuration.rtp.extensions));
@@ -967,7 +967,7 @@
 void Call::DestroyVideoReceiveStream(
     webrtc::VideoReceiveStream* receive_stream) {
   TRACE_EVENT0("webrtc", "Call::DestroyVideoReceiveStream");
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&configuration_sequence_checker_);
   RTC_DCHECK(receive_stream != nullptr);
   VideoReceiveStream* receive_stream_impl =
       static_cast<VideoReceiveStream*>(receive_stream);
@@ -994,7 +994,7 @@
 FlexfecReceiveStream* Call::CreateFlexfecReceiveStream(
     const FlexfecReceiveStream::Config& config) {
   TRACE_EVENT0("webrtc", "Call::CreateFlexfecReceiveStream");
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&configuration_sequence_checker_);
 
   RecoveredPacketReceiver* recovered_packet_receiver = this;
 
@@ -1026,7 +1026,7 @@
 
 void Call::DestroyFlexfecReceiveStream(FlexfecReceiveStream* receive_stream) {
   TRACE_EVENT0("webrtc", "Call::DestroyFlexfecReceiveStream");
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&configuration_sequence_checker_);
 
   RTC_DCHECK(receive_stream != nullptr);
   {
@@ -1052,7 +1052,7 @@
 Call::Stats Call::GetStats() const {
   // TODO(solenberg): Some test cases in EndToEndTest use this from a different
   // thread. Re-enable once that is fixed.
-  // RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
+  // RTC_DCHECK_RUN_ON(&configuration_sequence_checker_);
   Stats stats;
   // Fetch available send/receive bitrates.
   std::vector<unsigned int> ssrcs;
@@ -1101,7 +1101,7 @@
 }
 
 void Call::SignalChannelNetworkState(MediaType media, NetworkState state) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&configuration_sequence_checker_);
   switch (media) {
     case MediaType::AUDIO:
       audio_network_state_ = state;
@@ -1141,7 +1141,7 @@
 }
 
 void Call::UpdateAggregateNetworkState() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&configuration_sequence_checker_);
 
   bool have_audio = false;
   bool have_video = false;
@@ -1453,7 +1453,7 @@
     MediaType media_type,
     rtc::CopyOnWriteBuffer packet,
     int64_t packet_time_us) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&configuration_sequence_checker_);
   if (RtpHeaderParser::IsRtcp(packet.cdata(), packet.size()))
     return DeliverRtcp(media_type, packet.cdata(), packet.size());
 
diff --git a/logging/BUILD.gn b/logging/BUILD.gn
index 8edfe3c..81f24b5 100644
--- a/logging/BUILD.gn
+++ b/logging/BUILD.gn
@@ -264,7 +264,7 @@
     "../rtc_base:rtc_base_approved",
     "../rtc_base:rtc_task_queue",
     "../rtc_base:safe_minmax",
-    "../rtc_base:sequenced_task_checker",
+    "../rtc_base/synchronization:sequence_checker",
     "//third_party/abseil-cpp/absl/memory",
     "//third_party/abseil-cpp/absl/types:optional",
   ]
diff --git a/logging/rtc_event_log/rtc_event_log_impl.cc b/logging/rtc_event_log/rtc_event_log_impl.cc
index 1b2e82a..f62f690 100644
--- a/logging/rtc_event_log/rtc_event_log_impl.cc
+++ b/logging/rtc_event_log/rtc_event_log_impl.cc
@@ -30,7 +30,7 @@
 #include "rtc_base/logging.h"
 #include "rtc_base/numerics/safe_conversions.h"
 #include "rtc_base/numerics/safe_minmax.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/task_queue.h"
 #include "rtc_base/thread_annotations.h"
 #include "rtc_base/time_utils.h"
@@ -114,7 +114,7 @@
 
   // Make sure that the event log is "managed" - created/destroyed, as well
   // as started/stopped - from the same thread/task-queue.
-  rtc::SequencedTaskChecker owner_sequence_checker_;
+  SequenceChecker owner_sequence_checker_;
 
   // History containing all past configuration events.
   std::deque<std::unique_ptr<RtcEvent>> config_history_
@@ -158,7 +158,7 @@
 }
 
 RtcEventLogImpl::~RtcEventLogImpl() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&owner_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&owner_sequence_checker_);
 
   // If we're logging to the output, this will stop that. Blocking function.
   StopLogging();
@@ -172,7 +172,7 @@
 
 bool RtcEventLogImpl::StartLogging(std::unique_ptr<RtcEventLogOutput> output,
                                    int64_t output_period_ms) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&owner_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&owner_sequence_checker_);
 
   RTC_DCHECK(output_period_ms == kImmediateOutput || output_period_ms > 0);
 
@@ -207,7 +207,7 @@
 }
 
 void RtcEventLogImpl::StopLogging() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&owner_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&owner_sequence_checker_);
 
   RTC_LOG(LS_INFO) << "Stopping WebRTC event log.";
 
diff --git a/media/BUILD.gn b/media/BUILD.gn
index 3afaf35..f895849 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -75,8 +75,8 @@
     "../rtc_base:rtc_base_approved",
     "../rtc_base:rtc_task_queue",
     "../rtc_base:sanitizer",
-    "../rtc_base:sequenced_task_checker",
     "../rtc_base:stringutils",
+    "../rtc_base/synchronization:sequence_checker",
   ]
   sources = [
     "base/adapted_video_track_source.cc",
@@ -167,8 +167,8 @@
     "../modules/video_coding:video_coding_utility",
     "../rtc_base:checks",
     "../rtc_base:rtc_base_approved",
-    "../rtc_base:sequenced_task_checker",
     "../rtc_base/experiments:rate_control_settings",
+    "../rtc_base/synchronization:sequence_checker",
     "../rtc_base/system:rtc_export",
     "../system_wrappers",
     "../system_wrappers:field_trial",
diff --git a/media/engine/simulcast_encoder_adapter.cc b/media/engine/simulcast_encoder_adapter.cc
index cc26a30..09b0545 100644
--- a/media/engine/simulcast_encoder_adapter.cc
+++ b/media/engine/simulcast_encoder_adapter.cc
@@ -144,7 +144,7 @@
 }
 
 int SimulcastEncoderAdapter::Release() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_);
+  RTC_DCHECK_RUN_ON(&encoder_queue_);
 
   while (!streaminfos_.empty()) {
     std::unique_ptr<VideoEncoder> encoder =
@@ -169,7 +169,7 @@
 int SimulcastEncoderAdapter::InitEncode(const VideoCodec* inst,
                                         int number_of_cores,
                                         size_t max_payload_size) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_);
+  RTC_DCHECK_RUN_ON(&encoder_queue_);
 
   if (number_of_cores < 1) {
     return WEBRTC_VIDEO_CODEC_ERR_PARAMETER;
@@ -339,7 +339,7 @@
 int SimulcastEncoderAdapter::Encode(
     const VideoFrame& input_image,
     const std::vector<VideoFrameType>* frame_types) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_);
+  RTC_DCHECK_RUN_ON(&encoder_queue_);
 
   if (!Initialized()) {
     return WEBRTC_VIDEO_CODEC_UNINITIALIZED;
@@ -438,7 +438,7 @@
 
 int SimulcastEncoderAdapter::RegisterEncodeCompleteCallback(
     EncodedImageCallback* callback) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_);
+  RTC_DCHECK_RUN_ON(&encoder_queue_);
   encoded_complete_callback_ = callback;
   return WEBRTC_VIDEO_CODEC_OK;
 }
@@ -446,7 +446,7 @@
 int SimulcastEncoderAdapter::SetRateAllocation(
     const VideoBitrateAllocation& bitrate,
     uint32_t new_framerate) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_);
+  RTC_DCHECK_RUN_ON(&encoder_queue_);
 
   if (!Initialized()) {
     return WEBRTC_VIDEO_CODEC_UNINITIALIZED;
diff --git a/media/engine/simulcast_encoder_adapter.h b/media/engine/simulcast_encoder_adapter.h
index 202967f..a7b0361 100644
--- a/media/engine/simulcast_encoder_adapter.h
+++ b/media/engine/simulcast_encoder_adapter.h
@@ -22,7 +22,7 @@
 #include "api/video_codecs/sdp_video_format.h"
 #include "modules/video_coding/include/video_codec_interface.h"
 #include "rtc_base/atomic_ops.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
@@ -109,7 +109,7 @@
   EncoderInfo encoder_info_;
 
   // Used for checking the single-threaded access of the encoder interface.
-  rtc::SequencedTaskChecker encoder_queue_;
+  SequenceChecker encoder_queue_;
 
   // Store encoders in between calls to Release and InitEncode, so they don't
   // have to be recreated. Remaining encoders are destroyed by the destructor.
diff --git a/modules/congestion_controller/rtp/BUILD.gn b/modules/congestion_controller/rtp/BUILD.gn
index a075cce..357e1a6 100644
--- a/modules/congestion_controller/rtp/BUILD.gn
+++ b/modules/congestion_controller/rtp/BUILD.gn
@@ -32,7 +32,7 @@
     "../../../rtc_base:checks",
     "../../../rtc_base:rate_limiter",
     "../../../rtc_base:safe_minmax",
-    "../../../rtc_base:sequenced_task_checker",
+    "../../../rtc_base/synchronization:sequence_checker",
     "../../../system_wrappers",
     "../../../system_wrappers:field_trial",
     "../../pacing",
diff --git a/modules/congestion_controller/rtp/control_handler.cc b/modules/congestion_controller/rtp/control_handler.cc
index 808c195..9272d99 100644
--- a/modules/congestion_controller/rtp/control_handler.cc
+++ b/modules/congestion_controller/rtp/control_handler.cc
@@ -37,22 +37,22 @@
 
 void CongestionControlHandler::SetTargetRate(
     TargetTransferRate new_target_rate) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequenced_checker_);
+  RTC_DCHECK_RUN_ON(&sequenced_checker_);
   last_incoming_ = new_target_rate;
 }
 
 void CongestionControlHandler::SetNetworkAvailability(bool network_available) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequenced_checker_);
+  RTC_DCHECK_RUN_ON(&sequenced_checker_);
   network_available_ = network_available;
 }
 
 void CongestionControlHandler::SetPacerQueue(TimeDelta expected_queue_time) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequenced_checker_);
+  RTC_DCHECK_RUN_ON(&sequenced_checker_);
   pacer_expected_queue_ms_ = expected_queue_time.ms();
 }
 
 absl::optional<TargetTransferRate> CongestionControlHandler::GetUpdate() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequenced_checker_);
+  RTC_DCHECK_RUN_ON(&sequenced_checker_);
   if (!last_incoming_.has_value())
     return absl::nullopt;
   TargetTransferRate new_outgoing = *last_incoming_;
diff --git a/modules/congestion_controller/rtp/control_handler.h b/modules/congestion_controller/rtp/control_handler.h
index cf6d70c..554c9e8 100644
--- a/modules/congestion_controller/rtp/control_handler.h
+++ b/modules/congestion_controller/rtp/control_handler.h
@@ -19,7 +19,7 @@
 #include "api/units/time_delta.h"
 #include "modules/pacing/paced_sender.h"
 #include "rtc_base/constructor_magic.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 
 namespace webrtc {
 // This is used to observe the network controller state and route calls to
@@ -46,7 +46,7 @@
   const bool disable_pacer_emergency_stop_;
   int64_t pacer_expected_queue_ms_ = 0;
 
-  rtc::SequencedTaskChecker sequenced_checker_;
+  SequenceChecker sequenced_checker_;
   RTC_DISALLOW_COPY_AND_ASSIGN(CongestionControlHandler);
 };
 }  // namespace webrtc
diff --git a/modules/rtp_rtcp/BUILD.gn b/modules/rtp_rtcp/BUILD.gn
index 6c2e09e..32ef465 100644
--- a/modules/rtp_rtcp/BUILD.gn
+++ b/modules/rtp_rtcp/BUILD.gn
@@ -227,7 +227,7 @@
     "../../rtc_base:rtc_base_approved",
     "../../rtc_base:rtc_numerics",
     "../../rtc_base:safe_minmax",
-    "../../rtc_base:sequenced_task_checker",
+    "../../rtc_base/synchronization:sequence_checker",
     "../../rtc_base/system:fallthrough",
     "../../rtc_base/time:timestamp_extrapolator",
     "../../system_wrappers",
diff --git a/modules/rtp_rtcp/include/flexfec_receiver.h b/modules/rtp_rtcp/include/flexfec_receiver.h
index 2426559..e1844a4 100644
--- a/modules/rtp_rtcp/include/flexfec_receiver.h
+++ b/modules/rtp_rtcp/include/flexfec_receiver.h
@@ -18,7 +18,7 @@
 #include "modules/rtp_rtcp/include/ulpfec_receiver.h"
 #include "modules/rtp_rtcp/source/forward_error_correction.h"
 #include "modules/rtp_rtcp/source/rtp_packet_received.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/thread_annotations.h"
 
 namespace webrtc {
@@ -68,7 +68,7 @@
   int64_t last_recovered_packet_ms_ RTC_GUARDED_BY(sequence_checker_);
   FecPacketCounter packet_counter_ RTC_GUARDED_BY(sequence_checker_);
 
-  rtc::SequencedTaskChecker sequence_checker_;
+  SequenceChecker sequence_checker_;
 };
 
 }  // namespace webrtc
diff --git a/modules/rtp_rtcp/source/flexfec_receiver.cc b/modules/rtp_rtcp/source/flexfec_receiver.cc
index 1750927..d9850bf 100644
--- a/modules/rtp_rtcp/source/flexfec_receiver.cc
+++ b/modules/rtp_rtcp/source/flexfec_receiver.cc
@@ -61,7 +61,7 @@
 FlexfecReceiver::~FlexfecReceiver() = default;
 
 void FlexfecReceiver::OnRtpPacket(const RtpPacketReceived& packet) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequence_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
 
   // If this packet was recovered, it might be originating from
   // ProcessReceivedPacket in this object. To avoid lifetime issues with
@@ -79,7 +79,7 @@
 }
 
 FecPacketCounter FlexfecReceiver::GetPacketCounter() const {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequence_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
   return packet_counter_;
 }
 
@@ -87,7 +87,7 @@
 // recovered packets here.
 std::unique_ptr<ReceivedPacket> FlexfecReceiver::AddReceivedPacket(
     const RtpPacketReceived& packet) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequence_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
 
   // RTP packets with a full base header (12 bytes), but without payload,
   // could conceivably be useful in the decoding. Therefore we check
@@ -145,7 +145,7 @@
 // of non-recovered media packets.
 void FlexfecReceiver::ProcessReceivedPacket(
     const ReceivedPacket& received_packet) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequence_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
 
   // Decode.
   erasure_code_->DecodeFec(received_packet, &recovered_packets_);
diff --git a/modules/rtp_rtcp/source/rtp_sender_video.h b/modules/rtp_rtcp/source/rtp_sender_video.h
index 7144afd..814efcc 100644
--- a/modules/rtp_rtcp/source/rtp_sender_video.h
+++ b/modules/rtp_rtcp/source/rtp_sender_video.h
@@ -26,7 +26,7 @@
 #include "rtc_base/critical_section.h"
 #include "rtc_base/one_time_event.h"
 #include "rtc_base/rate_statistics.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/thread_annotations.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn
index 304dd4f..12d02bf 100644
--- a/modules/video_coding/BUILD.gn
+++ b/modules/video_coding/BUILD.gn
@@ -165,10 +165,10 @@
     "../../rtc_base:rtc_base_approved",
     "../../rtc_base:rtc_numerics",
     "../../rtc_base:rtc_task_queue",
-    "../../rtc_base:sequenced_task_checker",
     "../../rtc_base/experiments:alr_experiment",
     "../../rtc_base/experiments:jitter_upper_bound_experiment",
     "../../rtc_base/experiments:rtt_mult_experiment",
+    "../../rtc_base/synchronization:sequence_checker",
     "../../rtc_base/system:fallthrough",
     "../../rtc_base/third_party/base64",
     "../../rtc_base/time:timestamp_extrapolator",
@@ -255,9 +255,9 @@
     "../../rtc_base:rtc_base_approved",
     "../../rtc_base:rtc_numerics",
     "../../rtc_base:rtc_task_queue",
-    "../../rtc_base:sequenced_task_checker",
     "../../rtc_base/experiments:quality_scaling_experiment",
     "../../rtc_base/experiments:rate_control_settings",
+    "../../rtc_base/synchronization:sequence_checker",
     "../../rtc_base/system:arch",
     "../../rtc_base/system:file_wrapper",
     "../../rtc_base/task_utils:repeating_task",
@@ -577,7 +577,7 @@
       "../../rtc_base:checks",
       "../../rtc_base:rtc_base_approved",
       "../../rtc_base:rtc_task_queue",
-      "../../rtc_base:sequenced_task_checker",
+      "../../rtc_base/synchronization:sequence_checker",
       "../../rtc_base/task_utils:to_queued_task",
       "../../test:test_support",
       "../../test:video_test_common",
diff --git a/modules/video_coding/codecs/test/videoprocessor.cc b/modules/video_coding/codecs/test/videoprocessor.cc
index e2e79aa..708f6fe 100644
--- a/modules/video_coding/codecs/test/videoprocessor.cc
+++ b/modules/video_coding/codecs/test/videoprocessor.cc
@@ -226,7 +226,7 @@
 }
 
 VideoProcessor::~VideoProcessor() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequence_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
 
   // Explicitly reset codecs, in case they don't do that themselves when they
   // go out of scope.
@@ -242,7 +242,7 @@
 }
 
 void VideoProcessor::ProcessFrame() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequence_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
   const size_t frame_number = last_inputed_frame_num_++;
 
   // Get input frame and store for future quality calculation.
@@ -296,7 +296,7 @@
 }
 
 void VideoProcessor::SetRates(size_t bitrate_kbps, size_t framerate_fps) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequence_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
   framerate_fps_ = static_cast<uint32_t>(framerate_fps);
   bitrate_allocation_ = bitrate_allocator_->GetAllocation(
       static_cast<uint32_t>(bitrate_kbps * 1000), framerate_fps_);
@@ -333,7 +333,7 @@
 void VideoProcessor::FrameEncoded(
     const webrtc::EncodedImage& encoded_image,
     const webrtc::CodecSpecificInfo& codec_specific) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequence_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
 
   // For the highest measurement accuracy of the encode time, the start/stop
   // time recordings should wrap the Encode call as tightly as possible.
@@ -455,7 +455,7 @@
 
 void VideoProcessor::FrameDecoded(const VideoFrame& decoded_frame,
                                   size_t spatial_idx) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequence_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
 
   // For the highest measurement accuracy of the decode time, the start/stop
   // time recordings should wrap the Decode call as tightly as possible.
@@ -529,7 +529,7 @@
 
 void VideoProcessor::DecodeFrame(const EncodedImage& encoded_image,
                                  size_t spatial_idx) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequence_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
   FrameStatistics* frame_stat =
       stats_->GetFrameWithTimestamp(encoded_image.Timestamp(), spatial_idx);
 
diff --git a/modules/video_coding/codecs/test/videoprocessor.h b/modules/video_coding/codecs/test/videoprocessor.h
index 4935796..64f9c5c 100644
--- a/modules/video_coding/codecs/test/videoprocessor.h
+++ b/modules/video_coding/codecs/test/videoprocessor.h
@@ -36,7 +36,7 @@
 #include "rtc_base/buffer.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/constructor_magic.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/thread_annotations.h"
 #include "rtc_base/thread_checker.h"
 #include "test/testsupport/frame_reader.h"
@@ -250,7 +250,7 @@
   int64_t post_encode_time_ns_ RTC_GUARDED_BY(sequence_checker_);
 
   // This class must be operated on a TaskQueue.
-  rtc::SequencedTaskChecker sequence_checker_;
+  SequenceChecker sequence_checker_;
 
   RTC_DISALLOW_COPY_AND_ASSIGN(VideoProcessor);
 };
diff --git a/modules/video_coding/loss_notification_controller.cc b/modules/video_coding/loss_notification_controller.cc
index 44cca34..3bab787 100644
--- a/modules/video_coding/loss_notification_controller.cc
+++ b/modules/video_coding/loss_notification_controller.cc
@@ -44,7 +44,7 @@
 LossNotificationController::~LossNotificationController() = default;
 
 void LossNotificationController::OnReceivedPacket(const VCMPacket& packet) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequenced_task_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
 
   if (!packet.generic_descriptor) {
     RTC_LOG(LS_WARNING) << "Generic frame descriptor missing. Buggy remote? "
@@ -116,7 +116,7 @@
     uint16_t frame_id,
     bool discardable,
     rtc::ArrayView<const uint16_t> frame_dependency_diffs) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequenced_task_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
 
   DiscardOldInformation();  // Prevent memory overconsumption.
 
@@ -144,7 +144,7 @@
 bool LossNotificationController::AllDependenciesDecodable(
     int64_t unwrapped_frame_id,
     rtc::ArrayView<const uint16_t> frame_dependency_diffs) const {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequenced_task_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
 
   // Due to packet reordering, frame buffering and asynchronous decoders, it is
   // infeasible to make reliable conclusions on the decodability of a frame
@@ -170,7 +170,7 @@
 
 void LossNotificationController::HandleLoss(uint16_t last_received_seq_num,
                                             bool decodability_flag) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequenced_task_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
 
   if (last_decodable_non_discardable_) {
     RTC_DCHECK(AheadOf(last_received_seq_num,
diff --git a/modules/video_coding/loss_notification_controller.h b/modules/video_coding/loss_notification_controller.h
index 4cdfbb8..09f4fef 100644
--- a/modules/video_coding/loss_notification_controller.h
+++ b/modules/video_coding/loss_notification_controller.h
@@ -17,7 +17,7 @@
 #include "modules/include/module_common_types.h"
 #include "modules/video_coding/packet.h"
 #include "rtc_base/numerics/sequence_number_util.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 
 namespace webrtc {
 
@@ -61,26 +61,25 @@
   void HandleLoss(uint16_t last_received_seq_num, bool decodability_flag);
 
   KeyFrameRequestSender* const key_frame_request_sender_
-      RTC_GUARDED_BY(sequenced_task_checker_);
+      RTC_GUARDED_BY(sequence_checker_);
 
   LossNotificationSender* const loss_notification_sender_
-      RTC_GUARDED_BY(sequenced_task_checker_);
+      RTC_GUARDED_BY(sequence_checker_);
 
   SeqNumUnwrapper<uint16_t> frame_id_unwrapper_
-      RTC_GUARDED_BY(sequenced_task_checker_);
+      RTC_GUARDED_BY(sequence_checker_);
 
   // Tracked to avoid processing repeated frames (buggy/malicious remote).
   absl::optional<int64_t> last_received_unwrapped_frame_id_
-      RTC_GUARDED_BY(sequenced_task_checker_);
+      RTC_GUARDED_BY(sequence_checker_);
 
   // Tracked to avoid processing repeated packets.
   absl::optional<uint16_t> last_received_seq_num_
-      RTC_GUARDED_BY(sequenced_task_checker_);
+      RTC_GUARDED_BY(sequence_checker_);
 
   // Tracked in order to correctly report the potential-decodability of
   // multi-packet frames.
-  bool current_frame_potentially_decodable_
-      RTC_GUARDED_BY(sequenced_task_checker_);
+  bool current_frame_potentially_decodable_ RTC_GUARDED_BY(sequence_checker_);
 
   // Loss notifications contain the sequence number of the first packet of
   // the last decodable-and-non-discardable frame. Since this is a bit of
@@ -92,15 +91,15 @@
     uint16_t first_seq_num;
   };
   absl::optional<FrameInfo> last_decodable_non_discardable_
-      RTC_GUARDED_BY(sequenced_task_checker_);
+      RTC_GUARDED_BY(sequence_checker_);
 
   // Track which frames are decodable. Later frames are also decodable if
   // all of their dependencies can be found in this container.
   // (Naturally, later frames must also be assemblable to be decodable.)
   std::set<int64_t> decodable_unwrapped_frame_ids_
-      RTC_GUARDED_BY(sequenced_task_checker_);
+      RTC_GUARDED_BY(sequence_checker_);
 
-  rtc::SequencedTaskChecker sequenced_task_checker_;
+  SequenceChecker sequence_checker_;
 };
 
 }  // namespace webrtc
diff --git a/modules/video_coding/utility/quality_scaler.cc b/modules/video_coding/utility/quality_scaler.cc
index 4f4bb3b..54ef76a 100644
--- a/modules/video_coding/utility/quality_scaler.cc
+++ b/modules/video_coding/utility/quality_scaler.cc
@@ -88,7 +88,7 @@
       framedrop_percent_all_(5 * 30),
       experiment_enabled_(QualityScalingExperiment::Enabled()),
       observed_enough_frames_(false) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   if (experiment_enabled_) {
     config_ = QualityScalingExperiment::GetConfig();
     qp_smoother_high_.reset(new QpSmoother(config_.alpha_high));
@@ -105,12 +105,12 @@
 }
 
 QualityScaler::~QualityScaler() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   check_qp_task_.Stop();
 }
 
 int64_t QualityScaler::GetSamplingPeriodMs() const {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   if (fast_rampup_) {
     return sampling_period_ms_;
   }
@@ -122,18 +122,18 @@
 }
 
 void QualityScaler::ReportDroppedFrameByMediaOpt() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   framedrop_percent_media_opt_.AddSample(100);
   framedrop_percent_all_.AddSample(100);
 }
 
 void QualityScaler::ReportDroppedFrameByEncoder() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   framedrop_percent_all_.AddSample(100);
 }
 
 void QualityScaler::ReportQp(int qp, int64_t time_sent_us) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   framedrop_percent_media_opt_.AddSample(0);
   framedrop_percent_all_.AddSample(0);
   average_qp_.AddSample(qp);
@@ -144,7 +144,7 @@
 }
 
 void QualityScaler::CheckQp() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   // Should be set through InitEncode -> Should be set by now.
   RTC_DCHECK_GE(thresholds_.low, 0);
 
@@ -193,13 +193,13 @@
 }
 
 void QualityScaler::ReportQpLow() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   ClearSamples();
   observer_->AdaptUp(AdaptationObserverInterface::AdaptReason::kQuality);
 }
 
 void QualityScaler::ReportQpHigh() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   ClearSamples();
   observer_->AdaptDown(AdaptationObserverInterface::AdaptReason::kQuality);
   // If we've scaled down, wait longer before scaling up again.
@@ -209,7 +209,7 @@
 }
 
 void QualityScaler::ClearSamples() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   framedrop_percent_media_opt_.Reset();
   framedrop_percent_all_.Reset();
   average_qp_.Reset();
diff --git a/modules/video_coding/utility/quality_scaler.h b/modules/video_coding/utility/quality_scaler.h
index 5e7ee0d..500d931 100644
--- a/modules/video_coding/utility/quality_scaler.h
+++ b/modules/video_coding/utility/quality_scaler.h
@@ -18,7 +18,7 @@
 #include "api/video_codecs/video_encoder.h"
 #include "rtc_base/experiments/quality_scaling_experiment.h"
 #include "rtc_base/numerics/moving_average.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/task_queue.h"
 #include "rtc_base/task_utils/repeating_task.h"
 
@@ -77,7 +77,7 @@
 
   RepeatingTaskHandle check_qp_task_ RTC_GUARDED_BY(&task_checker_);
   AdaptationObserverInterface* const observer_ RTC_GUARDED_BY(&task_checker_);
-  rtc::SequencedTaskChecker task_checker_;
+  SequenceChecker task_checker_;
 
   const VideoEncoder::QpThresholds thresholds_;
   const int64_t sampling_period_ms_;
diff --git a/modules/video_coding/video_coding_impl.h b/modules/video_coding/video_coding_impl.h
index e077633..4d83047 100644
--- a/modules/video_coding/video_coding_impl.h
+++ b/modules/video_coding/video_coding_impl.h
@@ -25,7 +25,7 @@
 #include "modules/video_coding/receiver.h"
 #include "modules/video_coding/timing.h"
 #include "rtc_base/one_time_event.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/thread_annotations.h"
 #include "rtc_base/thread_checker.h"
 #include "system_wrappers/include/clock.h"
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index 273ad0f..8c69b85 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -228,7 +228,7 @@
     ":rtc_task_queue_libevent",
     ":rtc_task_queue_win",
     ":rtc_task_queue_stdlib",
-    ":sequenced_task_checker",
+    "synchronization:sequence_checker",
   ]
   sources = [
     "platform_thread.cc",
@@ -573,15 +573,6 @@
   ]
 }
 
-rtc_source_set("sequenced_task_checker") {
-  sources = [
-    "sequenced_task_checker.h",
-  ]
-  deps = [
-    "synchronization:sequence_checker",
-  ]
-}
-
 rtc_static_library("weak_ptr") {
   sources = [
     "weak_ptr.cc",
@@ -589,8 +580,8 @@
   ]
   deps = [
     ":refcount",
-    ":sequenced_task_checker",
     "../api:scoped_refptr",
+    "synchronization:sequence_checker",
   ]
 }
 
@@ -1280,24 +1271,6 @@
     ]
   }
 
-  rtc_source_set("sequenced_task_checker_unittests") {
-    testonly = true
-
-    sources = [
-      "sequenced_task_checker_unittest.cc",
-    ]
-    deps = [
-      ":checks",
-      ":rtc_base_approved",
-      ":rtc_base_tests_main",
-      ":sequenced_task_checker",
-      ":task_queue_for_test",
-      "../api:function_view",
-      "../test:test_support",
-      "//third_party/abseil-cpp/absl/memory",
-    ]
-  }
-
   rtc_source_set("weak_ptr_unittests") {
     testonly = true
 
diff --git a/rtc_base/sequenced_task_checker.h b/rtc_base/sequenced_task_checker.h
deleted file mode 100644
index feaa04c..0000000
--- a/rtc_base/sequenced_task_checker.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef RTC_BASE_SEQUENCED_TASK_CHECKER_H_
-#define RTC_BASE_SEQUENCED_TASK_CHECKER_H_
-
-#include "rtc_base/synchronization/sequence_checker.h"
-
-namespace rtc {
-// TODO(srte): Replace usages of this with SequenceChecker.
-class SequencedTaskChecker : public webrtc::SequenceChecker {
- public:
-  bool CalledSequentially() const { return IsCurrent(); }
-};
-}  // namespace rtc
-
-#define RTC_DCHECK_CALLED_SEQUENTIALLY(x) RTC_DCHECK_RUN_ON(x)
-
-#endif  // RTC_BASE_SEQUENCED_TASK_CHECKER_H_
diff --git a/rtc_base/sequenced_task_checker_unittest.cc b/rtc_base/sequenced_task_checker_unittest.cc
deleted file mode 100644
index bbba290..0000000
--- a/rtc_base/sequenced_task_checker_unittest.cc
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#include "rtc_base/sequenced_task_checker.h"
-
-#include <memory>
-#include <utility>
-
-#include "absl/memory/memory.h"
-#include "api/function_view.h"
-#include "rtc_base/event.h"
-#include "rtc_base/platform_thread.h"
-#include "rtc_base/task_queue_for_test.h"
-#include "rtc_base/thread_checker.h"
-#include "test/gtest.h"
-
-namespace rtc {
-namespace {
-
-using ::webrtc::TaskQueueForTest;
-
-// This class is dead code, but its purpose is to make sure that
-// SequencedTaskChecker is compatible with the RTC_GUARDED_BY and RTC_RUN_ON
-// attributes that are checked at compile-time.
-class CompileTimeTestForGuardedBy {
- public:
-  int CalledOnSequence() RTC_RUN_ON(sequence_checker_) { return guarded_; }
-
-  void CallMeFromSequence() {
-    RTC_DCHECK_RUN_ON(&sequence_checker_) << "Should be called on sequence";
-    guarded_ = 41;
-  }
-
- private:
-  int guarded_ RTC_GUARDED_BY(sequence_checker_);
-  SequencedTaskChecker sequence_checker_;
-};
-
-void RunOnDifferentThread(FunctionView<void()> run) {
-  struct Object {
-    static void Run(void* obj) {
-      auto* me = static_cast<Object*>(obj);
-      me->run();
-      me->thread_has_run_event.Set();
-    }
-
-    FunctionView<void()> run;
-    Event thread_has_run_event;
-  } object{run};
-
-  PlatformThread thread(&Object::Run, &object, "thread");
-  thread.Start();
-  EXPECT_TRUE(object.thread_has_run_event.Wait(1000));
-  thread.Stop();
-}
-
-}  // namespace
-
-TEST(SequencedTaskCheckerTest, CallsAllowedOnSameThread) {
-  SequencedTaskChecker sequenced_task_checker;
-  EXPECT_TRUE(sequenced_task_checker.CalledSequentially());
-}
-
-TEST(SequencedTaskCheckerTest, DestructorAllowedOnDifferentThread) {
-  auto sequenced_task_checker = absl::make_unique<SequencedTaskChecker>();
-  RunOnDifferentThread([&] {
-    // Verify that the destructor doesn't assert when called on a different
-    // thread.
-    sequenced_task_checker.reset();
-  });
-}
-
-TEST(SequencedTaskCheckerTest, Detach) {
-  SequencedTaskChecker sequenced_task_checker;
-  sequenced_task_checker.Detach();
-  RunOnDifferentThread(
-      [&] { EXPECT_TRUE(sequenced_task_checker.CalledSequentially()); });
-}
-
-TEST(SequencedTaskCheckerTest, DetachFromThreadAndUseOnTaskQueue) {
-  SequencedTaskChecker sequenced_task_checker;
-  sequenced_task_checker.Detach();
-  TaskQueueForTest queue;
-  queue.SendTask(
-      [&] { EXPECT_TRUE(sequenced_task_checker.CalledSequentially()); });
-}
-
-TEST(SequencedTaskCheckerTest, DetachFromTaskQueueAndUseOnThread) {
-  TaskQueueForTest queue;
-  queue.SendTask([] {
-    SequencedTaskChecker sequenced_task_checker;
-    sequenced_task_checker.Detach();
-    RunOnDifferentThread(
-        [&] { EXPECT_TRUE(sequenced_task_checker.CalledSequentially()); });
-  });
-}
-
-TEST(SequencedTaskCheckerTest, MethodNotAllowedOnDifferentThreadInDebug) {
-  SequencedTaskChecker sequenced_task_checker;
-  RunOnDifferentThread([&] {
-    EXPECT_EQ(sequenced_task_checker.CalledSequentially(), !RTC_DCHECK_IS_ON);
-  });
-}
-
-TEST(SequencedTaskCheckerTest, MethodNotAllowedOnDifferentTaskQueueInDebug) {
-  SequencedTaskChecker sequenced_task_checker;
-  TaskQueueForTest queue;
-  queue.SendTask([&] {
-    EXPECT_EQ(sequenced_task_checker.CalledSequentially(), !RTC_DCHECK_IS_ON);
-  });
-}
-
-TEST(SequencedTaskCheckerTest, DetachFromTaskQueueInDebug) {
-  SequencedTaskChecker sequenced_task_checker;
-  sequenced_task_checker.Detach();
-
-  TaskQueueForTest queue1;
-  queue1.SendTask(
-      [&] { EXPECT_TRUE(sequenced_task_checker.CalledSequentially()); });
-
-  // CalledSequentially should return false in debug builds after moving to
-  // another task queue.
-  TaskQueueForTest queue2;
-  queue2.SendTask([&] {
-    EXPECT_EQ(sequenced_task_checker.CalledSequentially(), !RTC_DCHECK_IS_ON);
-  });
-}
-
-class TestAnnotations {
- public:
-  TestAnnotations() : test_var_(false) {}
-
-  void ModifyTestVar() {
-    RTC_DCHECK_CALLED_SEQUENTIALLY(&checker_);
-    test_var_ = true;
-  }
-
- private:
-  bool test_var_ RTC_GUARDED_BY(&checker_);
-  SequencedTaskChecker checker_;
-};
-
-TEST(SequencedTaskCheckerTest, TestAnnotations) {
-  TestAnnotations annotations;
-  annotations.ModifyTestVar();
-}
-
-#if GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID)
-
-void TestAnnotationsOnWrongQueue() {
-  TestAnnotations annotations;
-  TaskQueueForTest queue;
-  queue.SendTask([&] { annotations.ModifyTestVar(); });
-}
-
-#if RTC_DCHECK_IS_ON
-TEST(SequencedTaskCheckerTest, TestAnnotationsOnWrongQueueDebug) {
-  ASSERT_DEATH({ TestAnnotationsOnWrongQueue(); }, "");
-}
-#else
-TEST(SequencedTaskCheckerTest, TestAnnotationsOnWrongQueueRelease) {
-  TestAnnotationsOnWrongQueue();
-}
-#endif
-#endif  // GTEST_HAS_DEATH_TEST
-}  // namespace rtc
diff --git a/rtc_base/synchronization/BUILD.gn b/rtc_base/synchronization/BUILD.gn
index 975c1a1..93a3fee 100644
--- a/rtc_base/synchronization/BUILD.gn
+++ b/rtc_base/synchronization/BUILD.gn
@@ -72,4 +72,22 @@
       "../../test:test_support",
     ]
   }
+
+  rtc_source_set("sequence_checker_unittests") {
+    testonly = true
+
+    sources = [
+      "sequence_checker_unittest.cc",
+    ]
+    deps = [
+      ":sequence_checker",
+      "..:checks",
+      "..:rtc_base_approved",
+      "..:rtc_base_tests_main",
+      "..:task_queue_for_test",
+      "../../api:function_view",
+      "../../test:test_support",
+      "//third_party/abseil-cpp/absl/memory",
+    ]
+  }
 }
diff --git a/rtc_base/synchronization/sequence_checker_unittest.cc b/rtc_base/synchronization/sequence_checker_unittest.cc
new file mode 100644
index 0000000..ccdf6bc
--- /dev/null
+++ b/rtc_base/synchronization/sequence_checker_unittest.cc
@@ -0,0 +1,164 @@
+/*
+ *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include "rtc_base/synchronization/sequence_checker.h"
+
+#include <memory>
+#include <utility>
+
+#include "absl/memory/memory.h"
+#include "api/function_view.h"
+#include "rtc_base/event.h"
+#include "rtc_base/platform_thread.h"
+#include "rtc_base/task_queue_for_test.h"
+#include "rtc_base/thread_checker.h"
+#include "test/gtest.h"
+
+namespace webrtc {
+namespace {
+
+// This class is dead code, but its purpose is to make sure that
+// SequenceChecker is compatible with the RTC_GUARDED_BY and RTC_RUN_ON
+// attributes that are checked at compile-time.
+class CompileTimeTestForGuardedBy {
+ public:
+  int CalledOnSequence() RTC_RUN_ON(sequence_checker_) { return guarded_; }
+
+  void CallMeFromSequence() {
+    RTC_DCHECK_RUN_ON(&sequence_checker_) << "Should be called on sequence";
+    guarded_ = 41;
+  }
+
+ private:
+  int guarded_ RTC_GUARDED_BY(sequence_checker_);
+  ::webrtc::SequenceChecker sequence_checker_;
+};
+
+void RunOnDifferentThread(rtc::FunctionView<void()> run) {
+  struct Object {
+    static void Run(void* obj) {
+      auto* me = static_cast<Object*>(obj);
+      me->run();
+      me->thread_has_run_event.Set();
+    }
+
+    rtc::FunctionView<void()> run;
+    rtc::Event thread_has_run_event;
+  } object{run};
+
+  rtc::PlatformThread thread(&Object::Run, &object, "thread");
+  thread.Start();
+  EXPECT_TRUE(object.thread_has_run_event.Wait(1000));
+  thread.Stop();
+}
+
+}  // namespace
+
+TEST(SequenceCheckerTest, CallsAllowedOnSameThread) {
+  SequenceChecker sequence_checker;
+  EXPECT_TRUE(sequence_checker.IsCurrent());
+}
+
+TEST(SequenceCheckerTest, DestructorAllowedOnDifferentThread) {
+  auto sequence_checker = absl::make_unique<SequenceChecker>();
+  RunOnDifferentThread([&] {
+    // Verify that the destructor doesn't assert when called on a different
+    // thread.
+    sequence_checker.reset();
+  });
+}
+
+TEST(SequenceCheckerTest, Detach) {
+  SequenceChecker sequence_checker;
+  sequence_checker.Detach();
+  RunOnDifferentThread([&] { EXPECT_TRUE(sequence_checker.IsCurrent()); });
+}
+
+TEST(SequenceCheckerTest, DetachFromThreadAndUseOnTaskQueue) {
+  SequenceChecker sequence_checker;
+  sequence_checker.Detach();
+  TaskQueueForTest queue;
+  queue.SendTask([&] { EXPECT_TRUE(sequence_checker.IsCurrent()); });
+}
+
+TEST(SequenceCheckerTest, DetachFromTaskQueueAndUseOnThread) {
+  TaskQueueForTest queue;
+  queue.SendTask([] {
+    SequenceChecker sequence_checker;
+    sequence_checker.Detach();
+    RunOnDifferentThread([&] { EXPECT_TRUE(sequence_checker.IsCurrent()); });
+  });
+}
+
+TEST(SequenceCheckerTest, MethodNotAllowedOnDifferentThreadInDebug) {
+  SequenceChecker sequence_checker;
+  RunOnDifferentThread(
+      [&] { EXPECT_EQ(sequence_checker.IsCurrent(), !RTC_DCHECK_IS_ON); });
+}
+
+TEST(SequenceCheckerTest, MethodNotAllowedOnDifferentTaskQueueInDebug) {
+  SequenceChecker sequence_checker;
+  TaskQueueForTest queue;
+  queue.SendTask(
+      [&] { EXPECT_EQ(sequence_checker.IsCurrent(), !RTC_DCHECK_IS_ON); });
+}
+
+TEST(SequenceCheckerTest, DetachFromTaskQueueInDebug) {
+  SequenceChecker sequence_checker;
+  sequence_checker.Detach();
+
+  TaskQueueForTest queue1;
+  queue1.SendTask([&] { EXPECT_TRUE(sequence_checker.IsCurrent()); });
+
+  // IsCurrent should return false in debug builds after moving to
+  // another task queue.
+  TaskQueueForTest queue2;
+  queue2.SendTask(
+      [&] { EXPECT_EQ(sequence_checker.IsCurrent(), !RTC_DCHECK_IS_ON); });
+}
+
+class TestAnnotations {
+ public:
+  TestAnnotations() : test_var_(false) {}
+
+  void ModifyTestVar() {
+    RTC_DCHECK_RUN_ON(&checker_);
+    test_var_ = true;
+  }
+
+ private:
+  bool test_var_ RTC_GUARDED_BY(&checker_);
+  SequenceChecker checker_;
+};
+
+TEST(SequenceCheckerTest, TestAnnotations) {
+  TestAnnotations annotations;
+  annotations.ModifyTestVar();
+}
+
+#if GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID)
+
+void TestAnnotationsOnWrongQueue() {
+  TestAnnotations annotations;
+  TaskQueueForTest queue;
+  queue.SendTask([&] { annotations.ModifyTestVar(); });
+}
+
+#if RTC_DCHECK_IS_ON
+TEST(SequenceCheckerTest, TestAnnotationsOnWrongQueueDebug) {
+  ASSERT_DEATH({ TestAnnotationsOnWrongQueue(); }, "");
+}
+#else
+TEST(SequenceCheckerTest, TestAnnotationsOnWrongQueueRelease) {
+  TestAnnotationsOnWrongQueue();
+}
+#endif
+#endif  // GTEST_HAS_DEATH_TEST
+}  // namespace webrtc
diff --git a/rtc_base/task_utils/BUILD.gn b/rtc_base/task_utils/BUILD.gn
index e562779..7a466a1 100644
--- a/rtc_base/task_utils/BUILD.gn
+++ b/rtc_base/task_utils/BUILD.gn
@@ -16,12 +16,12 @@
   deps = [
     ":to_queued_task",
     "..:logging",
-    "..:sequenced_task_checker",
     "..:thread_checker",
     "..:timeutils",
     "../../api/task_queue",
     "../../api/units:time_delta",
     "../../api/units:timestamp",
+    "../synchronization:sequence_checker",
     "//third_party/abseil-cpp/absl/memory",
   ]
 }
diff --git a/rtc_base/task_utils/repeating_task.h b/rtc_base/task_utils/repeating_task.h
index 21ec130..8549049 100644
--- a/rtc_base/task_utils/repeating_task.h
+++ b/rtc_base/task_utils/repeating_task.h
@@ -19,7 +19,7 @@
 #include "api/task_queue/task_queue_base.h"
 #include "api/units/time_delta.h"
 #include "api/units/timestamp.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/thread_checker.h"
 
 namespace webrtc {
diff --git a/rtc_base/weak_ptr.cc b/rtc_base/weak_ptr.cc
index ad98c24..09807e1 100644
--- a/rtc_base/weak_ptr.cc
+++ b/rtc_base/weak_ptr.cc
@@ -24,13 +24,13 @@
 }
 
 void WeakReference::Flag::Invalidate() {
-  RTC_DCHECK(checker_.CalledSequentially())
+  RTC_DCHECK(checker_.IsCurrent())
       << "WeakPtrs must be invalidated on the same sequence.";
   is_valid_ = false;
 }
 
 bool WeakReference::Flag::IsValid() const {
-  RTC_DCHECK(checker_.CalledSequentially())
+  RTC_DCHECK(checker_.IsCurrent())
       << "WeakPtrs must be checked on the same sequence.";
   return is_valid_;
 }
diff --git a/rtc_base/weak_ptr.h b/rtc_base/weak_ptr.h
index 89969d6..80cb7ee 100644
--- a/rtc_base/weak_ptr.h
+++ b/rtc_base/weak_ptr.h
@@ -18,7 +18,7 @@
 #include "api/scoped_refptr.h"
 #include "rtc_base/ref_count.h"
 #include "rtc_base/ref_counted_object.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 
 // The implementation is borrowed from chromium except that it does not
 // implement SupportsWeakPtr.
@@ -104,7 +104,7 @@
 
     ~Flag() override;
 
-    SequencedTaskChecker checker_;
+    ::webrtc::SequenceChecker checker_;
     bool is_valid_;
   };
 
diff --git a/rtc_tools/network_tester/BUILD.gn b/rtc_tools/network_tester/BUILD.gn
index ca2c04c..e0fb603 100644
--- a/rtc_tools/network_tester/BUILD.gn
+++ b/rtc_tools/network_tester/BUILD.gn
@@ -51,7 +51,7 @@
       "../../rtc_base:protobuf_utils",
       "../../rtc_base:rtc_base_approved",
       "../../rtc_base:rtc_task_queue",
-      "../../rtc_base:sequenced_task_checker",
+      "../../rtc_base/synchronization:sequence_checker",
       "../../rtc_base/third_party/sigslot",
       "//third_party/abseil-cpp/absl/memory",
       "//third_party/abseil-cpp/absl/types:optional",
diff --git a/rtc_tools/network_tester/packet_sender.cc b/rtc_tools/network_tester/packet_sender.cc
index ecf9f5b..71e4e59 100644
--- a/rtc_tools/network_tester/packet_sender.cc
+++ b/rtc_tools/network_tester/packet_sender.cc
@@ -96,7 +96,7 @@
 void PacketSender::StartSending() {
   worker_queue_checker_.Detach();
   worker_queue_.PostTask([this]() {
-    RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_queue_checker_);
+    RTC_DCHECK_RUN_ON(&worker_queue_checker_);
     sending_ = true;
   });
   worker_queue_.PostTask(absl::make_unique<UpdateTestSettingTask>(
@@ -105,18 +105,18 @@
 }
 
 void PacketSender::StopSending() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_queue_checker_);
+  RTC_DCHECK_RUN_ON(&worker_queue_checker_);
   sending_ = false;
   test_controller_->OnTestDone();
 }
 
 bool PacketSender::IsSending() const {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_queue_checker_);
+  RTC_DCHECK_RUN_ON(&worker_queue_checker_);
   return sending_;
 }
 
 void PacketSender::SendPacket() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_queue_checker_);
+  RTC_DCHECK_RUN_ON(&worker_queue_checker_);
   NetworkTesterPacket packet;
   packet.set_type(NetworkTesterPacket::TEST_DATA);
   packet.set_sequence_number(sequence_number_++);
@@ -125,13 +125,13 @@
 }
 
 int64_t PacketSender::GetSendIntervalMs() const {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_queue_checker_);
+  RTC_DCHECK_RUN_ON(&worker_queue_checker_);
   return send_interval_ms_;
 }
 
 void PacketSender::UpdateTestSetting(size_t packet_size,
                                      int64_t send_interval_ms) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_queue_checker_);
+  RTC_DCHECK_RUN_ON(&worker_queue_checker_);
   send_interval_ms_ = send_interval_ms;
   packet_size_ = packet_size;
 }
diff --git a/rtc_tools/network_tester/packet_sender.h b/rtc_tools/network_tester/packet_sender.h
index c6ec64e..ffc1118 100644
--- a/rtc_tools/network_tester/packet_sender.h
+++ b/rtc_tools/network_tester/packet_sender.h
@@ -17,7 +17,7 @@
 #include "api/task_queue/task_queue_factory.h"
 #include "rtc_base/constructor_magic.h"
 #include "rtc_base/ignore_wundef.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/task_queue.h"
 
 #ifdef WEBRTC_NETWORK_TESTER_PROTO
@@ -49,7 +49,7 @@
   void UpdateTestSetting(size_t packet_size, int64_t send_interval_ms);
 
  private:
-  rtc::SequencedTaskChecker worker_queue_checker_;
+  SequenceChecker worker_queue_checker_;
   size_t packet_size_ RTC_GUARDED_BY(worker_queue_checker_);
   int64_t send_interval_ms_ RTC_GUARDED_BY(worker_queue_checker_);
   int64_t sequence_number_ RTC_GUARDED_BY(worker_queue_checker_);
diff --git a/rtc_tools/network_tester/test_controller.cc b/rtc_tools/network_tester/test_controller.cc
index 87fb4c0..5200786 100644
--- a/rtc_tools/network_tester/test_controller.cc
+++ b/rtc_tools/network_tester/test_controller.cc
@@ -67,7 +67,7 @@
 }
 
 void TestController::OnTestDone() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&packet_sender_checker_);
+  RTC_DCHECK_RUN_ON(&packet_sender_checker_);
   NetworkTesterPacket packet;
   packet.set_type(NetworkTesterPacket::TEST_DONE);
   SendData(packet, absl::nullopt);
diff --git a/rtc_tools/network_tester/test_controller.h b/rtc_tools/network_tester/test_controller.h
index bde3b04..e522025 100644
--- a/rtc_tools/network_tester/test_controller.h
+++ b/rtc_tools/network_tester/test_controller.h
@@ -23,8 +23,8 @@
 #include "rtc_base/constructor_magic.h"
 #include "rtc_base/critical_section.h"
 #include "rtc_base/ignore_wundef.h"
-#include "rtc_base/sequenced_task_checker.h"
 #include "rtc_base/socket_address.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/third_party/sigslot/sigslot.h"
 #include "rtc_base/thread_annotations.h"
 #include "rtc_base/thread_checker.h"
@@ -70,7 +70,7 @@
                     const rtc::SocketAddress& remote_addr,
                     const int64_t& packet_time_us);
   rtc::ThreadChecker test_controller_thread_checker_;
-  rtc::SequencedTaskChecker packet_sender_checker_;
+  SequenceChecker packet_sender_checker_;
   rtc::BasicPacketSocketFactory socket_factory_;
   const std::string config_file_path_;
   PacketLogger packet_logger_;
diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn
index 6bc5d5d..920503a 100644
--- a/sdk/android/BUILD.gn
+++ b/sdk/android/BUILD.gn
@@ -632,8 +632,8 @@
       "../../rtc_base",
       "../../rtc_base:checks",
       "../../rtc_base:rtc_task_queue",
-      "../../rtc_base:sequenced_task_checker",
       "../../rtc_base:weak_ptr",
+      "../../rtc_base/synchronization:sequence_checker",
       "../../system_wrappers:field_trial",
       "//third_party/abseil-cpp/absl/memory",
       "//third_party/libyuv",
diff --git a/sdk/android/src/jni/android_media_encoder.cc b/sdk/android/src/jni/android_media_encoder.cc
index d39d902..dbf2b31 100644
--- a/sdk/android/src/jni/android_media_encoder.cc
+++ b/sdk/android/src/jni/android_media_encoder.cc
@@ -32,7 +32,7 @@
 #include "rtc_base/bind.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/thread.h"
 #include "rtc_base/time_utils.h"
 #include "rtc_base/weak_ptr.h"
@@ -197,7 +197,7 @@
 
   // State that is constant for the lifetime of this object once the ctor
   // returns.
-  rtc::SequencedTaskChecker encoder_queue_checker_;
+  SequenceChecker encoder_queue_checker_;
   ScopedJavaGlobalRef<jobject> j_media_codec_video_encoder_;
 
   // State that is valid only between InitEncode() and the next Release().
@@ -307,7 +307,7 @@
 int32_t MediaCodecVideoEncoder::InitEncode(const VideoCodec* codec_settings,
                                            int32_t /* number_of_cores */,
                                            size_t /* max_payload_size */) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_checker_);
+  RTC_DCHECK_RUN_ON(&encoder_queue_checker_);
   if (codec_settings == NULL) {
     ALOGE << "NULL VideoCodec instance";
     return WEBRTC_VIDEO_CODEC_ERR_PARAMETER;
@@ -367,7 +367,7 @@
 }
 
 bool MediaCodecVideoEncoder::ResetCodec() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_checker_);
+  RTC_DCHECK_RUN_ON(&encoder_queue_checker_);
   ALOGE << "Reset";
   if (Release() != WEBRTC_VIDEO_CODEC_OK) {
     ALOGE << "Releasing codec failed during reset.";
@@ -391,7 +391,7 @@
     return true;
   }
 
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_->encoder_queue_checker_);
+  RTC_DCHECK_RUN_ON(&encoder_->encoder_queue_checker_);
   JNIEnv* jni = AttachCurrentThreadIfNeeded();
   ScopedLocalRefFrame local_ref_frame(jni);
 
@@ -468,7 +468,7 @@
                                                    int kbps,
                                                    int fps,
                                                    bool use_surface) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_checker_);
+  RTC_DCHECK_RUN_ON(&encoder_queue_checker_);
   if (sw_fallback_required_) {
     return WEBRTC_VIDEO_CODEC_OK;
   }
@@ -595,7 +595,7 @@
 int32_t MediaCodecVideoEncoder::Encode(
     const VideoFrame& frame,
     const std::vector<VideoFrameType>* frame_types) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_checker_);
+  RTC_DCHECK_RUN_ON(&encoder_queue_checker_);
   if (sw_fallback_required_)
     return WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE;
   JNIEnv* jni = AttachCurrentThreadIfNeeded();
@@ -753,7 +753,7 @@
 
 bool MediaCodecVideoEncoder::MaybeReconfigureEncoder(JNIEnv* jni,
                                                      const VideoFrame& frame) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_checker_);
+  RTC_DCHECK_RUN_ON(&encoder_queue_checker_);
 
   bool is_texture = IsTextureFrame(jni, frame);
   const bool reconfigure_due_to_format = is_texture != use_surface_;
@@ -798,7 +798,7 @@
                                               bool key_frame,
                                               const VideoFrame& frame,
                                               int input_buffer_index) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_checker_);
+  RTC_DCHECK_RUN_ON(&encoder_queue_checker_);
   RTC_CHECK(!use_surface_);
 
   rtc::scoped_refptr<I420BufferInterface> i420_buffer =
@@ -861,7 +861,7 @@
 
 int32_t MediaCodecVideoEncoder::RegisterEncodeCompleteCallback(
     EncodedImageCallback* callback) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_checker_);
+  RTC_DCHECK_RUN_ON(&encoder_queue_checker_);
   JNIEnv* jni = AttachCurrentThreadIfNeeded();
   ScopedLocalRefFrame local_ref_frame(jni);
   callback_ = callback;
@@ -869,7 +869,7 @@
 }
 
 int32_t MediaCodecVideoEncoder::Release() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_checker_);
+  RTC_DCHECK_RUN_ON(&encoder_queue_checker_);
   if (!inited_) {
     return WEBRTC_VIDEO_CODEC_OK;
   }
@@ -903,7 +903,7 @@
 int32_t MediaCodecVideoEncoder::SetRateAllocation(
     const VideoBitrateAllocation& rate_allocation,
     uint32_t frame_rate) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_checker_);
+  RTC_DCHECK_RUN_ON(&encoder_queue_checker_);
   const uint32_t new_bit_rate = rate_allocation.get_sum_kbps();
   if (sw_fallback_required_)
     return WEBRTC_VIDEO_CODEC_OK;
@@ -937,7 +937,7 @@
 }
 
 bool MediaCodecVideoEncoder::DeliverPendingOutputs(JNIEnv* jni) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_queue_checker_);
+  RTC_DCHECK_RUN_ON(&encoder_queue_checker_);
 
   while (true) {
     ScopedJavaLocalRef<jobject> j_output_buffer_info =
diff --git a/test/BUILD.gn b/test/BUILD.gn
index 6486780..f166443 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -592,7 +592,7 @@
     "../call:simulated_packet_receiver",
     "../modules/rtp_rtcp",
     "../rtc_base:rtc_base_approved",
-    "../rtc_base:sequenced_task_checker",
+    "../rtc_base/synchronization:sequence_checker",
     "../system_wrappers",
     "//third_party/abseil-cpp/absl/memory",
   ]
@@ -650,7 +650,7 @@
     "../rtc_base:checks",
     "../rtc_base:rtc_base_approved",
     "../rtc_base:rtc_task_queue",
-    "../rtc_base:sequenced_task_checker",
+    "../rtc_base/synchronization:sequence_checker",
     "../system_wrappers",
     "//third_party/abseil-cpp/absl/memory",
     "//third_party/abseil-cpp/absl/types:optional",
diff --git a/test/direct_transport.h b/test/direct_transport.h
index 15d765e..c2efe65 100644
--- a/test/direct_transport.h
+++ b/test/direct_transport.h
@@ -16,7 +16,7 @@
 #include "api/test/simulated_network.h"
 #include "call/call.h"
 #include "call/simulated_packet_receiver.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/thread_annotations.h"
 #include "test/single_threaded_task_queue.h"
 
diff --git a/test/fake_encoder.cc b/test/fake_encoder.cc
index ec39f9c..ac59dfd 100644
--- a/test/fake_encoder.cc
+++ b/test/fake_encoder.cc
@@ -349,13 +349,13 @@
 }
 
 void DelayedEncoder::SetDelay(int delay_ms) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequence_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
   delay_ms_ = delay_ms;
 }
 
 int32_t DelayedEncoder::Encode(const VideoFrame& input_image,
                                const std::vector<VideoFrameType>* frame_types) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequence_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
 
   SleepMs(delay_ms_);
 
@@ -378,7 +378,7 @@
 int32_t MultithreadedFakeH264Encoder::InitEncode(const VideoCodec* config,
                                                  int32_t number_of_cores,
                                                  size_t max_payload_size) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequence_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
 
   queue1_ = task_queue_factory_->CreateTaskQueue(
       "Queue 1", TaskQueueFactory::Priority::NORMAL);
@@ -411,7 +411,7 @@
 int32_t MultithreadedFakeH264Encoder::Encode(
     const VideoFrame& input_image,
     const std::vector<VideoFrameType>* frame_types) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequence_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
 
   TaskQueueBase* queue =
       (current_queue_++ % 2 == 0) ? queue1_.get() : queue2_.get();
@@ -433,7 +433,7 @@
 }
 
 int32_t MultithreadedFakeH264Encoder::Release() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequence_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
 
   queue1_.reset();
   queue2_.reset();
diff --git a/test/fake_encoder.h b/test/fake_encoder.h
index d09199d..95b4b20 100644
--- a/test/fake_encoder.h
+++ b/test/fake_encoder.h
@@ -25,7 +25,7 @@
 #include "modules/include/module_common_types.h"
 #include "modules/video_coding/include/video_codec_interface.h"
 #include "rtc_base/critical_section.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/thread_annotations.h"
 #include "system_wrappers/include/clock.h"
 
@@ -127,7 +127,7 @@
 
  private:
   int delay_ms_ RTC_GUARDED_BY(sequence_checker_);
-  rtc::SequencedTaskChecker sequence_checker_;
+  SequenceChecker sequence_checker_;
 };
 
 // This class implements a multi-threaded fake encoder by posting
@@ -161,7 +161,7 @@
       RTC_GUARDED_BY(sequence_checker_);
   std::unique_ptr<TaskQueueBase, TaskQueueDeleter> queue2_
       RTC_GUARDED_BY(sequence_checker_);
-  rtc::SequencedTaskChecker sequence_checker_;
+  SequenceChecker sequence_checker_;
 };
 
 }  // namespace test
diff --git a/test/fake_vp8_encoder.cc b/test/fake_vp8_encoder.cc
index 5ea4b4e..bd92bc6 100644
--- a/test/fake_vp8_encoder.cc
+++ b/test/fake_vp8_encoder.cc
@@ -51,7 +51,7 @@
 int32_t FakeVP8Encoder::InitEncode(const VideoCodec* config,
                                    int32_t number_of_cores,
                                    size_t max_payload_size) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequence_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
   auto result =
       FakeEncoder::InitEncode(config, number_of_cores, max_payload_size);
   if (result != WEBRTC_VIDEO_CODEC_OK) {
@@ -75,7 +75,7 @@
                                            VideoFrameType frame_type,
                                            int stream_idx,
                                            uint32_t timestamp) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequence_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
   codec_specific->codecType = kVideoCodecVP8;
   codec_specific->codecSpecific.VP8.keyIdx = kNoKeyIdx;
   codec_specific->codecSpecific.VP8.nonReference = false;
@@ -87,7 +87,7 @@
 std::unique_ptr<RTPFragmentationHeader> FakeVP8Encoder::EncodeHook(
     EncodedImage* encoded_image,
     CodecSpecificInfo* codec_specific) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&sequence_checker_);
+  RTC_DCHECK_RUN_ON(&sequence_checker_);
   uint8_t stream_idx = encoded_image->SpatialIndex().value_or(0);
   frame_buffer_controller_->UpdateLayerConfig(stream_idx,
                                               encoded_image->Timestamp());
diff --git a/test/fake_vp8_encoder.h b/test/fake_vp8_encoder.h
index 9328189..b5733c8 100644
--- a/test/fake_vp8_encoder.h
+++ b/test/fake_vp8_encoder.h
@@ -23,7 +23,7 @@
 #include "api/video_codecs/vp8_temporal_layers.h"
 #include "modules/include/module_common_types.h"
 #include "modules/video_coding/include/video_codec_interface.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/thread_annotations.h"
 #include "system_wrappers/include/clock.h"
 #include "test/fake_encoder.h"
@@ -55,7 +55,7 @@
       EncodedImage* encoded_image,
       CodecSpecificInfo* codec_specific) override;
 
-  rtc::SequencedTaskChecker sequence_checker_;
+  SequenceChecker sequence_checker_;
 
   std::unique_ptr<Vp8FrameBufferController> frame_buffer_controller_
       RTC_GUARDED_BY(sequence_checker_);
diff --git a/test/scenario/BUILD.gn b/test/scenario/BUILD.gn
index e6f3f46..b9d0a8a 100644
--- a/test/scenario/BUILD.gn
+++ b/test/scenario/BUILD.gn
@@ -128,8 +128,8 @@
       "../../rtc_base:rtc_base_tests_utils",
       "../../rtc_base:rtc_task_queue",
       "../../rtc_base:safe_minmax",
-      "../../rtc_base:sequenced_task_checker",
       "../../rtc_base:task_queue_for_test",
+      "../../rtc_base/synchronization:sequence_checker",
       "../../rtc_base/task_utils:repeating_task",
       "../../system_wrappers",
       "../../system_wrappers:field_trial",
diff --git a/test/time_controller/BUILD.gn b/test/time_controller/BUILD.gn
index eb75af6..54b095c 100644
--- a/test/time_controller/BUILD.gn
+++ b/test/time_controller/BUILD.gn
@@ -29,7 +29,7 @@
       "../../rtc_base",
       "../../rtc_base:rtc_base_tests_utils",
       "../../rtc_base:rtc_event",
-      "../../rtc_base:sequenced_task_checker",
+      "../../rtc_base/synchronization:sequence_checker",
       "../../rtc_base/synchronization:yield_policy",
       "../../rtc_base/task_utils:to_queued_task",
       "../../system_wrappers",
diff --git a/video/BUILD.gn b/video/BUILD.gn
index b4b943c..ddcbaab 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -94,13 +94,13 @@
     "../rtc_base:rtc_base_approved",
     "../rtc_base:rtc_numerics",
     "../rtc_base:rtc_task_queue",
-    "../rtc_base:sequenced_task_checker",
     "../rtc_base:stringutils",
     "../rtc_base:weak_ptr",
     "../rtc_base/experiments:alr_experiment",
     "../rtc_base/experiments:keyframe_interval_settings_experiment",
     "../rtc_base/experiments:quality_scaling_experiment",
     "../rtc_base/experiments:rate_control_settings",
+    "../rtc_base/synchronization:sequence_checker",
     "../rtc_base/system:fallthrough",
     "../rtc_base/system:thread_registry",
     "../rtc_base/task_utils:repeating_task",
@@ -203,11 +203,11 @@
     "../rtc_base:rtc_event",
     "../rtc_base:rtc_numerics",
     "../rtc_base:rtc_task_queue",
-    "../rtc_base:sequenced_task_checker",
     "../rtc_base:timeutils",
     "../rtc_base/experiments:alr_experiment",
     "../rtc_base/experiments:quality_scaling_experiment",
     "../rtc_base/experiments:rate_control_settings",
+    "../rtc_base/synchronization:sequence_checker",
     "../rtc_base/system:fallthrough",
     "../rtc_base/task_utils:repeating_task",
     "../system_wrappers:field_trial",
diff --git a/video/overuse_frame_detector.cc b/video/overuse_frame_detector.cc
index 24eed97..894a648 100644
--- a/video/overuse_frame_detector.cc
+++ b/video/overuse_frame_detector.cc
@@ -541,7 +541,7 @@
     rtc::TaskQueue* task_queue,
     const CpuOveruseOptions& options,
     AdaptationObserverInterface* overuse_observer) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   RTC_DCHECK(!check_overuse_task_.Running());
   RTC_DCHECK(overuse_observer != nullptr);
 
@@ -554,12 +554,12 @@
       });
 }
 void OveruseFrameDetector::StopCheckForOveruse() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   check_overuse_task_.Stop();
 }
 
 void OveruseFrameDetector::EncodedFrameTimeMeasured(int encode_duration_ms) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   encode_usage_percent_ = usage_->Value();
 
   metrics_observer_->OnEncodedFrameTimeMeasured(encode_duration_ms,
@@ -567,7 +567,7 @@
 }
 
 bool OveruseFrameDetector::FrameSizeChanged(int num_pixels) const {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   if (num_pixels != num_pixels_) {
     return true;
   }
@@ -575,7 +575,7 @@
 }
 
 bool OveruseFrameDetector::FrameTimeoutDetected(int64_t now_us) const {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   if (last_capture_time_us_ == -1)
     return false;
   return (now_us - last_capture_time_us_) >
@@ -585,7 +585,7 @@
 void OveruseFrameDetector::ResetAll(int num_pixels) {
   // Reset state, as a result resolution being changed. Do not however change
   // the current frame rate back to the default.
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   num_pixels_ = num_pixels;
   usage_->Reset();
   last_capture_time_us_ = -1;
@@ -595,7 +595,7 @@
 }
 
 void OveruseFrameDetector::OnTargetFramerateUpdated(int framerate_fps) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   RTC_DCHECK_GE(framerate_fps, 0);
   max_framerate_ = std::min(kMaxFramerate, framerate_fps);
   usage_->SetMaxSampleDiffMs((1000 / std::max(kMinFramerate, max_framerate_)) *
@@ -604,7 +604,7 @@
 
 void OveruseFrameDetector::FrameCaptured(const VideoFrame& frame,
                                          int64_t time_when_first_seen_us) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
 
   if (FrameSizeChanged(frame.width() * frame.height()) ||
       FrameTimeoutDetected(time_when_first_seen_us)) {
@@ -619,7 +619,7 @@
                                      int64_t time_sent_in_us,
                                      int64_t capture_time_us,
                                      absl::optional<int> encode_duration_us) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   encode_duration_us = usage_->FrameSent(timestamp, time_sent_in_us,
                                          capture_time_us, encode_duration_us);
 
@@ -631,7 +631,7 @@
 
 void OveruseFrameDetector::CheckForOveruse(
     AdaptationObserverInterface* observer) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   RTC_DCHECK(observer);
   ++num_process_times_;
   if (num_process_times_ <= options_.min_process_count ||
@@ -681,7 +681,7 @@
 }
 
 void OveruseFrameDetector::SetOptions(const CpuOveruseOptions& options) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   options_ = options;
   // Force reset with next frame.
   num_pixels_ = 0;
@@ -689,7 +689,7 @@
 }
 
 bool OveruseFrameDetector::IsOverusing(int usage_percent) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
 
   if (usage_percent >= options_.high_encode_usage_threshold_percent) {
     ++checks_above_threshold_;
@@ -700,7 +700,7 @@
 }
 
 bool OveruseFrameDetector::IsUnderusing(int usage_percent, int64_t time_now) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
+  RTC_DCHECK_RUN_ON(&task_checker_);
   int delay = in_quick_rampup_ ? kQuickRampUpDelayMs : current_rampup_delay_ms_;
   if (time_now < last_rampup_time_ms_ + delay)
     return false;
diff --git a/video/overuse_frame_detector.h b/video/overuse_frame_detector.h
index b63a3ae..c65acc2 100644
--- a/video/overuse_frame_detector.h
+++ b/video/overuse_frame_detector.h
@@ -19,7 +19,7 @@
 #include "modules/video_coding/utility/quality_scaler.h"
 #include "rtc_base/constructor_magic.h"
 #include "rtc_base/numerics/exp_filter.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/task_queue.h"
 #include "rtc_base/task_utils/repeating_task.h"
 #include "rtc_base/thread_annotations.h"
@@ -122,7 +122,7 @@
   static std::unique_ptr<ProcessingUsage> CreateProcessingUsage(
       const CpuOveruseOptions& options);
 
-  rtc::SequencedTaskChecker task_checker_;
+  SequenceChecker task_checker_;
   // Owned by the task queue from where StartCheckForOveruse is called.
   RepeatingTaskHandle check_overuse_task_ RTC_GUARDED_BY(task_checker_);
 
diff --git a/video/rtp_video_stream_receiver.cc b/video/rtp_video_stream_receiver.cc
index 0a63c87..87b735c 100644
--- a/video/rtp_video_stream_receiver.cc
+++ b/video/rtp_video_stream_receiver.cc
@@ -318,7 +318,7 @@
 // This method handles both regular RTP packets and packets recovered
 // via FlexFEC.
 void RtpVideoStreamReceiver::OnRtpPacket(const RtpPacketReceived& packet) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_task_checker_);
+  RTC_DCHECK_RUN_ON(&worker_task_checker_);
 
   if (!receiving_) {
     return;
@@ -480,14 +480,14 @@
 }
 
 void RtpVideoStreamReceiver::AddSecondarySink(RtpPacketSinkInterface* sink) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_task_checker_);
+  RTC_DCHECK_RUN_ON(&worker_task_checker_);
   RTC_DCHECK(!absl::c_linear_search(secondary_sinks_, sink));
   secondary_sinks_.push_back(sink);
 }
 
 void RtpVideoStreamReceiver::RemoveSecondarySink(
     const RtpPacketSinkInterface* sink) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_task_checker_);
+  RTC_DCHECK_RUN_ON(&worker_task_checker_);
   auto it = absl::c_find(secondary_sinks_, sink);
   if (it == secondary_sinks_.end()) {
     // We might be rolling-back a call whose setup failed mid-way. In such a
@@ -610,7 +610,7 @@
 
 void RtpVideoStreamReceiver::ParseAndHandleEncapsulatingHeader(
     const RtpPacketReceived& packet) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_task_checker_);
+  RTC_DCHECK_RUN_ON(&worker_task_checker_);
   if (packet.PayloadType() == config_.rtp.red_payload_type &&
       packet.payload_size() > 0) {
     if (packet.payload()[0] == config_.rtp.ulpfec_payload_type) {
@@ -648,7 +648,7 @@
 
 bool RtpVideoStreamReceiver::DeliverRtcp(const uint8_t* rtcp_packet,
                                          size_t rtcp_packet_length) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_task_checker_);
+  RTC_DCHECK_RUN_ON(&worker_task_checker_);
 
   if (!receiving_) {
     return false;
@@ -725,12 +725,12 @@
 }
 
 void RtpVideoStreamReceiver::StartReceive() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_task_checker_);
+  RTC_DCHECK_RUN_ON(&worker_task_checker_);
   receiving_ = true;
 }
 
 void RtpVideoStreamReceiver::StopReceive() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_task_checker_);
+  RTC_DCHECK_RUN_ON(&worker_task_checker_);
   receiving_ = false;
 }
 
diff --git a/video/rtp_video_stream_receiver.h b/video/rtp_video_stream_receiver.h
index 1bc5d8a..7caeedc 100644
--- a/video/rtp_video_stream_receiver.h
+++ b/video/rtp_video_stream_receiver.h
@@ -39,7 +39,7 @@
 #include "rtc_base/constructor_magic.h"
 #include "rtc_base/critical_section.h"
 #include "rtc_base/numerics/sequence_number_util.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/thread_annotations.h"
 #include "rtc_base/thread_checker.h"
 #include "video/buffered_frame_decryptor.h"
@@ -199,7 +199,7 @@
   ReceiveStatistics* const rtp_receive_statistics_;
   std::unique_ptr<UlpfecReceiver> ulpfec_receiver_;
 
-  rtc::SequencedTaskChecker worker_task_checker_;
+  SequenceChecker worker_task_checker_;
   bool receiving_ RTC_GUARDED_BY(worker_task_checker_);
   int64_t last_packet_log_ms_ RTC_GUARDED_BY(worker_task_checker_);
 
diff --git a/video/video_receive_stream.cc b/video/video_receive_stream.cc
index a03b24f..b9199d8 100644
--- a/video/video_receive_stream.cc
+++ b/video/video_receive_stream.cc
@@ -285,7 +285,7 @@
                          new VCMTiming(clock)) {}
 
 VideoReceiveStream::~VideoReceiveStream() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&worker_sequence_checker_);
   RTC_LOG(LS_INFO) << "~VideoReceiveStream: " << config_.ToString();
   Stop();
   if (config_.media_transport) {
@@ -296,7 +296,7 @@
 }
 
 void VideoReceiveStream::SignalNetworkState(NetworkState state) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&worker_sequence_checker_);
   rtp_video_stream_receiver_.SignalNetworkState(state);
 }
 
@@ -305,12 +305,12 @@
 }
 
 void VideoReceiveStream::SetSync(Syncable* audio_syncable) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&worker_sequence_checker_);
   rtp_stream_sync_.ConfigureSync(audio_syncable);
 }
 
 void VideoReceiveStream::Start() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&worker_sequence_checker_);
 
   if (decode_thread_.IsRunning()) {
     return;
@@ -396,7 +396,7 @@
 }
 
 void VideoReceiveStream::Stop() {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&worker_sequence_checker_);
   rtp_video_stream_receiver_.StopReceive();
 
   stats_proxy_.OnUniqueFramesCounted(
@@ -441,7 +441,7 @@
 }
 
 bool VideoReceiveStream::SetBaseMinimumPlayoutDelayMs(int delay_ms) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&worker_sequence_checker_);
   if (delay_ms < kMinBaseMinimumDelayMs || delay_ms > kMaxBaseMinimumDelayMs) {
     return false;
   }
@@ -453,7 +453,7 @@
 }
 
 int VideoReceiveStream::GetBaseMinimumPlayoutDelayMs() const {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&worker_sequence_checker_);
 
   rtc::CritScope cs(&playout_delay_lock_);
   return base_minimum_playout_delay_ms_;
@@ -499,7 +499,7 @@
 
 void VideoReceiveStream::OnCompleteFrame(
     std::unique_ptr<video_coding::EncodedFrame> frame) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&network_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&network_sequence_checker_);
   // TODO(https://bugs.webrtc.org/9974): Consider removing this workaround.
   int64_t time_now_ms = rtc::TimeMillis();
   if (last_complete_frame_time_ms_ > 0 &&
@@ -533,7 +533,7 @@
 }
 
 void VideoReceiveStream::OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&module_process_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&module_process_sequence_checker_);
   frame_buffer_->UpdateRtt(max_rtt_ms);
   rtp_video_stream_receiver_.UpdateRtt(max_rtt_ms);
 }
@@ -543,12 +543,12 @@
 }
 
 int VideoReceiveStream::id() const {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&worker_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&worker_sequence_checker_);
   return config_.rtp.remote_ssrc;
 }
 
 absl::optional<Syncable::Info> VideoReceiveStream::GetInfo() const {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&module_process_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&module_process_sequence_checker_);
   absl::optional<Syncable::Info> info =
       rtp_video_stream_receiver_.GetSyncInfo();
 
@@ -565,7 +565,7 @@
 }
 
 void VideoReceiveStream::SetMinimumPlayoutDelay(int delay_ms) {
-  RTC_DCHECK_CALLED_SEQUENTIALLY(&module_process_sequence_checker_);
+  RTC_DCHECK_RUN_ON(&module_process_sequence_checker_);
   rtc::CritScope cs(&playout_delay_lock_);
   syncable_minimum_playout_delay_ms_ = delay_ms;
   UpdatePlayoutDelays();
diff --git a/video/video_receive_stream.h b/video/video_receive_stream.h
index 75f27b3..585a2cc 100644
--- a/video/video_receive_stream.h
+++ b/video/video_receive_stream.h
@@ -22,7 +22,7 @@
 #include "modules/rtp_rtcp/include/flexfec_receiver.h"
 #include "modules/video_coding/frame_buffer2.h"
 #include "modules/video_coding/video_coding_impl.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "system_wrappers/include/clock.h"
 #include "video/receive_statistics_proxy.h"
 #include "video/rtp_streams_synchronizer.h"
@@ -141,9 +141,9 @@
   void UpdatePlayoutDelays() const
       RTC_EXCLUSIVE_LOCKS_REQUIRED(playout_delay_lock_);
 
-  rtc::SequencedTaskChecker worker_sequence_checker_;
-  rtc::SequencedTaskChecker module_process_sequence_checker_;
-  rtc::SequencedTaskChecker network_sequence_checker_;
+  SequenceChecker worker_sequence_checker_;
+  SequenceChecker module_process_sequence_checker_;
+  SequenceChecker network_sequence_checker_;
 
   TaskQueueFactory* const task_queue_factory_;
 
diff --git a/video/video_send_stream_impl.cc b/video/video_send_stream_impl.cc
index f2a7756..af074c4 100644
--- a/video/video_send_stream_impl.cc
+++ b/video/video_send_stream_impl.cc
@@ -29,7 +29,7 @@
 #include "rtc_base/experiments/rate_control_settings.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/numerics/safe_conversions.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/thread_checker.h"
 #include "rtc_base/trace_event.h"
 #include "system_wrappers/include/clock.h"
diff --git a/video/video_stream_encoder.cc b/video/video_stream_encoder.cc
index badfd81..ac17124 100644
--- a/video/video_stream_encoder.cc
+++ b/video/video_stream_encoder.cc
@@ -228,7 +228,7 @@
   void SetSource(rtc::VideoSourceInterface<VideoFrame>* source,
                  const DegradationPreference& degradation_preference) {
     // Called on libjingle's worker thread.
-    RTC_DCHECK_CALLED_SEQUENTIALLY(&main_checker_);
+    RTC_DCHECK_RUN_ON(&main_checker_);
     rtc::VideoSourceInterface<VideoFrame>* old_source = nullptr;
     rtc::VideoSinkWants wants;
     {
@@ -434,7 +434,7 @@
   }
 
   rtc::CriticalSection crit_;
-  rtc::SequencedTaskChecker main_checker_;
+  SequenceChecker main_checker_;
   VideoStreamEncoder* const video_stream_encoder_;
   rtc::VideoSinkWants sink_wants_ RTC_GUARDED_BY(&crit_);
   DegradationPreference degradation_preference_ RTC_GUARDED_BY(&crit_);
diff --git a/video/video_stream_encoder.h b/video/video_stream_encoder.h
index 094cbcc..61585f7 100644
--- a/video/video_stream_encoder.h
+++ b/video/video_stream_encoder.h
@@ -32,7 +32,7 @@
 #include "rtc_base/experiments/rate_control_settings.h"
 #include "rtc_base/race_checker.h"
 #include "rtc_base/rate_statistics.h"
-#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/synchronization/sequence_checker.h"
 #include "rtc_base/task_queue.h"
 #include "video/encoder_bitrate_adjuster.h"
 #include "video/frame_encode_timer.h"