タグ: policy

  • Chrome Extension の セキュリティポリシー(CSP)

    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の設定を緩めるなど。
    リリース済みパッケージのメンテナンスや今後のリリースの参考まで。