Firefox3でGmailのフィルタ設定のキーワード欄を複数行にする
2008/04/30 | ラベル: Firefox, Gmail, Tips |Firefox 3 にしたら、Gmail のフィルタ設定のキーワード欄を複数行にする Stylish のスタイル定義が効かなくなっていた。
このスタイル定義は
-moz-binding: url(http://persistent.info/files/gmail-filter.xml#filter);
のように外部サイトを参照するようになっており、Firefox 3 のセキュリティ強化によりエラーとなってしまう。考えてみれば、外部サイトに置かれたファイルに定義された書き換えルールを使っているっていうのはかなり危険である。ファイルを置き換えられても気付かないだろうし。。。
自分は新バージョンの Gmail に対応するため、XBL ファイルをローカルに置き、
-moz-binding: url(resource:///chrome/gmail-expand-filter.xml#filter);
としているが、これもエラーとなった。
新バージョンの Gmail でこのフィルタを使うにはこちらを参照。
続・Gmail のフィルタ設定のキーワード欄を複数行にする
解決方法は、XBL ファイルを Stylish のクロムフォルダに置くこと。
パスは <Firefoxプロファイルフォルダ>\extensions\{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}\chrome\content
せっかくなので、手順をまとめておく。目的は Firefox 3 & 新バージョンの Gmail で使えることだけど、たぶん Firefox 2 以前、旧バージョンの Gmail でも動くと思う。
1. XBL ファイルを Stylish のクロムフォルダに置く
<Firefoxプロファイルフォルダ>\extensions\{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}\chrome\content を開き、次の内容を gmail-expand-filter.xml として保存。
<?xml version="1.0"?>
<bindings xmlns="http://www.mozilla.org/xbl">
<binding id="filter" styleexplicitcontent="true">
<implementation>
<constructor>
var textarea = document.createElement("textarea");
textarea.name = this.name;
textarea.id = this.id;
textarea.value = this.value;
textarea.style.width = "100%";
textarea.style.fontFamily = "monospace";
textarea.style.fontSize = "14px";
textarea.rows = 15;
this.parentNode.replaceChild(textarea, this);
</constructor>
</implementation>
</binding>
</bindings>
2. スタイルを定義する
Stylish に新しいスタイルを作成し、次のコードを入力する。
@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document domain("mail.google.com") {
input[name="cf1_has"],
input.MtafId[tabindex="54"],
input.MtafId[tabindex="5"] {
display: none;
-moz-binding: url(chrome://stylish/content/gmail-expand-filter.xml#filter);
}
}