chromeの拡張機能

chrome拡張機能がリリースされて久しいが、自分でも作成できるってことなので、ちょっと作り方を調べてみた。単に拡張するだけだと、非常に簡単だった。(ほとんど何もできないけど^^;)
最低限はmanifest.jsonってファイルと1つhtmlを用意するだけ。最初WinXPで作っていて、マイドキュメントの下においていたので、うまく動かず、ちょっと悩んだが--;

せっかくなので、ちょっとだけ、まじめに作ってみた。パッケージにして公開してもいいんだけど、あまりにしょぼいので、やめた。なので、ここにソースだけメモっておく。
用意するのは、manifest.json, background.html, privacy_filter.jsとアイコンファイル icon128.png, icon48.png, page.png
アドレスバー右のアイコン(page.png)をクリックするとケータイのプライバシーフィルターっぽく、少し透過した全面の四角がのっかかるだけ。再度クリックするか、画面をクリックすれば戻る。(と思う)

manifest.json

{
   "background_page": "background.html",
   "description": "if click, page is filtered ...",
   "icons": {
      "128": "icon128.png",
      "48": "icon48.png"
   },
   "name":"privacy_filter",
   "page_action": {
      "default_icon": "page.png"
   },
   "permissions": [ "tabs", "http://*/*", "https://*/*" ],
   "version": "0.0.0.1"
}


prifilter.js

function $(id) { return document.getElementById(id); }

var blackon = $('privacyfilternewdiv');
if (blackon)
{
	document.body.removeChild(blackon);
}
else
{
	var newdiv = document.createElement('div'); 
	newdiv.setAttribute('id','privacyfilternewdiv');
	newdiv.style.width = "100%"; 
	newdiv.style.height = "100%"; 
	newdiv.style.left = "0"; 
	newdiv.style.top = "0"; 
	newdiv.style.position = "fixed";
	newdiv.style.background = '#ffffff';
	newdiv.style.opacity = 0.5;
	newdiv.style.zIndex = "10000";
	newdiv.onclick = function() {document.body.removeChild(newdiv)};

	document.body.appendChild(newdiv);
}

background.html

<html>
<head>
<script>

chrome.pageAction.onClicked.addListener(
	function(tab) {
		chrome.tabs.executeScript(tab.id,{file:"prifilter.js"});});

function init() {
	chrome.tabs.onUpdated.addListener(
		function(tabId, changeInfo, tab) {
			if (tab.url.match(/^http/i)) {
				chrome.pageAction.show(tabId);
			}
		}
	);
}

</script>
</head>
<body onload='init()'>
</body>
</html>

これだけである。

作成するにあたっては、
Chrome Extensions API リファレンス
http://dev.screw-axis.com/doc/chrome_extensions/
を参考にさせていただいた。多謝。