0.9.5から*1内部仕様変更の為に2011年6月9日現在のldrize_cooperation.jsが動かなくなったので、復活させるパッチを書いた。WATCHを参考にLDRize自体を動くようにしておく。あとは2011年6月9日現在のldrize_cooperation.jsへ以下のパッチを当てるだけ。//Pinパッチ当て済みのldrize_cooperation.jsはこちら動かなくなった原因ldrize_cooperation.jsは、今までLDRizeとMinibufferのインスタンスを取得するために、GM_GreasemonkeyService#evalInSandbox()と言う関数をフックしていた。例のグリモンのコミット0cb7d4acf437a4a88e3dによって、このGM_GreasemonkeyService#evalInSandbox()に相当する関数が、グリモンのコンポーネントグローバルな関数runScriptInSandbox()に置き換えられ、フックできなくなったためLDRize、Minibufferのインスタンスを取得できなくなった。*3つまり、パッチを見て感じ取れる通り、isEnableLDRize()関数がfalseを返しちゃうのが割と直接の原因。解決方法LDRizeはページ内に"gm_ldrize"と言うIDを持ったDIV要素を挿入するので、それがあればisEnableLDRize()がtrueを返すようにした。所でそもそもLDRizeインスタンス取得できてないのにLDRizeできているのは不思議に思うかもしれない。実はldrize_cooperation.jsはLDRizeの普通の操作にそのインスタンスを利用するのではなく、単純にページドキュメントへキーイベントを発行することでLDRizeしていたからでした。*1:正確には0cb7d4acf437a4a88e3dから*2:intelligence_bindは前から死んでた?*3:コンポーネント周りの知識が足りてないので変な事言ってるかもしれません。0.9.5でもldrize_cooperationがちょっと動くようにするVimperatorでステータスバーのパネル(アイコン)をクリックするコマンドのプラグインLimechatのチャンネルログに現れるURLをキーボードだけで開くスクリプト月別アーカイブはてなブログをはじめよう!wltさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。