WebKit
Horky
爱探索、爱技术!简单地快乐着!
展开
-
Webkit中HTML5 Video的实现分析 (二) - MediaPlayerFactory & RenderVideo的绘制操作
MediaPlayerFactoryMediaPlayerFactory像是一个解码库一样,初始化时,各个可用的播放器(MediaPlayerPrivate)向它注册。当需要解码时,由它给出一个合适的播放器(呼叫MediaPlayerPrivate::constructor,即MediaPlayerPrivate::create)创建一个实例[由MediaPlayer:: loadWith原创 2012-08-14 00:11:51 · 14114 阅读 · 2 评论 -
HTML5 Video/Audio网页信息汇总
基础: HTML5视频简介 (CN,2012) Introduction to HTML5 video - Opera Dev (En,2010) 所有你应该了解的有关HTML5 Video和Audo的那些事 (En,2010) Working with Media in HTML5 Getting Started - Navigating H原创 2012-07-30 23:19:15 · 2926 阅读 · 0 评论 -
10件开发者和老板都要知道的HTML5的那些事
1. HTML5 标签没什么大不了的.理解这句话你需要先了解HTML 5。它仅仅是一个html4.01的一个升级版本?或者是它是完全不同的新版本(无处不在的大肆宣传可能会让你有这种感觉)?答案是两种理解都有部分正确。HTML 5包括许多简化和附加的网页标记,所以称它为升级版本也是公平的(虽然也有一些大的补充标签,如视频和画布)。但是,HTML 5也可以被认为是一个技术组合,包括翻译 2012-07-27 00:11:49 · 4184 阅读 · 0 评论 -
将Chrome Extension加到快捷菜单中
转载请注明出处:http://blog.csdn.net/horkychen接着上一篇Chrome插件的实作。Step 1. 修改manifest.json, a. 增加权限"contextMenus"和"notifications" contextMenus -> 表示插件要操作快捷菜单 notifications -> 表示插件将弹出消息通知 (处原创 2012-07-17 13:05:53 · 3597 阅读 · 1 评论 -
WebKit网页布局实现之主要架构篇
转自: http://www.fanzehua.com/blog/15.html在有了对CSS网页布局标准及相关概念的认识之后,我们可以更加深入的理解WebKit究竟是如何实现其网页布局,同时实现对CSS布局标准的支持。毕竟标准归标准,要高效的实现这些标准,不同的实现肯定有其不同的实现方式,就像不同的Web服务器对HTTP协议标准的实现有所不同一样,当然不同的实现也会增加一些自身特有的属性转载 2012-08-06 23:35:11 · 2409 阅读 · 1 评论 -
iOS上Web开发之远端调试
转载请注明出处:http://blog.csdn.net/horkychen浏览器上的Debugger,基本由JavaScript写成,有兴趣可以下个FireBug Lite研究一下。PC端Debug很方便,也有远程调试,手机上的浏览器也有支持,原理相同。今天下午了解了一下iOS上Safari上远端调试的资料,还挺多。归纳一下: 1. 工具 iWebInspector原创 2012-06-08 22:14:15 · 8296 阅读 · 1 评论 -
深入分析WebKit之Layout Tests
转载请注明出处:http://blog.csdn.net/horkychen来自内部一个分享PPT整理过程的知识点,没有特别组织。 Layout Test主流程:运行的指令: run-webkit-tests [选项] 测试脚本文件或所在的目录 主要的参数有: --verbose 显示详细的信息 --no-bui原创 2012-07-04 21:29:29 · 6411 阅读 · 1 评论 -
[WebKit]为JavaScript Binding添加新DOM对象的三种方式及实作
转载请注明出处:http://blog.csdn.net/horkychen 一.基础知识首先WebKit IDL并非完全遵循Web IDL,只是借鉴使用。WebKit官网提供了一份说明(WebKitIDL),比如Web IDL称"operation”(操作), 而WebKitIDL称为"method"(方法), 另外Web IDL也不像WebKitIDL那样将属性和参数分开。原创 2012-06-06 22:34:10 · 13567 阅读 · 8 评论 -
Windows下Debug模式的检测和OutputDebugString
对于应用程序是否处于某个用户调试模之下,可以使用如下API进行检测: BOOL WINAPI IsDebuggerPresent(void); (使用CheckRemoteDebuggerPresent查看特定进程)使用它可以使得程序改变Debug模式下的行为。比如Webkit只有在Debug模式下才会输出Debug信息。扩展:调试与反调试 http://www.pr原创 2012-05-22 12:05:36 · 3042 阅读 · 0 评论 -
TCMalloc:线程缓存的Malloc [Webkit有其应用]
作者:Sanjay Ghemawat, Paul Menage原文翻译:ShiningRayTCMalloc要比glibc 2.3的malloc(可以从一个叫作ptmalloc2的独立库获得)和其他我测试过的malloc都快。ptmalloc在一台2.8GHz的P4机器上(对于小对象)执行一次malloc及free大约需要300纳秒。而TCMalloc的版本同样的操作大约只需要转载 2012-05-23 10:00:51 · 2482 阅读 · 1 评论 -
Webkit中HTML5 Video的实现分析(五) - WebKit中视频事件的传递
HTML的每个元素都可以让JavaScript在某些事件发生时,进行处理。就比如onclick="clickButton()"之类的属性设定。像下面这篇博客所讲的一样,在WebKit中每个元素都有其对应的JS绑定的实现:[WebKit]为JavaScript Binding添加新DOM对象的三种方式及实作对于视频元素,可以对应看看JSHTMLMediaElement原创 2012-10-22 00:15:41 · 7917 阅读 · 1 评论 -
WebKit模块化分析
模块化 软件的首要技术使命是管理复杂度(Complexity)。这是>中的一个标题。软件本质性困难的根源都在于复杂性。Dijkstra指出没有谁的大脑能容得下一计算机程序。正如社会进步催生社会分工一样,软件行业也自然而然地发展出来了模块化方法,将整个系统分解为多个子系统来降低问题的复杂度,分而治之。它有两个主要的目的: 1. 分工 (角色与责任) 2. 信息隐藏 (原创 2013-01-03 22:51:17 · 14160 阅读 · 12 评论 -
WebKit自动化回归测试之LayoutTest实践 (超时问题的处理)
转载请注明出处:http://blog.csdn.net/horkychenWebKit的回归测试是由一组脚本构成的Layout Tests,测试内容是测试的网页和标准结果(Baseline)。其测试脚本执行的基本方式示意如下: *脚本会启动http服务器以支持网页加载,在此不做描述。而每个网页里面都含有测试用的JavaScript脚本, 主要因为有一些DOM对象被动态原创 2012-06-29 22:57:29 · 4957 阅读 · 2 评论 -
Safari插件机制研究(一)
Overview在Safari里有一个单例对象WebPluginDatabase负责管理本地的插件,每个plugin对应一个WebBasePluginPackage,存放在plugins里。在第一次调用sharedDatabase()会遍历当前系统有哪些可用的插件,并加到列表中管理。每个插件有其支持的MIME types和文件扩展名(Extension),在加载完成后,还会向Web原创 2013-06-05 18:18:04 · 5645 阅读 · 0 评论 -
基本垃圾回收算法
原文地址:ITeye 基本垃圾回收算法可以从不同的的角度去划分垃圾回收算法:按照基本回收策略分引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 标记-清除(Mark-Sweep):转载 2013-06-11 22:19:07 · 1640 阅读 · 0 评论 -
为什么V8引擎这么快?
转载请注明出处:http://blog.csdn.net/horkychenGoogle研发的V8 JavaScript引擎性能优异。我们请熟悉内部程序实现的作者依源代码来看看V8是如何加速的。作者:Community Engine公司研发部研发工程师Hajime MoritaGoogle的Chrome中的V8 JavaScript引擎,由于性能良好吸引了相当的注目。它是G翻译 2012-07-18 23:47:01 · 65757 阅读 · 10 评论 -
Webkit中HTML5 Video的实现分析(六) - Safari视频机制分析
Safari中的视频相关操作封装在QuickTime Plugin里面,存放于/Library/Internet Plugin目录下。 下图是相关类的class diagram:其中的QuickTime Plugin是通过已淘汰的Apple之前定义的Webkit Plugin协议来实现的,而不是现在支持的Netscape API的机制。可以参考以下文档:原创 2012-12-17 23:48:06 · 5131 阅读 · 3 评论 -
JavaScript核心指南 (ECMA-262-3)
本文非常详细的说明了JavaScript的核心概念,也是理解JavaScript解释器的重要基础。中文版本可以看这里,但不一定是最新的内容。所以下面放了英文版本供学习使用。原文地址点这里。This note is an overview and summary of the “ECMA-262-3 in detail” series. Every section conta转载 2013-05-11 07:50:49 · 5457 阅读 · 0 评论 -
[WebKit]遭遇Mac OS私有API
WebKit并不是完全开源的, Apple封装了一部代码在一个静态库(libWebKitSystemInterfaceXXXX.a)中,并没有提供源代码。而且不同版本的OS (包括iOS),会有特定的版本。这就是我今天从分析中了解到的, 觉得过程比较有趣,记录一下。1. 在WebKit中有这样一段源代码 (Laguage.mm):static String httpSt原创 2013-05-09 22:49:55 · 3726 阅读 · 2 评论 -
JavaScriptCore, WebKit的JS实现(一)
目前,JavaScript的实现已经成为编译领域的一个重要组成部分。主要包括Google的V8, Mozilla的SpiderMonkey, 还有Webkit使用的JavaScriptCore。 jsc:WebKit的JS引擎( js for webkit)JavaScriptCore (JSC)正是WebKit的JavaScript实现。 起初,JavaScriptCore是翻译 2012-08-21 01:03:36 · 11275 阅读 · 1 评论 -
[WebKit]浏览器的加载与页面性能优化
非常棒、非常系统的一份资料,值得阅读!原文来自百度泛用户体验。 作者:nwind本文将探讨浏览器渲染的loading过程,主要有2个目的:了解浏览器在loading过程中的实现细节,具体都做了什么研究如何根据浏览器的实现原理进行优化,提升页面响应速度由于loading和parsing是相互交织、错综复杂的,这里面有大量的知识点,为了避免过于发散本文将不会对每个细节都转载 2013-05-16 09:15:58 · 5695 阅读 · 1 评论 -
提高编译效率:Unity Builds
最近,我发现了一个方法来减少在C/C++项目的编译时间,就是所谓的Unity Builds(UB)。这项技术非常简单, 通过减少磁盘访问的数量而减少了编译时间。在编译过程中include的文件会被多次访问, 每一个编译单元(Translation Unit,指的是编译出一个object文件的过程)都会访问到。除非你用一个固态磁盘,不然一般的硬盘一定会拖慢编译过程。在示例的项目中翻译 2013-04-03 00:18:41 · 4662 阅读 · 0 评论 -
优化解耦的设计思考
基于开源项目进行开发已经越来越普遍,WebKit和Android都有很多的深度定制的版本。对这样庞大工程修改的逻辑越来越多,日后想要同步升级就要面对更大的复杂性和风险。跟随开源项目同步升级,寻求上层的创新和优化才比较适合未来的产品开发策略。深度定制的方式会遭遇越来越多的尴尬。修改是必要的,但如何最大化地降低耦合和隔离对原生代码逻辑的修改?逻辑碎片的风险也许大家都体会过。以下是我对一原创 2013-04-01 23:17:15 · 3385 阅读 · 0 评论 -
WebKit的JS Binding解析
转载请注明出处:http://blog.csdn.net/horkychenWebCore与JavaScriptCore之间使用了Proxy模式,WebCore为JSC提供了一层binding层做为封装。Webkit参照W3C Web IDL(之前称为Language Bindings for DOM Specifications)描述DOM接口,但不完全相同。其完整的名称为WebKi原创 2012-05-31 23:43:09 · 12363 阅读 · 4 评论 -
[WebKit]WebKit2多进程机制的解析
在WebKit模块化分析>>中说到WebKit2中的多进程模型。多进程模型已经是浏览器的基本架构要素,下面展开分析一下WebKit2中的多进程模型。协作决定接口,确立责任分工后,对于模块或系统间最重要的事莫过于接口定义,而且是有着简洁明确的定义。对于WebKit2中三个进程中的交互也是相当频繁和多样,如果使用传统的查表法对应解析执行,就会面临巨大的维护成本。WebKit2使用了En原创 2013-02-25 22:54:58 · 7215 阅读 · 1 评论 -
开发者应当了解的WebKit知识
对一些开发者而言,WebKit就是一个黑盒子。丢进去HTML、CSS、JS等一连串的东西,而WebKit就能变魔术一般显示出一个很棒的网页出来。实际上,正我的同事IlyaGroriks提到的: WebKit不但是白盒,而且是一个开放的白盒。让我们花点时间来理解以下这些问题:什么是WebKit? 什么不是WebKit? 浏览器是如何使用WebKit的? 为什么WebKit分翻译 2013-03-02 22:46:22 · 71752 阅读 · 6 评论 -
[WebKit]WebKit2 API解析
这里是对上一篇>的进一步展开。先从API层开始。API概览主要类图WebKit提供了灵活的回调机制用来支持客户端与内核的交互,在API中有一些Set Client类的函数,Client一般就是用于注册针对某一功能的回调函数。如向WKContext注册history item处理的回调函数,就会使用下面这个结构(WKContext.h):struct WKCo原创 2013-02-18 23:44:35 · 10879 阅读 · 0 评论 -
JavaScriptCore内存分配的战争
原文来自:http://webkit.sed.hu/content/war-allocators-javascriptcore-another-participant由zoltan.horvath发表于02/22/2010,虽然现在的状况已经不同了,但还是有一定的参考价值。 世界上有很多的自定义内存分配库,让我们尝试下另一个后起之秀,它就是DLMalloc, 由Doug L翻译 2012-06-01 00:32:49 · 4581 阅读 · 0 评论