Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Probleme de canevas

Envoyé par : hcapitaine

Date : 14/06/2007 15:20

Bonjour xuliens et autres devs,

Je suis nouveau dans le monde de xul, donc j'ai déjà lu quelques tutos et wiki de votre site. J'ai suivi scrupuleusement ces tutos: http://xulfr.org/wiki/ConfigurerMozillaPourDevelopper http://xulfr.org/wiki/Extensions/EnregistrementChrome

Bien j'ai effectué toutes les étapes, en remplacant tous les fichiers de mon ancien firefox par le nouveau télécharger depuis le ftp.

Voici l'architecture de mes dossiers:

firefox

->extensions
  ->screenshot@test.com
    ->chrome
      ->screenshot
        ->content
          ->screenshot.js
          ->screenshot.xul
    ->chrome.manifest
    ->install.rdf

Quand je lance firefox et que je vais voir mes modules complémentaires, ce nouveau module apparait. Dans mon manifest j'ai cette ligne:

content screenshot content/

Voici mon .xul:

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>  
<window
   windowtype="global:thumbviewSidebar"
   onclick="update();"
   id="win"
   xmlns:html="http://www.w3.org/1999/xhtml"
   xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 <script src="chrome://screenshot/content/screenshot.js"/>
 <html:canvas id="canvas"/>
 <browser id="magnoBrowser" src="http://www.google.fr" flex="1"/>
</window>

Seulement quand je fais: chrome://screenshot/content/screenshot.xul cela renvoie un fichier introuvable. Alors j'essaie avec firefox d'acceder directement au fichier, alors dans ce cas le browser s'affiche mais pas le canevas donc je pense avoir que c'est parce que l'application n'a pas été enregistrée dans le chrome. Ce canevas devrait afficher le contenu de la fenetre grace au js. Ce js a été débuggé et fonctionne parfaitement.

Seul problème c'est que je ne sais pas pourquoi mon application n'est enregistrée.

Pourriez vous m'aider?

PS:Desole pour la mise en forme du message

# Re: Probleme de canevas

Envoyé par : thefab

Date : 14/06/2007 15:53

A première vue erreur de chemin chrome, le chemin du chrome.manifest ne correspond pas à l'arborescence, il faut soit:

1)

Firefox (pas besoin de répéter screenshot)

extensions
  screenshot@test.com
    chrome
      content

chrome.manifest (placé dans screenshot@test.com)

content screenshot chrome/content/

ou:

chrome.manifest (placé dans chrome)

content screenshot content/

2)

Firefox (répéter screenshot)

extensions
  screenshot@test.com
    chrome
      content
        screenshot

chrome.manifest (placé dans screenshot@test.com)

content screenshot chrome/content/screenshot/

ou:

chrome.manifest (placé dans chrome)

content screenshot content/screenshot/

Tu remarques que le fichier .manifest fait simplement la correspondance entre le chemin physique et les URLs Chrome.

# Re: Probleme de canevas

Envoyé par : hcapitaine

Date : 14/06/2007 16:55

Merci thefab pour la réactivité.

En effet ca m'a réglé le problème de la fenêtre firefox qui ne s'ouvre pas, mais maintenant qu'elle s'ouvre il n'y a pas le canvas qui est supposé contenir le rendu de la fenetre.

Voici le javascript qui est lance sur un clic de la fenetre:

function update() {

 var w = window.innerWidth + window.scrollMaxX;
 var h = window.innerHeight + window.scrollMaxY;

 if (w > 10000) w = 10000;
 if (h > 10000) h = 10000;

 var container = document.getElementById("win");

 var canvasW = container.boxObject.width;
 var scale = canvasW/w;
 var canvasH = Math.round(h*scale);

 var canvas = document.getElementById("canvas");
 canvas.style.width = canvasW+"px";
 canvas.style.height = canvasH+"px";
 canvas.width = canvasW;
 canvas.height = canvasH;

 var ctx = canvas.getContext("2d");

 ctx.clearRect(0, 0, canvasW, canvasH);
 ctx.save();

 ctx.scale(canvasW/w, canvasH/h);
 
 ctx.drawWindow(window, 0, 0, 100, 200, "rgb(0,0,0)");
 
 ctx.restore();

}

Le seul probleme c'est que la fonction drawWindow requiert les FAMEUX privileges chrome. Je ne sais pas à quoi correspondent ces privileges et je ne sais pas comment les obtenir.

# Re: Probleme de canevas

Envoyé par : hcapitaine

Date : 15/06/2007 15:25

Le probleme que j'avais, etait que dans la fonction drawWindow je ne devais pas fournir la window mais le contenu du browser en fesant browser.contentWindow

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.