diff --git a/quic/core/quic_flags_list.h b/quic/core/quic_flags_list.h
index 72cd4bb..2167611 100644
--- a/quic/core/quic_flags_list.h
+++ b/quic/core/quic_flags_list.h
@@ -32,6 +32,7 @@
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_default_to_bbr, false)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_default_to_bbr_v2, false)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_delay_initial_ack, false)
+QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_deprecate_http2_priority_experiment, false)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_disable_server_blackhole_detection, false)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_disable_version_draft_27, true)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_disable_version_draft_29, false)
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index 6b4c517..3a06af3 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -1239,24 +1239,31 @@
       if (ContainsQuicTag(config_.ReceivedConnectionOptions(), kIFWA)) {
         AdjustInitialFlowControlWindows(1024 * 1024);
       }
-      if (ContainsQuicTag(config_.ReceivedConnectionOptions(), kH2PR) &&
-          !VersionHasIetfQuicFrames(transport_version())) {
-        // Enable HTTP2 (tree-style) priority write scheduler.
-        use_http2_priority_write_scheduler_ =
-            write_blocked_streams_.SwitchWriteScheduler(
-                spdy::WriteSchedulerType::HTTP2, transport_version());
-      } else if (ContainsQuicTag(config_.ReceivedConnectionOptions(), kFIFO)) {
-        // Enable FIFO write scheduler.
-        write_blocked_streams_.SwitchWriteScheduler(
-            spdy::WriteSchedulerType::FIFO, transport_version());
-      } else if (ContainsQuicTag(config_.ReceivedConnectionOptions(), kLIFO)) {
-        // Enable LIFO write scheduler.
-        write_blocked_streams_.SwitchWriteScheduler(
-            spdy::WriteSchedulerType::LIFO, transport_version());
-      } else if (ContainsQuicTag(config_.ReceivedConnectionOptions(), kRRWS) &&
-                 write_blocked_streams_.scheduler_type() ==
-                     spdy::WriteSchedulerType::SPDY) {
-        enable_round_robin_scheduling_ = true;
+      if (GetQuicReloadableFlag(quic_deprecate_http2_priority_experiment)) {
+        QUIC_CODE_COUNT(quic_deprecate_http2_priority_experiment);
+      } else {
+        if (ContainsQuicTag(config_.ReceivedConnectionOptions(), kH2PR) &&
+            !VersionHasIetfQuicFrames(transport_version())) {
+          // Enable HTTP2 (tree-style) priority write scheduler.
+          use_http2_priority_write_scheduler_ =
+              write_blocked_streams_.SwitchWriteScheduler(
+                  spdy::WriteSchedulerType::HTTP2, transport_version());
+        } else if (ContainsQuicTag(config_.ReceivedConnectionOptions(),
+                                   kFIFO)) {
+          // Enable FIFO write scheduler.
+          write_blocked_streams_.SwitchWriteScheduler(
+              spdy::WriteSchedulerType::FIFO, transport_version());
+        } else if (ContainsQuicTag(config_.ReceivedConnectionOptions(),
+                                   kLIFO)) {
+          // Enable LIFO write scheduler.
+          write_blocked_streams_.SwitchWriteScheduler(
+              spdy::WriteSchedulerType::LIFO, transport_version());
+        } else if (ContainsQuicTag(config_.ReceivedConnectionOptions(),
+                                   kRRWS) &&
+                   write_blocked_streams_.scheduler_type() ==
+                       spdy::WriteSchedulerType::SPDY) {
+          enable_round_robin_scheduling_ = true;
+        }
       }
     }
 
diff --git a/quic/core/quic_session_test.cc b/quic/core/quic_session_test.cc
index 0622508..16b7720 100644
--- a/quic/core/quic_session_test.cc
+++ b/quic/core/quic_session_test.cc
@@ -1045,6 +1045,10 @@
 }
 
 TEST_P(QuicSessionTestServer, Http2Priority) {
+  if (GetQuicReloadableFlag(quic_deprecate_http2_priority_experiment)) {
+    return;
+  }
+
   if (VersionHasIetfQuicFrames(GetParam().transport_version)) {
     // The test is using HTTP/2 priority which is not supported in IETF QUIC.
     return;
@@ -1128,6 +1132,10 @@
 }
 
 TEST_P(QuicSessionTestServer, RoundRobinScheduling) {
+  if (GetQuicReloadableFlag(quic_deprecate_http2_priority_experiment)) {
+    return;
+  }
+
   if (VersionHasIetfQuicFrames(GetParam().transport_version)) {
     // IETF QUIC currently doesn't support PRIORITY.
     return;
