To pytanie jest bardzo stare, ale nadal jest pierwszym wynikiem w Google, gdy szukasz sposobów na wyłączenie tego wyskakującego komunikatu jako programista rozszerzenia, który nie dodał swojego rozszerzenia do sklepu Chrome, nie ma dostępu do zasad grupy z powodu do swojego systemu operacyjnego i nie używa wersji chrome dev. Obecnie nie ma oficjalnego rozwiązania w tej sytuacji, więc opublikuję tutaj nieco „hakerskie” rozwiązanie.
Ta metoda powoduje, że natychmiast tworzymy nowe okno i zamykamy stare. Wyskakujące okienko jest powiązane z oryginalnym oknem, więc w normalnych przypadkach wyskakujące okienko nigdy się nie pojawia, ponieważ zostało zamknięte.
Najprostszym rozwiązaniem jest tutaj utworzenie nowego okna i zamknięcie wszystkich okien, które nie są oknem, które właśnie utworzyliśmy w wywołaniu zwrotnym:
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);
}
}
});
});
Dodatkowo możemy wykryć, w jaki sposób to rozszerzenie jest zainstalowane i uruchomić ten kod tylko wtedy, gdy jest to instalacja deweloperska (chociaż prawdopodobnie najlepiej całkowicie usunąć całkowicie z kodu wydania). Najpierw tworzymy funkcję zwrotną dla wywołania chrome.management.getSelf, która pozwala nam sprawdzić typ instalacji rozszerzenia, co w zasadzie polega na zawinięciu powyższego kodu w instrukcję if:
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);
}
}
});
});
}
}
Następnie wywołujemy chrome.management.getSelf z wywołanym przez nas wywołaniem zwrotnym:
chrome.management.getSelf(suppress_dev_warning);
Ta metoda ma pewne zastrzeżenia, a mianowicie zakładamy trwałą stronę w tle, co oznacza, że kod jest uruchamiany tylko raz, gdy Chrome jest otwierany po raz pierwszy. Drugą kwestią jest to, że jeśli przeładujemy / odświeżymy rozszerzenie ze strony chrome: // extensions, zamknie ono wszystkie aktualnie otwarte okna iz mojego doświadczenia wynika, że czasami i tak wyświetla ostrzeżenie. Tego szczególnego przypadku można uniknąć, sprawdzając, czy jakiekolwiek karty są otwarte dla „chrome: // extensions” i nie uruchamiając, jeśli są.