Descripción
Usa la API de chrome.privacy
para controlar el uso de las funciones de Chrome que pueden afectar la privacidad del usuario. Esta API se basa en el prototipo de configuración de Chrome de la API de tipo para obtener y establecer la configuración de Chrome.
Permisos
privacy
Para usar la API, debes declarar el permiso de "privacidad" en el manifiesto de tu extensión. Por ejemplo:
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
Conceptos y uso
Leer el valor actual de un parámetro de configuración de Chrome es sencillo. Primero debes encontrar la
propiedad que te interesa y, luego, llamarás 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 de autocompletado de tarjetas de crédito de Chrome está habilitada, debes escribir 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 un parámetro de configuración es un poco más complejo, ya que primero debes verificar que tu extensión pueda controlarlo. El usuario no verá ningún cambio en su configuración si la
extensión activa un parámetro de configuración bloqueado a un valor específico mediante políticas empresariales
(levelOfControl
se establecerá como "not_controllable") o si otra extensión controla el
valor (levelOfControl
se establecerá como "controlled_by_other_extensions"). La llamada a set()
se realizará correctamente, pero la configuración se anulará de inmediato. Como esto puede resultar confuso, se recomienda advertir al usuario cuando la configuración que eligió no se aplica de manera práctica.
Eso significa que debes usar el método get()
para determinar tu nivel de acceso y, luego, solo
llamar a set()
si la extensión puede controlar la configuración (de hecho, si no puede
controlarla, 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 interesa realizar 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 más recientemente toma
el control de un parámetro de configuración o si la política empresarial anula tu control. Para escuchar cambios en el estado de autocompletado de 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 privacidad del repositorio chrome-extension-samples.
Tipos
IPHandlingPolicy
La política de manejo de IP de WebRTC.
Enum
"default_public_and_private_interfaces"
"default_public_interface_only":
"disable_non_proxied_udp"
Propiedades
network
La configuración que influye en el manejo general de Chrome sobre las conexiones de red.
Tipo
objeto
Propiedades
-
networkPredictionEnabled
types.ChromeSetting<boolean>
Si se habilita esta opción, Chrome intentará acelerar tu experiencia de navegación web resolviendo previamente las entradas de DNS y abriendo de manera preventiva 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 a las conexiones previas ni a los prefectos iniciados por la página web. El valor de esta preferencia es un booleano. El valor predeterminado es
true
. -
webRTCIPHandlingPolicyChrome 48 y versiones posteriores
Permite que los usuarios especifiquen las compensaciones de rendimiento del contenido multimedia y la privacidad que afectan la forma en que se enrutará el tráfico de WebRTC y cuánta información sobre la dirección local se expone. El valor de esta preferencia es de tipo IPHandlingPolicy. El valor predeterminado es
default
.
services
Son 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 se habilita esta opción, Chrome usa un servicio web para ayudar a resolver errores de navegación. El valor de esta preferencia es un booleano. El valor predeterminado es
true
. -
autofillAddressEnabled
types.ChromeSetting<boolean>
Chrome 70 y versiones posterioresSi se habilita esta opción, Chrome te ofrece completar automáticamente las direcciones y otros datos de los formularios. El valor de esta preferencia es un booleano. El valor predeterminado es
true
. -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
Chrome 70 y versiones posterioresSi está habilitada, Chrome te ofrece completar automáticamente formularios de tarjetas de crédito. El valor de esta preferencia es un booleano. El valor predeterminado es
true
. -
autofillEnabled
types.ChromeSetting<boolean>
Obsoleta a partir de Chrome 70Utiliza privacy.services.autofillAddressEnabled y privacy.services.autofillCreditCardEnabled. Esto sirve para brindar retrocompatibilidad en esta versión y se quitará en el futuro.
Si se habilita esta opción, Chrome te ofrece completar formularios automáticamente. El valor de esta preferencia es un booleano. El valor predeterminado es
true
. -
passwordSavingEnabled
types.ChromeSetting<boolean>
Si se habilita esta opción, el administrador de contraseñas te preguntará si deseas guardar las contraseñas. El valor de esta preferencia es un booleano. El valor predeterminado es
true
. -
safeBrowsingEnabled
types.ChromeSetting<boolean>
Si se habilita esta opción, Chrome hace todo lo posible para protegerte contra la suplantación de identidad (phishing) y el software malicioso. El valor de esta preferencia es un booleano. El valor predeterminado es
true
. -
safeBrowsingExtendedReportingEnabled
types.ChromeSetting<boolean>
Si se habilita esta opción, 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 booleano. El valor predeterminado es
false
. -
searchSuggestEnabled
types.ChromeSetting<boolean>
Si se habilita esta opción, 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 booleano. El valor predeterminado es
true
. -
spellingServiceEnabled
types.ChromeSetting<boolean>
Si la opción está habilitada, Chrome usa un servicio web para ayudar a corregir los errores de ortografía. El valor de esta preferencia es un booleano. El valor predeterminado es
false
. -
translationServiceEnabled
types.ChromeSetting<boolean>
Si la opción está habilitada, Chrome te ofrece traducir páginas que no están en un idioma que puedes leer. El valor de esta preferencia es un booleano. El valor predeterminado es
true
.
websites
Son 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 si se establece el valor enfalse
. Si intentas configurar estas APIs entrue
, se mostrará un error. -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65 y versiones posterioresSi se habilita, Chrome envía el encabezado "No realizar seguimiento" (
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 si se establece el valor enfalse
. Si intentas configurar esta API entrue
, se mostrará un error. -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
Si se habilita esta opción, Chrome envía pings de auditoría cuando un sitio web (
<a ping>
) lo solicita. El valor de esta preferencia es de tipo booleano y el valor predeterminado estrue
. -
protectedContentEnabled
types.ChromeSetting<boolean>
Disponible solo en Windows y ChromeOS: Si se habilita esta opción, 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 se habilita esta opción, Chrome enviará encabezados
referer
con tus solicitudes. Sí, el nombre de esta preferencia no coincide con el encabezado mal escrito. No, no la modificaremos. El valor de esta preferencia es de tipo booleano, y el valor predeterminado estrue
. -
types.ChromeSetting<boolean>
Chrome 121 y versiones posterioresSi se inhabilita esta opción, se desactivará la opció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 si se establece el valor enfalse
. Si intentas configurar esta API entrue
, se mostrará un error. -
thirdPartyCookiesAllowed
types.ChromeSetting<boolean>
Si se inhabilita, Chrome no permitirá que los sitios de terceros configuren cookies. El valor de esta preferencia es de tipo booleano, y el valor predeterminado es
true
. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111 y versiones posterioresSi se inhabilita, se desactiva la API de Topics. El valor de esta preferencia es de tipo booleano, y el valor predeterminado es
true
. Las extensiones solo pueden inhabilitar esta API si se establece el valor enfalse
. Si intentas configurar esta API entrue
, se mostrará un error.