Page 1 sur 1

Les possibilités d'un extension

Publié : 09 avr. 2009, 09:32
par Eddy-
Bonjour,


Dans le cadre de mon stage, je dois réaliser une modification de firefox, pour permettre de "modifier" les données http, comme le fait https avec ssl.
Pour l'instant j'en suis à la refléxion sur la possibilité de faire ceci avec une extension.
L'extension devrait récupérer la page web "codée" et la retranscrire en un code html compréhensible pour firefox. Sur ce point je vois plus un plug-in remplir ce rôle avec un type mime particulier, mais peut-être qu'on peut le faire avec une extension.
Et le second point c'est lors d'envoi des données vers un serveur soit en méthode post ou get, coder ces données et les envoyer ensuite au serveur et si possible sans modifier la page web existante.
Si vous avez des idées sur les possibilités merci de votre aide.


Cordialement,
Eddy


Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko/2009033100 Ubuntu/9.04 (jaunty) Firefox/3.0.8

Publié : 09 avr. 2009, 18:14
par martin
Si tu utilises un type mime particulier, tu peux effectivement dans une extension implémenter un "stream converter" via un composant xpcom. Il te permettra de faire le traitement souhaité lorsque Firefox rencontrera ce mime type. Recherche des implémentations de nsIStreamConverter sur le net.

Tu peux de même, mais ce n'est peut être pas nécessaire, implémenter un nouveau protocole dans une extension (ex myhttp://), également dans un composant xpcom.

Pour ce qui est des Get et Post, je n'ai pas d'idée, désolé. Peut être en fouillant les sources de https dans mxr.

Publié : 10 avr. 2009, 09:40
par martin
Quoiqu'en implémentant ton propre protocole, tu peux "filtrer" ce qui sort, et donc agir sur les Get et Post...

Publié : 14 avr. 2009, 11:04
par Eddy-
Merci, pour le streamconverter, bon j'ai un peu de mal à l'utiliser, si vous avez des bon liens, merci.

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko/2009033100 Ubuntu/9.04 (jaunty) Firefox/3.0.8

Publié : 15 avr. 2009, 12:25
par martin
Eddy- a écrit :Merci, pour le streamconverter, bon j'ai un peu de mal à l'utiliser, si vous avez des bon liens, merci.
Je peux te proposer de regarder une *vieille* version d'une des mes extensions, boox 0.4.2.0, qui implémentait 2 composants de ce type, pour prendre en charge les types "application/rss+xml" et "application/atom+xml".
C'était une version pour Firefox 1.5, et l'extension ne fonctionnera absolument pas dans un firefox récent. Mais çà peut peut être t'aider d'y jeter un oeil, regarde les fichiers dans le dossier "components" ;).

Publié : 16 avr. 2009, 16:18
par Eddy-
Ca avance doucement :)
Petite question :
Dans la status bar, j'ai un emplacement pour activer/désactiver les fonctions.
J'aimerai désactiver mon module xpcom lorque je clique sur la status bas est-ce possible ?
Ou alors puis-je lire la valeur de mon petit bouton dans la status bar depuis le module xpcom et en fonction de sa valeur faire des choses.

Merci :)



Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.8) Gecko/2009033100 Ubuntu/9.04 (jaunty) Firefox/3.0.8

Publié : 16 avr. 2009, 16:53
par Invité
mmh, désactiver complètement le composant xpcom je pense pas, je suppose qu'ils sont enregistrés ou non au démarrage de l'application (Firefox), et ce définitivement pour toute la session.
Par contre, tu peux effectuer ou non un traitement dans ton composant, suivant une "variable".

A mon avis, le plus simple, c'est d'utiliser une préférence. Ton composant peut y avoir accès, et faire le traitement selon son état. Dans la fenêtre principale de Firefox, tu peux changer cet état en écoutant les click. Et comme il peut y avoir plusieurs fenêtre Firefox d'ouvertes, tu enregistres un Observer sur les préférences de ton extension, pour mettre à jour dans la statusbar quand cette préférence est modifiée.

de la doc.

Publié : 16 avr. 2009, 16:54
par martin
encore oublié de me logguer...

Publié : 16 avr. 2009, 16:56
par Eddy-
Merci.

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.8) Gecko/2009033100 Ubuntu/9.04 (jaunty) Firefox/3.0.8