Développement d’un nouveau navigateur web : Eolie

Cédric Bellegarde, développeur à l’origine du populaire lecteur de musique Lollypop, revient avec un nouveau projet complètement fou : un navigateur web. De son joli nom, Eolie.

En apprenant la nouvelle, on a limite envie de s’écrier WTF ! Un nouveau navigateur web pour l’environnement de bureau GNOME, alors que tout le monde délaisse déjà le navigateur officiel au profit des ténors que sont Firefox et Chrome ? On est donc curieux d’essayer la bête, histoire de tenter de comprendre ce qui a bien pu passer par la tête de son auteur.

Eolie 0.1.0 et sa barre d’onglets sous forme de vignettes

Nous avons bien affaire à une application GNOME et sa fameuse barre d’en-tête. Et la première chose qui nous interpelle, c’est la barre d’onglets, qui n’est plus en haut de l’écran mais dans une colonne sur la gauche. Cette dernière ne se contentant pas non plus d’afficher seulement le nom des différents sites, mais propose un aperçu de chacun d’eux sous forme de vignettes.

Un clique droit sur la barre d’onglets offre la possibilité de choisir parmi trois modes : l’aperçu sous forme de vignettes, qui se trouve être le choix par défaut, le nom du site et sa favicon ou un panel minimaliste qui se limite aux favicons. Cette dernière option permettant d’afficher facilement plusieurs dizaines d’onglets sur un écran Full HD. Au-delà, on peut faire défiler la liste à l’aide de la molette de la souris ou faire appel à la fonction recherche pour filtrer les résultats.

Eolie 0.1.0 et sa barre d’onglets minimaliste

Quant à la barre d’adresse, elle n’affiche pas l’URL mais le nom du site. Un simple survol de la souris permettant tout de même d’afficher cette dernière. C’est sans doute plus esthétique, mais de cacher une telle information risque de favoriser le phishing.

Pour continuer sur l’interface, j’ai trouvé la fenêtre de l’historique incroyablement plus claire que celle de Firefox. Vous me direz, c’est plutôt facile, tant cette dernière est catastrophique. Il manque tout de même la possibilité de pouvoir définir une période temporelle ou de pouvoir effectuer des recherches contextuelles à la manière d’un Vivaldi.

Pour rester sur les questions d’historique, on notera par ailleurs la prise en charge par Eolie de Firefox Sync, autorisant ainsi le partage des marques pages et de l’historique entre les deux navigateurs et leur synchronisation sur différentes machines.

La fenêtre d’historique d’Eolie 0.1.0

D’un point de vue technique, le navigateur est développé en Python et utilise le moteur de rendu WebKitGTK+ (qui est lui, développé en C++). Le développeur peut donc se concentrer sur l’interface sans avoir besoin de trop se soucier de ce morceau gargantuesque qu’est le moteur de rendu de pages Web. Et pour ceux qui se poseraient la question, chaque onglet est bien rendu dans son propre processus, ce qui permet d’exploiter au mieux les processeurs modernes disposant de nombreux cœurs. Le plantage d’un onglet n’entraînant pas non plus le reste du navigateur dans sa chute.

La gestion des identifiants et mots de passe des différents sites s’effectuant quant à elle au travers de Seahorse et GNOME Keyring.

Autre sujet important, les extensions. Maintenant que les différents navigateurs se sont mis d’accord sur un format commun, les fameuses WebExtensions, Eolie finira sans doute par les prendre en charge. Mais pour le moment, je n’ai trouvé aucun moyen d’en installer. On notera néanmoins que le navigateur propose un bloqueur de publicités activé par défaut.

Pour une première version développée par un seul homme en seulement trois mois, je suis vraiment bluffé par le travail accompli. Tant sur le nombre d’options d’ores et déjà proposées, que sur la stabilité de l’ensemble. Et c’est dans ces moments-là que l’on constate toute la beauté du libre et des formats standards. Puisque il est évident que sans un moteur libre, les différentes technologies GNOME utilisées ou un système d’extensions standardisé, un tel projet aurait difficilement pu voir le jour.

