Webkit2的API
2015-02-28 12:01
197 查看
WebKit2提供稳定非阻塞式基于C的API,多数API对平台独立(agnostic)。为了获得非阻塞能力,Webkit2使用了一些技术,正式这些技术的使用,使得Webkit能给它的使用者带来大量的功能,这些技术包括:
通知式的客户回调,例如didFinishLoadForFrame。这些类型的API通知使用者:发生了某件事,然而并不给他们机会去处理它。
策略式的客户回调,例如decidePolicyForNavigationAction。这些类型的API允许使用者有空时才对某个动作做处理,同时通过监听器对象把发生了某个动作这件事告知页面。
策略设置式,例如WKContextSetCacheModel, WKContextSetPopupPolicy。这些类型的API允许使用者选择预先定义的策略,不需要回调函数对UIProcess的参与。这些类型的API可能是一套枚举类型的特殊策略,或者是带通配符的字符串列表等。
注入的代码,例如WebBundle。当所有其他选择都失败了,这些代码可以进入WebProcess进程。当访问DOM时,这特别有用。目前,这种API还处于计划当中,并没有实现。
主要的API:
WKContextRef
封装了所有支持WebKit特殊用法的页面。此上下文的所有页面共享同一个“已访问链表”、local storage,preferences。
WKPageNamespaceRef
封装所有能互相运行脚本的页面(Encapsulates all pages that can script each other.)
WKPageRef
Basic unit of browsing. Stays the same as the main frame changes.
WKView[Ref]
Native view that hooks into the platform's toolkit. On Windows, this wraps a HWND. On the Mac, it inherits from NSView.
注意:此需求要求完全非阻塞式,这与之前的Webkit API并不一致。许多存在的Webkit API都不能以非阻塞式来实现。因此,我们需要Webkit2,我们也会利用此机会清理、简化那些API。
通知式的客户回调,例如didFinishLoadForFrame。这些类型的API通知使用者:发生了某件事,然而并不给他们机会去处理它。
策略式的客户回调,例如decidePolicyForNavigationAction。这些类型的API允许使用者有空时才对某个动作做处理,同时通过监听器对象把发生了某个动作这件事告知页面。
策略设置式,例如WKContextSetCacheModel, WKContextSetPopupPolicy。这些类型的API允许使用者选择预先定义的策略,不需要回调函数对UIProcess的参与。这些类型的API可能是一套枚举类型的特殊策略,或者是带通配符的字符串列表等。
注入的代码,例如WebBundle。当所有其他选择都失败了,这些代码可以进入WebProcess进程。当访问DOM时,这特别有用。目前,这种API还处于计划当中,并没有实现。
主要的API:
WKContextRef
封装了所有支持WebKit特殊用法的页面。此上下文的所有页面共享同一个“已访问链表”、local storage,preferences。
WKPageNamespaceRef
封装所有能互相运行脚本的页面(Encapsulates all pages that can script each other.)
WKPageRef
Basic unit of browsing. Stays the same as the main frame changes.
WKView[Ref]
Native view that hooks into the platform's toolkit. On Windows, this wraps a HWND. On the Mac, it inherits from NSView.
注意:此需求要求完全非阻塞式,这与之前的Webkit API并不一致。许多存在的Webkit API都不能以非阻塞式来实现。因此,我们需要Webkit2,我们也会利用此机会清理、简化那些API。
相关文章推荐
- PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
- phantomjs-1.4.1-linux-x86_64-dynamic.tar.gz - phantomjs - PhantomJS 1.4.1 Linux x86_64 (Dynamic build) - headless WebKit with JavaScript API - Google Project Hosting
- nw.js node-webkit系列(4)Native UI API 概述和应用规范
- nw.js node-webkit系列(9)Native UI API App的使用
- [WebKit]WebKit2 API解析
- Interface - phantomjs - API Reference - headless WebKit with JavaScript API - Google Project Hosting
- PhantomJS:基于WebKit、开源的服务器端JavaScript API
- Webkit之常用对象API梳理
- nw.js node-webkit系列(5)Native UI API Window的使用
- nw.js node-webkit系列(10)Native UI API Clipboard的使用
- webkit研究日记3:webkit api使用总结(如何打开webkit组件)
- android API for webkit
- PhantomJS:基于WebKit、开源的服务器端JavaScript API
- node-webkit教程(5)Native UI API 之Frameless window
- WebKit解析之API Boundary
- PhantomJS :一个基于 WebKit 的服务器端 JavaScript API。
- node-webkit学习(4)Native UI API 之window
- PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
- QTWebkit中的webkit/qt/api文档 - lotushy - 博客园
- 理解WebKit和Chromium: Content API和CEF3