【专业技术】 浏览器中Webkit2的API介绍

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。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-05-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Spark学习技巧

Kafka源码系列之分组消费的再平衡策略

一,Kafka消费模式 从kafka消费消息,kafka客户端提供两种模式: 分区消费,分组消费。 分区消费对应的就是我们的DirectKafkaInputDS...

5606
来自专栏令仔很忙

UML之状态图

  状态:是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况。

691
来自专栏高爽的专栏

XSS攻击及防御

 XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽...

2520
来自专栏小巫技术博客

App性能优化浅谈

953
来自专栏码代码的陈同学

异常设计实践

前段时间结合SpringCloud网关处理异常写了篇 异常处理实践,侧重于异常的处理。作为强迫症患者,本次撰写下如何进行异常设计并提供具体的代码。

46918
来自专栏醒者呆

EOS技术研究:合约与数据库交互

2155
来自专栏腾讯大讲堂的专栏

设计模式笔记

| 导语 “计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决” “Any problem in computer science can be so...

4368
来自专栏NetCore

一个让人遗忘的角落—Exception(二)

在上一篇中"一个被人遗忘的角落--Exception(一)"中,跟大家简单介绍了一下Exception,也使大家充分的了解了Exception管理在一个项目中的...

1769
来自专栏Java社区

Java核心技术讲解学习

1113
来自专栏python3

python3--基础总练习题

3、利用 python 打印前一天的本地时间,格式为‘2018-01-30’(面试题)

1393

扫码关注云+社区