Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

Aller à la page :  1 2

# Masquer les barres d'outils Firefox depuis une extension

Envoyé par : Polaris68

Date : 29/06/2006 10:43

Tout est dans le titre !!!

Est il possible de contrôler l'affichage des barres d'outils et de menu de Firefox depuis une extension ?

Merci !

# Re: Masquer les barres d'outils Firefox depuis une extension

Envoyé par : papy

Date : 29/06/2006 10:58

Oui, comme tout élément XUL. Il faut pour cela la récupérer via le DOM (fonction getElementById du document par exemple, ou tout autre fonction qui permet de récupérer un élément XUL) et changer la propriété collapsed à true.

Exemple :

var toolbar = document.getElementById('id_de_la_barre_voulue');
toolbar.collapsed = true;

Normalement ca devrait marcher, mais je ne suis pas (encore) un pro de XUL donc ca reste à voir...

# Re: Masquer les barres d'outils Firefox depuis une extension

Envoyé par : Polaris68

Date : 29/06/2006 11:34

Cela ne fonctionne pas, à moins que je ne m'y prenne mal:

Voici ce que je cherche à faire: Firefox est LE navigateur par défaut sur tous les postes de travail. Je souhaite au travers d'une extension, restreindre l'accès à certaines fonctionnalités du navigateur lorsque l'utilisateur est connecté à certaines url précises.

Je me suis basé sur l'extension allowrightclick pour réaliser mon extension. L'extension est uniquement composée d'un overlay qui ajoute des listeners au chargement de celui-ci. Voici le code : @@ <?xml version="1.0"?> <?xml-stylesheet href="chrome://browser/skin/" type="text/css"?> <overlay id="allowrightClickOverlay"

     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:nc="http://home.netscape.com/NC-rdf#"
     xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <script type="application/x-javascript">
  <![CDATA[
 function keyPressed(event){
   alert('keypressed');	
   event.preventDefault();
   event.stopPropagation();
   alert(event.charCode);
   alert(event.ctrlKey);
 }
 function mouseClicked(event){
   alert('mouseClicked');
   alert(event.button);
   event.preventDefault();
   event.stopPropagation();
 }
  function addListeners() {
    window._content.addEventListener('keypress', keyPressed, true);
    window._content.addEventListener('mousedown', mouseClicked, true);
    alert(document.getElementById('main-menubar'));
  }
  window.addEventListener('load', addListeners, true);
 
  ]]>
  </script>

</overlay> @@

Je rencontre deux problèmes :

  • Je cherche à accéder aux toolbars de firefox pour les masquer
  • Lorsque le fichier xul est ouvert dans firefox les eventlistners fonctionnent, mais lorsque je bundle le tout au sein d'un fichier XPI rien ne fonctionne !

# Re: Masquer les barres d'outils Firefox depuis une extension

Envoyé par : papy

Date : 29/06/2006 11:40

Effectivement le code que j'ai mentionné plus haut ne peux pas fonctionner vu que les composants de firefox ne sont pas dans le contexte du document... désolé

# Re: Masquer les barres d'outils Firefox depuis une extension

Envoyé par : papy

Date : 29/06/2006 12:20

Après un test j'ai réussi à masquer la barre de menu de firefox, mais de manière non dynamique. La procédure que j'ai suivi :

  • dans mon extension, je crée un overlay avec le code suivant :
<?xml version="1.0"?>
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 <box id="main-menubar" collapsed="true"/>
</overlay>
  • dans le fichier chrome.manifest j'enregistre mon overlay pour le naviguateur :
overlay chrome://browser/content/browser.xul chrome://monExtension/content/overlay.xul

Au démarrage du naviguateur, la barre de menu n'apparait plus. Tu dois pouvoir cacher tout les composants que tu souhaite supprimer (notamment le panel extensions a mon avis, sinon tes utilisateurs pourront désactiver l'extension est ainsi récupéré leurs menus etc...)

Cela doit certainement être faisable dynamiquement comme je l'indiquais plus haut, il faut juste trouver la bonne méthode pour récupérer les composants du naviguateur.

# Re: Masquer les barres d'outils Firefox depuis une extension

Envoyé par : Polaris68

Date : 29/06/2006 12:24

papy a écrit:

Effectivement le code que j'ai mentionné plus haut
ne peux pas fonctionner vu que les composants de
firefox ne sont pas dans le contexte du
document... désolé

