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"] },【新しいセキュリティポリシー(CSP)への対応】
インラインの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); });・スクリプトやリソースは同梱しないといけなくなりました。(ネット上からjQueryなどのライブラリを読み込んではいけない)
※かなりシンプルな拡張機能ですので上記対応で済みましたが、これ以外にも影響あるかと思います。
複雑なものをお作りの方はそれなりの変更工数かかるのでは?という印象でした。
ちなみにストアの方は特に変更無いみたいで、今までと同じ方法でアップロードできました。
【参考サイト】
[公式]
Manifest Version // 以降スケジュールや差分などについて
Formats: Manifest Files // マニフェストファイルの詳細
Content Security Policy (CSP) // 一番影響のあるセキュリティポリシーの詳細について
[その他]
Chrome Tech Talk Night #3 行ったので拡張機能の内容をまとめてみる
↑日本語情報があまり無い中、とても参考になりました
0 件のコメント:
コメントを投稿