chromium/chromeos/crosapi/mojom/timezone.mojom

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module crosapi.mojom;

import "mojo/public/mojom/base/string16.mojom";

// Interface to observe system timezone updates.
[Stable, Uuid="6c74acf2-44fe-40ef-aad0-c8bd0073ec3d"]
interface TimeZoneObserver {
  // Called when the system timezone is updated.
  // Also called just after initial registration.
  // zone_id is ID the ID for a timezone, such as "America/Los_Angeles",
  // or a custom ID such as "GMT-8:00".
  OnTimeZoneChanged@0(mojo_base.mojom.String16 zone_id);
};

// Interface to register TimeZoneObserver.
[Stable, Uuid="98927de7-6858-4931-be9d-0475ef2421f2"]
interface TimeZoneService {
  // Adds an observer for the system timezone updates.
  // On the registration, OnTimeZoneChanged is called once
  // to tell the current up-to-date timezone.
  // On registration, this will trigger OnTimeZoneChanged immediately
  // to notify the latest timezone settings to the observer.
  AddObserver@0(pending_remote<TimeZoneObserver> observer);
};