2009-03-04 8 views
1

Le comportement du thread pour l'extension Firefox est-il possible? Je veux dire avoir un "thread" en cours d'exécution par onglet Firefox.Comportement fileté pour l'extension Firefox possible?

J'ai juste terminé une extension qui fait quelque chose à une page dans une fenêtre de Firefox, mais j'ai compris qu'il faudrait une restructuration majeure pour que l'extension fonctionne si je voulais exécuter la logique d'extension dans chaque onglet.

Il me semble que je devrais planifier le traitement de tous les contenus d'onglets à la ronde en plus de garder une trace du contexte de chaque onglet afin qu'une fois que je passe un onglet et que j'en passe à un autre, le contexte de l'onglet précédent est sauvé quand j'y reviens encore une fois. Oui, je devrais transformer mon extension en planificateur de processus! Je préférerais décharger ce travail sur Firefox ou le système d'exploitation.

Bien que je puisse générer une nouvelle fenêtre pour chaque page que je traite afin que l'extension ne fonctionne que sur une seule page, je préfère utiliser des onglets.

Bien que j'ai commencé à coder un script GM pour que je reçoive le "threading" gratuitement, je me demandais si quelqu'un avait une meilleure idée?

Quelque chose comme engendrer un thread de l'extension pour chaque onglet créé de sorte que chaque thread est localisé et dédié à chaque onglet?

Répondre

2

Désolé, ma réponse précédente était erronée (parce que j'ai développé des extensions il y a longtemps, pour Firefox 2). Maintenant, on dirait qu'il est possible d'utiliser des fils Javascript dans les extensions:

Mais il est dangereux d'accéder à l'interface utilisateur DOM ou de fils.

De même, vous n'avez pas vraiment besoin de threads pour pouvoir accéder à plusieurs onglets. Tous les onglets sont égaux à l'extension Firefox.

+0

Même avec FF 3.1, threads de travail? – EFraim

+0

désolé, déjà remarqué cela. –

+0

Le point est de faire exactement le même traitement dans tous les onglets simultanément – PoorLuzer

Questions connexes