Bonjour,

J'utilise un site (Intranet) permettant de gérer des équipement et proposant via une fenêtre "popup" de surveiller en live l'équipement (refresh auto).
Ces popup fonctionnent avec pas mal de javascript (les liens par exemple).

Mon objectif : avoir plusieurs de ces éléments en une seule fenêtre en gardant le fonctionnement complet de chaque.
J'ai créé une webextension (Firefox) qui permet :
- via la popup de l'extension (celle définie dans browser_action), saisir la liste des éléments à ouvrir
- appelle une page de l'extension qui va appeler la page de surveillance de chacun des éléments dans des iframes
(le choix de l'iframe est fait pour conserver le bon fonctionnement de la page en question, surtout la partie js incluse).

Jusque là tout va bien .

La problématique : le js des pages de surveillance fait référence au window.opener... et là c'est le drame!

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var redirect = function (url)
{
  if (window.opener!=null)
    {
        actionDefinition(3,1);
        selectionEquipement(000001);
        window.opener.location.href = url;
	window.opener.focus();
    }
  else
   {
        alert("Impossible de faire la redirection sur la fenêtre mère car celle ci est fermée");
    } 
}
Et le window.opener est null...
- parce que l'iframe ne l'a pas : pas vraiment de souci, je pourrais prendre le window.parent.opener
- sauf que le parent n'en a pas non plus!

Après 2 jours à chercher/tester/triturer dans tous les sens, je suis totalement bloqué.
Voici une partie de ce que j'ai pu tester...

-Dans mon extension, utiliser window.open (qui semble permettre la transmission de l'opener) plutôt que windows.create
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
window.open(page,'/survey/survey.html','titlebar=no,directories=no,addressbar=no,toolbar=no,location=no,scrollbars=yes,resizable=yes');
 
//plutôt que
 
browser.windows.create({type: "popup",url: "/survey/survey.html",width: 1400,height: 800});
-> Perdu, apparemment les webextension Firefox ne le permettent pas (en cherchant le pourquoi, la seule réponse trouvée était d'utiliser windows.create
-> De plus, la fenêtre appellante serait "moz-extension:\\...."


- ouvrir une page de surveillance et injecter du code pour remplacer la location.href par la page survey de mon extension
-> perdu, un site ne peux accéder aux pages de l'extension (cross...)
- modifier le javascript de la page de surveillance (en appelant une de l'extension ou : il me faut toujours lui dire d'ouvrir dans la fenêtre principale...
- etc

La question reste : "comment puis-je récupérer la référence à la fenêtre principale lors de l'ouverture d'une fenêtre via la popup d'une webextension Firefox"?

Celui qui me trouve une bonne réponse aura toute ma gratitude! Là, je patine...