このページでは、公式ドキュメントを(Chromeリポジトリから自動的に)生成するプロセスについて説明します。同じページで、古いブランチのドキュメントを取得する方法も読むことができます。ドキュメントがどういうわけか不完全であることに注意してください。非推奨のAPIは、まだ存在していますが(などonRequest
)、すぐに含まれます。
拡張機能の新機能は、APIの変更と更新の簡単なリストです(ほとんどの実験的なAPIを除く)。手動で編集する必要があるため、常に最新であるとは限りません。たとえば、現在の安定バージョンは20ですが、ページの最後のエントリは19です。
すべてのAPI変更を含む単一のページが本当に必要な場合は、次のアプローチを使用できます。
- まず、すべてのChromeバージョンをインストールします。これは、自動的に実行する場合は時間がかかりません。以前のプロファイルを複製するChromeのインストールを自動化するスクリプトを作成しました。この回答を参照してください。
- 機能の存在をテストします。
- すべてのアクセス許可を含むマニフェストファイルを作成します(認識されないアクセス許可は常に無視されます)。
- Chrome 18以降:マニフェストバージョン1および2で拡張機能を複製します。一部のAPIはマニフェストバージョン1で無効になっています(例)。
- 機能が実装され、期待どおりに動作するかどうかをテストするには、非常に時間がかかります。このため、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, {}));
// ...