Remove workaround for Chromium's lack of thread_local.

Chromium is allowing thread_local, so this is no longer necessary.

Bug: chromium:1416710
PiperOrigin-RevId: 513534394
diff --git a/build/source_list.bzl b/build/source_list.bzl
index e8b4451..e5aba7e 100644
--- a/build/source_list.bzl
+++ b/build/source_list.bzl
@@ -41,7 +41,6 @@
     "common/platform/api/quiche_stack_trace.h",
     "common/platform/api/quiche_testvalue.h",
     "common/platform/api/quiche_thread.h",
-    "common/platform/api/quiche_thread_local.h",
     "common/platform/api/quiche_time_utils.h",
     "common/platform/api/quiche_url_utils.h",
     "common/print_elements.h",
@@ -1396,7 +1395,6 @@
     "common/platform/default/quiche_platform_impl/quiche_server_stats_impl.h",
     "common/platform/default/quiche_platform_impl/quiche_stack_trace_impl.h",
     "common/platform/default/quiche_platform_impl/quiche_testvalue_impl.h",
-    "common/platform/default/quiche_platform_impl/quiche_thread_local_impl.h",
     "common/platform/default/quiche_platform_impl/quiche_time_utils_impl.h",
     "common/platform/default/quiche_platform_impl/quiche_udp_socket_platform_impl.h",
     "common/platform/default/quiche_platform_impl/quiche_url_utils_impl.h",
diff --git a/build/source_list.gni b/build/source_list.gni
index da3d5f0..cf1f119 100644
--- a/build/source_list.gni
+++ b/build/source_list.gni
@@ -41,7 +41,6 @@
     "src/quiche/common/platform/api/quiche_stack_trace.h",
     "src/quiche/common/platform/api/quiche_testvalue.h",
     "src/quiche/common/platform/api/quiche_thread.h",
-    "src/quiche/common/platform/api/quiche_thread_local.h",
     "src/quiche/common/platform/api/quiche_time_utils.h",
     "src/quiche/common/platform/api/quiche_url_utils.h",
     "src/quiche/common/print_elements.h",
@@ -1396,7 +1395,6 @@
     "src/quiche/common/platform/default/quiche_platform_impl/quiche_server_stats_impl.h",
     "src/quiche/common/platform/default/quiche_platform_impl/quiche_stack_trace_impl.h",
     "src/quiche/common/platform/default/quiche_platform_impl/quiche_testvalue_impl.h",
-    "src/quiche/common/platform/default/quiche_platform_impl/quiche_thread_local_impl.h",
     "src/quiche/common/platform/default/quiche_platform_impl/quiche_time_utils_impl.h",
     "src/quiche/common/platform/default/quiche_platform_impl/quiche_udp_socket_platform_impl.h",
     "src/quiche/common/platform/default/quiche_platform_impl/quiche_url_utils_impl.h",
diff --git a/build/source_list.json b/build/source_list.json
index 04319c6..563c80f 100644
--- a/build/source_list.json
+++ b/build/source_list.json
@@ -40,7 +40,6 @@
     "quiche/common/platform/api/quiche_stack_trace.h",
     "quiche/common/platform/api/quiche_testvalue.h",
     "quiche/common/platform/api/quiche_thread.h",
-    "quiche/common/platform/api/quiche_thread_local.h",
     "quiche/common/platform/api/quiche_time_utils.h",
     "quiche/common/platform/api/quiche_url_utils.h",
     "quiche/common/print_elements.h",
@@ -1395,7 +1394,6 @@
     "quiche/common/platform/default/quiche_platform_impl/quiche_server_stats_impl.h",
     "quiche/common/platform/default/quiche_platform_impl/quiche_stack_trace_impl.h",
     "quiche/common/platform/default/quiche_platform_impl/quiche_testvalue_impl.h",
-    "quiche/common/platform/default/quiche_platform_impl/quiche_thread_local_impl.h",
     "quiche/common/platform/default/quiche_platform_impl/quiche_time_utils_impl.h",
     "quiche/common/platform/default/quiche_platform_impl/quiche_udp_socket_platform_impl.h",
     "quiche/common/platform/default/quiche_platform_impl/quiche_url_utils_impl.h"
