Question

Supposons que nous avons un prisme Mozilla comme l’application XULRunner. Il existe une fenêtre XUL avec un & Navigateur / & Gt; élément, où le navigateur affiche une page Web sur un domaine donné (par exemple, exemple.com).

Maintenant, il y a plusieurs liens sur example.com. Si un utilisateur suit un lien local (c'est-à-dire qu'il reste sur example.com), il devrait être autorisé à le suivre. Si par contre le lien va à elpmaxe.moc, il devrait y avoir (ça ne me dérange pas) l’une de ces deux possibilités:

  • Le " réel " le navigateur s'ouvre (comme dans Prism) ou
  • rien ne se passe.

Des idées pour faire ça? Il n'est pas suffisant d'utiliser browser.document.onload ou DOMready ou de tels événements, car le lien doit être bloqué en toute sécurité même pendant le chargement de la page (c'est-à-dire si aucun de ces événements n'est encore déclenché).

Était-ce utile?

La solution

Il semble que vous souhaitiez une fonctionnalité similaire à celle fournie par BlockSite . - sauf que vous voulez ajouter à la liste blanche le domaine de l'application et bloquer tout le reste. Il existe une documentation MDC sur l'installation d'extensions dans XUL Runner , ce qui peut aider.

Sinon, vous pouvez consulter le code source et essayer de déterminer où il est connecté - cela vous permettrait de mettre en œuvre un comportement alternatif consistant à bloquer et d'éviter d'envoyer une extension avec votre application. Je pense que BlockSite.js est le fichier de clé. Le gestionnaire semble avoir été ajouté ici (ligne 171):

var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
observerService.addObserver(BlockSiteObserver, "http-on-modify-request", false);

La fonction BlockSiteObserver est définie dans le code ci-dessus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top