Greboca  

DLFP - Dépêches  -  Next v1.3.0, le navigateur web entièrement programmable

 -  Août 2019 - 

Je suis heureux de vous présenter le navigateur Next, projet que j’ai rejoint il y a deux mois, et dont la version 1.3.0 livre son lot de fonctionnalités attendues pour un usage quotidien :

  • blocage de publicités (par domaine) ;
  • sélection approchée / fuzzy améliorée ;
  • raccourcis claviers à la Vim ;
  • un gestionnaire de téléchargements ;
  • un mode NoScript ;
  • un « back‐end » basé sur Blink, le moteur de rendu de Chrome (qui s’ajoute au back‐end WebKit) ;
  • prise en charge des serveurs mandataires (proxies), donc de Tor ;
  • et plus encore.

Oui, le tester donne envie de ne plus s’en séparer. :)

Next est unique car il n’expose pas d’API, il est totalement ouvert et programmable, et qui plus est programmable à chaud, il n’y a pas besoin de le redémarrer pour tester ses changements. Et au contraire des projets similaires (Konqueror ou Vimperator qui sont morts, Qutebrowser…), il n’est pas lié à un moteur de rendu particulier.

Je vous propose de le découvrir, et de nous soutenir pour voir une version 1.4 !

Installation

L’installation est aisée pour GNU/Linux et macOS : on propose une archive Guix tout‐en‐un et il est dans les MacPorts. Notez qu’il fonctionne sûrement sous Windows, mais que nous n’avons pas pu essayer (il faudra s’assurer d’avoir D-BUS). Voyez la page de téléchargement. Il est également facile de l’installer depuis les sources, un make installe toutes les dépendances et produit un exécutable.

Architecture

Next est architecturé autour de deux composants : le cœur et un portage par plate‐forme. Nous avons actuellement deux plates‐formes : GTK/WebKit et Qt/Blink. Le cœur est en Common Lisp, le portage GTK en C et le Qt en Python (PyQt, Webengine). Les deux composants communiquent par D-Bus. Nous utilisions d’ailleurs XML-RPC avant D-Bus, et le changement nous bénéficie grandement. On a gagné en introspection, en messages d’erreur, en sécurité, et surtout en performances. En effet, il ne fallait plus que la communication (toujours asynchrone, dans les deux sens) paraisse avoir un délai.

Développement et introspection en direct

Common Lisp (http://lisp-lang.org/, http://common-lisp.net/, https://github.com/CodyReichert/awesome-cl) est la clef qui permet le développement et la manipulation du navigateur en direct. On peut lancer Next, lui demander de lancer un serveur Swank (le back‐end de Slime), et hop, on est connecté au navigateur et l’on peut inspecter son état, définir de nouvelles commandes, corriger des fonctions et les tester immédiatement, etc. Ou habituellement, lorsqu’on développe en Lisp, on lance Next depuis son REPL Lisp (dans Emacs, Atom, Vim ou d’autres éditeurs).

Autres fonctionnalités

En plus des fonctionnalités citées en introduction (la navigation fuzzy est vraiment cool), on peut citer comme fonctionnalités pratiques la navigation par titre (C-. liste l’ensemble des titres de la page (h1…h6), on fuzzy‐sélectionne pour se rendre à ladite section) et un historique représenté comme un arbre. Voyez les captures d’écran sur le site principal.

Version 1.4

On a forcément plein d’idées et d’envies pour la suite, notamment :

  • une isolation par onglet (dire que tel onglet ou telle fenêtre utilise Tor, rejette les cookies, etc.) ;
  • une excellente intégration à un éditeur de texte, pour que Next devienne vraiment l’Emacs des navigateurs » (notez que ce pourrait être plus facile que prévu grâce à l’éditeur existant Lem) ;
  • s’ensuit, un gestionnaire de fichiers ;
  • un gestionnaire de mots de passe ;
  • une recherche de texte inter‐onglet, idem pour la navigation par titre ;
  • etc.

Et maintenant qu’on a les bases, on prévoit de s’amuser un petit peu et d’expérimenter avec le téléchargement de vidéos (on pourrait utiliser facilement youtube-dl, puisque nous ne sommes pas limités par la plate‐forme du navigateur), des commandes pour interagir avec GitHub, etc. Nous ne sommes plus limités que par notre imagination !

Si le projet vous botte, n’hésitez pas à nous soutenir par un don (même symbolique :)) ; et une petite étoile sur GitHub aide aussi.

Commentaires : voir le flux atom ouvrir dans le navigateur

par dzecniv, Ysabeau, Davy Defaud, palm123, Benoît Sibaud, Pierre Jarillon

DLFP - Dépêches

LinuxFr.org

Tribune April : Techsoup et Solidatech, instruments d'influence

 -  27 mars - 

Après une première position sur Solidatech en 2020, l'April a passé à nouveau du temps pour étudier et comprendre la place des structures Solidatech (...)


TuxRun et le noyau Linux

 -  27 mars - 

Il y a quelques années, je vous avais présenté TuxMake, un utilitaire pour faciliter la (cross-)compilation du noyau Linux supportant une grande (...)


Retour d’expérience sur l’utilisation de GrapheneOS (ROM Android libre)

 -  18 mars - 

Suite à la dépêche Comparatif : GrapheneOS vs LineageOS, je souhaitais faire part d’un retour d’expérience sur l’utilisation de GrapheneOS sur un (...)


Ubix Linux, le datalab de poche

 -  16 mars - 

Ubix Linux est une distribution Linux libre et open-source dérivée de Debian.Le nom « Ubix » est la forme contractée de « Ubics », acronyme issu de (...)


Open Food Facts : récit d’un contributeur

 -  15 mars - 

Récit de mon aventure en tant que contributeur pour le projet Open Food Facts, la base de donnée alimentaire ouverte et collaborative, où je suis (...)