GoogleのChromeウェブストアチームから Chrome extension に関するアップデートのお知らせが届いていました。
詳細はこちら Manifest Version
記事によると、Chrome機能拡張を作る際はマニフェストに、
'manifest_version': 2:
と書きなさい、とのことです。
そして、これより前の Manifest version 1 は、今後リリース予定のChromeで動作しなくなります。
また、スケジュールに沿ってウェブストアのウォールやカテゴリからも削除されます。
このバージョン1と2の違いについて、上記ページにまとめられていて、
Browser action や Page action の各種プロパティが変更されているようです。
それと、セキュリティポリシー(CSP)の導入に伴って、HTMLとJSの分離が必要です。
CSPの詳しい記事はこちら Content Security Policy (CSP)
例えば “Inline JavaScript will not be executed” について。
<button onclick="clickHandler(this)">
HTML内に上記の記述があっても、デフォルトのポリシーでは動作しません。
この様な場合、HTML内にはボタンを配置しておいて、
<button>Click for awesomeness!</button>
ボタンクリックの処理についてはJS側でイベントリスナを登録します。
document.addEventListener('DOMContentLoaded', function () { document.querySelector('button').addEventListener('click', clickHandler); });
それと “Only local script and and object resources are loaded” の部分。
外部サイトのスクリプトを参照している場合は、デフォルトのポリシーのままでは動作しないので、
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
パッケージ内に組み込む必要があります。
<script src="jquery.min.js"></script>
あるいは “Relaxing the default policy” にあるようにCSPの設定を緩めるなど。
リリース済みパッケージのメンテナンスや今後のリリースの参考まで。