J'entends les remarques sur les actions obsolète, moi je trouve bien qu'on me dise les permissions demandées pour chaque extension. Avant, toute les extensions avaient accès à tout, sans dire ce qu'ils utilisent comme informations.
C'est normale, l'ancien système d'extension XUL n'avait pas de système de sandbox. Une extension n'était pas cloisonnée. En clair, elle faisait partie intégrante de l'interface de Firefox. Elle avait donc accès à tout Gecko, à toutes ces API haut niveau mais aussi bas niveau. Elle pouvait TOUT modifier : ajouter ce qu'elle voulait dans l'interface, où elle voulait, remplacer des composants techniques. Elle pouvait accéder au système, lancer des exécutables, accéder à n'importe quel fichier que l'utilisateur avait accès etc. Impossible donc pour Firefox d'établir une liste d'autorisation.
Il y avait une amélioration du système d'extension, Jetpack, où le code principal de l'extension était exécuté dans une sandbox, avec une API proposée qui faisait abstraction des composants internes de Firefox, mais il y avait quand même une porte de sortie pour accéder directement aux composants internes, donc continuer à faire ce qu'on voulait. L'avantage de jetpack est que cela permettait déjà d'identifier les problèmes des extensions, en terme de mémoire (celle de la sandbox). Et de préparer au nouveau système d'extension dans la logique (puisque la nouvelle API n'est plus du tout la même).
Bref, c'était génial pour un développeur, il n'y avait aucune limite. C'est grâce à ça qu'on a eu effectivement Firebug et bien d'autres extensions surpuissantes que l'on aura plus jamais dans un navigateur. Mais aussi grâce à cette liberté qu'on a eu des extensions qui faisaient de la m**de volontairement (genre celles qui installent des toolbars qu'on veut pas) ou non (codée avec les pieds, n'utilisait pas forcément les bonnes API ou encore faisait des trucs synchrones qui bloquait l'interface).
Le nouveau système est une vrai sandbox. Pas moyen de "s'échapper". On n'a que l'API qui est proposée dans la sandbox pour réaliser notre extension. Je crois même que l'extension est lancée dans son propre thread, (en tout cas, il y a la possibilité pour Firefox, c'est architecturé pour), et donc n'a pas d'impact directe sur l'interface principale (freeze &co).
Les utilisateurs vont y gagner en robustesse et en performance.
[^] # Re: Extensions
Posté par Laurent J (site web personnel, Mastodon) . En réponse au journal Le Firefox nouveau est arrivé !. Évalué à 10.
C'est normale, l'ancien système d'extension XUL n'avait pas de système de sandbox. Une extension n'était pas cloisonnée. En clair, elle faisait partie intégrante de l'interface de Firefox. Elle avait donc accès à tout Gecko, à toutes ces API haut niveau mais aussi bas niveau. Elle pouvait TOUT modifier : ajouter ce qu'elle voulait dans l'interface, où elle voulait, remplacer des composants techniques. Elle pouvait accéder au système, lancer des exécutables, accéder à n'importe quel fichier que l'utilisateur avait accès etc. Impossible donc pour Firefox d'établir une liste d'autorisation.
Il y avait une amélioration du système d'extension, Jetpack, où le code principal de l'extension était exécuté dans une sandbox, avec une API proposée qui faisait abstraction des composants internes de Firefox, mais il y avait quand même une porte de sortie pour accéder directement aux composants internes, donc continuer à faire ce qu'on voulait. L'avantage de jetpack est que cela permettait déjà d'identifier les problèmes des extensions, en terme de mémoire (celle de la sandbox). Et de préparer au nouveau système d'extension dans la logique (puisque la nouvelle API n'est plus du tout la même).
Bref, c'était génial pour un développeur, il n'y avait aucune limite. C'est grâce à ça qu'on a eu effectivement Firebug et bien d'autres extensions surpuissantes que l'on aura plus jamais dans un navigateur. Mais aussi grâce à cette liberté qu'on a eu des extensions qui faisaient de la m**de volontairement (genre celles qui installent des toolbars qu'on veut pas) ou non (codée avec les pieds, n'utilisait pas forcément les bonnes API ou encore faisait des trucs synchrones qui bloquait l'interface).
Le nouveau système est une vrai sandbox. Pas moyen de "s'échapper". On n'a que l'API qui est proposée dans la sandbox pour réaliser notre extension. Je crois même que l'extension est lancée dans son propre thread, (en tout cas, il y a la possibilité pour Firefox, c'est architecturé pour), et donc n'a pas d'impact directe sur l'interface principale (freeze &co).
Les utilisateurs vont y gagner en robustesse et en performance.