navigator.geolocation
El navegador expone la ubicación del dispositivo. Los sitios la solicitan, los usuarios la aprueban. El navegador nunca decide cuándo se necesita la ubicación.
La regulación pide a los navegadores que gestionen el consentimiento. navigator.consent le permite cumplir esa obligación sin convertirse en guardián del consentimiento. Usted proporciona la infraestructura. Los CMPs y los asistentes de consentimiento se encargan del resto.
Las obligaciones de consentimiento para los navegadores llegan desde ambos lados del Atlántico. La cuestión no es si, sino cómo.
GPC le da navigator.globalPrivacyControl, una señal binaria de exclusión. navigator.consent extiende el mismo patrón navigator.* de una señal binaria a una coordinación de consentimiento granular, por finalidad, que satisface el requisito de especificidad del GDPR.
AB 566 (firmada en octubre de 2025) requiere que todos los principales navegadores incluyan funcionalidad integrada de Global Privacy Control para el 1 de enero de 2027.
El Artículo 88b(6) exige a los proveedores de navegadores no PYME que ofrezcan medios técnicos para que los usuarios otorguen o rechacen el consentimiento mediante señales legibles por máquina.
Una pestaña de consentimiento dedicada en DevTools, análoga a Application o Network, proporcionaría a desarrolladores y reguladores visibilidad en tiempo real del estado del consentimiento. Una oportunidad de diferenciación para los navegadores, no un mandato.
| registrationId | reg_a1b2c3 |
| provenance | cmp |
| status | Activo |
| finalidades | 3 |
| proveedores | 3 |
| Finalidad | Base legal | Consentimiento | Establecido por |
|---|---|---|---|
| Analytics | legitimate_interest | granted | privacy_assistant |
| Advertising | consent | denied | user |
| Functional | legitimate_interest | granted | cmp |
| Nombre | Dominio | Finalidades | Consentimiento | Establecido por |
|---|---|---|---|---|
| Analytics Co | analytics.example | analytics | granted | privacy_assistant |
| AdNetwork | ads.example | analytics, advertising | denied | user |
| Social Widget | social.example | functional | pending | — |
Inspeccione registros activos, catálogos de proveedores, declaraciones de finalidades y el estado de preferencias en tiempo real con atribución de procedencia. Depure flujos de eventos y detecte errores comunes como invocar métodos exclusivos de extensión desde el contexto DOM.
La línea temporal de auditoría proporciona un registro cronológico de cada mutación de consentimiento: quién lo estableció, cuándo y qué cambió. Una herramienta de verificación de cumplimiento que beneficia a todo el ecosistema.
navigator.consent sigue el mismo diseño que las APIs web que ya implementa:
navigator.geolocationEl navegador expone la ubicación del dispositivo. Los sitios la solicitan, los usuarios la aprueban. El navegador nunca decide cuándo se necesita la ubicación.
navigator.permissionsEl navegador registra qué permisos se han concedido y aplica el límite entre concedido y denegado. No elige por el usuario.
Los sitios declaran qué orígenes y recursos están permitidos. El navegador aplica esas declaraciones. Sin interpretación, solo ejecución de políticas.
navigator.consent es del mismo tipo: el navegador proporciona el espacio de nombres, aplica los límites de permisos entre contextos DOM y de extensión, deriva la procedencia del contexto de ejecución y despacha eventos. No toma decisiones de consentimiento.
El navegador aplica una separación limpia entre el contexto DOM (scripts de página) y el contexto de extensión (asistentes de consentimiento). La procedencia se deriva del contexto de ejecución. Los invocadores no pueden falsificarla.
| Capacidad | Contexto DOM | Contexto de extensión |
|---|---|---|
| Registrar interfaces, proveedores, finalidades | Permitido | Rechazado |
| Leer metadatos de proveedores/finalidades, ocultar/mostrar, auditar | Rechazado | Permitido |
| Actualizar preferencias, revocar, escuchar eventos | Permitido | Permitido |
| Leer contexto regulatorio | Permitido | Permitido |
| Modificar contexto regulatorio | Rechazado | Permitido |
Las actualizaciones con procedencia de usuario siempre prevalecen. Entre el CMP y el asistente (cuando no existe un valor con procedencia de usuario), se aplica la regla del último en escribir. El navegador deriva la procedencia automáticamente del contexto de ejecución del invocador.
Con los registros de CMP declarando qué dominios de proveedores tienen consentimiento, el navegador tiene información suficiente para aplicar la política de cookies a nivel de red. Las cookies de terceros de dominios sin una señal de consentimiento coincidente podrían bloquearse en Set-Cookie o borrarse durante la navegación, de forma similar a cómo CSP bloquea fuentes de scripts no autorizadas. Los proveedores con consentimiento siguen funcionando. El rastreo sin consentimiento se detiene en el límite.
navigator.consent es una capa de transporte. El navegador transporta mensajes, no los interpreta. Esto significa que la responsabilidad del navegador termina en el límite de la API.
El CMP presenta la interfaz de consentimiento, no el navegador. Sin decisiones de diseño, sin responsabilidad por patrones oscuros.
La API es transporte. Transporta señales entre CMPs y asistentes de consentimiento sin interpretarlas ni anularlas.
El CMP es el propietario de los registros de auditoría, la base legal y la prueba regulatoria. El navegador no es el sistema de registro.
Modelo de registro abierto. Sin listas de permitidos, sin barreras de certificación, sin responsabilidad de guardián.
La especificación completa.
Definiciones de carga útil legibles por máquina para todos los tipos de la API.
Un polyfill funcional para experimentación.