Esta pregunta es enormemente antigua, pero sigue siendo el principal resultado en Google cuando busca formas de intentar deshabilitar este mensaje emergente ya que un desarrollador de extensiones que no ha agregado su extensión a la tienda de Chrome, no tiene acceso a las políticas de grupo debido a su sistema operativo, y no está utilizando la construcción de desarrollo de Chrome. Actualmente no hay una solución oficial en esta circunstancia, por lo que publicaré una 'algo hacky' aquí.
Este método nos hace crear inmediatamente una nueva ventana y cerrar la anterior. La ventana emergente está asociada con la ventana original, por lo que en casos de uso normal, la ventana emergente nunca aparece ya que esa ventana se cierra.
La solución más simple aquí es que creamos una nueva ventana y cerramos todas las ventanas que no son la ventana que acabamos de crear en la devolución de llamada:
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);
}
}
});
});
Además, podemos detectar cómo se instala esta extensión y solo ejecutamos este código si se trata de una instalación de desarrollo (aunque probablemente sea mejor eliminarlo por completo del código de lanzamiento). Primero creamos la función de devolución de llamada para una llamada chrome.management.getSelf que nos permite verificar el tipo de instalación de la extensión, que básicamente consiste en envolver el código anterior en una declaración 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);
}
}
});
});
}
}
A continuación, llamamos a chrome.management.getSelf con la devolución de llamada que realizamos:
chrome.management.getSelf(suppress_dev_warning);
Este método tiene algunas advertencias, a saber, estamos asumiendo una página de fondo persistente, lo que significa que el código se ejecuta solo una vez cuando se abre Chrome por primera vez. Un segundo problema es que si volvemos a cargar / actualizar la extensión desde la página de extensiones chrome: //, se cerrarán todas las ventanas que están actualmente abiertas y, en mi experiencia, a veces se muestra la advertencia de todos modos. Este caso especial se puede evitar comprobando si alguna pestaña está abierta a "chrome: // extensiones" y no se ejecuta si lo están.