Archive for the ‘アドオン’ Category
Google Web Historyに見たページを自動記録するアドオン(Jetpack SDK)
GoogleにはGoogle – ウェブ履歴というものがあり、検索してどのページを訪ねたかなどが記録されています。
またその記録は検索ページで既読リンクの色にするなどの判定にも使われています。
Google検索から訪ねたサイト以外のURLもウェブ履歴に登録するFirefox拡張機能を作成してみました。
既に
などGreasemonkeyやTomblooパッチなど代わりになる手段は山ほどある気がしますが、Jetpack SDKを使いたかったのと、意外にもFirefoxアドオンとして同じ役割するものが見つからなかったので作ってみました。
他のスクリプトとの違いは大して無いと思いますが、できるだけ無駄な送信を控えるようにしています。
- 最近訪れたサイトは重複送信しない(100件ぐらいでクリアされます)
- https://はホストのみを送信
- ローカルやIPアドレスベースのURLの場合は送らない
ダウンロードはAMOからできるようにしてあります。
Firefoxアドオンのxpiを簡単における場所が無かったので、AMOに登録しておいてあります。
Jetpack SDKでコンパイル?前のソースコードはこちらに
Jetpack SDKで何か作るには
Jetpack SDKで既に3つほどアドオンを作成していますが、0.5だとJetpack prototypeとできることはそこまで変わってないです。(prototypeのギャラリー無くなったみたいですね。8個ぐらい作った気がする)
Jetpack SDKで作る上で参考にしたのは
- SCRAPBLOG : Jetpack 基礎的なAPIの使い方
- Jetpack SDK – あすかぜ・ねっと とても参考になる
- Jetpack SDK Docs
最後のJetpack SDK Docsはcfx docsで開いて、jetpack-coreあたりに現在使えるAPIが載っているのでそれを見て使い方を調べるとAPIの使い方は分かる感じ。(Jetpack prototypeの頃よりはドキュメントにサンプルもあってマシになりました)
一番ハマるところはcfxとかコマンドでエラーがでるとかその辺だった気がする。
環境はWindows Vistaです。
cfx testallすら通らない場合は-aとか-bオプションを指定してみるといい。 Jetpack SDK 0.4でcfx testallを成功させる方法 (windows) – Cherenkovの暗中模索にっき
毎回オプションを付けるのが面倒になったらlocal.jsonを作りデフォルト値を決めてみましょう。
自分はjetpack用のプロファイルを作りそれを指定してます
{
"configs": {
"default": [
"-a", "firefox",
"-b", "C:\\Program Files\\Mozilla Firefox\\firefox.exe",
"-P", "%appdata%\\Mozilla\\Firefox\\Profiles\\h545wqkn.jetpack"
],
"ff37": [
"-a", "firefox",
"-b", "C:\\Program Files\\Mozilla Firefox 3.7\\firefox.exe",
"-P", "C:\\Users\\admin\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\testuser"
]
}
}
package.jsonを作り、libフォルダを作りmain.jsを書いて → さあcfx runで起動しようとしたら、まずはpackage.json内にidが自動生成されます。そしてもう一度cfx runすると下のようなエラーが出てくることがあります。
Traceback (most recent call last):
File "D:\jetpack\bin\cfx", line 6, in
cuddlefish.run()
File "D:\jetpack\python-lib\cuddlefish\__init__.py", line 475, in run
include_dep_tests=options.dep_tests
File "D:\jetpack\python-lib\cuddlefish\packaging.py", line 267, in generate_bu
ild_for_target
add_dep_to_build(dep)
File "D:\jetpack\python-lib\cuddlefish\packaging.py", line 254, in add_dep_to_
build
add_section_to_build(dep_cfg, "lib", is_code=True)
File "D:\jetpack\python-lib\cuddlefish\packaging.py", line 232, in add_section
_to_build
validate_resource_hostname(name)
File "D:\jetpack\python-lib\cuddlefish\packaging.py", line 65, in validate_res
ource_hostname
raise ValueError('invalid resource hostname: %s' % name)
ValueError: invalid resource hostname: jid0-英数字-フォルダ名-lib
これはpackage.jsonのnameに大文字やマルチバイト文字やスペースなどが含まれていると出てきます。(んなの分かるか)
なので小文字英数とハイホンあたりでnameを決めておきましょう。
console.logはコマンドプロンプトの方にでてくるので、それを使って(他に何かあるのかなー)デバッグしながらmain.jsなどを完成させて、xpiをcfx xpiコマンドではき出せば完成です。
まだ設定画面やパネルなどのGUIが簡単に使えなかったりしますが、用途が合えば簡単にアドオンを作成できるのでなかなか面白いです。
- Google WebHistory Updater :: Add-ons for Firefox
- https://addons.mozilla.org/ja/firefox/addon/213956/
UstreamのFlash動画内広告を消す方法
USTREAMでは動画内に広告があって一定のタイミングで表示されたりしてとても邪魔になったりします。
その広告をAdblockでブロックして出現しないようにする方法。
方法は単純で動画内広告も外部から読み込んだFlashで動作しているのでそのswfを読み込まないようにするだけです。
広告は以下のアドレスのブロックすると読み込まれなくなります。(正規表現でマッチするAdblockだとmedia\.scanscout\.comみたいにエスケープする。)
media.scanscout.com
ブロックされているswfはhttp://media.scanscout.com/ads/ss_ads3.swf Youtubeとか他のサイトでも使われてるとか聞きました。
自分はAdblock++を使って正規表現を使わずに単純に広告をブロックしているので、/adsをというキーワードで広告がブロックされていたようです。
一応自分のadblock++.ini (プロファイルの所にadblock++.iniがあるのでそこに上書き)
広告を全てなくしたい訳ではなくて、iframeを使って重かったり、大きな画像を使って見づらくしたり、幾度も注視点を奪うだけの広告が嫌いなだけです。
GreasemonkeyにGrowlのような通知を呼ぶ機能を加える「Dbus Notify」
紹介するDbus Notify for GreaseMonkeyはGreasemonkeyスクリプトにGrowlのような通知を行うAPIを加えるアドオンです。
Greasemonkeyにcallout.notifyというAPIを追加するだけのシンプルなアドオンです。
使い方は単純でDbus Notify for GreaseMonkeyをインストールして、Greasemonkeyスクリプト内にcallout.notifyのAPIを使った記述を加えるだけで動きます。(当たり前だが、インストールしてない環境だと動かない)
APIは凄くシンプルで、callout.notify(title, message, [options])となっていて、タイトルはそのまま、メッセージはタイトルの下に表示されていて、optionのhrefが設定されている場合はリンクになる。
optionで設定できるのもhrefとiconぐらいで、Greasemonkeyからページの外側に通知を出したいなーって思う人はそれだけを求めるならアドオンなどにしないでこれを使うのもいいかも。
簡単なサンプル
- gist: 426775 – Dbus Notify for GreaseMonkeyのテスト- GitHub
- http://gist.github.com/426775
APIの解説
- lackac’s callout at master – GitHub
- http://github.com/lackac/callout
Greasemonkeyに何か機能を加えるアドオンって意外と見かけない感じがする。
Greasemonkey でクリップボードを扱う…悪い方法(?) – Griever でも言っているように受け口を持つと悪用の可能性も出てくるが、セキュリティ的な影響がでないように狭い範囲で機能追加できれば楽しそうだなーと思った。
縦置きタブバーとサイドバーを統合する拡張機能「Unified Sidebar」
firebugの縦置きタブバー(要アドオン)とサイバーを統合するUnified Sidebarというアドオンがリリースされました。
- Latest topics > 縦置きタブバーの下にサイドバーを統合するUnified Sidebarをリリースしたよ – outsider reflex
- http://piro.sakura.ne.jp/latest/blosxom/mozilla/extension/unifiedsidebar/2010-02-05_released.htm
対応してる縦置きタブバーの拡張は下の3種類みたいですが、知らせれば他のも対応してくれるかもしれないとのことです。
- ツリー型タブ
- VertTabbar
- Tab Kit
実際に統合するとしたような感じになります。
画面の大きさと一度に開くタブの数によっては結構いい感じに扱えます。
少しでも画面を広くするため、Hide Captionを使ってタイトルバーを非表示にして、userChrome.cssでサイドバーのタイトル部分を非表示にしています。
/* サイドバーのタイトル部分非表示*/
#sidebar-box > sidebarheader{
display: none !important;
}
- Unified Sidebar
- https://addons.mozilla.org/ja/firefox/addon/72200/
- Hide Caption
- https://addons.mozilla.org/ja/firefox/addon/9256
- タブバーを縦置きにする – Griever
- http://d.hatena.ne.jp/Griever/20090705/1246788480
「RefControl」でリファラを偽装しておくべきサイト
RefControlというアドオンを使う事でURL毎に、リファラを阻止や偽装することができます。
偽装までしなくても阻止すれば問題ないサイトも多いです。
このアドオンを使ってリファラを阻止、偽装しておくべきサイトのメモ
URLのリストはインポートできるので、インポートするのが一番楽です。

