Hatena::ブログ(Diary)

Griever Twitter

2016/04/02

uAutoPagerize を拡張にした

https://addons.mozilla.org/ja/firefox/addon/uautopagerize/


2月頃からちょっとだけやる気になったの作った。これで e10s が来ても大丈夫!なはず。

実は去年の4月に試作版はできていたんですが、e10s来ないし放置してました…


使い勝手は ucjs 版とあまり変わらないと思います。設定ファイルもそのまま読み込めます。

変更点は

  • アイコンから実行しないサイトを簡単に追加できる
  • 読み込み先の相対パスを修正
  • documentFilters など非対応

実行しないサイトは本家を参考にしつつ、設定ファイルを用意しなくてもいいようにしました。設定ファイルの EXCLUDE はここに追加されます。

あ、設定ファイルってのは chrome フォルダに _uAutoPagerize.js をおくと自動的に読み込まれるものです。

サンプルはこちら

https://raw.githubusercontent.com/Griever/userChromeJS/master/uAutoPagerize/_uAutoPagerize.js

ん〜 ucjs 版で設定ファイルの使い方って説明したことあったっけ?まぁいいか。


相対パス問題はくらげバンチさんで正しく表示されなかったので重い腰を上げて対応しました…。


documentFilters は ucjs 版では設定ファイルからこっそり使えたんですが Add-on SDK からそのまま使えず、良い対応策が思いつかなかったので非対応です。。

AutoPagerize_DOMNodeInserted イベントを利用してください。


IME-Colors も拡張にした

https://addons.mozilla.org/ja/firefox/addon/ime-colors/


e10s 対策とStylesheet Serviceを使いたかったので拡張という形にしました。

Frame Script の仕様もよくわからず手探りで作りましたが、動いてるので良しとします。

XUL 要素の強調の仕方がちょっと違いますが、仕様です。

2014/09/04

生きてます。やる気が無いだけです。

Firefox 32 で UserScriptLoader の GM_xmlhttpRequest が動かなくなったので修正しました。

アップローダーにあげてくれた方ありがとうございます。この方が居なければ放置されたことでしょう


あと addMenu が menugroup に"とりあえず"対応しました。

var group = GroupMenu();
group([
	{ label: 'test1'},
	{ label: 'test2'},
	{ label: 'test3'},
	{ label: 'test4'}
]);

こんな感じで新しいコンテキストメニューの戻るボタンのような横並びメニューが作れますが、ホントに横に並ぶだけなのでちゃんと使うには自分で CSS を書く必要があります。

このままじゃ使いにくいよね。どうしようか……


uAutoPagerize は色々弄りたい部分はあるんですが、気力がね……。

2013/02/23

はてな記法とか忘れるよね

数ヶ月に一回しか更新しませんからね。

今日は WordHighlightToolbar を更新したのでそれの説明。


今回から .user.jsBookmarklet からハイライトできるようにしてみました。

var words = ["AutoPagerize", "UserScriptLoader"];
var evt = new CustomEvent("WordHighlightToolbarAddWord", { bubbles:true, cancelable: true, detail:words });
document.dispatchEvent(evt);

こんな感じで使えます。スクラッチパッド(Shift+F4)から試せますよ。

// 色指定なんかできちゃったりします
var words = [
  {
    word: "firefox",
    bgcolor: "#ff8800"
  },
  {
    word: "opera",
    bgcolor: "red",
    fgcolor: "white"
  }
];
var evt = new CustomEvent("WordHighlightToolbarAddWord", { bubbles:true, cancelable: true, detail:words });
document.dispatchEvent(evt);

.user.js は setTimeout 等で実行タイミングを遅らせたほうがいいかも。


今回の変更について

"戻る"動作にツールバーが連動しないのを直したかったんです。

あと CustomEvent を使ってみたいな〜って感じ。

連動させるにあたって色々試行錯誤しながらツールバーの構造や管理方法をガラッと変えたら変更点が多すぎて github の差分が酷いことに…。


背面のタブを複数開くと引き継ぎがうまく行かないようなので、それは近いうちに修正します。。

愚痴

コンテンツに合わせてツールバーを書き換えるなんてもう二度とやりたくない。

こういうのはコンテンツ内だけで完結すべきだと思う。