【专业技术】 浏览器中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 条评论
登录 后参与评论

相关文章

来自专栏用户画像

Struts工作机制?为什么要使用Struts?

5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。

611
来自专栏Tech Talk

从CPU爆表问题排查谈Java性能监测之道

记一次Java线上服务器CPU过载问题的排查过程,详解排查过程中用到的Java性能监测工具:jvisualvm、jstack、jstat、jmap。

59010
来自专栏CSDN技术头条

Redis错误配置详解

Redis提供了许多提高和维护高效内存数据库使用的工具。在无需额外配置应用层的前提下,Redis独特的数据类型、指令和命令调优就可以满足应用的需求,但是错误的配...

21410
来自专栏游戏开发那些事

python+pygame游戏开发之使用Py2exe打包游戏

最近在用python+pygame 开发游戏,写完以后在分享给朋友玩的时候遇到了很大的问题,只有搭建了环境才能运行python脚本。

1552
来自专栏Django Scrapy

文件系统格式各有哪些优点和缺点?

1、什么是NTFS-新(N)技术(T)文件(F)系统(S)? 想要了解NTFS,我们首先应该认识一下FAT。FAT(File Allocation Table)...

31911
来自专栏互联网杂技

为何webpack风靡全球?三大主流模块打包工具对比

前端的模块系统经历了长久的演变,对应的模块打包方案也几经变迁。从最初简单的文件合并,到AMD 的模块具名化并合并,再到browserify将CommonJS 模...

3808
来自专栏北京马哥教育

RabbitMQ源码解析前奏--partitions

一、集群与网络分区 RabbitMQ集群不能很好滴容忍网络分区。如果你正在考虑跨越广域网部署集群,则你最好使用federation或者shovel。 然而事故发...

2934
来自专栏Java面试通关手册

可能是全网把 ZooKeeper 概念讲的最清楚的一篇文章

相信大家对 ZooKeeper 应该不算陌生。但是你真的了解 ZooKeeper 是个什么东西吗?如果别人/面试官让你给他讲讲 ZooKeeper 是个什么东...

1904
来自专栏WeTest质量开放平台团队的专栏

Linker加载so失败问题分析

原文链接:https://wetest.qq.com/lab/view/421.html

1271
来自专栏LanceToBigData

JavaWeb(二)会话管理之细说cookie与session

前言   前面花了几篇博客介绍了Servlet,讲的非常的详细。这一篇给大家介绍一下cookie和session。 一、会话概述 1.1、什么是会话?   会话...

2417

扫码关注云+社区