LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 5 years have passed since last update.

ロード画面が見たいだけの人生だった

Last updated at Posted at 2017-05-15
1 / 19

namecaard3.png


自称代表作


demo.gif


howitworks.png


ブラウザ拡張開発のハマりどころ


手法が色々ある あった

  • WebExtensions が最新
    • Firefox と Chrome で共通の API
  • 以下の方法は古い
    • jpm
    • Add-on SDK

配布方法が謎い (Chrome)

  • Chrome Store に zip をアップロード
    • 不要なファイルは含めないように 1
  • 最初に5ドルかかる
  • アップロードが止まったらキャンセルしてリトライすれば何とかなる

キャプチャ.PNG


キャプチャ2.PNG


配布方法が謎い (Firefox)

  • addons.mozilla.org に xpi をアップロード
    • All Platforms がいい 2
  • 2択ある
    • Listed
    • Unlisted

Listed

  • addons.mozilla.org で配布される
  • 人力の審査がある

AMOに公開されるすべてのアドオンは、被雇用者とボランティアのチームによるコード審査とテストを受けます。アドオンは、様々な技術的ポリシーやコンテンツポリシーに合致することが求められます。そのため、アドオンの複雑さやその他の要因により、審査にかかる時間には数時間から数週間までの幅があります。 (https://developer.mozilla.org/ja/Add-ons/Distribution)


Unlisted

  • 自力で配布する
  • 審査は原則、最低限の自動審査のみ
  • Mozilla による署名は必要

非公開のアドオンは多くの場合、自動的に審査され署名されます。アドオンが自動審査を通過しなかった場合には手動審査待ちのリストに加えられ、数日のうちに審査されます。その非公開アドオンがサイドローディング(一般的なWebからのインストールではなく、何らかのアプリケーションにバンドルされる形でのインストール方法)を必要とする場合、コード審査が必要となり、審査完了までには数週間を要するでしょう。 (https://developer.mozilla.org/ja/Add-ons/Distribution)


署名方法

web-ext sign --api-key=$AMO_JWT_ISSUER --api-secret=$AMO_JWT_SECRET

自動アップデートさせたい


まとめ

  • 佐久間まゆさん総選挙6位 (Cu1位) おめでとうございます!石川で会いましょう!

補足情報

jpm 時代に unlisted な xpi を自動アップデートに対応させる方法

WebExtensions な今と比べてややこしかったのでメモしておきます。

やることまとめ

  • package.json に以下の3項目を書く

    • updateURL: Update Manifest (後述) の URL
    • updateLink: 配布する xpi 自体の URL
    • version: 配布する xpi の最新のバージョン番号
  • updateURL で指定した URL で、jpm xpi 実行時に生成された update.rdf を公開

  • updateLink で指定した URL で、署名済み xpi 本体を公開

自動アップデートのメカニズム

Firefox のアドオンの自動アップデートは、下図のようなメカニズムで実現されています。(Mozilla より引用
image

  • xpi には install.rdf (通称 install manifest) が埋め込まれている
  • install manifest には updateURL が記載されており、それを通じて update.rdf (通称 update manifest) を参照できる
  • update manifest には、最新のバージョン番号と updateLink, すなわち最新の xpi 自体の URL が記載されている
  • Firefox がアドオンの更新を確認したタイミングで、もし update manifest に書かれたバージョン番号がインストール済みのものより新しければ、updateLink を通じて最新の xpi を自動インストールする

jpm xpi コマンドを実行すると、xpi ファイルと update.rdf ファイルが生成されますが、このとき package.json に書かれた updateURL と updateLink がそれぞれ使われて埋め込まれるという寸法です。あとは jpm sign コマンドで xpi に署名して、今自分で書いた URL で xpi と update.rdf を公開すれば OK です。

なお、updateLink は https である必要があります。自分はこれを github を使ってやりくりしました。参考にしてみてください。
https://github.com/megane42/starlight-loading/blob/master/package.json


脚注


  1. 単純に容量を削減するためです。 

  2. All platform にすると、 xpi が1つにまとまって便利です。これを例えば Windows & Linux にすると、Windows 用の xpi と Linux 用の xpi が別にできてしまい、配布が面倒になります。 

0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up