在this page上,描述了從Chrome存儲庫自動生成官方文檔的過程。在同一頁面上,您還可以閱讀如何檢索舊分支的文檔。請注意,該文檔在某種程度上是不完整的:儘管它們仍然存在(如onRequest
),但已棄用的API已立即包含在內。
What's New in Extensions是API更改和更新的簡要列表(不包括大多數實驗性API)。它必須手動編輯,所以它並不總是最新的。例如,當前穩定的版本是20,但是頁面的最後一項是19
如果你真的需要一個包含所有API變更單頁,以下方法可用於:
- 第一,安裝所有Chrome版本。自動完成時,這並不耗時:我編寫了一個腳本,可以自動安裝Chrome,它可以複製以前的配置文件:請參閱this answer。
- 測試爲特徵的存在:
- 寫一個清單文件,其中包括所有permissions(無法識別的權限總是被忽略)。
- Chrome 18+:複製清單版本1和2的擴展。某些API在清單版本1中被禁用(example)。
- 測試某項功能是否已實施且性能如預期爲非常耗時。出於這個原因,你最好測試一下API的存在。
合理的做法是遞歸循環遍歷chrome
的屬性,並記錄結果(顯示給用戶/發佈到服務器)。
- 測試過程。使用以下方法之一:
- 使用單個Chrome配置文件,並從最低版本開始測試。
- 爲每個Chrome版本使用一個單獨的配置文件,以便您可以並排測試多個Chrome版本。
- 後處理:解釋結果。
實施例的代碼來獲得信息:
/**
* Returns a JSON-serializable object which shows all defined methods
* @param root Root, eg. chrome
* @param results Object, the result will look like {tabs:{get:'function'}}
*/
function getInfo(root, results) {
if (root == null) return results;
var keys = Object.keys(root), i, key;
results = results || {};
for (i=0; i<keys.length; i++) {
key = keys[i];
switch (typeof root[key]) {
case "function":
results[key] = 'function';
break;
case "object":
if (subtree instanceof Array) break; // Exclude arrays
var subtree = results[key] = {};
getInfo(root[key], subtree); // Recursion
break;
default:
/* Do you really want to know about primitives?
* (Such as chrome.windows.WINDOW_ID_NONE) */
}
}
return results;
}
/* Example: Get data, so that it can be saved for later use */
var dataToPostForLaterComparision = JSON.stringify(getInfo(chrome, {}));
// ...