- 博客(16)
- 资源 (1)
- 收藏
- 关注

原创 WebKit中CSS处理流程(一)
1 概述本文主要以CSS加载,解析和匹配计算的完整流程为主线, 描述了Webkit内核中样式处理相关的各个处理模块. 主要包括: 1) CSS的解析流程; 2) 样式表的收集处理过程; 3) RenderStyle的样式匹配的计算流程; 4) 匹配样式的应用。1.1 类型mappedElement:一些可以影响CSS ComputedStyle的html元素。举例:HTML
2013-06-04 20:12:35
3335

原创 Core Foundation对象的内存管理原则
问题是由类似这么一段代码引起的:CGColorSpaceRef colorspace = CGImageGetColorSpace(image); // "Get" colorspaceCGContextRef context = CGBitmapContextCreate(NULL, width, height, CGImageGetBitsPerComponent(image),
2013-05-22 20:00:32
2239

翻译 Viewport那些事(一)
这段时间一直在看viewport相关的内容,打算写一个小系列,前两篇是翻译的网上一个写得很不错的viewport文章,主要介绍viewport的基本概念,相关的javascript结构。概念:设备像素和CSS像素 需要了解的第一个概念是CSS像素,以及它和设备像素之间的区别。 设备像素由你的设备决定,并且可以通过screen.width/height来获
2013-04-24 20:54:38
1895

翻译 IOS调试技巧-崩溃定位
如果你的程序崩溃了,而你又恰好没有捕获异常,那么你的控制台可能会输出如下内容:2013-03-13 13:30:10.186 Picross[43233:1303] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[AppDelegate cras
2013-03-28 20:36:38
1619

原创 Delegate的IMP缓存
在objective-c中,所有的[receiver message:...]方法调用最终都会以obj_msgSend(recevier, @selector(message), …)的形式执行,这相比于c/c++的直接调用多少会有点影响,《深入分析 objc_msgSend》这篇文章主要分析了objc_msgSend具体需要执行的操作和可能的实现源码。 在WebKit的源码中就使用了
2013-03-27 16:20:11
1850

原创 IOS中8位图的颜色处理
图片格式简介 RGB1、RGB4、RGB8都是调色板类型的RGB格式,在描述这些媒体类型的格式细节时,通常会在BITMAPINFOHEADER数据结构后面跟着一个调色板(定义一系列颜色)。它们的图像数据并不是真正的颜色值,而是当前像素颜色值在调色板中的索引。CGImage 在IOS中,进过处理的图片数据会被保存在CGImage对象中,而8位图的调
2013-03-21 19:24:29
2682

翻译 iOS中后台运行
在iOS 4及以后的系统中,多任务机制允许应用程序即使在用户切换到其他应用程序之后继续在后台执行,并且仍然会尽可能地节省电量。大多数应用程序在进入后台之后就会被移到挂起状态。只有那些为用户提供重要服务的应用程序被允许继续执行更多的时间。 当然,你被鼓励尽量避免在后台执行并且让你的应用程序进入挂起状态。如果你发现你需要执行一些后台任务,这里有一些指导:你需要实现至少一种用户服
2013-03-19 20:46:59
5872

原创 WebKit中的智能指针
智能指针的实现原理智能指示通常是通过引用计数器来自动维护对象的引用情况。引用计数跟踪该类有多少个对象共享同一指针。每次通过adoptRef函数创建智能指针时将引用计数置为1;当对象被另一个智能指针引用时增加与之相应的引用计数;对智能指针进行赋值时,赋值操作符减少左操作数所指对象的引用计数(如果引用计数为减至0,则删除对象),并增加右操作数所指对象的引用计数;调用析构函数时,析构函数
2013-03-19 19:28:51
2025
原创 E: Unable to correct problems, you have held broken packages.的解决方法
更换软件源,一个不行再换一个
2013-07-02 17:41:06
7791
原创 WebKit中CSS处理流程(四)
注:WebKit在115097版本中将CSSStyleSelector重命名为StyleResolverhttp://trac.webkit.org/changeset/1150974 RenderStyle的计算图4.1 样式计算相关的类图4.1 样式计算的总体流程 RenderStyle的计算是在CSSStyleSelector::styleF
2013-06-07 21:59:30
2375
原创 WebKit中CSS处理流程(三)
注:WebKit在115097版本中将CSSStyleSelector重命名为StyleResolverhttp://trac.webkit.org/changeset/1150973 样式表的收集和处理图3.2 样式表的收集等处理相关的类图3.1 样式表的收集 在m_sheet生成完毕之后,都会调用checkLoaded方法,这个过程会通知拥有m
2013-06-05 23:54:26
2829
原创 WebKit中CSS处理流程(二)
2 CSS加载解析流程 图2.1 解析相关的类图2.1 CSS样式解析的入口 CSS样式表解析的入口是从HTML解析到相应的样式元素开始的,如和元素。 html的解析流程主要分为词法解析和语法解析,解析过程主要由HTMLDocumentParser::pumpTokenizer函数推动,它会去调用HTMLTokenizer::nextToken函数来进行词
2013-06-04 20:20:06
3998
原创 Viewport那些事(四)
meta viewport 为了更好地方便网页作者在移动浏览器上设置合适自己网页的viewport,Apple在meta标签中引入了viewport属性,相关的介绍可以看这里:《Using the viewport》 http://developer.apple.com/library/ios/#documentation/AppleApplication
2013-05-05 11:44:25
2555
原创 Viewport那些事(三)
再谈layout viewport 根据前面的介绍,对于桌面浏览器来说,可以认为viewport的大小始终等于窗口的大小,并且是以CSS像素为单位,document.documentElement.clientWidth/Height和window.innerWidth/Height这两对属性的区别仅仅在于前者不包含滚动条的大小而后者包含。如果用户放大网页,那么以CSS像素
2013-04-25 19:52:32
1773
翻译 Viewport那些事(二)
移动浏览器上的问题 移动浏览器和桌面浏览器最明显的区别就是屏幕大小。移动浏览器显示为桌面浏览器设计的网页效果通常不理想;要么必须放大才能看清,要么只显示网页的一部分来适应屏幕。 移动设备的屏幕比桌面设备的小得多,假设是400px宽。 这里最重要的问题在CSS上,尤其是viewport的属性,如果我们将桌面浏览器的模式复制过来,样式会变的非常古怪。
2013-04-24 21:08:39
2058
转载 深入分析 objc_msgSend
原文:http://vagase.me/blog/dig-objc-msgsend/在Objective-C中,所有的[receiver message]都会转换为objc_msgSend(receiver, @selector(message));(Objective-C Runtime)。所以相比c/c++这势必是有性能影响,下面就分析objc_msgSend源码看看这个cos
2013-03-27 13:47:20
8932
MiniBrowser
2013-04-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人