访问开发工具的虚拟文件系统或Chrome扩展程序中的存储

时间:2019-05-19 19:58:29

标签: api google-chrome-extension google-chrome-devtools

我正在寻找一种访问(枚举,获取和执行)Chrome的方法 来自Chrome(开发工具)扩展程序的开发工具摘要。

代码段管理API似乎没有公开的公共API 或基础存储系统。

所以我看了dev tools frontend code

逆向工程的过程:

  • 我在源代码中全局搜索了“代码段”,并浏览了 发现。

  • 在构造函数snippets/ScriptSnippetFileSystem.js中,他们初始化了 设置对象通过Common.settings.createSetting()

  • 它们在main/Main.js _createSettings()中实例化全局存储 使用InspectorFrontendHost.setPreference()作为数据的对象 通过回调存储后端。

  • host/InspectorFrontendHost.js InspectorFrontendHost.setPreference() 另一方面在内部使用window.localStorage[name]。当然可以 尽管没有摘要,但存储了与开发工具相关的属性。

  • 这使我进入host/InspectorFrontendHostAPI.js,它公开了一个API 到全局对象。

  • 那把我带到了InspectorFrontendAPIDevToolsAPI。虽然是 在检查开发工具的检查员中定义,但在我的 尽管devtools.js包含permissions,扩展程序的devtools上下文仍然包含。{p>

结论:

  • 我认为只能通过文件系统API来访问代码段
  • 我必须获得对文件系统API或基础存储的访问权限
  • InspectorFrontendAPIDevToolsAPI API似乎没有提供 仍然可以通过FileSystemAdded事件访问文件系统。

如何访问代码段?


manifest.json

{
    "name": "Chrome dev tools extension test",
    "version": "1.0",
    "description": "Learn Chrome extensions",
    "manifest_version": 2,
    "devtools_page": "devtools.html",
    "permissions": [
        "devtools",
        "storage",
        "file:///*",
        "http://*/*",
        "https://*/*"
    ],
    "background": {
        "scripts": ["background.js"]
    }
}

devtools.html

<script src="devtools.js"></script>

devtools.js

console.log("# devtools page loaded");

try {
    console.log("# InspectorFrontendHostAPI", InspectorFrontendHostAPI);
} catch (e) {
    console.error("# Check for APIs error: ", e);
}

try {
    console.log("# InspectorFrontendHostAPI", DevToolsAPI);
} catch (e) {
    console.error("# Check for APIs error: ", e);
}

记录“#devtools页面已加载”,但没有两个API。

0 个答案:

没有答案