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 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:
browser.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 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 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 el parámetro de configuración se anulará de inmediato. Como esto puede ser confuso, se recomienda advertir al usuario cuando no se aplique la configuración que eligió.
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):
browser.privacy.services.autofillCreditCardEnabled.get({}, function(details) {
if (details.levelOfControl === 'controllable_by_this_extension') {
browser.privacy.services.autofillCreditCardEnabled.set({ value: true }, function() {
if (browser.runtime.lastError === undefined) {
console.log("Hooray, it worked!");
} else {
console.log("Sadness!", browser.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. Por ejemplo, para escuchar los cambios en el estado de autocompletado de la tarjeta de crédito, bastaría con el siguiente código:
browser.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 API de privacidad del repositorio chrome-extension-samples.
Tipos
AutofillBlockedType
Categorías de datos de Autocompletar.
Enum
"contact_info"
"payments"
"identity_docs"
"travel"
"all"
IPHandlingPolicy
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
Son parámetros de configuración que influyen en la forma en que Chrome maneja las conexiones de red en general.
Tipo
objeto
Propiedades
-
networkPredictionEnabled
types.ChromeSetting<boolean>
Si se habilita, Chrome intentará acelerar tu experiencia de navegación web resolviendo previamente las entradas de DNS, abriendo de forma preventiva las conexiones TCP y SSL a los servidores, y precargando las páginas. Si inhabilitas esta preferencia, se anulará la capacidad de los propietarios de sitios para cargar contenido de forma especulativa (como la carga previa o la renderización previa a través de la API de Speculation Rules). No afecta las preconexiones iniciadas por la página web ni las búsquedas previas de DNS. El valor de esta preferencia es un booleano, que se establece de forma predeterminada en
true. -
webRTCIPHandlingPolicyChrome 48 y versiones posteriores browser.* desde Chrome 148
Permite que los usuarios especifiquen las compensaciones entre el rendimiento de los medios y la privacidad, lo que afecta la forma en que se enrutará el tráfico de WebRTC y la cantidad de información de direcciones locales que se expone. El valor de esta preferencia es del tipo IPHandlingPolicy, con el valor predeterminado
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 se habilita, Chrome usa un servicio web para ayudar a resolver errores de navegación. El valor de esta preferencia es un booleano, que se establece de forma predeterminada en
true. -
autofillAddressEnabled
types.ChromeSetting<boolean>
Chrome 70 y versiones posteriores browser.* desde Chrome 148Si se habilita, Chrome ofrece completar automáticamente las direcciones y otros datos de formularios. El valor de esta preferencia es un booleano, que se establece de forma predeterminada en
true. -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
Chrome 70 y versiones posteriores browser.* desde Chrome 148Si habilitas esta política, Chrome ofrecerá completar automáticamente los formularios de tarjetas de crédito. El valor de esta preferencia es un booleano, que se establece de forma predeterminada en
true. -
autofillEnabled
types.ChromeSetting<boolean>
Obsoleto desde Chrome 70Usa privacy.services.autofillAddressEnabled y privacy.services.autofillCreditCardEnabled. Esto se mantiene para la retrocompatibilidad en esta versión y se quitará en el futuro.
Si se habilita, Chrome ofrece completar formularios automáticamente. El valor de esta preferencia es un booleano, que se establece de forma predeterminada en
true. -
passwordSavingEnabled
types.ChromeSetting<boolean>
Si habilitas esta opción, el administrador de contraseñas te preguntará si quieres guardar las contraseñas. El valor de esta preferencia es un booleano, que se establece de forma predeterminada en
true. -
safeBrowsingEnabled
types.ChromeSetting<boolean>
Si se habilita, Chrome hace todo lo posible para protegerte del phishing y el software malicioso. El valor de esta preferencia es un booleano, que se establece de forma predeterminada en
true. -
safeBrowsingExtendedReportingEnabled
types.ChromeSetting<boolean>
Si se habilita, 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, que se establece de forma predeterminada en
false. -
searchSuggestEnabled
types.ChromeSetting<boolean>
Si se habilita, 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, que se establece de forma predeterminada en
true. -
spellingServiceEnabled
types.ChromeSetting<boolean>
Si habilitas esta política, Chrome usará un servicio web para ayudar a corregir errores de ortografía. El valor de esta preferencia es un booleano, que se establece de forma predeterminada en
false. -
translationServiceEnabled
types.ChromeSetting<boolean>
Si habilitas esta opción, Chrome te ofrecerá traducir las páginas que no estén en un idioma que puedas leer. El valor de esta preferencia es un booleano, que se establece de forma predeterminada en
true.
websites
Parámetros de configuración que determinan qué información Chrome pone a disposición de los sitios web
Tipo
objeto
Propiedades
-
adMeasurementEnabled
types.ChromeSetting<boolean>
Chrome 111 y versiones posteriores browser.* desde Chrome 148Si 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 comotrue, se generará un error. -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65 y versiones posteriores browser.* desde Chrome 148Si se habilita, Chrome envía el encabezado "Do Not Track" (
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 posteriores browser.* desde Chrome 148Si 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 estableciendo el valor enfalse. Si intentas establecer esta API entrue, se generará un error. -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
Si se habilita, 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 se habilita, 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, Chrome envía encabezados
referercon 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 de tipo booleano y el valor predeterminado estrue. -
thirdPartyCookiesAllowed
types.ChromeSetting<boolean>
Si se inhabilita, Chrome impedirá 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 el modo Incógnito, se producirá 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 en su lugar. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111 y versiones posteriores browser.* desde Chrome 148Si 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 estableciendo el valor enfalse. Si intentas establecer esta API entrue, se generará un error.