Diese Frage ist enorm alt, aber immer noch das beste Ergebnis bei Google, wenn Sie nach Möglichkeiten suchen, diese Popup-Nachricht zu deaktivieren, da ein Erweiterungsentwickler, der seine Erweiterung nicht zum Chrome Store hinzugefügt hat, keinen Zugriff auf Gruppenrichtlinien hat zu ihrem Betriebssystem und verwendet nicht den Chrome Dev Build. Unter diesen Umständen gibt es derzeit keine offizielle Lösung, daher werde ich hier eine etwas "hackige" veröffentlichen.
Mit dieser Methode erstellen wir sofort ein neues Fenster und schließen das alte. Das Popup-Fenster ist dem Originalfenster zugeordnet, sodass das Popup in normalen Anwendungsfällen nie angezeigt wird, da dieses Fenster geschlossen wird.
Die einfachste Lösung besteht darin, ein neues Fenster zu erstellen und alle Fenster zu schließen, die nicht das Fenster sind, das wir gerade im Rückruf erstellt haben:
chrome.windows.create({
type: 'normal',
focused: true,
state: 'maximized'
}, function(window) {
chrome.windows.getAll(function(windows) {
for (var i = 0; i < windows.length; i++) {
if (windows[i].id != window.id) {
chrome.windows.remove(windows[i].id);
}
}
});
});
Außerdem können wir erkennen, wie diese Erweiterung installiert ist, und diesen Code nur ausführen, wenn es sich um eine Entwicklungsinstallation handelt (obwohl es wahrscheinlich am besten ist, ihn vollständig aus dem Release-Code zu entfernen). Zuerst erstellen wir die Rückruffunktion für einen Aufruf von chrome.management.getSelf, mit der wir den Installationstyp der Erweiterung überprüfen können, der im Grunde nur den obigen Code in eine if-Anweisung einschließt:
function suppress_dev_warning(info) {
if (info.installType == "development") {
chrome.windows.create({
type: 'normal',
focused: true,
state: 'maximized'
}, function(window) {
chrome.windows.getAll(function(windows) {
for (var i = 0; i < windows.length; i++) {
if (windows[i].id != window.id) {
chrome.windows.remove(windows[i].id);
}
}
});
});
}
}
Als nächstes rufen wir chrome.management.getSelf mit dem Rückruf auf, den wir gemacht haben:
chrome.management.getSelf(suppress_dev_warning);
Diese Methode weist einige Einschränkungen auf, nämlich, dass wir von einer dauerhaften Hintergrundseite ausgehen, was bedeutet, dass der Code beim ersten Öffnen von Chrome nur einmal ausgeführt wird. Ein zweites Problem ist, dass beim erneuten Laden / Aktualisieren der Erweiterung von der Seite chrome: // extensions alle derzeit geöffneten Fenster geschlossen werden und meiner Erfahrung nach die Warnung manchmal trotzdem angezeigt wird. Dieser Sonderfall kann vermieden werden, indem überprüft wird, ob Registerkarten für "chrome: // extensions" geöffnet sind und nicht ausgeführt werden, wenn dies der Fall ist.