Descripción
Usa la API de chrome.privacy para controlar el uso de las funciones de Chrome que pueden afectar la privacidad de un usuario. Esta API se basa en el prototipo ChromeSetting de la API de tipo para obtener y establecer la configuración de Chrome.
Permisos
privacyDebes declarar el permiso "privacy" en el manifiesto de tu extensión para usar la API. Por ejemplo:
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
Conceptos y uso
Leer el valor actual de una configuración de Chrome es sencillo. Primero, deberás encontrar la
propiedad que te interesa y, luego, llamar a get() en ese objeto para recuperar su
valor actual y el nivel de control de tu extensión. Por ejemplo, para determinar si está habilitada la función de autocompletar tarjetas de crédito de Chrome, escribirías lo siguiente:
chrome.privacy.services.autofillCreditCardEnabled.get({}, function(details) {
if (details.value) {
console.log('Autofill is on!');
} else {
console.log('Autofill is off!');
}
});
Cambiar el valor de una configuración es un poco más complejo, ya que primero debes verificar
que tu extensión pueda controlar la configuración. El usuario no verá ningún cambio en su configuración si tu
extensión activa o desactiva una configuración que está bloqueada en un valor específico por las políticas empresariales
(levelOfControl se establecerá en "not_controllable") o si otra extensión controla el
valor (levelOfControl se establecerá en "controlled_by_other_extensions"). La llamada set() se realizará correctamente, pero la configuración se anulará de inmediato. Como esto puede ser confuso, es recomendable
advertir al usuario cuando la configuración que eligió no se aplica en la práctica.
Esto significa que debes usar el método get() para determinar tu nivel de acceso y, luego, solo
llamar a set() si tu extensión puede tomar el control de la configuración (de hecho, si tu extensión no puede
controlar la configuración, probablemente sea una buena idea inhabilitar visualmente la función para reducir la confusión del usuario):
chrome.privacy.services.autofillCreditCardEnabled.get({}, function(details) {
if (details.levelOfControl === 'controllable_by_this_extension') {
chrome.privacy.services.autofillCreditCardEnabled.set({ value: true }, function() {
if (chrome.runtime.lastError === undefined) {
console.log("Hooray, it worked!");
} else {
console.log("Sadness!", chrome.runtime.lastError);
}
});
}
});
Si te interesan los cambios en el valor de una configuración, agrega un objeto de escucha a su evento onChange. Entre
otros usos, esto te permitirá advertir al usuario si una extensión instalada recientemente toma el
control de una configuración o si la política empresarial anula tu control. Para escuchar los cambios en el estado de autocompletar tarjetas de crédito, por ejemplo, bastaría con el siguiente código:
chrome.privacy.services.autofillCreditCardEnabled.onChange.addListener(
function (details) {
// The new value is stored in `details.value`, the new level of control
// in `details.levelOfControl`, and `details.incognitoSpecific` will be
// `true` if the value is specific to Incognito mode.
}
);
Ejemplos
Para probar esta API, instala el ejemplo de la API de Privacy desde el repositorio chrome-extension-samples.
Tipos
IPHandlingPolicy
La política que controla la IP de WebRTC
Enum
"default"
"default_public_and_private_interfaces"
"default_public_interface_only"
"disable_non_proxied_udp"
Propiedades
network
Configuración que influye en el manejo de las conexiones de red de Chrome en general
Tipo
objeto
Propiedades
-
networkPredictionEnabled
types.ChromeSetting<boolean>
Si está habilitada, Chrome intenta acelerar tu experiencia de navegación web mediante la resolución previa de entradas DNS y la apertura preventiva de conexiones TCP y SSL a los servidores. Esta preferencia solo afecta las acciones que realiza el servicio de predicción interno de Chrome. No afecta las precargas ni las preconexiones iniciadas por páginas web. El valor de esta preferencia es un valor booleano, que se establece en
truede forma predeterminada. -
webRTCIPHandlingPolicyChrome 48+
Permite que los usuarios especifiquen las compensaciones de rendimiento/privacidad de los medios que afectan la forma en que se enruta el tráfico de WebRTC y la cantidad de información de la dirección local que se expone. El valor de esta preferencia es del tipo IPHandlingPolicy, que se establece en
defaultde forma predeterminada.
services
Configuración que habilita o inhabilita funciones que requieren servicios de red de terceros proporcionados por Google y tu proveedor de búsqueda predeterminado
Tipo
objeto
Propiedades
-
alternateErrorPagesEnabled
types.ChromeSetting<boolean>
Si está habilitada, Chrome usa un servicio web para ayudar a resolver errores de navegación. El valor de esta preferencia es un valor booleano, que se establece en
truede forma predeterminada. -
autofillAddressEnabled
types.ChromeSetting<boolean>
Chrome 70+Si está habilitada, Chrome ofrece completar automáticamente las direcciones y otros datos de formularios. El valor de esta preferencia es un valor booleano, que se establece en
truede forma predeterminada. -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
Chrome 70+Si está habilitada, Chrome ofrece completar automáticamente los formularios de tarjetas de crédito. El valor de esta preferencia es un valor booleano, que se establece en
truede forma predeterminada. -
autofillEnabled
types.ChromeSetting<boolean>
Obsoleto desde Chrome 70Usa privacy.services.autofillAddressEnabled y privacy.services.autofillCreditCardEnabled. Esto sigue siendo compatible con versiones anteriores en esta versión y se quitará en el futuro.
Si está habilitada, Chrome ofrece completar automáticamente los formularios. El valor de esta preferencia es un valor booleano, que se establece en
truede forma predeterminada. -
autofillOtherDatatypesEnabled
types.ChromeSetting<boolean>
PendienteSi está habilitada, Chrome ofrece completar automáticamente los otros tipos de datos. Esto incluye documentos de viaje y de identidad. El valor de esta preferencia es un valor booleano, que se establece en
truede forma predeterminada. -
passwordSavingEnabled
types.ChromeSetting<boolean>
Si está habilitada, el administrador de contraseñas te preguntará si quieres guardar contraseñas. El valor de esta preferencia es un valor booleano, que se establece en
truede forma predeterminada. -
safeBrowsingEnabled
types.ChromeSetting<boolean>
Si está habilitada, Chrome hace todo lo posible para protegerte del phishing y el software malicioso. El valor de esta preferencia es un valor booleano, que se establece en
truede forma predeterminada. -
safeBrowsingExtendedReportingEnabled
types.ChromeSetting<boolean>
Si está habilitada, Chrome enviará información adicional a Google cuando la Navegación segura bloquee una página, como el contenido de la página bloqueada. El valor de esta preferencia es un valor booleano, que se establece en
falsede forma predeterminada. -
searchSuggestEnabled
types.ChromeSetting<boolean>
Si está habilitada, Chrome envía el texto que escribes en la barra de direcciones a tu motor de búsqueda predeterminado, que proporciona predicciones de sitios web y búsquedas que probablemente completen lo que escribiste hasta el momento. El valor de esta preferencia es un valor booleano, que se establece en
truede forma predeterminada. -
spellingServiceEnabled
types.ChromeSetting<boolean>
Si está habilitada, Chrome usa un servicio web para ayudar a corregir errores de ortografía. El valor de esta preferencia es un valor booleano, que se establece en
falsede forma predeterminada. -
translationServiceEnabled
types.ChromeSetting<boolean>
Si está habilitada, Chrome ofrece traducir las páginas que no están en un idioma que puedes leer. El valor de esta preferencia es un valor booleano, que se establece en
truede forma predeterminada.
websites
Configuración que determina qué información pone Chrome a disposición de los sitios web
Tipo
objeto
Propiedades
-
adMeasurementEnabled
types.ChromeSetting<boolean>
Chrome 111+Si está inhabilitada, se desactivan la API de Attribution Reporting y la API de Private Aggregation. El valor de esta preferencia es del tipo booleano y el valor predeterminado es
true. Las extensiones solo pueden inhabilitar estas APIs si establecen el valor enfalse. Si intentas establecer estas APIs entrue, se generará un error. -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65+Si está habilitada, Chrome envía el encabezado "No realizar seguimiento" (
DNT: 1) con tus solicitudes. El valor de esta preferencia es del tipo booleano y el valor predeterminado esfalse. -
fledgeEnabled
types.ChromeSetting<boolean>
Chrome 111+Si está inhabilitada, se desactiva la API de Fledge. El valor de esta preferencia es del tipo booleano y el valor predeterminado es
true. Las extensiones solo pueden inhabilitar esta API si establecen el valor enfalse. Si intentas establecer esta API entrue, se generará un error. -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
Si está habilitada, Chrome envía pings de auditoría cuando un sitio web lo solicita (
<a ping>). El valor de esta preferencia es del tipo booleano y el valor predeterminado estrue. -
protectedContentEnabled
types.ChromeSetting<boolean>
Solo disponible en Windows y ChromeOS: Si está habilitada, Chrome proporciona un ID único a los complementos para ejecutar contenido protegido. El valor de esta preferencia es del tipo booleano y el valor predeterminado es
true. -
referrersEnabled
types.ChromeSetting<boolean>
Si está habilitada, Chrome envía
refererencabezados con tus solicitudes. Sí, el nombre de esta preferencia no coincide con el encabezado mal escrito. No, no lo cambiaremos. El valor de esta preferencia es del tipo booleano y el valor predeterminado estrue. -
types.ChromeSetting<boolean>
Chrome 121+Si está inhabilitada, se desactivan los Conjuntos de sitios web relacionados. El valor de esta preferencia es del tipo booleano y el valor predeterminado es
true. Las extensiones solo pueden inhabilitar esta API si establecen el valor enfalse. Si intentas establecer esta API entrue, se generará un error. -
thirdPartyCookiesAllowed
types.ChromeSetting<boolean>
Si está inhabilitada, Chrome impide que los sitios de terceros establezcan cookies. El valor de esta preferencia es del tipo booleano y el valor predeterminado es
true. Las extensiones no pueden habilitar esta API en el modo Incógnito, donde se bloquean las cookies de terceros y solo se pueden permitir a nivel del sitio. Si intentas establecer esta API en true en el modo Incógnito, se generará un error.Nota: Es posible que los sitios individuales aún puedan acceder a cookies de terceros cuando esta API muestre
false, si tienen una exención válida o usan la API de Storage Access en su lugar. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111+Si está inhabilitada, se desactiva la API de Topics. El valor de esta preferencia es del tipo booleano y el valor predeterminado es
true. Las extensiones solo pueden inhabilitar esta API si establecen el valor enfalse. Si intentas establecer esta API entrue, se generará un error.