chrome.privacy

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 ChromeSetting del tipo de API para obtener y establecer la configuración de Chrome.

Permisos

privacy

Manifiesto

Debes declarar la "privacidad". permiso en el manifiesto de tu extensión para usar la API. Por ejemplo:

{
  "name": "My extension",
  ...
  "permissions": [
    "privacy"
  ],
  ...
}

Uso

Leer el valor actual de una configuración de Chrome es sencillo. Primero deberás encontrar el que te interesa, deberás llamar a get() en ese objeto para recuperar su actual y el nivel de control de tu extensión. Por ejemplo, para determinar si la función Autocompletar de Chrome de que la función esté habilitada, deberías escribir lo siguiente:

chrome.privacy.services.autofillEnabled.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, solo porque primero debes verificarlo que tu extensión puede controlar el parámetro de configuración. El usuario no verá ningún cambio en la configuración si tu activa o desactiva un parámetro de configuración que las políticas empresariales bloquearon a un valor específico (levelOfControl se establecerá como "not_controllable"), o bien si otra extensión controla valor (levelOfControl se establecerá como "controlled_by_other_extensions"). La llamada a set() hará lo siguiente correctamente, pero la configuración se anulará de inmediato. Como esto puede ser confuso, se recomienda para 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, solo llama 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, tal vez sea buena idea inhabilitar visualmente la funcionalidad para reducir confusión):

chrome.privacy.services.autofillEnabled.get({}, function(details) {
  if (details.levelOfControl === 'controllable_by_this_extension') {
    chrome.privacy.services.autofillEnabled.set({ value: true }, function() {
      if (chrome.runtime.lastError === undefined) {
        console.log("Hooray, it worked!");
      } else {
        console.log("Sadness!", chrome.runtime.lastError);
      }
    });
  }
});

Si quieres 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 el control de una configuración o si la política empresarial anula tu control. Para escuchar los cambios en El estado de Autocompletar, por ejemplo, sería suficiente con el siguiente código:

chrome.privacy.services.autofillEnabled.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 chrome-extension-samples en un repositorio de confianza.

Tipos

IPHandlingPolicy

Chrome 48 y versiones posteriores

La política de control de IP de WebRTC.

Enum

“predeterminado”

"default_public_and_private_interfaces"

"default_public_interface_only"

"disable_non_proxied_udp"

Propiedades

network

La configuración que influye en el manejo de Chrome de las conexiones de red en general.

Tipo

objeto

Propiedades

  • networkPredictionEnabled

    types.ChromeSetting<boolean>

    Si se habilita esta opción, Chrome intenta acelerar su experiencia de navegación web resolviendo con anticipación las entradas de DNS y abriendo de manera preventiva las 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 prefectchas ni las preconexiones iniciadas por páginas web. El valor de esta preferencia es booleano y su valor predeterminado es true.

  • webRTCIPHandlingPolicy
    Chrome 48 y versiones posteriores

    Permite que los usuarios especifiquen las compensaciones de rendimiento/privacidad del contenido multimedia, lo que afecta la forma en que se enrutará el tráfico de WebRTC y cuánta información de la dirección local se expone. El valor de esta preferencia es del tipo IPHandlingPolicy, con el valor predeterminado default.

services

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 se habilita, Chrome usa un servicio web para ayudar a resolver los errores de navegación. El valor de esta preferencia es booleano y su valor predeterminado es true.

  • autofillAddressEnabled

    types.ChromeSetting<boolean>

    Chrome 70 y versiones posteriores

    Si la opción está habilitada, Chrome ofrece completar automáticamente las direcciones y otros datos de formularios. El valor de esta preferencia es booleano y su valor predeterminado es true.

  • autofillCreditCardEnabled

    types.ChromeSetting<boolean>

    Chrome 70 y versiones posteriores

    Si está habilitada, Chrome ofrece completar automáticamente los formularios de tarjeta de crédito. El valor de esta preferencia es booleano y su valor predeterminado es true.

  • autofillEnabled

    types.ChromeSetting<boolean>

    Obsoleto desde Chrome 70

    Utiliza privacy.services.autofillAddressEnabled y privacy.services.autofillCreditCardEnabled. Esto se mantiene para fines de 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 booleano y su valor predeterminado es true.

  • passwordSavingEnabled

    types.ChromeSetting<boolean>

    Si se habilita esta opción, el administrador de contraseñas te preguntará si quieres guardar contraseñas. El valor de esta preferencia es booleano y su valor predeterminado es true.

  • safeBrowsingEnabled

    types.ChromeSetting<boolean>

    Si se habilita esta opción, Chrome hace todo lo posible para protegerte de la suplantación de identidad (phishing) y el software malicioso. El valor de esta preferencia es booleano y su valor predeterminado es true.

  • safeBrowsingExtendedReportingEnabled

    types.ChromeSetting<boolean>

    Si se habilita esta opción, Chrome enviará información adicional a Google cuando Navegación segura bloquee una página, como el contenido de la página bloqueada. El valor de esta preferencia es booleano y su valor predeterminado es 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 completen lo que escribiste hasta el momento. El valor de esta preferencia es booleano y su valor predeterminado es true.

  • spellingServiceEnabled

    types.ChromeSetting<boolean>

    Si está habilitada, Chrome usa un servicio web para ayudar a corregir los errores de ortografía. El valor de esta preferencia es booleano y su valor predeterminado es false.

  • translationServiceEnabled

    types.ChromeSetting<boolean>

    Si la opción 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 booleano y su valor predeterminado es true.

websites

Configuración que determina la información que Chrome pone a disposición de los sitios web.

Tipo

objeto

Propiedades

  • adMeasurementEnabled

    types.ChromeSetting<boolean>

    Chrome 111 y versiones posteriores

    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 si se establece el valor en false. Si intentas configurar estas APIs en true, se arrojará un error.

  • doNotTrackEnabled

    types.ChromeSetting<boolean>

    Chrome 65 y versiones posteriores

    Si está habilitado, Chrome envía "Do Not Track" (DNT: 1) con tus solicitudes. El valor de esta preferencia es de tipo booleano y el valor predeterminado es false.

  • fledgeEnabled

    types.ChromeSetting<boolean>

    Chrome 111 y versiones posteriores

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

  • hyperlinkAuditingEnabled

    types.ChromeSetting<boolean>

    Si se habilita esta opción, Chrome enviará pings de auditoría cuando un sitio web (<a ping>) los solicite. El valor de esta preferencia es de tipo booleano y el valor predeterminado es true.

  • protectedContentEnabled

    types.ChromeSetting&lt;boolean&gt;

    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&lt;boolean&gt;

    Si se habilita, Chrome enviará encabezados referer con tus solicitudes. Sí, el nombre de esta preferencia no coincide con el encabezado que está mal escrito. No, no lo cambiaremos. El valor de esta preferencia es de tipo booleano y el valor predeterminado es true.

  • relatedWebsiteSetsEnabled

    types.ChromeSetting&lt;boolean&gt;

    Chrome 121 y versiones posteriores

    Si se inhabilita, se desactivan los 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 en false. Si intentas configurar esta API como true, se arrojará un error.

  • thirdPartyCookiesAllowed

    types.ChromeSetting&lt;boolean&gt;

    Si la inhabilitas, 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&lt;boolean&gt;

    Chrome 111 y versiones posteriores

    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 si se establece el valor en false. Si intentas configurar esta API como true, se arrojará un error.