Extension de navigateur: simple curiosité

a marqué ce sujet comme résolu.

Bonjour à tous,

Ceci est une simple question de curiosité. J'aimerais savoir s'il est possible de créer une extension de navigateur avec les caractéristiques suivantes. Dans un premier temps, windows seulement, pour Chrome et Firefox, +éventuellement IE/Edge mais c'est moins important. Pour les autres OS et navigateurs on verra plus tard, on oublie les smartphones, Mac et Safari pour le moment.

Ce que je souhaiterais :

  • Mettre à disposition de toute page web qui souhaitera l'utiliser (à priori probablement que sur mon propre site mais ne sait-on jamais), un ou plusieurs objets JavaScript window.XXX instanciables.
  • Accéder en interne à des DLL dont je n'ai pas nécessairement le contrôle sur le code (dans l'idéal, l'accès à une interface FFI à l'instar de JNI/JNA pour Java, CTypes pour Python, luajit pour lua, etc.)
  • Probablement pas de GUI spécifique en-dehors de choses très simples genre MessageBox ou alert/confirm/prompt
  • De préférence, que la majorité de l'extension elle-même puisse être programmée en JavaScript et non pas C/C++, mais ce n'est pas bloquant si je dois faire du C++ (par contre je n'ai vraiment pas envie de compiler firefox moi-même hein)

Quelqu'un connaît-il des ressources qui vont dans ce sens ? Ou bien c'est clairement impossible pour des raisons sécuritaires (ça peut se comprendre mais en même temps si on choisit d'installer l'extension on doit sûrement être conscient des risques). J'aurais du mal à imaginer que certaines extensions existantes puissent ne pas du tout faire appel à du code C++ extérieur (je pense à readium, firebug, ou tout ce qui permet d'analyser/trafiquer les connexions réseau).

On dirait qu'il y a un tutoriel sur le sujet, mais il semble se limiter à du JavaScript uniquement (pas d'appel à du code C++ extérieur), et pas orienté service à n'importe quel page web (il s'agit de fonctions obligatoirement initiés par l'utilisateur en premier lieu).

Merci pour vos réponses.

+1 -0

Bonjour !

  • Mettre à disposition de toute page web qui souhaitera l'utiliser (à priori probablement que sur mon propre site mais ne sait-on jamais), un ou plusieurs objets JavaScript window.XXX instanciables.

Je n'ai jamais essayé, mais c'est très sûrement faisable avec un content script.

  • Accéder en interne à des DLL dont je n'ai pas nécessairement le contrôle sur le code (dans l'idéal, l'accès à une interface FFI à l'instar de JNI/JNA pour Java, CTypes pour Python, luajit pour lua, etc.)

Je pense que js-ctypes pourrait t'intérésser. Bon par contre je crois que ça ne marche qu'avec les extensions Firefox "classiques".

  • Probablement pas de GUI spécifique en-dehors de choses très simples genre MessageBox ou alert/confirm/prompt

Là, il n'y a évidemment pas de problèmes.

J'espère t'avoir aidé . :)

Salut,

Tu as tapé dans le mille avec js-ctypes, c'est exactement ça que je cherche. Pour ContentScript ça a l'air chaud parce qu'il faut faire de la passation de message à fond et donc ça pourrait être assez lent, mais apparament, c'est bel et bien faisable. En outre ce système de passation de messages semble imppliquer que tous les appels seront nécessairement asynchrones du côté de la page web qui utilise l'extension, donc par exemple je ne pourrais pas recoder confirm ou prompt (bien sûr c'est un exemple idiot et sans intérêt mais vous comprenez ce que je veux dire).

Par contre je ne comprends pas ce que tu veux dire par là:

Bon par contre je crois que ça ne marche qu'avec les extensions Firefox "classiques".

Il ne reste plus qu'à trouver un tutoriel ou quelque chose qui explique comment faire pour tester son code, et ensuite comment le packager, en commençant par le début. Parce que je n'ai jamais codé d'extension pour navigateur; pour le moment je ne fais que me renseigner sur la faisabilité de la chose.

Puis ensuite, faudra trouver la même chose pour Chrome. En cherchant ContentScript, on peut déjà voir que l'API de Firefox et celle de Crhome en la matière sont à priori assez ressemblantes.

Merci !

+0 -0

Le souci est que les extensions traditionnelles de Firefox (XUL+XPCOM) sont vouées à disparaitre, car Mozilla va abandonner cet écosystème (donc Firefox ne sera plus une "runtime" permettant d'exécuter du XUL et des XPCOM). Ca limite fortement les possibilités d'extension évidemment…

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte