Firefox Focus / Klar avec GeckoView

Posté par  (site web personnel, Mastodon) . Édité par ZeroHeure, Davy Defaud, palm123 et Pierre Jarillon. Modéré par Julien Jorge.
28
9
nov.
2018
Mozilla

J’ai récemment lu l’article Firefox Focus with GeckoView publié par Dan Callahan et Andreas Bovens sur le site Mozilla Hacks en septembre dernier.

J’ai apprécié le sujet de l’article et son développement, c’est pourquoi je voulais proposer à la communauté LinuxFr.org une traduction informelle. Cette traduction est sous licence CC-BY-SA 3.0, tout comme l’article original.

Cette traduction arrive un peu tard, puisque Firefox Focus 7 a été publiée le 2 octobre dernier.

Sommaire

« Firefox Focus with GeckoView »

N. D. T. : Firefox Focus est aussi connu sous le nom de Firefox Klar dans le magasin F-Droid, car FOCUS est le nom d’un magazine en Allemagne, Autriche et Suisse et son propriétaire est un partenaire de Mozilla. Mozilla a donc décidé d’éviter de créer la confusion avec les textes Focus by Firefox qui sont affichés à différents emplacements.

Firefox Focus propose la navigation en mode privé sous forme d’une application Android : il bloque automatiquement les publicités et les traqueurs, pour que vous puissiez surfer sur le Web en paix. Quand vous avez terminé votre navigation, une simple tape permet d’effacer complètement votre historique, vos cookies et d’autres données locales.

La protection contre les traqueurs invasifs est une partie de la mission non lucrative de Mozilla, et la protection interne de Focus aide à vous garder en sûreté. De plus, ça permet aux sites Web d’être chargés plus rapidement !

Focus avec 28 traqueurs bloqués automatiquement

Avec Focus, vous n’avez plus besoin de vous soucier que votre historique de navigation soit épié par les publicités ciblées par d’autres sites Web.

N. D. T. : Je trouve Firefox Focus particulièrement pratique pour ces aspects, surtout en le définissant comme navigateur par défaut. Comme je reçois régulièrement des liens de différents canaux de communication, Focus me permet de visionner rapidement le contenu sans être trop traqué et sans mélanger mon historique de Firefox avec des liens annexes.

Porter Gecko dans Focus

Dans les prochaines semaines [N. D. T. : la publication a eu lieu le 2 octobre dernier], nous allons publier une nouvelle version de Focus pour Android et ce sera la première fois que Focus sera livré avec Gecko, le moteur Web qui propulse Firefox Quantum. Ce changement est une modification majeure de l’architecture du logiciel, c’est pourquoi cette version sera bien livrée à tout le monde avec le moteur Gecko — ce qui accroît la taille de l’application —, mais ne sera activée que graduellement pour s’assurer que la transition se passe bien. Vous pouvez nous aider à tester Gecko dans Focus aujourd’hui [N. D. T. : c’était donc en septembre] en installant Focus Beta.

Mise à jour de l’architecture : Gecko est livré avec Focus

Note : Au moment de publier cet article [N. D. T. : toujours en septembre…], Focus Beta est en train de faire un test de comparaison entre les deux moteurs Web. Vérifiez que Gecko/62.0 est dans votre User-Agent pour déterminer si votre installation utilise Gecko ou non.

Auparavant, Focus a été exclusivement propulsé par WebView le moteur Web interne d’Android. C’était un choix logique pour débuter un développement, puisque WebView était déjà disponible sur chaque appareil Android, mais nous sommes rapidement tombés dans des limitations. Avant tout parce que ce moteur n’est pas prévu pour créer des navigateurs Web complets. Bien que fondé sur Chromium, WebView supporte uniquement un sous‐ensemble des standards Web, car Google souhaite que les développeurs d’applications utilisent les API natives d’Android, et non celles du Web, pour les fonctionnalités avancées. Au contraire, nous aurions voulu que notre application ait accès à l’entièreté des standards ouverts de la plate‐forme Web.

