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 configurar 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, 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 de autocompletar de la tarjeta de crédito de Chrome está habilitada, escribe 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 controlar el parámetro. 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()
será exitosa, 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 de forma práctica.
Esto significa que debes usar el método get()
para determinar tu nivel de acceso y, luego, llamar solo 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, es probable que 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 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 detectar cambios en el estado de autocompletado de la tarjeta de crédito, por ejemplo, el siguiente código sería suficiente:
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 desde el repositorio chrome-extension-samples.
Tipos
IPHandlingPolicy
La política de manejo de IP de WebRTC
Enum
"predeterminado"
"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 resolviendo previamente las entradas de DNS y abriendo de forma 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 los precargamientos ni las preconexiones iniciados por la página web. El valor de esta preferencia es un valor booleano, que se establece de forma predeterminada en
true
. -
webRTCIPHandlingPolicyChrome 48 y versiones posteriores
Permite que los usuarios especifiquen las compensaciones entre el rendimiento multimedia y la privacidad, lo que afecta la forma en que se enrutará 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 de tipo IPHandlingPolicy, con el valor predeterminado
default
.
services
La 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 de forma predeterminada en
true
. -
autofillAddressEnabled
types.ChromeSetting<boolean>
Chrome 70 y versiones posterioresSi está habilitada, Chrome ofrece completar automáticamente las direcciones y otros datos de formularios. El valor de esta preferencia es un valor booleano, cuyo valor predeterminado 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 se establece de forma predeterminada en
true
. -
autofillEnabled
types.ChromeSetting<boolean>
Quedó obsoleto desde Chrome 70Usa privacy.services.autofillAddressEnabled y privacy.services.autofillCreditCardEnabled. Esta opción se mantiene para brindar retrocompatibilidad en esta versión y se quitará en el futuro.
Si está habilitada, Chrome ofrece completar formularios automáticamente. El valor de esta preferencia es un valor booleano, cuyo valor predeterminado es
true
. -
passwordSavingEnabled
types.ChromeSetting<boolean>
Si está habilitada, el administrador de contraseñas te preguntará si quieres guardarlas. El valor de esta preferencia es un valor booleano, que se establece de forma predeterminada en
true
. -
safeBrowsingEnabled
types.ChromeSetting<boolean>
Si está habilitada, Chrome hace todo lo posible para protegerte contra el phishing y el software malicioso. El valor de esta preferencia es un valor booleano, que se establece de forma predeterminada en
true
. -
safeBrowsingExtendedReportingEnabled
types.ChromeSetting<boolean>
Si está habilitada, Chrome enviará información adicional a Google cuando SafeBrowsing bloquee una página, como el contenido de la página bloqueada. El valor de esta preferencia es un valor booleano, que se establece de forma predeterminada en
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 sean la finalización de lo que escribiste hasta el momento. El valor de esta preferencia es un valor booleano, que se establece de forma predeterminada en
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 se establece de forma predeterminada en
false
. -
translationServiceEnabled
types.ChromeSetting<boolean>
Si está habilitada, Chrome te 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 de forma predeterminada en
true
.
websites
Es la configuración que determina qué información Chrome pone a disposición de los sitios web.
Tipo
objeto
Propiedades
-
adMeasurementEnabled
types.ChromeSetting<boolean>
Chrome 111 y versiones posterioresSi se inhabilitan, 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 establecen el valor enfalse
. Si intentas configurar estas APIs entrue
, se generará un error. -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65 y versiones posterioresSi está habilitado, Chrome envía el encabezado "No hacer 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 está inhabilitada, 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 establecen el valor enfalse
. Si intentas configurar esta API entrue
, se mostrará un error. -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
Si está habilitada, Chrome envía pings de auditoría cuando lo solicita un sitio web (
<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á habilitado, Chrome envía encabezados
referer
con tus solicitudes. Sí, el nombre de esta preferencia no coincide con el encabezado con un error ortográfico. No, no lo haremos. El valor de esta preferencia es de tipo booleano y el valor predeterminado estrue
. -
types.ChromeSetting<boolean>
Chrome 121 y versiones posterioresSi está inhabilitada, 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 establecen el valor enfalse
. Si intentas configurar esta API entrue
, se mostrará 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
.**Nota:**Es posible que los sitios individuales puedan acceder a las cookies de terceros cuando esta API devuelve
false
, si tienen una exención válida o si usan la API de acceso al almacenamiento en su lugar. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111 y versiones posterioresSi está inhabilitada, se desactivará 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 establecen el valor enfalse
. Si intentas configurar esta API entrue
, se mostrará un error.