J'écris une extension de chrome, il utilise chrome.windows.onFocusChanged.addListener
pour exécuter un script de contenu. Cela fonctionne bien tant que je permute entre les différentes fenêtres chromées, cependant, le Listener est également déclenché lorsque Chrome est fermé. Dans ce cas, le code à l'intérieur de la fonction entraîne un blocage de l'extension.chrome.windows.onFocusChanged.addListener déclenché lors de la fermeture de Chrome, écrasement plugin
J'ai essayé de chiner pour undefined, mais cela ne semble pas être le problème.
Le code lookls liks cette
chrome.windows.onFocusChanged.addListener(function()
{
var ctab = chrome.tabs.getCurrent;
if(typeof ctab === "undefined")
{
}
else
{
chrome.tabs.executeScript(ctab.id,{file:"inject.js"}); //THIS LINE CRASHES THE APP WHEN I CLOSE THE BROWSER
}
});
J'ai un problème similaire avec un allert prévu, qui exécute également le script (ce qui conduit à un accident lorsque je ferme le navigateur entre la planification et l'exécution).
function onAlarm(alarm)
{
if (alarm && alarm.name == 'check')
{
var ctab = chrome.tabs.getCurrent;
chrome.tabs.executeScript(ctab.id,{file:"inject.js"}); //CRASH
//more code...
Est-ce que quelqu'un sait comment éviter ce crash?
Modifier: Exemple de travail
manifest.json
{
"name": "Rest Extension",
"description": "Set an Artnet Controler to the background collor",
"manifest_version": 2,
"version": "1",
"permissions": ["tabs", "http://*/*", "https://*/*", "background", "alarms"],
"background": {"scripts": ["background.js"]},
"content_scripts": [{"matches": ["http://*/*", "https://*/*"],"js": ["inject.js"]}],
"browser_action":
{
"default_icon": "16x16.png",
"default_popup": "popup.html"
}
}
background.js
chrome.windows.onFocusChanged.addListener(function()
{
var ctab = chrome.tabs.getCurrent;
if(typeof ctab === "undefined")
{
}
else
{
chrome.tabs.executeScript(ctab.id,{file:"inject.js"}); //THIS LINE CRASHES THE APP WHEN I CLOSE THE BROWSER
}
})
tous les autres fichiers peuvent être vides (y compris les inject.js)
Que voulez-vous dire par accident? Pourriez-vous créer un exemple autonome et rapporter le bogue sur http://crbug.com/new –
Ce n'est probablement pas un bug de chrome (je pense) mais un problème avec ma programmation. Avec crash, je veux dire qu'après avoir fermé le navigateur en bas à droite de l'écran, une notification s'affiche, que l'extension s'est écrasée et que je peux cliquer sur cette notification pour redémarrer l'extension. –