browser.privacy

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

Debes 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

Chrome 151 y versiones posteriores

Categorías de datos de Autocompletar.

Enum

"contact_info"

"payments"

"identity_docs"

"travel"

"all"

IPHandlingPolicy

Chrome 48 y versiones posteriores browser.* desde Chrome 148

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

    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.

  • webRTCIPHandlingPolicy
    Chrome 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

    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
    Chrome 70 y versiones posteriores browser.* desde Chrome 148

    Si 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
    Chrome 70 y versiones posteriores browser.* desde Chrome 148

    Si 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
    Obsoleto desde Chrome 70

    Usa 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

    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

    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

    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

    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

    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

    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
    Chrome 111 y versiones posteriores browser.* desde Chrome 148

    Si 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 en false. Si intentas configurar estas APIs como true, se generará un error.

  • doNotTrackEnabled
    Chrome 65 y versiones posteriores browser.* desde Chrome 148

    Si 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 es false.

  • fledgeEnabled
    Chrome 111 y versiones posteriores browser.* desde Chrome 148

    Si 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 en false. Si intentas establecer esta API en true, se generará un error.

  • hyperlinkAuditingEnabled

    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 es true.

  • protectedContentEnabled

    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

    Si se habilita, Chrome envía encabezados referer 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 de tipo booleano y el valor predeterminado es true.

  • thirdPartyCookiesAllowed

    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
    Chrome 111 y versiones posteriores browser.* desde Chrome 148

    Si 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 en false. Si intentas establecer esta API en true, se generará un error.