Google chrome extension 在哪里可以看到哪个chrome extensions API对哪个chrome版本有效

Google chrome extension 在哪里可以看到哪个chrome extensions API对哪个chrome版本有效,google-chrome-extension,Google Chrome Extension,我喜欢chrome通过扩展API提供给我的东西。 但我总是发现自己迷失在哪个chrome版本支持什么API的丛林中,上一个chrome.Experiative特性是什么时候进入受支持的扩展的 给了我一个很好的概述什么是支持的,但没有提到,因为什么版本。同样的道理也适用于美国。例如,该特定API是否仍处于实验阶段,或者它是否已经在canary中得到了支持 如果我尝试chrome的一个示例,我通常必须将一些API调用从chrome.experimental.foo更改为chrome.foo,或者发现

我喜欢chrome通过扩展API提供给我的东西。 但我总是发现自己迷失在哪个chrome版本支持什么API的丛林中,上一个chrome.Experiative特性是什么时候进入受支持的扩展的

给了我一个很好的概述什么是支持的,但没有提到,因为什么版本。同样的道理也适用于美国。例如,该特定API是否仍处于实验阶段,或者它是否已经在canary中得到了支持

如果我尝试chrome的一个示例,我通常必须将一些API调用从
chrome.experimental.foo
更改为
chrome.foo
,或者发现它根本不受支持。(chrome.Experiorative.alarm发生了什么?)这通常意味着使用试错法来消除所有错误,直到样本工作为止

tldr 所以,我想知道是否有一个概述页面,告诉我从什么版本开始,支持什么API,或者什么时候决定放弃一个实验API。如果没有这样的页面,建议您采取什么方式或个人方法来处理这种情况?

在上,描述了生成官方文档的过程(自动从Chrome存储库生成)。在同一页上,您还可以阅读如何检索旧分支的文档。请注意,文档在某种程度上是不完整的:不推荐的API会立即被包括在内,尽管它们仍然存在(例如)

是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, {}));
// ...
/**
*返回显示所有已定义方法的JSON可序列化对象
*@param root,例如chrome
*@param results对象,结果将类似于{tabs:{get:'function'}
*/
函数getInfo(根,结果){
if(root==null)返回结果;
var keys=Object.keys(根),i,key;
结果=结果| |{};
对于(i=0;iOn),描述了生成官方文档(从Chrome存储库自动生成)的过程。在同一页上,您还可以阅读如何检索旧分支的文档。请注意,文档有点不完整:不推荐的API会立即包含在内,尽管它们仍然存在(例如)

是API更改和更新的简要列表(不包括大多数实验API)。它必须手动编辑,因此并不总是最新的。例如,当前的稳定版本是20,但页面的最后一个条目是19

如果您确实需要一个包含所有API更改的页面,可以使用以下方法:

  • 首先,安装所有的Chrome版本。当自动完成时,这并不耗时:我已经编写了一个脚本,可以自动安装Chrome,它复制了以前的配置文件:请参阅
  • 测试功能是否存在:
  • 编写包含所有权限的清单文件(始终忽略未识别的权限)
  • Chrome 18+:使用清单版本1和2复制扩展。清单版本1()中禁用了某些API
  • 测试某个功能是否实现并按预期运行非常耗时。因此,您最好测试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, {}));
// ...
/**
*返回显示所有已定义方法的JSON可序列化对象
*@param root,例如chrome
*@param results对象,结果将类似于{tabs:{get:'function'}
*/
函数getInfo(根,结果){
if(root==null)返回结果;
var keys=Object.keys(根),i,key;
结果=结果| |{};
对于(i=0;i