Une astuce pour inspecter le code web qui se cache dans les Préférences Système de macOS

Félix Cattafesta |

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 ».

avatar radeon | 

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.

avatar bruno_bing | 

Safari deviendrait le nouvel Internet Explorer ?

avatar Mrleblanc101 | 

@bruno_bing

Rapport ?

avatar maxime101286 | 

ceci explique un peu le verrouillage de l’os… car on pourrait modifier du contenu web

avatar vince29 | 

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.

avatar Mickaël Bazoge | 
Ça explique aussi pourquoi l'affichage est aussi mou du genou dans cette section des préférences de macOS…
avatar Amaczing | 

@MickaelBazoge

Que c’est lent 😱

avatar 7X | 

@MickaelBazoge
Moi, qui attribuait ces lenteurs au dialogue avec les serveurs distants.

avatar stefhan | 

@7X

Pareil !

avatar Derw | 

@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…

avatar Mrleblanc101 | 

@Derw

Aucun rapport... Meme natif il faudrait des appels serveur. Simplement ici le serveur retourne du HTML au lieu de du JSON

avatar Derw | 

@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…

avatar Mrleblanc101 | 

@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

avatar Derw | 

@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 !

avatar MarcMame | 

@7X

"Moi, qui attribuait ces lenteurs au dialogue avec les serveurs distants."

Et c’est bien le cas.

avatar BeePotato | 

« 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.

avatar hawker | 

degeulasse.
une honte.

CONNEXION UTILISATEUR