- refcontrol.txt をインポート
RSSリーダから画像を表示するためにリファラを偽装、阻止するサイト
- blogs.yahoo.co.jp
- fc2.com
- image.itmedia.co.jp
- plusd.itmedia.co.jp
AmazonはGoogleからのリファラを見て、商品説明の上部に検索結果を表示するようになったためリファラを偽装しています。
- www.amazon.co.jp
Custom ButtonsネタとMouseover Dictionary
Mouseover Dictionaryというローカルの辞書をマウスオーバーで検索できるアドオンが便利そうなので導入してみたら、
毎回メニューからサイドバーを表示しないといけないのが面倒なので、Custom Buttonsでそれ用のボタンを作った。
もうひとつ、サイドバーで特定のURLを開くボタンを作成するときに、 すでにサイドバーを開いていたらサイドバーをトグルしないで、そのままサイドバーのURLを変えるようにするには
var title = "タイトルとなる文字列";
var uri = "http://";
var sidebarTitle = document.getElementById("sidebar-title").value;
var sidebarBox = document.getElementById("sidebar-box");
if (title == sidebarTitle) {
toggleSidebar();
} else {
openWebPanel(title, uri);
}
という感じにすればいい。
以前作ったtwicliなら下のような感じになる。
タブをツリー表示できる拡張機能「Tab Tree」
Firefoxでタブをツリーライクな表示をするアドオンとしてツリー型タブ (Tree Style Tab)は有名だと思いますが、
このアドオンは本来のタブバーと置き換えてツリーにするので、競合などが起こりやすいです。
今回使うTab Treeはサイドバーで本来のタブバーとは別にツリーを作るため競合することはありません。(逆に言えば、タブバー上を拡張するアドオンは無意味になる。)
Tab Treeを導入するとサイドバーにツリー型のタブバーを表示できるので、本来のタブバーが邪魔になります。
Tab mix plusやuserChrome.cssを使って非表示にする事ができます。
初期状態だと、左のサイドバーにしか表示できないので他のサイドバーを表示すると隠れてしまいます。
それを改善するために、MultiSidebarを入れると便利です。
MultiSidebarはサイドバーを上下左右好きな場所に設置でき、たとえば右にTab Treeを移動した場合は、他のサイバーを開いてTab Treeのサイバーが閉じることはなくなります。
さらにサイドバーのタイトルも消せるので、スペースが節約できてます。
Tab Treeのサイバーを非表示/表示とトグルしたいときは、ツールバーにおけるボタンからもできますが、FireGesturesやキーボードショートカットのコマンドに
toggleSidebar(‘viewTabTree’);
と書けばトグルすることができます。
追記
Tabmix Plusの代用方法
タブを閉じるときに直前にフォーカスしていたタブにフォーカスを当てる
- FLST (Focus Last Selected Tab)
- http://gorgias.de/mfe/
- dontCloseWindowWhenCloseLastTab.uc.js
- http://space.geocities.yahoo.co.jp/gl/alice0775/view/20080307/1204874853
常にタブバーを表示しない設定の場合に,最後のタブを閉じてもウインドウを閉じないようにする
- Tab Tree
- http://park2.wakwak.com/~benki/
- MultiSidebar
- https://addons.mozilla.org/en-US/firefox/addon/4534
- FireGestures
- https://addons.mozilla.org/ja/firefox/addon/6366
タブをグループ管理する拡張機能「タブグループマネージャー 」
タブグループマネージャーは複数のタブをグループに分類し、そのグループに名前を付けて管理する事ができるアドオンです。
タブを多数開いても管理しやすくなるので、積極的に多数のタブを開いて活用できるようになります。
グループ名もほぼ自動で決められるので、タブを開きまくる人には便利です。
Tab mix plus + ツリー型タブを併用していますが、問題なく動いてる。
前回のセッションを使った再起動時の挙動が少し変だけど、普段使うわけではないので問題ない。
そのままだと少し幅を取っていたのでstylishでタブグループマネージャー を普段非表示にして、
メニューバーやナビゲーションバーにマウスオーバーしたときにポップアップするようにするcssを書いた。
- タブグループマネージャー | userstyles.org
- http://userstyles.org/styles/13520
タブを簡単にグループ移動させるなど出来たら面白そうな気がした。
- タブグループマネージャー :: Firefox Add-ons
- https://addons.mozilla.org/ja/firefox/addon/10254
Firefox3のブックマークするときのタグ付けを助ける拡張機能
Firefox3のブックマーク機能にはタグ機能が組み込まれていますが、あまり使い勝手がよくありません。
このタグ付け機能を助けるアドオンの紹介。
HandyTagはタグを付けるときの補助をするアドオンで4つの選択方法を追加します。
- 過去に付けたタグから選択
- ページのmeta kewordから選択
- KGenというアドオンを入れる必要がありますが、ページ内で使用頻度の多い単語を選択肢に追加します。
(いちおう日本語も対応してる?) - Deliciousからタグを取ってきて選択
あと、説明の部分に自動で上部にある文章を入れるみたいです。(元からだっけ?)
言語はフランス語ですが、特に問題はないと思います。
エラーページを便利にする拡張機能「ErrorZilla」とキャッシュページを探す「Resurrect Pages」
Webを巡っていると404などのエラーページに遭遇することがあります。
そこで、利用者はどうするかというとあきらめてまた後でくるか、グーグルのキャッシュを覗くなどのWebサービスを利用した閲覧をためしてみたりする。
そういうWebサービスへのアクセスを助けてくれるアドオンとして「ErrorZilla」があります。
このアドオンは何かと派生が多いので、自分に合ったものを使えばいいかと。
本家ErrorZillaは更新していないので、
辺りが候補になる。CrendKingはErrorZilla Modをベースにしていてプロクシを通してのアクセスが容易にできるように改良されています。
後はほぼ同一の機能で
- Google Cache (view the page cached by Google)
- Coralize (use Coral CDN proxy to connect again)
- Wayback (view an earlier version of this page)
- Ping (use a server to ping the target server)
- Trace (trace the network route from you to the server)
- Whois (look up who owns the website)
それぞれへのリンクがエラーページ上で表示されます。
背景画像をlolifoxにしたlolifox-ErrorZillaなんてのもあります。
また同様にキャッシュへのアクセスを助けてくれるResurrect Pagesというアドオンも紹介。
Resurrect Pagesは主に検索エンジンのキャッシュページへのアクセスをナビゲーションバー上のボタンもしくは右クリックから行うことができる。
o CoralCDN
o Google Cache
o Yahoo! Cache
o The Internet Archive
o MSN Cache
o Gigablast
o WebCite
主に海外の検索エンジンが使われています。





