Hola:
Puede hacerse desde el sistema de ventanas del navegador, pero debería tener un nombre (el segundo parámetro de la instrucción open()... por ejemplo, si se llamasa "popup", la instrucción sería:
window.frames.popup.close()...
y supongo que también funcionaría cuando la ventana perdiese el foco:
onfocus = function() {
if (self.blur() self.close();
}
Dinos si te sirve algo...
Saludos