blog.8-p.info: MozRepl でテストつき Firefox プログラミング
ブラウザのグローバルな環境を汚染しまくりなので、なんとかしたい。
なんとかした。
content.location.href="about:blank";
repl.enter(content);
...
repl.back();
MozRepl の実行コンテキストをブラウザの表示部分である content に切り替えているので、グローバルな変数・関数があっても、ページ遷移でまっさらに戻せます。
content への repl.enter, repl.back まわりの挙動はこんな感じでした。
repl> content.location.href='about:blank';
about:blank
repl> repl.enter(content);
[object Window]
repl> Foo='bar';
bar
repl> typeof Foo;
string
repl> repl.back();
[object ChromeWindow]
repl> typeof Foo;
undefined
repl> repl.enter(content);
[object Window]
repl> typeof Foo;
string
repl> repl.back();
[object ChromeWindow]
repl> content.location.href='about:blank';
about:blank
repl> repl.enter(content);
[object Window]
repl> typeof Foo;
undefined
repl>
Mozilla をさわるのは、Software Design 2007年4月号の特集からはじめるのがとっつきやすいです。brazil さんもおすすすめ。
もうすこし C++ よりだと nominaまとめ の 『タブブラウザの創りかた』(同人誌の PDF) が (今日知ってざっと読んだだけですが) 良さげでした。
