nsIIdleService
De MDC
Este artigo cobre características introduzidas no Firefox 3
O serviço de inatividade deixa-o monitorar por quanto tempo o usuário esteve 'ausente', i.e. não usado o seu mouse ou teclado. Você pode pegar o tempo de inatividade diretamente, mas na maioria dos casos você vai querer registrar um observador para um intervalo predefinido.
Atualmente as implementações no nsIIdleService existem para Windows, Mac OS X e Linux (via XScreenSaver).
Exemplo 1:
var idleService = Components.classes["@mozilla.org/widget/idleservice;1"]
.getService(Components.interfaces.nsIIdleService)
setTimeout(function() { alert(idleService.idleTime) }, 1000)
// se você não usar o mouse ou o teclado depois de rodar este fragmento,
// você verá um número próximo de 1000 na caixa de alerta.
Exemplo 2:
var idleService = Components.classes["@mozilla.org/widget/idleservice;1"]
.getService(Components.interfaces.nsIIdleService)
var idleObserver = {
observe: function(subject, topic, data) {
alert("topic: " + topic + "\ndata: " + data);
}
};
idleService.addIdleObserver(idleObserver, 60); // one minute
// ...
// Não se esqueça de remover o observador usando removeIdleObserver!
idleService.removeIdleObserver(idleObserver, 60);
[editar] Métodos
void addIdleObserver(in nsIObserver observer, in unsigned long time); void removeIdleObserver(in nsIObserver observer, in unsigned long time);
[editar] Atributos
readonly attribute unsigned long idleTime;