chromium之webui详细文档参考:WebUI Explainer (googlesource.com)
本文主要讲述webui的调用逻辑。
webui
webui 用于管理chrome浏览器,通过 chrome://url 的方式,可以进行不同功能的访问。
webui 的特殊性:
1. 提供通过 chrome://url 的方式进行chrome管理页面的访问
2. 允许 chrome 通过 CallJavascriptFunction() 在渲染器中执行任意的 JavaScript
3. 允许通过 chrome.send() 从 renderer 进程发送消息给 chrome
4. 忽略关于显示图像或执行JavaScript的内容设置
webui 在代码中的区别逻辑:
通过 chrome_web_ui_controller_factory.cc 中 GetWebUIFactoryFunction() ,获取指定url是否为webui
譬如访问 chrome://version, 则会返回 return &NewWebUI<VersionUI>。 如果没有找到,则返回 nullptr。
如果我们需要添加一个自己的 webui 访问页面,可以参考 VersionUI 源码的实现。
此处堆栈如下:
主要关注前四行即可。小伙伴们调试时可以在前四行加断点进行调试~