Maintenant, ça reste une version 0.1 que l’auteur déconseille d’utiliser au quotidien. De mon côté, j’espère que l’on pourra prochainement déplacer la barre d’onglets à notre convenance et opter pour un modèle plus traditionnel si tel est notre souhait. De même que la prise en charge des WebExtensions ou l’ajout d’un gestionnaire de sessions. Après, tout se jouera sur les petits détails, comme de pouvoir annuler la fermeture d’un onglet ou couper rapidement le son de l’un d’entre eux. Si on ne retrouve pas nos petites habitudes, on aura du mal à changer.

Restera également la question du public cible et du nombre d’options qui seront proposées à terme. Si un navigateur comme Vivaldi a su trouver sa place face aux géants, c’est qu’il vise avant tout les utilisateurs confirmés. Comme on a pu le constater avec Web, une bonne intégration avec le reste de l’environnement GNOME ne sera pas suffisant pour être adopté, et il faudra non seulement proposer toutes les fonctionnalités habituelles, mais également en proposer de nouvelles dont on ne pourrait plus se passer.

Modifier les applications par défaut

Pour modifier votre navigateur web, client de messagerie, calendrier, lecteur de musique, de vidéos ou votre visionneur d’images utilisés par défaut, vous pouvez rechercher l’application Détails, ou vous rendre dans les paramètres de GNOME, section Système, puis Détails.

Liste d’applications par défaut dans GNOME 3.16

Changer d’application par défaut en fonction du type de fichier

Vous pouvez également modifier l’application par défaut qui est utilisée pour ouvrir un certain type de fichier. Pour cela, sélectionnez un type de fichier dont vous souhaitez changer l’application par défaut. Par exemple, pour définir l’application à lancer lors de l’ouverture d’un fichier PDF, sélectionnez un fichier .pdf. Faites un clic droit sur le fichier et choisissez Propriétés. Cliquez sur l’onglet Ouvrir avec. Sélectionnez l’application voulue et cliquez sur Définir par défaut.

Modification de l’application par défaut en fonction du type de fichier

La restauration de sessions avec le navigateur Web

Par défaut, chaque fois que vous exécutez le navigateur Web (Epiphany), ce dernier charge automatiquement la dernière page précédemment consultée. Comportement fort ennuyeux dans le cas où plusieurs personnes partageraient le même compte utilisateur, ou que vous préféreriez tout simplement utiliser la page d’accueil par défaut.

Malheureusement, aucune option ne permet de modifier facilement ce comportement, et il faudra donc passer par l’outil dconf-editor, vous rendre dans org.gnome.Epiphany, puis modifier la clé restore-session-policy.

Préférences de Web dans dconf-editor

Trois choix vous seront proposés : always (le choix par défaut), qui charge automatiquement la dernière page web consultée ; never, qui ne recharge jamais la précédente page et vous affichera donc la page d’accueil ; ainsi que crashed, qui ne rechargera la page qu’après un plantage du navigateur. Cette dernière possibilité étant sans doute le meilleur choix possible.

Si vous préférez la ligne de commande, vous pouvez utiliser directement

gsettings set org.gnome.Epiphany restore-session-policy crashed

En remplaçant éventuellement crashed par never.

Transformer un site web en application avec… Web :)

L’application Gmail apparaît dans le shell

Web, le navigateur du projet GNOME, permet de « transformer » un site web en application, ce qui permet de pouvoir ensuite rechercher le site depuis le shell, ou de l’ajouter dans le dash, avec vos applications favorites.

On pense tout de suite aux véritables applications en ligne, telles que Gmail ou l’un des nombreux projets Framasoft, qui se prêtent particulièrement bien au jeu.

Mais ça peut être également utile pour pré-configurer, et faciliter l’accès, aux quelques sites préférés de personnes qui ne seraient pas à l’aise avec l’outil informatique. Tout comme on peut également imaginer des cas d’application où une école, une entreprise ou autre, n’autoriseraient qu’un certain nombre limité de sites à leurs usagers.

Il faut savoir qu’en mode application, l’utilisateur est cantonné à ce site et ne peut pas en changer. Le navigateur possède également un certain nombre d’options dconf (avec dconf-editor, voir les différentes clés de org.gnome.Epiphany.lockdown) pour empêcher de se servir de la barre d’url, de pouvoir quitter l’application, d’imprimer, de sauvegarder des fichiers… ce qui peut être intéressant dans certaines situations, comme la création d’un site / application en mode kiosque, où les gens ne pourraient plus que consulter ce qui est proposé. Tout en étant également plus simple à relancer, en cas de plantage.