diff --git a/quiche/common/platform/api/quiche_thread_local.h b/quiche/common/platform/api/quiche_thread_local.h
deleted file mode 100644
index c2d58e1..0000000
--- a/quiche/common/platform/api/quiche_thread_local.h
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef QUICHE_COMMON_PLATFORM_API_QUICHE_THREAD_LOCAL_H_
-#define QUICHE_COMMON_PLATFORM_API_QUICHE_THREAD_LOCAL_H_
-
-#include "quiche_platform_impl/quiche_thread_local_impl.h"
-
-// Define a thread local |type*| with |name|. Conceptually, this is a
-//
-//  static thread_local type* name = nullptr;
-//
-// It is wrapped in a macro because the thread_local keyword is banned from
-// Chromium.
-#define DEFINE_QUICHE_THREAD_LOCAL_POINTER(name, type) \
-  DEFINE_QUICHE_THREAD_LOCAL_POINTER_IMPL(name, type)
-
-// Get the value of |name| for the current thread.
-#define GET_QUICHE_THREAD_LOCAL_POINTER(name) \
-  GET_QUICHE_THREAD_LOCAL_POINTER_IMPL(name)
-
-// Set the |value| of |name| for the current thread.
-#define SET_QUICHE_THREAD_LOCAL_POINTER(name, value) \
-  SET_QUICHE_THREAD_LOCAL_POINTER_IMPL(name, value)
-
-#endif  // QUICHE_COMMON_PLATFORM_API_QUICHE_THREAD_LOCAL_H_
diff --git a/quiche/common/platform/default/quiche_platform_impl/quiche_thread_local_impl.h b/quiche/common/platform/default/quiche_platform_impl/quiche_thread_local_impl.h
deleted file mode 100644
index 5ebea4c..0000000
--- a/quiche/common/platform/default/quiche_platform_impl/quiche_thread_local_impl.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef QUICHE_COMMON_PLATFORM_DEFAULT_QUICHE_PLATFORM_IMPL_QUICHE_THREAD_LOCAL_IMPL_H_
-#define QUICHE_COMMON_PLATFORM_DEFAULT_QUICHE_PLATFORM_IMPL_QUICHE_THREAD_LOCAL_IMPL_H_
-
-#define DEFINE_QUICHE_THREAD_LOCAL_POINTER_IMPL(name, type) \
-  struct QuicheThreadLocalPointer_##name {                  \
-    static type** Instance() {                              \
-      static thread_local type* instance = nullptr;         \
-      return &instance;                                     \
-    }                                                       \
-    static type* Get() { return *Instance(); }              \
-    static void Set(type* ptr) { *Instance() = ptr; }       \
-  }
-
-#define GET_QUICHE_THREAD_LOCAL_POINTER_IMPL(name) \
-  QuicheThreadLocalPointer_##name::Get()
-
-#define SET_QUICHE_THREAD_LOCAL_POINTER_IMPL(name, value) \
-  QuicheThreadLocalPointer_##name::Set(value)
-
-#endif  // QUICHE_COMMON_PLATFORM_DEFAULT_QUICHE_PLATFORM_IMPL_QUICHE_THREAD_LOCAL_IMPL_H_
diff --git a/quiche/quic/core/quic_connection_context.cc b/quiche/quic/core/quic_connection_context.cc
index 01381ed..28e9d8e 100644
--- a/quiche/quic/core/quic_connection_context.cc
+++ b/quiche/quic/core/quic_connection_context.cc
@@ -4,12 +4,12 @@
 
 #include "quiche/quic/core/quic_connection_context.h"
 
-#include "quiche/common/platform/api/quiche_thread_local.h"
+#include "absl/base/attributes.h"
 #include "quiche/common/quiche_text_utils.h"
 
 namespace quic {
 namespace {
-DEFINE_QUICHE_THREAD_LOCAL_POINTER(CurrentContext, QuicConnectionContext);
+ABSL_CONST_INIT thread_local QuicConnectionContext* current_context = nullptr;
 }  // namespace
 
 std::string QuicConnectionProcessPacketContext::DebugString() const {
@@ -25,13 +25,13 @@
 
 // static
 QuicConnectionContext* QuicConnectionContext::Current() {
-  return GET_QUICHE_THREAD_LOCAL_POINTER(CurrentContext);
+  return current_context;
 }
 
 QuicConnectionContextSwitcher::QuicConnectionContextSwitcher(
     QuicConnectionContext* new_context)
     : old_context_(QuicConnectionContext::Current()) {
-  SET_QUICHE_THREAD_LOCAL_POINTER(CurrentContext, new_context);
+  current_context = new_context;
   if (new_context && new_context->tracer) {
     new_context->tracer->Activate();
   }
@@ -42,7 +42,7 @@
   if (current && current->tracer) {
     current->tracer->Deactivate();
   }
-  SET_QUICHE_THREAD_LOCAL_POINTER(CurrentContext, old_context_);
+  current_context = old_context_;
 }
 
 }  // namespace quic