WebKit源代码和文档经常使用术语"Chrome客户端"来描述用于前端显示的特定类.我对"Chrome"这个术语的含义感到困惑,因为它似乎与Google Chromium端口无关.在网络上搜索有关此内容的任何信息都很困难,因为搜索字词"chrome"和"client"不可避免地会显示与Google Chrome浏览器相关的结果,或者仅仅提供指向WebKit源代码的链接.
任何人都可以解释Chrome客户端是什么,以及"Chrome"在这种情况下的含义是什么?
ChromeClient是一个抽象接口,WebCore用它来与构建在WebCore之上的多个WebKit API层进行交互.其功能以包含特定WebCore的视图的用户界面(也称为"chrome")方面为中心Page.这种抽象很重要,因为在WebCore之上构建了许多单独的API层,并且每个API层处理用户界面的方式甚至可以在同一OS上运行的API层之间有所不同(例如,WebKit和WebKit2有着截然不同的需求) ).
作为一个简单的例子,ChromeClient::runJavaScriptAlert由JavaScript alert函数调用.runJavaScriptAlertCocoa WebView类的实现只是调用适当的WebUIDelegate方法,就像人们期望的那样.其他情况,例如工具提示的显示,完全由具体ChromeClient实现直接处理,而不涉及任何WebView代表.
| 归档时间: |
|
| 查看次数: |
578 次 |
| 最近记录: |