Procédure

Pour ce faire, il vous suffit de vous rendre sur le site web qui vous intéresse, puis de sélectionner le menu dans le coin supérieur droit de la fenêtre, et de choisir Enregistrer en tant qu’application Web…

Une fenêtre surgissante vous demandera ensuite de choisir un nom pour votre application, plutôt que le nom de domaine proposé par défaut.

Changer d’icône

Par défaut, c’est la favicon du site web qui est utilisée. Ces dernières ne faisant que 16×16 pixels, la qualité est plutôt mauvaise. Vous pouvez néanmoins la remplacer manuellement, en vous rendant dans le répertoire correspondant à l’application nouvellement créée, pour y remplacer le fichier app-icon.png

/home/votre_utilisateur/.config/epiphany/app-epiphany-le_nom_de_votre_application-chaîne_de_caractères

Dans le répertoire .config/epiphany de votre répertoire personnel, le navigateur créé un sous-répertoire pour chaque application. En choisissant par exemple de nommer mon application Framasphère, un répertoire app-epiphany-framasphere suivi d’une chaîne de caractères, a été créé, tout en minuscules et sans caractères spéciaux (accents, cédilles…). Une fois dans le répertoire, vous pouvez remplacer le fichier app-icon.png par l’image de votre choix.

Le navigateur utilise le fichier app-icon.png par défaut, mais vous pouvez très bien changer de nom ou de format, en optant par exemple pour du SVG. Mais de changer le nom ou l’extension, implique d’éditer le fichier  .desktop qui se trouve dans le répertoire, puis de modifier la ligne Icon= pour y indiquer le nom et le chemin absolu vers votre nouvelle image.

Si le shell continue d’afficher l’ancienne version, il suffira de le relancer avec le raccourci clavier Alt-F2 puis r.

Supprimer une application

Dans la barre d’URL du navigateur, tapez about:applications pour lister les différentes applications qui ont été créées. Il suffit ensuite de cliquer sur le bouton Delete associé, pour voir l’application supprimée.

Démonstration

Améliorer l’intégration de Firefox au sein de GNOME

Par défaut, Firefox ne cherche pas particulièrement à s’intégrer aux différents environnements de bureau sous Linux. Il n’utilise pas leurs systèmes de notifications, leurs gestionnaires de mots de passe, et ne fournit guère plus de .desktop (malgré un rapport de bug datant de juin 2005), élément pourtant nécessaire pour pouvoir en faire son navigateur par défaut, lui associer une icône… Fort heureusement, les différentes distributions se sont occupées de ce dernier point. Pour le reste, nous allons voir qu’il existe quelques extensions pour améliorer la situation.

Firefox 36 avec le thème Adwaita et l’extension HTitle

Vous pouvez tout d’abord commencer par installer le thème GNOME 3, ainsi que l’extension GNOME Theme Tweak, qui permet de configurer ce dernier (boutons en relief sur la barre de navigation, style différent pour les fenêtres non actives, texte d’onglet en gras, choix de la largeur maximale des onglets…)

Par défaut, tout comme dans Nautilus ou Web, les onglets seront sous la barre d’adresse. Les développeurs ont refusé de laisser une option, pourtant autrefois présente, permettant à l’utilisateur de choisir sa préférence, mais auront tout de même laissé une clé de registre pour inverser la position des onglets. Pour cela, dans la barre d’url de Firefox, il faut taper about:config, confirmer qu’on fera bien attention, puis rechercher la clé extensions.gnome-theme-tweak.tabs-on-top, qu’on positionnera à true.

Et pour en finir avec l’apparence, si vous souhaitez faire disparaître la barre de titre quand la fenêtre est maximisée, vous pouvez installer l’extension HTitle.

Maintenant, pour une intégration plus poussée, pour que Firefox utilise le système de notifications de GNOME, il existe GNotifier.

Et pour ceux qui auraient des raisons de préférer l’utilisation du gestionnaire de mots de passe de GNOME, il existe GNOME Keyring integration. Par contre, il n’existe pour le moment aucun moyen d’importer vos mots de passes déjà enregistrés, et vous devrez les retaper manuellement.