转载,请注明出处!
WebKit是浏览器引擎,而非浏览器。浏览器可以使用WebKit提供的接口来创建DOM树、创建Render树等。例如,Chrome浏览器、Safari浏览器。在使用WebKit引擎时,不应该直接使用甚至修改WebCore模块的类及接口,而应该通过WebKit子模块的接口来使用WebKit引擎。
WebKit的整体架构为:
图1 WebKit Architecture
本文主要是介绍API Boundary的。
WebKit的API Boundary是借鉴了COM的样式来实现的。不管想要获得那个对象,代码的样式都是相同的。
HRESULT hr = WebKitCreateInstance(CLSID_ClsName, 0, IID_IClsName, pOut);
if (FAILED(hr))
goto exit;
与COM极为类似,优雅!为了实现与COM相似的样式,那么就需要如下几个子组件。1)GUID和UUID,2) 类工厂定义,3) 与CoC