改进Chrome的gmail-checker扩展
今天看到cnbeta上有消息说chrome开始支持扩展了,而且有两个sample extension放出(http://www.cnbeta.com/articles/84167.htm)。赶紧去更新到最新版版本的chromium,并安装了gmail-checker。
装好之后,发现这个扩展用起来很不爽。比如说,在服务器超时一次之后它就不再去检查了,左下角就一直显示login状态;并且有未读邮件时也没有诸如变色这样的特别提示。不小心右键点了下左下角的gmail-checker图标,发现出来个审查元素的对话框。忽然明白过来,原来扩展进程和UI进程交互是这样的:扩展进程创建一个HTML页面,然后交给UI进程渲染。这就好办了,只要改改js代码,就可以实现我们想要的功能。
在安装目录下(默认的应该是C:\Documents and Settings\xx\Local Settings\Application Data\Chromium\User Data\Default\Extensions\)找到
gmail-checher.html,用文本编辑器打开它。
修正服务器超时后就不再检查问题:
把所有的window.setTimeout(requestUnreadFeed, poll_timeout);语句删掉;
然后在body.onload事件中执行:
requestUnreadFeed();
window.setInterval(requestUnreadFeed, poll_timeout);
修改 updateUnreadCount()函数为:
function updateUnreadCount(count) {
if (unreadCount != count) {
unreadCount = count;
}
startFlip();
}
增加有未读邮件时的变色提醒:
在midFlip()函数中增加下面几行代码:
if ( unreadCount==0 ) {
document.getElementById("loggedIn").style.color = "black";
document.getElementById("loggedIn").style.color = "black";
document.getElementById("loggedIn").style.fontWeight = "";
}
else {
document.getElementById("loggedIn").style.color = "green";
document.getElementById("loggedIn").style.fontWeight = "bold";
}
这样改过之后,感觉就好多了。不过推荐再修改几个地方:将requestUnreadFeed()的giveup时间改改大,比如20秒;将gmail_atom_href变量中的http改成https。祝大家用的惬意吧。
自从Chrome 3.0.189放出以来,没有签名的扩展已无法使用。我今天又折腾了下,将签名补了下,再贴出来让想用的朋友下载吧。
主要改进:
有未读邮件时变色提醒;
服务器超时后仍会继续每隔一段时间进行检查;
默认使用https连接。