chromium 之 webui 调用逻辑

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 源码的实现。

此处堆栈如下:

主要关注前四行即可。小伙伴们调试时可以在前四行加断点进行调试~


版权声明:本文为dw903632958原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。