widget其实就是一个网页,这样可以理解为在当前webkit多显示一个网页。
因此最低层次也要在page中多实例一个frame,在往上就是多实例page了。
可以选择在page中多实例frame,
实际上在page中有个mainFrame,这个是当前网页的主窗口,
因此建一个需要和它平级的frame来显示widget,
这样frame和mainFrame只是共享一个page而已。
比较难处理的有两个方面,一个是事件,一个是显示
事件需要在mainFrame和frame之间进行传递,也就是传给mainFrame后是否还传给frame,
相反也是需要判断的,但是给frame传事件和给mainFrame是一样的。
显示也需要看是否和mainFrame进行共享一个surface,
如果共享一个,那么就需要在刷新mainFrame后,也刷新一下frame,
这样widget就在web之上了,还好frame的刷新和mainFrame是一样的。
在owb中page是webcore的类,webview是其在webkit中的对应类。