{"id":4198,"date":"2020-07-27T14:00:00","date_gmt":"2020-07-27T12:00:00","guid":{"rendered":"https:\/\/www.unicoda.com\/?p=4198"},"modified":"2020-07-26T23:43:38","modified_gmt":"2020-07-26T21:43:38","slug":"ytautodark-version-3-0","status":"publish","type":"post","link":"https:\/\/www.unicoda.com\/?p=4198","title":{"rendered":"YtAutoDark \u2013 Version 3.0"},"content":{"rendered":"\n<p>J&rsquo;ai pass\u00e9 plusieurs soir\u00e9es la semaine derni\u00e8re \u00e0 \u00e9crire du code pour mon extension YtAutoDark. C&rsquo;est donc avec une certaine satisfaction que je vous annonce que la version 3.0 est disponible sous Firefox et Chrome depuis le 25 juillet !<\/p>\n\n\n\n<p>Pour cette nouvelle version, je me suis concentr\u00e9 sur des fonctionnalit\u00e9s des extensions  que j&rsquo;avais toujours voulu explorer: la page d&rsquo;installation\/mise \u00e0 jour et les param\u00e8tres. C&rsquo;est d\u00e9sormais chose faite. L&rsquo;\u00e9v\u00e9nement qui a justifi\u00e9 une nouvelle version pour cet \u00e9t\u00e9 2020, c&rsquo;est l&rsquo;arriv\u00e9e d&rsquo;une pull request sur le d\u00e9p\u00f4t Github de l&rsquo;extension. Un utilisateur a apport\u00e9 des modifications \u00e0 l&rsquo;extension de son c\u00f4t\u00e9 pour r\u00e9pondre \u00e0 des besoins qui lui sont propres et a ensuite propos\u00e9 que les modifications soient int\u00e9gr\u00e9es dans le code parent.<\/p>\n\n\n\n<p>Les modifications apport\u00e9es concernent en particulier les conditions de d\u00e9clenchement de l&rsquo;extension, afin que celle-ci suive la s\u00e9lection du th\u00e8me sombre ou clair effectu\u00e9e par l&rsquo;utilisateur au niveau du syst\u00e8me d&rsquo;exploitation ou du navigateur, via la propri\u00e9t\u00e9 p<em>refers-color-scheme<\/em>. Une deuxi\u00e8me condition d\u00e9finie des r\u00e8gles horaires, respectivement avant et apr\u00e8s deux bornes horaires pour le choix du th\u00e8me. Si l&rsquo;heure actuelle est inf\u00e9rieure \u00e0 la premi\u00e8re borne ou sup\u00e9rieure \u00e0 la deuxi\u00e8me, le th\u00e8me sombre sera activ\u00e9, sinon l&rsquo;extension r\u00e9tablira le th\u00e8me clair.<\/p>\n\n\n\n<p>Afin de faire profiter les utilisateurs de ces ajouts et sans forcer pour tous ce comportement, j&rsquo;ai donc ajout\u00e9 une page de gestion des param\u00e8tres de l&rsquo;extension, permettant d&rsquo;activer au cas par cas l&rsquo;une ou l&rsquo;autre des fonctionnalit\u00e9s et de configurer les bornes horaires. J&rsquo;en ai profit\u00e9 pour utiliser l&rsquo;api <em>storage<\/em> dans sa version synchronis\u00e9e, afin que les param\u00e8tres choisis soient partag\u00e9s entre les diff\u00e9rentes instances de navigateur d&rsquo;un utilisateur authentifi\u00e9. On notera au passage que si la partie <em>sync<\/em> n&rsquo;est pas disponible, la configuration sera enregistr\u00e9e automatiquement dans la partie locale du <em>storage<\/em>.<\/p>\n\n\n\n<p>Deuxi\u00e8me ajout, la cr\u00e9ation d&rsquo;une page d&rsquo;information affich\u00e9e apr\u00e8s l&rsquo;installation de l&rsquo;extension, ou apr\u00e8s sa mise \u00e0 jour en cas de version majeure. Cette page me permet de m&rsquo;adresser aux utilisateurs de l&rsquo;extension, pour les informer des changements effectu\u00e9s. C&rsquo;est un bon moyen, je trouve, pour pr\u00e9venir de modifications du code s&rsquo;ex\u00e9cutant dans le navigateur et de leur impact. De ce c\u00f4t\u00e9 l\u00e0, j&rsquo;ai appris, apr\u00e8s une bonne heure de recherche, que l&rsquo;initialisation du <em>listener<\/em> sur l&rsquo;\u00e9v\u00e9nement <em>onInstalled<\/em> doit absolument \u00eatre effectu\u00e9 dans le <em>background script<\/em> et non dans le <em>content script<\/em>. Ce qui est plut\u00f4t logique une fois que l&rsquo;on conna\u00eet la solution.<\/p>\n\n\n\n<p>Derniers ajouts, invisible ou presque, c&rsquo;est la traduction de toutes les cha\u00eenes de caract\u00e8res en fran\u00e7ais, afin de fournir l&rsquo;extension dans ma langue maternelle \u00e0 mes compatriotes fran\u00e7ais et autres francophones du monde.  Et enfin, utilisation de <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/mozilla\/webextension-polyfill\" target=\"_blank\">webextension polyfill<\/a>, pour l&rsquo;utilisation des fonctions de stockage sous Chrome via <em>browser<\/em> comme mentionn\u00e9 dans la sp\u00e9cification et non <em>chrome<\/em>.<\/p>\n\n\n\n<p>Avant de se quitter, petit point statistique. YtAutoDark, c&rsquo;est, en cette fin juillet 2020, 141 utilisateurs actifs sous Firefox et 23 sous Chrome. Chers utilisateurs, si vous me lisez ici et que vous veniez \u00e0 constater un dysfonctionnement de l&rsquo;extension, n&rsquo;h\u00e9sitez pas \u00e0 me le signaler ici en commentaires, ou en ouvrant une issue sur Github. Moi-m\u00eame utilisateur quotidien de mon extension, je suis bien \u00e9videmment \u00e0 l&rsquo;affut du moindre bogue. Si vous en d\u00e9nichez un, vous savez donc quoi faire.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>J&rsquo;ai pass\u00e9 plusieurs soir\u00e9es la semaine derni\u00e8re \u00e0 \u00e9crire du code pour mon extension YtAutoDark. C&rsquo;est donc avec une certaine satisfaction que je vous annonce que la version 3.0 est disponible sous Firefox et Chrome depuis le 25 juillet ! Pour cette nouvelle version, je me suis concentr\u00e9 sur des fonctionnalit\u00e9s des extensions que j&rsquo;avais &hellip; <a href=\"https:\/\/www.unicoda.com\/?p=4198\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;YtAutoDark \u2013 Version 3.0&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[126,507],"tags":[452,453],"class_list":["post-4198","post","type-post","status-publish","format-standard","hentry","category-logiciellibre","category-yt-auto-dark","tag-yt-auto-dark","tag-ytautodark"],"_links":{"self":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/4198","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4198"}],"version-history":[{"count":3,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/4198\/revisions"}],"predecessor-version":[{"id":4206,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/4198\/revisions\/4206"}],"wp:attachment":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4198"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}