J'ai essayé avec le window.parent mais sans plus de succès

# Re: Masquer les barres d'outils Firefox depuis une extension

Envoyé par : Polaris68

Date : 29/06/2006 12:59

Par contre ce qui est vraiment bizzare c'est que lorsque je fais un window.document.location il me retourne l'url chrome du browser (browser.xul) Comment faire dans ce cas pour récupérer l'URL du document affiché dans le navigateur ?

# Re: Masquer les barres d'outils Firefox depuis une extension

Envoyé par : thefab

Date : 29/06/2006 13:26

window.document.location il me retourne l'url chrome du browser (browser.xul)

Sauf erreur c'est

window.content.location

content étant un raccourci pour l'élément browser (iframe, editor ?) qui a l'attribut type="content-primary"

# Re: Masquer les barres d'outils Firefox depuis une extension

Envoyé par : Polaris68

Date : 29/06/2006 15:47

Ca y est tout fonctionne parfaitement !!!

L'utilisateur peut surfer librement, et dès que celui-ci se connecte à l'application, les barres de menu sont masquées et les raccourcis clavier/click droit sont désactivés !

Pour info, le problème de récupération des barres de menu provenait du fait que j'ouvrais le fichier xul directement dans FF sans passer par l'installation de l'extension (rookie error).

window.document.getElementById('navigator-toolbox').setAttribute('hidden', true) permet de masquer les barres de menu de firefox.

Maitenant il ne me reste plus qu'à rendre tout ca un peu plus configurable

# Re: Masquer les barres d'outils Firefox depuis une extension

Envoyé par : papy

Date : 29/06/2006 16:17

Hum, quelle version de FF utilise tu ? J'ai essayé de faire un alert de window.document.getElementById('navigator-toolbox') depuis mon extension pour tester, mais il me dit null.

Je pourrais bien être interessé par la modification dynamique de l'interface du browser, et même si ce n'est pas le cas j'aimerais bien savoir pourquoi chez moi ca ne fonctionne pas et chez toi si...

# Re: Masquer les barres d'outils Firefox depuis une extension

Envoyé par : Polaris68

Date : 29/06/2006 16:59

...La classe on l'a ou on l'a pas ;-) (je plaisante bien entendu) J'utilise la dernière version de firefox.

Je fais juste un peu de ménage dans mon code et je posterai le xpi sur le forum

# Re: Masquer les barres d'outils Firefox depuis une extension

Envoyé par : papy

Date : 29/06/2006 17:17

Lol ;)

C'est sympa de ta part parce que ca m'intrigue un peu. Bonne continuation

# Re: Masquer les barres d'outils Firefox depuis une extension

Envoyé par : mat

Date : 25/07/2006 11:17

Je me permets d'apporter ma contribution, surtout pour papy, puisque je ne sais pas s'il a trouvé une solution... Voila donc les sources qui m'ont permis de masquer toutes les barres de firefox:

chrome.manifest:

content monExtension content/
locale monExtension fr_FR locale/fr_FR/
overlay chrome://browser/content/browser.xul chrome://monExtension /content/overlay.xul

overlay.xul

<?xml version="1.0"?>
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
	<box id="navigator-toolbox" hidden="true"/>
</overlay>

En espérant que cela en aidera d'autres... Le plus périlleux, dans cette histoire, c'est de récupérer les id des barres en question (pas le courage de parcourir le code de firefox... ce serait formateur, pourtant, à mon avis;))

Eh oui, c'est ça la classe...

Mat

# Re: Masquer les barres d'outils Firefox depuis une extension

Envoyé par : chBok

Date : 25/07/2006 11:50

Merci Mat pour ton intervention :) Quelle classe en effet ;) (LOL)

C'est vrai que pour masquer une des barres d'outils "natives" de Firefox, et plus généralement de tous autres éléments de l'interface du navigateur, rien de tel que de passer par un overlay.

# Re: Masquer les barres d'outils Firefox depuis une extension

Envoyé par : thefab

Date : 25/07/2006 13:49

récupérer les id des barres en question

Et l'Inspecteur DOM il sert à quoi alors ! :-)

Pour afficher le navigateur, entrez:

chrome://browser/content/browser.xul

puis examiner... héhé ;-)

Aller à la page :  1 2

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.