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
privacy
Manifiesto
Para usar la API, debes declarar el permiso "privacy" en el manifiesto de tu extensión. Por ejemplo:
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
Uso
Leer el valor actual de un parámetro de 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 la función Autocompletar de Chrome está habilitada, escribirías lo siguiente:
chrome.privacy.services.autofillEnabled.get({}, function(details) {
if (details.value) {
console.log('Autofill is on!');
} else {
console.log('Autofill is off!');
}
});
Cambiar el valor de un parámetro de configuración es un poco más complejo, simplemente porque primero debes verificar que tu extensión pueda controlar el parámetro de configuración. El usuario no verá ningún cambio en su configuración si tu extensión activa o desactiva un parámetro de configuración que está bloqueado en un valor específico por 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 a set()
se realizará correctamente, pero el parámetro de 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 del parámetro de configuración (de hecho, si tu extensión no puede controlar el parámetro de configuración, probablemente sea una buena idea inhabilitar visualmente la función para reducir la confusión del usuario):
chrome.privacy.services.autofillEnabled.get({}, function(details) {
if (details.levelOfControl === 'controllable_by_this_extension') {
chrome.privacy.services.autofillEnabled.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 un parámetro de 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 un parámetro de configuración o si la política empresarial anula tu control. Para detectar cambios en el estado de Autocompletar, por ejemplo, el siguiente código sería suficiente:
chrome.privacy.services.autofillEnabled.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 de chrome-extension-samples.
Tipos
IPHandlingPolicy
Es la política de manejo de IP de WebRTC.
Enum
"default"
"default_public_and_private_interfaces"
"default_public_interface_only"
"disable_non_proxied_udp"
Propiedades
network
Parámetros de configuración que influyen 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 resolviendo previamente las entradas de DNS y abriendo de forma anticipada las 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 búsquedas previas ni las conexiones previas iniciadas por páginas web. El valor de esta preferencia es un valor booleano, que de forma predeterminada es
true
. -
webRTCIPHandlingPolicyChrome 48 y versiones posteriores
Permite que los usuarios especifiquen las compensaciones entre el rendimiento y la privacidad de los medios, lo que afecta 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 y, de forma predeterminada, se establece en
default
.
services
Parámetros de configuración que habilitan o inhabilitan 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 de forma predeterminada es
true
. -
autofillAddressEnabled
types.ChromeSetting<boolean>
Chrome 70 y versiones posterioresSi está habilitada, Chrome ofrece completar automáticamente direcciones y otros datos de formularios. El valor de esta preferencia es un valor booleano, que de forma predeterminada es
true
. -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
Chrome 70 y versiones posterioresSi está habilitada, Chrome ofrece completar automáticamente los formularios de tarjetas de crédito. El valor de esta preferencia es un valor booleano, que de forma predeterminada es
true
. -
autofillEnabled
types.ChromeSetting<boolean>
Obsoleto desde Chrome 70Usa privacy.services.autofillAddressEnabled y privacy.services.autofillCreditCardEnabled. Se mantiene para la retrocompatibilidad 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 de forma predeterminada es
true
. -
passwordSavingEnabled
types.ChromeSetting<boolean>
Si está habilitado, el administrador de contraseñas te preguntará si quieres guardar contraseñas. El valor de esta preferencia es un valor booleano, que de forma predeterminada es
true
. -
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 de forma predeterminada es
true
. -
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 de forma predeterminada es
false
. -
searchSuggestEnabled
types.ChromeSetting<boolean>
Si está habilitada, Chrome envía el texto que escribes en el cuadro multifunción 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 de forma predeterminada es
true
. -
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 de forma predeterminada es
false
. -
translationServiceEnabled
types.ChromeSetting<boolean>
Si está habilitada, Chrome ofrece traducir las páginas que no estén en un idioma que puedas leer. El valor de esta preferencia es un valor booleano, que de forma predeterminada es
true
.
websites
Son los parámetros de configuración que determinan qué información pone Chrome a disposición de los sitios web.
Tipo
objeto
Propiedades
-
adMeasurementEnabled
types.ChromeSetting<boolean>
Chrome 111 y versiones posterioresSi se inhabilita, se desactivarán la API de Attribution Reporting y la API de Private Aggregation. El valor de esta preferencia es de tipo booleano y el valor predeterminado es
true
. Las extensiones solo pueden inhabilitar estas APIs estableciendo el valor enfalse
. Si intentas configurar estas APIs entrue
, se generará un error. -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65 y versiones posterioresSi está habilitada, Chrome envía el encabezado "No rastrear" (
DNT: 1
) con tus solicitudes. El valor de esta preferencia es de tipo booleano y el valor predeterminado esfalse
. -
fledgeEnabled
types.ChromeSetting<boolean>
Chrome 111 y versiones posterioresSi se inhabilita, se desactivará la API de Fledge. El valor de esta preferencia es de tipo booleano y el valor predeterminado es
true
. Las extensiones solo pueden inhabilitar esta API configurando el valor enfalse
. Si intentas configurar esta API entrue
, se generará un error. -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
Si está habilitado, Chrome envía pings de auditoría cuando un sitio web lo solicita (
<a ping>
). El valor de esta preferencia es de tipo booleano y el valor predeterminado estrue
. -
protectedContentEnabled
types.ChromeSetting<boolean>
Solo disponible en Windows y ChromeOS: Si está habilitado, Chrome proporciona un ID único a los complementos para ejecutar contenido protegido. El valor de esta preferencia es de tipo booleano y el valor predeterminado es
true
. -
referrersEnabled
types.ChromeSetting<boolean>
Si está habilitada, Chrome envía encabezados
referer
con tus solicitudes. Sí, el nombre de esta preferencia no coincide con el encabezado con errores ortográficos. No, no lo vamos a cambiar. El valor de esta preferencia es de tipo booleano y el valor predeterminado estrue
. -
types.ChromeSetting<boolean>
Chrome 121 y versiones posterioresSi se inhabilita, se desactivará la función Conjuntos de sitios web relacionados. El valor de esta preferencia es de tipo booleano y el valor predeterminado es
true
. Las extensiones solo pueden inhabilitar esta API configurando el valor enfalse
. Si intentas configurar 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 de tipo booleano y el valor predeterminado es
true
. Es posible que las extensiones no habiliten 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 como verdadera en Incógnito, se generará un error.Nota: Es posible que los sitios individuales aún puedan acceder a las cookies de terceros cuando esta API devuelva
false
, si tienen una exención válida o si usan la API de Storage Access. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111 y versiones posterioresSi está inhabilitada, la API de Topics se desactiva. El valor de esta preferencia es de tipo booleano y el valor predeterminado es
true
. Las extensiones solo pueden inhabilitar esta API configurando el valor enfalse
. Si intentas configurar esta API entrue
, se generará un error.