AutopagerizeとAutoPatchWorkを共存させたい
ここ最近、復帰したwedataでSITEINFOを登録していたのですが、どうもChromeでAutopagerizeだと機能してAutoPatchWorkだと機能しないとか、Autopagerizeだと機能しないけどAutoPatchWorkだと機能するようなSITEINFOが存在するのではないかという疑いを持っています。これまではこれらのサイトは個人的にあまり行かないサイトだったのでそれほど気にしていなかったのですが、ここのところ無視できずに目に付くページがあります。それがはてなブログです。Autopagerizeだと機能しないのですが、AutoPatchWorkだと機能するような気がしています。*1
Autopagerizeユーザとしてこの仮説を検証するため、はてなブログに関してはAutopagerizeを止めてAutoPatchWorkを機能させようとしたのですが、気づくまでこれがなかなか面倒でした。備忘録を兼ねてここにやり方を書いておきます。
- まずAutopagerizeの対象サイトでの機能を止めます
できればSITEINFOのURLをそのままコピペしたいところですが、Autopagerizeのoptions.htmlの除外パターンの例を見るとスラッシュもエスケープする必要があるようです。除外パターンのテキストエリアに、こう書きました。
/^http:\/\/[^.]+\.hate(?:na(?:(?:blog|diary)\.(?:com|jp))|blo\.jp)\/(?:entry|touch)\//
- 次に、AutoPatchWorkの対象サイト以外での機能を止めます
AutopagerizeとAutoPatchWorkがどちらも有効に働く場合、同じページが2回読み込まれる可能性が考えられます。それを防ぐために、AutoPacthWorkが動作するサイトを限定する必要があります。
-
- A案
AutoPatchWorkのローカルのフォルダから、manifest.jsonを編集します。"content_scripts":という欄の中に、"matches":という項目がありますので、ここを書き換えました。
"matches": [ "http://*.hatenablog/*", "http://*.hateblo.jp/*" ],
エクステンションの自動更新の際にmanifest.jsonが上書きされるかもしれませんので、バックアップを取っておくとよいでしょう。
-
- B案
上のA案が機能しないようであれば、AutoPatchWorkのoptions.htmlを編集する方法*2を使わざるを得ません。こちらを参考に正規表現を考えました。
^(?!.*(hatenablog\.com|hateblo\.jp)).+$
正規表現の都合上他に条件がある場合は、すべて削除しておいたほうが無難です。Chromeの再起動後も機能させるにはFiltersタブから「追加」をクリック後、隣のStylesタブの「保存」をクリックする必要がありそうです。A案、B案共にはてなブログのURLを把握しきれていないので、とりあえずhatenablog.comとhateblo.jpの2つにしておきました。
- できたでござる
Chromeを再起動して、動作を確認してください。うまくいかなくても責任は取りませんが、もし私と同様の仮説を持論としてお持ちの方がいらっしゃれば是非試していただければと思います。