Dans le cas de Focus, nous ne pouvons implémenter la prochaine génération d’outils de navigation privée sans un plein accès au cœur du moteur Web, ce qui signifie que nous devons avoir notre propre moteur. Nous avons besoin de Gecko. Heureusement, Firefox pour Android a déjà Gecko, mais il ne le rend pas facilement réutilisable pour d’autres applications. Voilà d’où vient GeckoView.

GeckoView: Rendre Gecko réutilisable

GeckoView est une bibliothèque Android qui livre Gecko d’une manière facilement réutilisable. Nous avons travaillé à découpler le moteur Web de son interface utilisateur pour permettre de l’embarquer facilement dans les autres applications. Grâce à l’architecture propre de GeckoView, nos premiers tests du nouveau Focus montrent un chargement des pages amélioré d’une médiane de 20 % comparé à Firefox pour Android, ce qui fait de GeckoView notre plus rapide version de Gecko sur Android.

Le paquet _GeckoView_ 62.0 avec ses 37,4 Mio

Nous avons mis en production GeckoView l’année dernière pour propulser les applications Web progressives (PWA) et les Custom Tabs dans Firefox pour Android. Ces deux fonctionnalités minimales et autonomes ont été de bons projets pour débuter, mais avec Focus nous allons bien plus loin. Focus sera notre premier produit déjà existant et avec un certain succès qui utilisera GeckoView.

Nous utilisons également GeckoView dans nos tous nouveaux produits, comme Firefox Reality, un navigateur exclusivement dédié aux casques de réalité augmentée et virtuelle. Nous allons partager plus d’informations à ce sujet plus tard cette année.

Construire des navigateurs avec Android Components

Pour construire un navigateur Web, vous avez besoin d’outils autour du moteur Web. Vous avez besoin d’outils communs comme les onglets, l’auto‐complétion, les suggestions de recherche, etc. Pour éviter de dupliquer inutilement les efforts, nous avons également crée Android Components, une collection d’outils indépendants et de bibliothèques prêtes à être utilisées pour construire des navigateurs et des applications ressemblant à des navigateurs pour Android.

Pour Mozilla, GeckoView signifie que nous pouvons profiter de notre expertise de Firefox dans la construction d’une expérience plus convaincante, sûre et robuste, alors qu’Android Components nous assure que nous pouvons continuer à expérimenter sur de nouveaux projets (comme Focus et Firefox Reality) sans réinventer la roue. De multiples manières, ces projets marquent la première étape pour la prochaine génération de la famille Firefox et les navigateurs sur Android.

Pour les développeurs Android, GeckoView signifie le contrôle. C’est un moteur prêt à la production avec une API agréable et stable, utilisable tout seul ou via les Android Components. Comme GeckoView est une bibliothèque autonome, pas besoin de la compiler vous‐même. De plus, propulser votre application avec GeckoView vous donne une version précise du moteur Web avec laquelle travailler. Comparez avec WebView qui tend à avoir pas mal de variantes, selon les versions installées avec la version d‘Android et de Chrome. Avec GeckoView, vous savez toujours exactement ce qui est disponible — et vous bénéficiez de l’excellent Gecko qui est multi‐plate‐forme et supporte les standards Web.

Participer

Nous sommes vraiment enthousiasmés par GeckoView et ce qu’il signifie pour le futur des navigateurs Web pour Android, et nous serions ravis de votre participation :

  • tentez d’installer Focus Beta et rapportez tous les bogues trouvés ;
  • si vous êtes développeur Web, commencez à tester votre expérience mobile avec Gecko, soit via Focus Beta, soit avec Firefox pour Android ou encore avec l’outil de développement de mode adaptatif de Firefox pour Bureau ;
  • si vous êtes développeur Android, pensez à utiliser GeckoView pour vos prochains projets ou contribuez directement avec nous en corrigeant des bogues dans Focus et dans Components.

Commentaires et précisions

