chromium/third_party/closure_compiler/externs/settings_private.js

// 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.

// This file was generated by:
//   tools/json_schema_compiler/compiler.py.
// NOTE: The format of types has changed. 'FooType' is now
//   'chrome.settingsPrivate.FooType'.
// Please run the closure compiler before committing changes.
// See https://chromium.googlesource.com/chromium/src/+/main/docs/closure_compilation.md

/**
 * @fileoverview Externs generated from namespace: settingsPrivate
 * @externs
 */

/** @const */
chrome.settingsPrivate = {};

/**
 * @enum {string}
 */
chrome.settingsPrivate.PrefType = {
  BOOLEAN: 'BOOLEAN',
  NUMBER: 'NUMBER',
  STRING: 'STRING',
  URL: 'URL',
  LIST: 'LIST',
  DICTIONARY: 'DICTIONARY',
};

/**
 * @enum {string}
 */
chrome.settingsPrivate.ControlledBy = {
  DEVICE_POLICY: 'DEVICE_POLICY',
  USER_POLICY: 'USER_POLICY',
  OWNER: 'OWNER',
  PRIMARY_USER: 'PRIMARY_USER',
  EXTENSION: 'EXTENSION',
  PARENT: 'PARENT',
  CHILD_RESTRICTION: 'CHILD_RESTRICTION',
};

/**
 * @enum {string}
 */
chrome.settingsPrivate.Enforcement = {
  ENFORCED: 'ENFORCED',
  RECOMMENDED: 'RECOMMENDED',
  PARENT_SUPERVISED: 'PARENT_SUPERVISED',
};

/**
 * @typedef {{
 *   key: string,
 *   type: !chrome.settingsPrivate.PrefType,
 *   value: (*|undefined),
 *   controlledBy: (!chrome.settingsPrivate.ControlledBy|undefined),
 *   controlledByName: (string|undefined),
 *   enforcement: (!chrome.settingsPrivate.Enforcement|undefined),
 *   recommendedValue: (*|undefined),
 *   userSelectableValues: (!Array<*>|undefined),
 *   userControlDisabled: (boolean|undefined),
 *   extensionId: (string|undefined),
 *   extensionCanBeDisabled: (boolean|undefined)
 * }}
 */
chrome.settingsPrivate.PrefObject;

/**
 * Sets a pref value.
 * @param {string} name The name of the pref.
 * @param {*} value The new value of the pref.
 * @param {string=} pageId An optional user metrics identifier.
 * @param {function(boolean): void=} callback The callback for whether the pref
 *     was set or not.
 */
chrome.settingsPrivate.setPref = function(name, value, pageId, callback) {};

/**
 * Gets an array of all the prefs.
 * @param {function(!Array<!chrome.settingsPrivate.PrefObject>): void} callback
 */
chrome.settingsPrivate.getAllPrefs = function(callback) {};

/**
 * Gets the value of a specific pref.
 * @param {string} name
 * @param {function(!chrome.settingsPrivate.PrefObject): void} callback
 */
chrome.settingsPrivate.getPref = function(name, callback) {};

/**
 * Gets the default page zoom factor. Possible values are currently between 0.25
 * and 5. For a full list, see zoom::kPresetBrowserZoomFactors.
 * @param {function(number): void} callback
 */
chrome.settingsPrivate.getDefaultZoom = function(callback) {};

/**
 * Sets the page zoom factor. Must be less than 0.001 different than a value in
 * zoom::kPresetBrowserZoomFactors.
 * @param {number} zoom
 * @param {function(boolean): void=} callback
 */
chrome.settingsPrivate.setDefaultZoom = function(zoom, callback) {};

/**
 * <p>Fired when a set of prefs has changed.</p><p>|prefs| The prefs that
 * changed.</p>
 * @type {!ChromeEvent}
 */
chrome.settingsPrivate.onPrefsChanged;