chromium/chrome/common/extensions/api/enterprise_kiosk_input.idl

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

// Use the <code>chrome.enterprise.kioskInput</code> API to change input
// settings for Kiosk sessions.
// Note: This API is only available to extensions installed by enterprise
// policy in ChromeOS Kiosk sessions.
[platforms = ("chromeos", "lacros"),
 implemented_in = "chrome/browser/extensions/api/enterprise_kiosk_input/enterprise_kiosk_input_api.h"]
namespace enterprise.kioskInput {
  dictionary SetCurrentInputMethodOptions {
    // The input method ID to set as current input method. This input
    // method has to be enabled by enterprise policies. Supported IDs
    // are located in https://crsrc.org/c/chrome/browser/resources/chromeos/input_method.
    DOMString inputMethodId;
  };

  callback SetCurrentInputMethodCallback = void();

  interface Functions {
  // Sets the current input method. This function only changes
  // the current input method to an enabled input method.
  // Input methods can be enabled by enterprise polices.
  // If the input method ID is invalid, or not enabled,
  // $(ref:runtime.lastError) will be set with a failure reason.
  // |options|: Object containing the fields defined in
  //            $(ref:SetCurrentInputMethodOptions).
  // |callback|: Called when the input method is changed or if
  // there is an error.
  static void setCurrentInputMethod(
      SetCurrentInputMethodOptions options,
      SetCurrentInputMethodCallback callback);
};

};