2年前くらいに作成したChrome拡張機能(Last Tab Keeper)のManifest Version 2対応を行いました。
もともと自分が欲しくて作ったものですが、いつの間にか2千人近い方に使って頂きありがとうございます。
何か機能追加を行った訳ではありませんが、これをやらないと2013年第3四半期には使えなくなってしまう との事でしたので、
アップデートを行いました。その時の内容を少しメモしておきます。
【manifest.jsonの変更】
・まず下記のプロパティの追加が必要
"manifest_version": 2
・"background_page"プロパティが"background"に名前変更され、記述方法が変更されています
v1はhtmlのscriptタグでjsを読み込んでいましたが、v2からjsを直接読み込むよう指定できます。
- // マニフェストv1の記述
- "background_page": "background.html",
- // マニフェストv2の記述
- "background": {
- "scripts": ["background.js"]
- },
インラインのJavascriptの実行ができなくなりました。下記のような対応が必要になります。
(もともとViewとロジックを分離するようにコード書いている人は最初の2つは別段対応いらないかもしれません・・・)
・htmlファイル内にjavascriptを含めることができませんので、別ファイルに分けてscriptタグで読み込む必要があります。
・イベントハンドラ(onloadとかonclick)もhtml上には記述できません。例えば下記のようにjsファイルで動的に追加します。
- // 動的にイベントハンドラを追加
- document.addEventListener('DOMContentLoaded', function () {
- // 1. bodyのonloadで行っていた初期化コードなどをここに書く
- // 2. イベントハンドラの登録をする
- document.querySelector('button').addEventListener('click', save_options);
- });
※かなりシンプルな拡張機能ですので上記対応で済みましたが、これ以外にも影響あるかと思います。
複雑なものをお作りの方はそれなりの変更工数かかるのでは?という印象でした。
ちなみにストアの方は特に変更無いみたいで、今までと同じ方法でアップロードできました。
【参考サイト】
[公式]
Manifest Version // 以降スケジュールや差分などについて
Formats: Manifest Files // マニフェストファイルの詳細
Content Security Policy (CSP) // 一番影響のあるセキュリティポリシーの詳細について
[その他]
Chrome Tech Talk Night #3 行ったので拡張機能の内容をまとめてみる
↑日本語情報があまり無い中、とても参考になりました
0 件のコメント:
コメントを投稿