Firefoxアドオンでアイドル検知


Firefoxアドオンでマウスイベントを取得して、5秒アイドル時間があればブラウザを閉じる。

index.js
var system = require("sdk/system");
var { setTimeout, clearTimeout } = require('sdk/timers');

var tabs = require("sdk/tabs");
var pageMod = require("sdk/page-mod");
var data = require("sdk/self").data;
var to;

to = sto();
function sto(){
    return setTimeout(function(){
        system.exit();
    }, 5000);
}

tabs.on('ready',function(tab){
    detect_event(tab);
});

tabs.on('activate', function(tab) {
    detect_event(tab);
});

function detect_event(tab){
    worker = tab.attach({
        contentScriptFile: data.url("content-script.js")
    });
    worker.port.on("event",function(msg){
        console.log(msg);
        clearTimeout(to);
        to = sto();
    });
}
content-script.js
//クリックイベントを取得し、アドオン側に通知
window.onclick = function() { 
    self.port.emit("event","click");
}
//ホイールイベントを取得し、アドオン側に通知
document.addEventListener("wheel",function(e){
    self.port.emit("event","wheel");
})