N. D. T. : À l’heure actuelle, une dizaine de commentaires sont disponibles directement dans l’article, voici quelques précisions qui ont été amenées par les auteurs.

Le paragraphe à propos de l’avantage de GeckoView à l’encontre de WebView a été reformulé suite à un commentaire. Cependant, Colin Lee a ajouté une autre note très intéressante à ce sujet :

« Je travaille chez Mozilla avec GeckoView et c’est génial de pouvoir innover avec un nouveau moteur. Je suis fier que nous ayons été capables de le réaliser dans nos navigateurs et de le rendre disponible pour des développeurs indépendants.

Cependant, s’il vous plaît, soyons précis sur nos affirmations. WebView peut être mis à jour dans Android et ce, depuis Lollipop [N. D. T. : Android 5.0 distribué entre 2014 et 2015]. Ça fait bien longtemps que les téléphones qui ne peuvent avoir un WebView à jour ne sont plus être pris en charge par les applications modernes. WebView reçoit ses propres mises à jour séparées du système d’exploitation via le magasin Google Play, soit comme une nouvelle version de WebView (pour Android L et M), soit comme une mise à jour de Chrome (à partir d’Android N). »

Aller plus loin

  • # Un portage sur iOS prévu ?

    Posté par  . Évalué à 1. Dernière modification le 09 novembre 2018 à 11:02.

    Autant, c'est génial pour android, autant sur iOS, on se sent un peu seul.
    D'un côté Apple verrouille à l'utilisation de son webkit limité/ant, de l'autre on voudrait de l'alternative (libre en plus).
    Est-ce que vous envisagez de faire une version pour iOS de Focus avec Gecko ? (par exemple, comme une extension téléchargeable ultérieurement, afin de ne pas être backboulé par la pomme lors de l'upload de l'application  ?)

    Ce serait une petite révolution sur iOS, qui le mériterait bien.

    • [^] # Re: Un portage sur iOS prévu ?

      Posté par  . Évalué à 4.

      Focus existe déjà sur iOS, mais il utilise Webkit, et l'App Store n'acceptera jamais Gecko, même par une extension

      https://itunes.apple.com/fr/app/firefox-focus/id1055677337?mt=8

      • [^] # Re: Un portage sur iOS prévu ?

        Posté par  . Évalué à 2.

        Justement, je suis assez étonné de cette réponse "même par une extension".
        Vu que ladite extension serait téléchargée hors de l'app store: (exemple, le store des extensions de chrome qui ne passent pas par l'App Store)
        1) Comment Apple peut-il le savoir ?
        2) Même s'il le sait, actuellement, le texte qui interdit d'utiliser un autre moteur que Webkit est celui ci (de https://developer.apple.com/app-store/review/guidelines/ :)

        4.4 Extensions
        
        Apps hosting or containing extensions must comply with the App Extension Programming Guide or the Safari Extensions Development Guide and should include some functionality, such as help screens and settings interfaces where possible. You should clearly and accurately disclose what extensions are made available in the app’s marketing text, and the extensions may not include marketing, advertising, or in-app purchases.
        [...]
        4.7 HTML5 Games, Bots, etc.
        
        Apps may contain or run code that is not embedded in the binary (e.g. HTML5-based games, bots, etc.), as long as code distribution isn’t the main purpose of the app, the code is not offered in a store or store-like interface, and provided that the software (1) is free or purchased using in-app purchase; (2) only uses capabilities available in a standard WebKit view (e.g. it must open and run natively in Safari without modifications or additional software); your app must use WebKit and JavaScript Core to run third party software and should not attempt to extend or expose native platform APIs to third party software; 
        

        Je comprends, du 4.4 qu'une extension est autorisée si il n'y a pas de marketing, pub, ou achat in-app.
        Du 4.7, puisque l'extension n'est pas l'application principale (dans ce cas), qu'elle n'est pas fournie via un store, qu'elle serait gratuite, ça devrait passer. Après je ne suis pas un avocat.

        • [^] # Re: Un portage sur iOS prévu ?

          Posté par  . Évalué à 5. Dernière modification le 09 novembre 2018 à 21:41.

          pour le 4.4 Je ne vais pas m'amuser à lire le "App Extension Programming Guide" mais je suis sûr que cela exclu de recoder complètement un navigateur dans une extension.

          et pour le 4.7, si tu le lis bien, il est stipulé que ton application ne doit pas donner accès aux API à des programmes tiers. Donc ton extension n'aura pas accès au matériel, et j'ai du mal à voir un Gecko fonctionnel avec ça !

          Quand au fait de comment peut-il le savoir, si seulement ce que tu proposes est possible, peut être qu'ils ne le sauront pas quand ils valideront l'App, mais dès qu'ils le découvriront ils se gêneront pas pour supprimer l'application.

      • [^] # Firefox Gecko iOS hors app store ?

        Posté par  (site web personnel) . Évalué à -1.

        On ne peut pas installer Firefox version Gecko hors app store ? ( manuellement avec son ordi ? )

        Essaie pour vivre sans brider les utilisateurs https://www.indiegogo.com/projects/iwinote

    • [^] # Re: Un portage sur iOS prévu ?

      Posté par  (site web personnel) . Évalué à 9.

      La révolution, ça serait que la loi interdise cette pratique d'Apple.

  • # Firefox Focus/Klar avec Servo ?

    Posté par  (site web personnel) . Évalué à 1.

    J'avais vu qu'il y avait eu une version basé sur Servo , elle est maintenue ?

    Essaie pour vivre sans brider les utilisateurs https://www.indiegogo.com/projects/iwinote

    • [^] # Re: Firefox Focus/Klar avec Servo ?

      Posté par  . Évalué à 1.

      Je me posais la même question. Je croyais que les versions desktop avaient progressivement abandonné le moteur Gecko.
      Sinon qu'en est-il des performances sachant que la dernière fois que j'ai utilisé Firefox sur Android ce dernier était particulièrement lent ?

      • [^] # Re: Firefox Focus/Klar avec Servo ?

        Posté par  (site web personnel, Mastodon) . Évalué à 6.

        Servo est un projet d'expérimentation de nouvelles technologies et architectures pour créer de nouveaux moteurs de rendu web. Il a permis de faire une preuve de concept dans l'utilistion du langage Rust et du multi-process pour le GPU et le CPU.

        Mozilla a décidé de faire évoluer Gecko pour intégrer petit à petit ces expérimentations dans le moteur Gecko pour Firefox. Pour marquer le premier grand changement de Gecko, Mozilla a donné le sous-nom "Quatum" à Firefox.

        Gecko est donc la version stable des expérimentations de Servo et c'est donc lui qu'il faut utiliser pour créer des outils de production.

        Sinon qu'en est-il des performances sachant que la dernière fois que j'ai utilisé Firefox sur Android ce dernier était particulièrement lent ?

        Ça dépend tellement de ta machine et de la version de Firefox sur Android testée, que c'est difficile de t'en parler comme ça… Pour ma part, ça fonctionne plutôt bien sur mon Galaxy S3, mais je ne suis pas un utilisateur très avancé de mon smartphone Android, je l'emploie juste pour lire mes flux RSS.

      • [^] # Re: Firefox Focus/Klar avec Servo ?

        Posté par  . Évalué à 2.

        Sinon qu'en est-il des performances sachant que la dernière fois que j'ai utilisé Firefox sur Android ce dernier était particulièrement lent ?

        Je n'ai pas de chiffre à donner, mais j'utilise Firefox en tant que navigateur principal sur mon smartphone qui a 3 ans sans voir aucune différence de performance visible avec Chrome. L'avantage de Firefox sur Chrome est de pouvoir y installer des extensions ainsi que de pouvoir utiliser Sync (et ainsi, entre autre, récupérer mes onglets directement sur le smartphone ou inversement).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.