El manifiesto de permisos, resuelto
Cómo se convierten tus ficheros de capabilities en la estructura que gobierna cada llamada: la resolución completa, y qué se puede inspeccionar.
La resolución
Y el paso 4 es donde se ve por qué la superficie se cuenta por ventana —nivel 26.3— y por qué en móvil el reparto pierde sentido —nivel 67.2—: hay una sola ventana, así que la unión es de todo.
Qué gana
Y la regla que decide cuando algo se permite y se deniega:
Y la utilidad práctica de la tercera fila: se puede conceder un conjunto amplio de un plugin y denegar explícitamente el comando concreto que no quieres — que es más simple que declarar uno a uno los que sí, y con la misma garantía.
Inspeccionar el resultado
Y la operación que cierra el diagnóstico del nivel 76.4:
- El manifiesto generado se puede leer, entre los rastros de la compilación. Nivel 77.1.
- Y dice, por ventana, exactamente qué está permitido — que es la respuesta definitiva a «¿por qué me deniega este comando?».
- Además de ser la cuenta de superficie del nivel 26.3, ya hecha: contar las entradas de una ventana da su superficie exacta.
Y merece mirarlo una vez aunque no haya ningún problema: la lista real de lo que tu frontend puede llamar suele ser más larga de lo que uno recuerda.
Por qué un permiso no está donde crees
Los cinco motivos, en orden de frecuencia:
- La capability no menciona esa ventana. Nivel 27.2.
- La capability no aplica a esta plataforma. Nivel 67.2.
- El nombre del permiso lleva prefijo de plugin y está escrito sin él.
- Una denegación explícita en otra capability lo anula.
- Y no se ha recompilado tras cambiar el fichero. Nivel 77.1.
Los dos primeros son la mayoría, y los dos se ven de inmediato mirando el manifiesto resuelto.