Open Web App のマニフェストファイルに関するよくある質問。
なぜ自分のアプリにマニフェストが必要なのですか?
アプリマニフェストは、ユーザとアプリストアのいずれも使用可能なシンプルなドキュメントの形式で、アプリに関する役立つ情報 (名称、開発者、アイコン、説明など) を提供します。最も重要なことは、アプリが必要とする (位置情報通知機能 などの) WebAPI のリストを含んでいるという点です。これによってユーザは情報を得た上でアプリをインストールすることが可能となります。
Open Web App のマニフェストは Google Chrome の拡張機能やインストール可能な Web アプリで使われているものと同じですか? あるいは W3C ウィジェットのマニフェスト、HTML5 キャッシュマニフェスト と同じですか?
いいえ、そのどれでもありません。Open Web App のマニフェストはおそらく Google のマニフェストに最も近いものですが、まったく同じではありません。Open Web App のマニフェストは標準化を目指しています。
配信元 (オリジン) とは?
アプリの配信元は、URL のプロトコル、ドメイン、ポート番号を合わせたものです。以下のそれぞれの URL は異なる配信元です:
https://example.com
https://example.com:8080
(別ポート)https://example.com
(別プロトコル)https://www.example.com
https://myapp.example.com
(サブドメイン)
以下の URL は同じ配信元です:
https://Example.com:80
https://example.com
以下の URL は同じ配信元です:
https://example.com/drawingApp
https://example.com/notesApp
詳しくは 同一配信元ポリシー を参照してください。
なぜアプリマニフェストをアプリと同じ配信元に置く必要があるのでしょうか?
私たちは、アプリと同じ配信元にアプリマニフェストをおけるのはあなただけであると考えます。つまりユーザは、誰か他人ではなくあなたのアプリマニフェストに基づいてインストールが行われると、自信を持ってあなたのアプリをインストールできると言うことです。Firefox Marketplace から、他のアプリストアから、あるいはアプリを自主配布する場合はあなた自身のサイトからアプリをインストールする場合も、ユーザはこうした自信を持つことができます。
アプリマニフェストがアプリと同じ配信元に置かれていない場合、あなたの配信元にホストされているコンテンツから第三者がアプリを作るような行為を止めることができません。さらに悪いことに、第三者があなたのブランドを使ってアプリマニフェストを作成し、ユーザをだまして偽のアプリをインストールさせ、裏ではパスワードを盗み出すような不正行為を行うことが可能となってしまいます。
他の配信元の画像や JavaScript を埋め込めないということでしょうか?
いいえ、配信元の制限はコンテンツ (HTML ページ) のみです。画像はその他の埋め込みリソースは (例えば CDN など) 他の場所に置くことも可能です。ただしアプリのアイコンだけは例外で、これはアプリと同じ配信元に置く必要があります。
自分の配信元から複数のアプリを提供することはできますか?
今のところ、ひとつの配信元に置けるのはひとつのアプリだけです。Firefox OS の将来のバージョンでは、ひとつの配信元に複数のアプリを置けるようになります。このトピックの進捗状況は バグ 778277 を追ってください。
当面は、アプリごとに別々のサブドメインを使用することをお勧めします。例えば、ひとつのアプリに spreadsheet.mycoolapps.com
を割り当て、別のアプリには texteditor.mycoolapps.com
を使うといった具合です。詳しくは アプリのためにサブドメインを追加する を参照してください。
なぜ Firefox Marketplace へ直接アプリマニフェストをアップロードしないのでしょうか?
マニフェストをあなたのドメインに起き、そのマニフェスト URL を Marketplace へ提供することにはいくつかのメリットがあります。
- Marketplace (や他のアプリストア) は、提供された URL を参照し、すべてのアプリマニフェストについて更新がないかどうか定期的にチェックする予定です。これによって更新のたびにマニフェストを再度アップロードする手間を省くことができます。
- Marketplace は元のアプリマニフェストの内容とその URL の両方をユーザの端末へ渡します。これによって端末は、改ざんの可能性を示すアプリマニフェストへの予期せぬ変更を確認できます。これは (位置情報通知機能などの) WebAPI を使用しているアプリについては特に重要です。
なぜアプリマニフェストを公開する際に自分の Web サーバが適切な HTTP Content-Type
を使わなければならいのでしょうか?
この制限は、ユーザ生成コンテンツのアップロードを許可しているサイト (例えばペーストビンサイトなど) のユーザが、故意にせよ過失にせよそのサイト全体を自分のアプリとして主張してしまうようなことを防ぐためです。
アプリマニフェストの公開に HTTPS を使うべきですか?
はい、それは良い考えです。Firefox Marketplace は (位置情報通知機能などの) WebAPI を使用するすべてのアプリに対し、中間者攻撃を防ぐ追加対策として HTTP を通じてマニフェストを公開するよう求める予定です。マニフェストに HTTPS を使う場合、サイト上のすべてのページにも同じように HTTPS を使わなければなりません。
誰かが自分のアプリを Firefox Marketplace へ登録した場合はどうなりますか?
誰かがあなたのアプリマニフェストの URL を推測し、あなたより前にそれを Firefox Marketplace へ登録してしまったという残念なことが起きた場合は、Marketplace のサポートチーム に苦情を申し立ててください。