// Copyright 2015 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. // Use the chrome.settingsPrivate API to get or set preferences // from the settings UI. namespace settingsPrivate { // Type of a pref. enum PrefType { BOOLEAN, NUMBER, STRING, URL, LIST, DICTIONARY }; // Source of a restricted pref, either by policy or other source. enum PolicySource { DEVICE_POLICY, USER_POLICY, OWNER, PRIMARY_USER, EXTENSION }; // Enforcement type of a restricted pref. enum PolicyEnforcement { ENFORCED, RECOMMENDED }; dictionary PrefObject { // The key for the pref. DOMString key; // The type of the pref (e.g., boolean, string, etc.). PrefType type; // The current value of the pref. any value; // The policy source of the pref; an undefined value means there is no // policy. PolicySource? policySource; // The owner name if policySource == OWNER. // The primary user name if policySource == PRIMARY_USER. // The extension name if policySource == EXTENSION. DOMString? policySourceName; // The policy enforcement of the pref; must be specified if policySource is // also present. PolicyEnforcement? policyEnforcement; // The recommended value if policyEnforcement == RECOMMENDED. any? recommendedValue; // The extension ID if policySource == EXTENSION. DOMString? extensionId; // True if the pref is not controlled by a policy or user, but it can not be // modified (pref->IsUserModifiable() is false). Defaults to false. boolean? readOnly; }; callback OnPrefSetCallback = void (boolean success); callback GetAllPrefsCallback = void (PrefObject[] prefs); callback GetPrefCallback = void (PrefObject pref); callback GetDefaultZoomPercentCallback = void (long percent); callback SetDefaultZoomPercentCallback = void (boolean success); interface Functions { // Sets a settings value. // |name|: The name of the pref. // |value|: The new value of the pref. // |pageId|: The user metrics identifier or null. // |callback|: The callback for whether the pref was set or not. static void setPref(DOMString name, any value, DOMString pageId, OnPrefSetCallback callback); // Gets an array of all the prefs. static void getAllPrefs(GetAllPrefsCallback callback); // Gets the value of a specific pref. static void getPref(DOMString name, GetPrefCallback callback); // Gets the page zoom factor as an integer percentage. static void getDefaultZoomPercent(GetDefaultZoomPercentCallback callback); // Sets the page zoom factor from a zoom percentage. static void setDefaultZoomPercent(long percent, optional SetDefaultZoomPercentCallback callback); }; interface Events { // Fired when a set of prefs has changed. // // |prefs| The prefs that changed. static void onPrefsChanged(PrefObject[] prefs); }; };