この記事は技術レビューを必要としています。ぜひご協力ください。
この記事は編集レビューを必要としています。ぜひご協力ください。
お気づきの通り、JavaScriptを実行しても輝かしい全てのWebAPIにアクセスできるわけではありません。特定のAPIを利用するアプリは、そのAPIへのアクセスをアプリマニフェストのなかで要求しなければなりません。 この記事では、マーケットに特権アプリを配信する前にアプリをテストする方法をお伝えします。
現在起動しているアプリのメタデータとマニフェストを変数として取得するには、このようなコードを利用できます。
navigator.mozApps.getSelf().onsuccess = function(e) { appself = e.result; }
このコードではアプリのメタデータをappself
という変数に格納します。
同様に、もし起動しているものと別のアプリのパーミッションを閲覧したい場合、b2gデスクトップのテストビルドで利用できる"許可設定 (Permissions)"からテストしたいアプリを確認してみてください。b2gデスクトップは現在インストールされている全てのアプリの許可設定をエミュレートするものです。
いくつかの既存のWebAPIは、どんな種類のアプリでも利用できません。それらのAPIを利用するには、最上級の権限で (つまり、認定アプリとして) インストールする必要があります。自身でそれを行うには、b2gレイヤのトップであるGaiaをカスタマイズしたバージョンをビルドする必要があります。これを行うには、git
やmake
といった環境で作業しなければなりません。Firefox OSのビルド環境の設定について詳しくはFirefox OS ビルドの必要条件を確認してください。
この場合は、Firefox OS全てをビルドする必要はなく、Gaiaだけで十分です。どのようにするか見てみましょう。
Gaiaをダウンロードしてビルドする
最初に、Gaiaをダウンロードしてビルドする必要があります。これによってb2gデスクトップでロードできるプロファイルを作成します。以下のコマンドを使えば完了です。
$ git clone https://github.com/mozilla-b2g/gaia $ cd gaia $ make
警告: 初めてGaiaをビルドする場合、XULRunnerのダウンロードを要求されます。これは500MBほどあるため、ダウンロードに少々時間がかかり、また多くの空き容量が必要です。
この操作は標準的なGaiaをビルドします。つまりカスタマイズの準備が整ったということです。
カスタマイズしたアプリを準備する
XULRunnerがダウンロードされている間、Gaiaのソースコードを読むことをおすすめします。ダウンロードが進行している間にカスタマイズしたアプリを準備してしまえるでしょう。
Gaiaに内容されている全てのアプリ (設定、電話帳、ブラウザ等) はapps/
ディレクトリに保存されています。これはあなたの特権アプリもそこに置く必要があるということです。この記事のために、allpermsという名前のサンプルアプリを作り、GitHubで公開しています。
Gaiaのapps/
ディレクトリのなかにサンプルアプリを clone して、コードツリーを変更してみましょう:
cd apps
git clone https://github.com/freddyb/allperms.git
最初のGaiaのビルドが完了し、xulrunner-sdk
がダウンロードされたら、apps/
のなかにallperms
を含めてGaiaを再ビルドすることができます。しかし心配ありません、ほとんどのものはすでにコンパイルされているため、再ビルドは非常に早いはずです。単に以下を実行します:
make
新しいプロファイルを使ったB2G デスクトップを読み込む
B2G デスクトップには主に2つの実行ファイルがあります: b2g
とb2g-bin
です。コマンドラインの引数を指定したい場合は後者を利用します。
Note: B2G デスクトップアプリケーションについての補足情報についてはB2G デスクトップクライアントを使用するを確認してください。
-profile
オプションであなたがビルドしたGaiaのプロファイルへのパスを指定し、b2g
の実行ファイルを読み込みます。
Linux
$ b2g-bin -profile /path/to/gaia/profile
Mac OS X
Max OS Xでは、gaiaのディレクトリからコマンドを起動するには以下のようにします。(あなたが標準的なアプリケーションフォルダにB2Gをインストールしていると想定しています)
$ /Applications/B2G.app/Contents/MacOS/b2g-bin -profile /path/to/gaia/profile
Windows
この部分は準備中です。
期待する動作
全てがうまくいくと、ロックスクリーンが見えているはずです:
B2G デスクトップを利用する際には、いくつかの便利なコマンドラインオプションがあります。
Note: このプロファイルは標準の設定で再度スタートします。テストの環境を整えるために行った全てのカスタマイズは、再度行う必要があります。これにはMarionetteやプロキシ、証明書の設定も含みます。
完了
あなたのallperms
アプリはインストールされ、全ての利用可能なパーミッションを備えているはずです。
次に、Debugging and security testing with Firefox OSを参考にしてMarionetteのステップを再度繰り返すことで、全てのWebAPIにアクセスできるテスト用の環境を用意することができます。