2012-09-21 33 views

回答

1

Manifest v2在Chrome 18中引入。使用清單第2版增加了several requirements的擴展,其中最顯著的存在:

  1. 默認Content Security Policy它不允許外部JavaScript文件能夠在延長的情況下通過<script>標籤加載,並disallowes,它們通過創建JavaScript代碼執行一個字符串:內聯事件偵聽器,內聯腳本,eval
    功能中斷的後果是JSONP和基於eval的模板引擎。這些可以通過使用普通的跨站點AJAX分別使用sandboxChrome 21+來解決。
  2. web_accessible_resources字段在空列表中啓動,因此默認情況下所有資源都列入黑名單。
  3. 清單條目"background_page"變得不可用(取代爲"background" + "scripts""page")。

Manifest 2還允許使用一些API,for example the chrome.storage API。當清單v2被忽略時,this message將顯示在您的擴展下面。

除了最後一句話,所有這些要求都會導致Chrome擴展的編碼指南更嚴格(與清單v1相比)。

  1. 符合CSP的任何代碼也在manifest v1中工作。
  2. 所有擴展程序的源都列入白名單,因此可以訪問普通網頁。
  3. "background": {"scripts": ["..."]}(和"page")是鉻17 向後不兼容和更低,因爲它的introduced in Chrome 18。改爲使用"background_page": "background.html"

所有Chrome版本的一個擴展可以只有如果您不使用背景頁面可以使用。在其他情況下,無法實現這種混合(與v1 + v2兼容的擴展)。

如果您打算分發兩個不同的擴展名,請在清單文件中設置"minimum_chrome_version": "18"。不要忘記提及舊版瀏覽器的擴展名的位置。

+0

謝謝,關於chrome.storage的非常好的信息! – tutuDajuju

相關問題