chrome.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 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

Chrome 48 y versiones posteriores

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

    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.

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

    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
    Chrome 70 y versiones posteriores

    Si 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
    Chrome 70 y versiones posteriores

    Si 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
    Quedó obsoleto desde Chrome 70

    Usa 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

    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

    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

    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

    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

    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

    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
    Chrome 111 y versiones posteriores

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

  • doNotTrackEnabled
    Chrome 65 y versiones posteriores

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

  • fledgeEnabled
    Chrome 111 y versiones posteriores

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

  • hyperlinkAuditingEnabled

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

  • protectedContentEnabled

    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

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

  • relatedWebsiteSetsEnabled
    Chrome 121 y versiones posteriores

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

  • thirdPartyCookiesAllowed

    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
    Chrome 111 y versiones posteriores

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