Je tente de remplacer la fonctionnalité par défaut pour webkitNotifications.createNotification et via une extension Chrome, je suis capable d'injecter un script dans les pages DOM qui le fait. Le problème que je rencontre maintenant est que j'ai besoin d'accéder aux pages à partir des pages DOM afin de pousser ma demande vers le NPAPI que j'ai intégré dans la page d'arrière-plan. J'avais précédemment l'objet incorporé rendu sur chaque page pendant l'exécution du script de contenu - mais je crois qu'il est plus efficace (et sûr) si le NPAPI est incorporé dans l'extension non injectée sur chaque page.Accès NPAPI à partir des pages DOM
if (window.webkitNotifications)
{
(function()
{
window.webkitNotifications.originalCreateNotification = window.webkitNotifications.createNotification;
window.webkitNotifications.createNotification = function (iconUrl, title, body) {
var n = window.webkitNotifications.originalCreateNotification(iconUrl, title, body);
n.original_show = n.show;
n.show = function()
{
console.log("Chrome object", chrome);
console.log("Chrome.extension object", chrome.extension);
chrome.extension.sendRequest({'title' : title, 'body' : body, 'icon' : iconUrl});
}
return n;
}
})();
}
C'est ce qui est injecté dans le DOM en tant qu'élément de script. La page de fond est la suivante:
<embed type="application/x-npapiplugz" id="plugz">
<script>
var osd = document.getElementById('plugz');
function processReq(req, sender, callback)
{
osd.notify(req.title, req.body, req.image);
console.log("NOTIFY!", req.title, req.body, req.image);
};
chrome.extension.onRequest.addListener(processReq);
</script>
j'ai pu obtenir de l'aide de ce gars vraiment génial sur elle. Cependant, c'est essentiellement comment cela a été accompli. Merci pour votre temps! [Chromify-osd] (http://launchpad.net/chromify-osd) –
Je viens de regarder votre code, il semble que vous intégrez le plugin dans chaque page. Ne serait-il pas plus agréable si votre page d'arrière-plan était le seul plugin intégré et que les autres pages n'envoyaient que des requêtes? Une autre chose que j'ai vu, vous n'utilisez pas le support NPAPI dans les extensions. Si vous avez inclus le plugin dans l'extension, via le manifeste, le plugin sera automatiquement enregistré dans le navigateur. La dernière chose, vous avez inclus des "notifications" comme une autorisation dans votre manifeste, vous n'avez pas besoin de cela, votre remplaçant les notifications de pages (scripts de contenu). Cela semble bon :) –