ブラクラできたよー\(^o^)/

GearsMonkeyでWorkerPoolを使おうとして四苦八苦しているうちに、ブラクラができたのでご紹介します。

// ==UserScript==
// @name           crasher
// @namespace      http://d.hatena.ne.jp/matsuza
// @description    DO NOT INSTALL! This script crashes Firefox.
// @include        http://ja.wikipedia.org/*
// ==/UserScript==	

(function(){
	var pool = null;
	function initGears() {
		if (!unsafeWindow.google) unsafeWindow.google= {};
		if (!unsafeWindow.google.gears){
			unsafeWindow.google.gears= {factory: new GearsFactory()};
		} try {
			pool = unsafeWindow.google.gears.factory.create('beta.workerpool');
		} catch(e) {
		}
	}
	function triggerCrawler(){
		window.addEventListener("load",
			function(){
				new GearsFactory().create('beta.workerpool');
				location.href = location.href;
				return false;
			}, 
		true);
	}
	initGears()
	if(!pool){
		triggerCrawler()
	}
	var childWorkerId = pool.createWorker("")
	pool.sendMessage("hello", childWorkerId)
})()

GoogleGearsを導入している環境にこのGreaseMonkeyスクリプトをインストールして、ja.wikipedia.orgのどこかのページにアクセスすると、Firefoxが落ちます\(^o^)/

なにが……なにが悪いんだ……。最後の2行以外はおまじないを書いているだけのつもりなのに。ちゃんとドキュメント読んで明日再挑戦だ。