Implement WebTransport session priority scheduler.

PiperOrigin-RevId: 596645681
diff --git a/build/source_list.bzl b/build/source_list.bzl
index fd8192c..dcdedb9 100644
--- a/build/source_list.bzl
+++ b/build/source_list.bzl
@@ -394,6 +394,7 @@
     "web_transport/encapsulated/encapsulated_web_transport.h",
     "web_transport/web_transport.h",
     "web_transport/web_transport_headers.h",
+    "web_transport/web_transport_priority_scheduler.h",
 ]
 quiche_core_srcs = [
     "common/capsule.cc",
@@ -683,6 +684,7 @@
     "web_transport/complete_buffer_visitor.cc",
     "web_transport/encapsulated/encapsulated_web_transport.cc",
     "web_transport/web_transport_headers.cc",
+    "web_transport/web_transport_priority_scheduler.cc",
 ]
 quiche_tool_support_hdrs = [
     "common/platform/api/quiche_command_line_flags.h",
@@ -1311,6 +1313,7 @@
     "spdy/core/spdy_protocol_test.cc",
     "web_transport/encapsulated/encapsulated_web_transport_test.cc",
     "web_transport/web_transport_headers_test.cc",
+    "web_transport/web_transport_priority_scheduler_test.cc",
 ]
 io_tests_hdrs = [
 ]
diff --git a/build/source_list.gni b/build/source_list.gni
index d3fb7a0..7d44368 100644
--- a/build/source_list.gni
+++ b/build/source_list.gni
@@ -394,6 +394,7 @@
     "src/quiche/web_transport/encapsulated/encapsulated_web_transport.h",
     "src/quiche/web_transport/web_transport.h",
     "src/quiche/web_transport/web_transport_headers.h",
+    "src/quiche/web_transport/web_transport_priority_scheduler.h",
 ]
 quiche_core_srcs = [
     "src/quiche/common/capsule.cc",
@@ -683,6 +684,7 @@
     "src/quiche/web_transport/complete_buffer_visitor.cc",
     "src/quiche/web_transport/encapsulated/encapsulated_web_transport.cc",
     "src/quiche/web_transport/web_transport_headers.cc",
+    "src/quiche/web_transport/web_transport_priority_scheduler.cc",
 ]
 quiche_tool_support_hdrs = [
     "src/quiche/common/platform/api/quiche_command_line_flags.h",
@@ -1312,6 +1314,7 @@
     "src/quiche/spdy/core/spdy_protocol_test.cc",
     "src/quiche/web_transport/encapsulated/encapsulated_web_transport_test.cc",
     "src/quiche/web_transport/web_transport_headers_test.cc",
+    "src/quiche/web_transport/web_transport_priority_scheduler_test.cc",
 ]
 io_tests_hdrs = [
 
diff --git a/build/source_list.json b/build/source_list.json
index 69eeccd..967ddc8 100644
--- a/build/source_list.json
+++ b/build/source_list.json
@@ -392,7 +392,8 @@
     "quiche/web_transport/complete_buffer_visitor.h",
     "quiche/web_transport/encapsulated/encapsulated_web_transport.h",
     "quiche/web_transport/web_transport.h",
-    "quiche/web_transport/web_transport_headers.h"
+    "quiche/web_transport/web_transport_headers.h",
+    "quiche/web_transport/web_transport_priority_scheduler.h"
   ],
   "quiche_core_srcs": [
     "quiche/common/capsule.cc",
@@ -681,7 +682,8 @@
     "quiche/spdy/core/spdy_protocol.cc",
     "quiche/web_transport/complete_buffer_visitor.cc",
     "quiche/web_transport/encapsulated/encapsulated_web_transport.cc",
-    "quiche/web_transport/web_transport_headers.cc"
+    "quiche/web_transport/web_transport_headers.cc",
+    "quiche/web_transport/web_transport_priority_scheduler.cc"
   ],
   "quiche_tool_support_hdrs": [
     "quiche/common/platform/api/quiche_command_line_flags.h",
@@ -1310,7 +1312,8 @@
     "quiche/spdy/core/spdy_framer_test.cc",
     "quiche/spdy/core/spdy_protocol_test.cc",
     "quiche/web_transport/encapsulated/encapsulated_web_transport_test.cc",
-    "quiche/web_transport/web_transport_headers_test.cc"
+    "quiche/web_transport/web_transport_headers_test.cc",
+    "quiche/web_transport/web_transport_priority_scheduler_test.cc"
   ],
   "io_tests_hdrs": [