2016-03-31 8 views
0

Ich habe eine ziemlich komplizierte Chrome-Erweiterung, die seit langer Zeit perfekt funktioniert, aber wenn Ubuntu Chromium Browser automatisch von 48.0.xxx auf Version 49.0.2623.87 aktualisiert Ubuntu 14.04 (64-Bit), dann scheint mein Erweiterungsskript nach dem Neustart nicht zu funktionieren.Chrome Erweiterung onMessage Listener nicht feuern

In background.js:

chrome.tabs.sendMessage(id, {text: "abc"}); 

In contentscript.js:

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) { 
     console.log("Processing message...."); 
     // ... rest of code 
    }); 

Das hat funktioniert, aber jetzt funktioniert nicht. Ich sehe nicht einmal die "Verarbeitungsnachricht ...." in der Konsole gedruckt.

Auch ich einig zusätzliches seltsames Verhalten bekam, aber das ist vielleicht nicht mit dem Problem in Zusammenhang steht:

Zunächst scheiterte mein Content-Skript geladen werden, um ein Symbol beschwerte in manifest.json. Ich habe die Symbolgröße ("16") angegeben und das Skript kann geladen werden. Aber das ist seltsam, weil das Manifest ohne jede Störung funktionierte.

Antwort

0

Ich fand den Grund des Scheiterns. Die neuen Chrome erfordern "Tabs" in der Genehmigung in manifest.json, zum Beispiel zu setzen:

"permissions": [ 
    "tabs", 
    "http://localhost/", 
    "clipboardRead", 
    "clipboardWrite", 
    "contextMenus" 
], 

Dies ermöglicht

chrome.tabs.query({url: "http://example.com/"} ,...); 

zu arbeiten. In meinem Skript verursachte das Fehlen der Erlaubnis, dass dies Müll zurückgab, und die Nachricht wurde nicht korrekt gesendet.

Das Verhalten von Chrome hat sich während des Updates geändert. Zuvor wurde die Berechtigungsanforderung "Tabs" nicht strikt durchgesetzt.

Verwandte Themen