はじめまして、nagai-kです。 今回は、携帯サイト開発のサポートツール「FireMobileSimulator」のご紹介とそれをちょっとハックしたよ、ということを書いてみたいと思います。
FireMobileSimulatorは、主要3キャリア(DoCoMo/Au/SoftBank)の携帯端末ブラウザをシミュレートして、モバイルサイト開発を容易にするために作成されたFirefoxのアドオンです。
私は携帯サイトを開発する事がよくありますので、このアドオンは業務をする上で必須のツールになっています。 携帯サイトの開発で大変なことといえば、最終出力であるHTMLの確認です。 プログラムを修正するたびに、ファイルをサーバにアップロードして携帯から確認する・・・・。 そんなことをするのは大変なので、普段は「FireMobileSimulator」を使って、Firefox で確認しています。 ※もちろん最終的は確認は携帯端末の実機で行っていますよ^^ 今回はこの「FireMobileSimulator」を勝手にハックしてみました。 さらに、作者の方に送ってみたら正式に採用されてしまいました! 追加した機能は、
  • 特定のURL(ドメイン)だけで端末選択機能が有効になる機能
  • 端末ごとにUIDなどの個体識別番号を設定する機能
です。内容について詳しくはオフィシャルサイト「1.1.9リリースノート」をご覧ください。
【少しだけ技術的なはなし】 私自身はじめてのFirefoxアドオン開発だったので技術的に詳しくはないですが少し解説したいと思います。 解説の準備としてまず、「FireMobileSimulator」をこちらからダウンロードしてください。 ※Firefoxで左クリックするとインストールしようとしてしまうので、その場合は右クリックで保存してください。 ダウンロードしたxpiファイルを展開します。 (xpiファイルはzipと同じなので、Windowsであれば拡張子を"zip"に変えて展開できます。) 展開したフォルダの中に「/chrome/msim.jar」と言うファイルがあるので、これも展開しておきます。 (xpi同様に拡張子をzipに変えてでOKです。) これでソースを読む準備ができました。 「\components\msimModifyHeaders.js」が今回修正したファイルです。 このファイルに携帯をシミュレートするための端末情報やUIDをHTTPリクエストに付加したりする処理が含まれています。 ファイルを見ると、docomo、SoftBank、au別にHTTPリクエストの処理を変えているのがわかると思います。
if (carrier == "DC") {
  ~ docomo用のHTTPリクエスト処理 ~
		
} else if (carrier == "SB") {
  ~ SoftBank用のHTTPリクエスト処理 ~

} else if (carrier == "AU") {
  ~ au用のHTTPリクエスト処理 ~
}
HTTPリクエストをハックする場合はこの処理を書き換えてみてください。 JavaScriptとHTTPプロトコルがなんとなくわかっていれば、簡単にハックが可能だと思います。 ここでは省略しますが、デバッグメッセージをコンソールに出せるようにしておくと修正作業がはかどります。 とても簡単な説明ですが、大体こんな感じでコードの修正していきました。 このように簡単に手を入れる事ができますので、皆さんも是非Firefoxアドオンの拡張/作成をしてみてはいかがでしょう?