改进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.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连接。
posted @ 2009-05-14 18:14  Marco Zeng  阅读(2142)  评论(0编辑  收藏  举报