宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能!
AiO GesturesとSplit Browserの連携を試みてみよう、と思って挫折した。基本的にSplit Browserは、Firefoxの初期状態の構造であることを前提にして開発されている拡張機能とは、とても相性が悪い。ハック用のコードを書いてみようと思っても、変更箇所が膨大になりすぎて、とてもやる気が起こらない。FireBugとの連携が結局中途半端な状態で止まってしまってるのもそのせいだ。
Split Browserが連携しやすいのは、Firefox全体に渡ってではなく、tabbrowserというウィジェットに対してだけ拡張を行うように設計されている物だ。マルチプルタブハンドラや情報化タブやなんかは最初からそういう風に設計したので、わりかし簡単に連携がとれるようになった。
たとえば僕の場合は、マルチプルタブハンドラの実装が代表的な例なんだけど、tabbrowserウィジェットに対する拡張はできる限りinitTabBrowser()
とdestroyTabBrowser()
というメソッドにまとめておいて、極端な話、tabbrowser要素の動的な増減にも対応できるようにしてある。こういう風な構造になっている拡張機能なら、Split Browser側で簡単に対応できる。実際、マルチプルタブハンドラとの連携のためにSplit Browserに加えたコードは以下の内容だけで済んだ。
if ('MultipleTabService' in window &&
SplitBrowser.tabbedBrowsingEnabled) {
var appcontent = document.getElementById('appcontent');
MultipleTabService.__defineGetter__('browser', function() {
return SplitBrowser.activeBrowser;
});
var initMTS = function(aEvent) {
MultipleTabService.initTabBrowser(aEvent.originalTarget.browser);
};
var destroyMTS = function(aEvent) {
MultipleTabService.destroyTabBrowser(aEvent.originalTarget.browser);
};
appcontent.addEventListener('SubBrowserAdded', initMTS, false);
appcontent.addEventListener('SubBrowserRemoveRequest', destroyMTS, false);
window.addEventListener('unload', function() {
appcontent.removeEventListener('SubBrowserAdded', initMTS, false);
appcontent.removeEventListener('SubBrowserRemoveRequest', destroyMTS, false);
window.removeEventListener('unload', arguments.callee, false);
}, false);
}
まあちゃんとプログラミングの勉強をした人から見たら、これでもまだまだ無駄が多いんだろうとは思うけど……
自分自身がそうなんだけど、他の拡張機能と同時に使われるかもしれない、ってことを敢えて意識していないと、ついついFirefoxべったりの書き方で作ってしまう。その結果、スケーラビリティとかそういうものが低くなってしまって、後で色々と泣きを見ることになる。これは自分にとって一種の保身術でもあると言えるのかもしれない。
の末尾に2020年11月30日時点の日本の首相のファミリーネーム(ローマ字で回答)を繋げて下さい。例えば「noda」なら、「2007-04-25_compatibility.trackbacknoda」です。これは機械的なトラックバックスパムを防止するための措置です。
writeback message: Ready to post a comment.