Une astuce pour inspecter le code web qui se cache dans les Préférences Système de macOS
Saviez-vous qu'Apple utilise des technologies web pour certaines parties de macOS ? Des vues web sont en effet intégrées dans certaines applications natives développées avec AppKit, ce qui permet de ne pas avoir à ouvrir une fenêtre Safari. Si Apple fait en sorte de les cacher au mieux, elles peuvent tout de même entraîner des ralentissements et autres soucis d'affichage. Sur Monterey, il est possible de se servir de la fonction « Inspecter l'élément » sur les vues web incrustées dans certaines apps, et même dans celles d'Apple comme les Préférences Système. De quoi en apprendre un peu plus sur la façon dont les ingénieurs d'Apple conçoivent ces vues web pour leur donner l'apparence de fenêtres natives construites avec les API de macOS.
Cette nouveauté a été mise en lumière par le développeur Jim Nielsen, qui explique s'être amusé à observer les lignes de code trouvées dans les onglets Apple ID et Partage familial. S’il n'y a rien de particulièrement surprenant, il reste intéressant de voir comment ces vues web justifient l'arrivée de certaines fonctionnalités dans WebKit/Safari.
Nielsen estime que ces changements pourraient être utilisés comme un indicateur de l'avancement de nouveautés de macOS. Autrement dit, si ça bouge du côté de Safari et que les équipes font en sorte de standardiser une fonctionnalité spécifique, on peut imaginer qu'une nouveauté basée dessus devrait prochainement arriver sur macOS.
Pour débloquer cette fonction, il faudra passer par le terminal et entrer ces deux commandes : defaults write NSGlobalDomain WebKitDeveloperExtras -bool true
et defaults write -g WebKitDeveloperExtras -bool YES
. Rendez-vous ensuite dans les Préférences Système et faites un clic droit sur une page web pour voir apparaitre l'option « Inspecter l'élément ».
Tiens c’est marrant, j’imagine que l’intérêt de mettre du web ici est de modifier à volonté sans mettre à jour l’OS.
Safari deviendrait le nouvel Internet Explorer ?
@bruno_bing
Rapport ?
ceci explique un peu le verrouillage de l’os… car on pourrait modifier du contenu web
Normalement non. Tu peux modifier l'interface autant que tu veux -si le code est bien fait- tu ne devrais pas pouvoir entrer de valeur invalide.
@MickaelBazoge
Que c’est lent 😱
@MickaelBazoge
Moi, qui attribuait ces lenteurs au dialogue avec les serveurs distants.
@7X
Pareil !
@7X
Ba oui, bien sûr ! Qui dit contenu HTML dit à priori appels serveurs. C’est d’ailleurs l’intérêt de la chose : le contenu étant sur serveur, il peut être mis à jour à la demande. Donc oui, la lenteur vient des appels serveurs…
@Derw
Aucun rapport... Meme natif il faudrait des appels serveur. Simplement ici le serveur retourne du HTML au lieu de du JSON
@Mrleblanc101
« Meme natif il faudrait des appels serveur. »
Ai-je dit le contraire ? Si oui, merci de me dire où.
« Simplement ici le serveur retourne du HTML au lieu de du JSON »
Ou de HTML pour la structure et du JSON pour la donnée… Je ne sais pas trop, comment c’est foutu et on s’en fout, cela n’a pas de pertinence dans ma remarque sur le fait que ce soit normal de dire que ce sont les appels serveurs qui ralentisse l’IHM de ces panneaux… Après tout, comme vous le dite vous même, que ce soit du HTML pur, du JSON, ou un mix, on passe par un serveur, ce qui implique latence…
@Derw
Alors pourquoi se plaindre que ça ralenti l'affichage ? 🤦♂️Dans ce cas ci HTML ou JSON ça n'as pas d'importance puisque cette feature est lié au Apple ID alors biensur que c'est normal qu'il y ait des appels aux serveur 🙄 On ne parle pas du panneau pour gérer le Bluetooth ou la vitesse du Trackpad...
Comme si le panneau Apple ID ou iCloud ne demandais pas d'appels aux serveurs eux aussi... Franchement
@Mrleblanc101
😳😳😳🤦♂️
« Alors pourquoi se plaindre que ça ralenti l'affichage ? »
😳Où m’en suis-je plaint ?
« Dans ce cas ci HTML ou JSON ça n'as pas d'importance puisque cette feature est lié au Apple ID alors biensur que c'est normal qu'il y ait des appels aux serveur 🙄 On ne parle pas du panneau pour gérer le Bluetooth ou la vitesse du Trackpad...
Comme si le panneau Apple ID ou iCloud ne demandais pas d'appels aux serveurs eux aussi...»
😳Où ai-je dit le contraire ? L’idée que des panneaux qui charge du contenu « dynamique » soit lent est même exactement l’idée que j’ai défendue !
« Franchement »
Oui franchement ! Il faudrait peut-être apprendre à lire avant de vous énerver contre des personnes dans des forums !
@7X
"Moi, qui attribuait ces lenteurs au dialogue avec les serveurs distants."
Et c’est bien le cas.
« Pour débloquer cette fonction, il faudra passer par le terminal et entrer ces deux commandes : defaults write NSGlobalDomain WebKitDeveloperExtras -bool true et defaults write -g WebKitDeveloperExtras -bool YES. »
En fait, il s’agit deux fois de la même commande (l’option -g étant synonyme de NSGlobalDomain). Une des deux devrait donc suffire.
degeulasse.
une honte.