#include "third_party/blink/renderer/core/timezone/timezone_controller.h"
#include "base/feature_list.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "third_party/blink/public/common/thread_safe_browser_interface_broker_proxy.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/public/web/web_local_frame.h"
#include "third_party/blink/renderer/core/dom/events/event.h"
#include "third_party/blink/renderer/core/frame/frame.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/core/workers/worker_backing_thread.h"
#include "third_party/blink/renderer/core/workers/worker_or_worklet_global_scope.h"
#include "third_party/blink/renderer/core/workers/worker_thread.h"
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
#include "third_party/blink/renderer/platform/scheduler/public/main_thread.h"
#include "third_party/blink/renderer/platform/scheduler/public/main_thread_scheduler.h"
#include "third_party/icu/source/common/unicode/char16ptr.h"
#include "third_party/icu/source/i18n/unicode/timezone.h"
#include "v8/include/v8.h"
namespace blink {
namespace {
BASE_FEATURE(…);
void NotifyTimezoneChangeToV8(v8::Isolate* isolate) { … }
void NotifyTimezoneChangeOnWorkerThread(WorkerThread* worker_thread) { … }
String GetTimezoneId(const icu::TimeZone& timezone) { … }
String GetCurrentTimezoneId() { … }
void DispatchTimeZoneChangeEventToFrames() { … }
bool SetIcuTimeZoneAndNotifyV8(const String& timezone_id) { … }
}
TimeZoneController::TimeZoneController() { … }
TimeZoneController::~TimeZoneController() = default;
void TimeZoneController::Init() { … }
TimeZoneController& TimeZoneController::instance() { … }
bool CanonicalEquals(const String& time_zone_a, const String& time_zone_b) { … }
std::unique_ptr<TimeZoneController::TimeZoneOverride>
TimeZoneController::SetTimeZoneOverride(const String& timezone_id) { … }
bool TimeZoneController::HasTimeZoneOverride() { … }
const String& TimeZoneController::TimeZoneIdOverride() { … }
void TimeZoneController::ClearTimeZoneOverride() { … }
void TimeZoneController::ChangeTimeZoneOverride(const String& timezone_id) { … }
void TimeZoneController::OnTimeZoneChange(const String& timezone_id) { … }
const String& TimeZoneController::GetHostTimezoneId() { … }
void TimeZoneController::ChangeTimeZoneForTesting(const String& timezone) { … }
}