
浏览器
文章平均质量分 77
csshell2002
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
blink渲染知识(二) - webcore rendering basics
Dom tree和Rendertree是独立的tree.Render tree由renderobject构成,并且renderobject并不和DOMnode一一对应。有些dommode可能没有renderobject.比如有些节点的css属性标记为display:none不显示。Domtree的节点可以通过renderer()函数得到对应的rendertree中的renderOb翻译 2015-09-09 11:29:47 · 387 阅读 · 0 评论 -
blink渲染知识10 - render tree的构建点
何时在哪里thread构建的,先找到构建rendertree的code.有RenderTreeBuilder类。上面1.16rendering basics中讲了,RenderTree是通过对dom节点执行attach操作建立的。在dom被建立时,对其节点执行attach操作,即可创建renderobject,建立rendertree.当docuemnt关闭,或从dom中移除一个节原创 2015-09-09 11:40:02 · 347 阅读 · 0 评论 -
blink渲染知识12 - 硬件渲染之触发beginframe
ThreadProxy::BeginMainFrame会触发renderlayer tree中各layer的paint.那么谁触发的BeginMainFrame?ThreadProxy::ScheduledActionSendBeginMainFrame-> Proxy::MainThreadTaskRunner()->PostTask(FROM_HERE,base::原创 2015-09-09 11:43:26 · 1208 阅读 · 0 评论 -
学习广告过滤
1 Adblock plus rules1.1 Filter rulesHardcoded rule,直接写个网址,可以使用wildcasts.exception rules: “@@http://example.com”,这个网站的所有内容都不block标记规则的开头和结尾:|, “swf|”,匹配结尾是swf的url.“abc” 等价于“*abc*”原创 2015-09-09 12:02:16 · 513 阅读 · 0 评论 -
blink渲染知识16 - raster干了什么
我们知道,在childcompositor里,implthread里,pendingtree被raster之后,才会被activate成activetree.而且raster任务由一些rasterthread执行,那么这些raster操作干了什么?看看这篇chromium的官方英文文章:https://www.chromium.org/developers/design-documen原创 2015-09-09 11:49:01 · 1327 阅读 · 0 评论 -
webkit之layout
http://blog.chinaunix.net/uid-580722-id-2090487.html分类:本文是在转载的文章基础上,增加了一些自己的见解。WebKit在渲染页面之前,需要确定各个元素的位置、大小,而这个过程就是layout(布局)。下面,我们对layout的主要过程进行一番说明。一、FrameView::layout方法FrameView作为与View相转载 2015-09-09 11:28:28 · 195 阅读 · 0 评论 -
blink渲染知识四 - layout basics
Posted by DaveHyatt onFriday, August 10th, 2007 at 2:01 pmWhen renderers are first created and added to the tree, they haveno position or size yet. The process by which all of the boxes havetheir翻译 2015-09-09 11:33:25 · 327 阅读 · 0 评论 -
fiddler给手机抓包
pc下载fiddler,然后打开,设置里面的connections,开启允许remotepc computers to connect.重启fiddler.然后手机的wifi里面设置代理为pc的ip,端口默认为8888.然后手机上网,就可在fiddler里面抓到包了。原创 2015-09-09 10:49:03 · 165 阅读 · 0 评论 -
blink里layout的几个触发点
当文档加载完毕后的触发FrameView::Layout()的一个callstack:#0 WebCore::FrameView::layout(this=this@entry=0x2e61c500, allowSubtree=allowSubtree@entry=true) at../../third_party/WebKit/Source/core/frame/FrameVie原创 2015-09-09 11:26:17 · 474 阅读 · 0 评论 -
blink渲染知识6 - floats
Posted by DaveHyatt onWednesday, August 15th, 2007 at 4:33 pmA float is a renderer that is designed to shift all theway to the left side or all the way to the right side of a paragraph.The转载 2015-09-09 11:35:31 · 258 阅读 · 0 评论 -
RefPtr, passRefPtr, adoptRefPtr, OwnPtr
常用的智能指针RefPtr, passRefPtr, adoptRefPtr, OwnPtr的用法原创 2015-09-09 10:39:36 · 301 阅读 · 0 评论 -
FrameView::layout干了什么
FrameView::performLayout-》如果该FrameView对应的是Document的mainframe,那么就取出其RenderView,并调用RenderView::layout(),如果不是mainframe,那么就取出subtree root,我理解应该是renderobject tree中某个子树layout,我们不可能每次都layout整棵树。Ren原创 2015-09-09 11:27:06 · 417 阅读 · 0 评论 -
blink渲染知识7-webview和android的交互
http://blog.csdn.net/hongbomin/article/details/18499295WebView本身是一个layout, 他和android的view系统交互的方法是:当webview本身内容有变化时,需要更新到android系统时,WebView的invalidate函数被调用,实际的调用栈:BrowserViewRenderer.cc中->clien转载 2015-09-09 11:36:34 · 649 阅读 · 0 评论 -
blink渲染知识5 - absulte/fixed and relative positioning
Posted by DaveHyatt onTuesday, August 14th, 2007 at 1:32 pmThe position property in CSS can be used to position anobject relative to a specificcontaining block. It has fourvalues: ‘static’, ‘abs转载 2015-09-09 11:34:26 · 858 阅读 · 0 评论 -
通过minidump查看crash的callstack
1.1 如何查看callstack需要找到带debugsymbol的so有minidump或者callstack使用minidump_stackwalk可以解析minidump文件并生成callstack文本文件使用addr2line可以输入一个so文件和一个地址从而解析得到symbol信息如果没有minidump,我们自己调试得到了stack,那么原创 2015-09-09 10:47:15 · 614 阅读 · 0 评论 -
blink渲染知识14 - 阶段总结
总结一下执行流程。4.5.0上,ui线程,impl线程就是执行childcompositor的ui线程。1.ui线程onDraw=>awContents.onDraw会调用chilidcompositor来使用其activelayer tree合成一个compositorframe,也就是调用BrowserViewRender::onDrawHW.并向webcore原创 2015-09-09 11:46:23 · 463 阅读 · 0 评论 -
blink渲染知识三- blocking and inlines
RenderBlock表明一个物体代表一个block,他内部的对象要被竖着排列。他内部的对象要么都是RenderBox,要么都是RenderLine.RenderLine表明一个物体,这个物体从其外部来看,是要被放置到一个line内部的。他内部的物体必须全都是RenderLine.为了满足上述原则,webkit会手动加入一些renderobject。css标准里讲,一个Object的i翻译 2015-09-09 11:32:18 · 366 阅读 · 0 评论 -
chromium网络栈学习
内容目录1 Overview 31.1常用工具 61.2 SSL,TLS 61.2.1常识 61.2.2 browser代码中ssl版本的选择以及握手的过程 71.3额外需要细节性分析的部分: 201.4 http协议 201.4.1 http authencation 201.4.1.1 basic authentication 201原创 2015-09-09 11:52:20 · 2269 阅读 · 0 评论 -
chromium+blink网页加载流程
内容目录1加载网页的大致过程 12加载网页详细过程 12.1.Browser准备加载 12.2.Render准备加载 22.3.browser的实际加载工作 32.3.1 browser开始加载request 32.3.2 http层的工作 32.3.2.1收到responseheader 42.3.2.2收到response原创 2015-09-09 11:54:08 · 1021 阅读 · 0 评论 -
如何分析sqlite数据库文件
adb pull/data/data/mobi.mgeek.TunnyBrowser/databases/webviewCookiesChromium.db然后sqlite xxx.db在命令行状态下:.dump就会显示本db所有内容。原创 2015-09-09 11:07:09 · 211 阅读 · 0 评论 -
renderobject相关类的继承关系
RenderObject * RenderText * RenderBR * RenderCombineText * RenderCounter * RenderQuote *RenderTextFragment * RenderWordBreak * RenderLayerModelObject转载 2015-09-09 11:09:14 · 181 阅读 · 0 评论 -
webkit内部的WebView, page, WebFrame, Frame, document, frameView, RenderView, RenderFrame, Widget的关系和构建
webkit内部的WebView,page, WebFrame, Frame, document, frameView, RenderView, RenderFrame,Widget的层级关联关系以及构建过程Webcore内部:Page, Node, Element, Document, SettingsWebKit接口层:WebView(WebViewImpl原创 2015-09-09 11:21:30 · 1676 阅读 · 0 评论 -
blink渲染知识8 - 软渲染
我觉的软件渲染的关键点:ui线程软件raster,并且软件合成。http://blog.csdn.net/hongbomin/article/details/17931223摘要渲染过程可以形象地理解为用一支笔将特定的内容在一张纸上画出来,然后呈现在屏幕上,而对笔和纸张的选择决定了渲染的方式。在Chromiumon Android: 认识ChromiumWebView一文中我们提到转载 2015-09-09 11:38:09 · 375 阅读 · 0 评论 -
打开一个tab到加载完成的流程
分析了blink内核从打开tab到加载网页的代码流程原创 2015-09-09 10:00:38 · 1028 阅读 · 0 评论 -
WebView,WebFrame, Frame, FrameView, Document, Page的关系以及FrameLoader,DocumentLoader
研究webcore里几个重要概念的关系, WebView,WebFrame, Frame, FrameView, Document, Page的关系以及FrameLoader,DocumentLoader原创 2015-09-09 10:29:13 · 950 阅读 · 0 评论 -
blink渲染知识9-chromium webview硬件渲染的演进
4.4的硬件渲染关键点:独立线程使用gpu rasterrize,并且ui线程合成时,也是在gpu上操作数据。http://blog.csdn.net/hongbomin/article/details/40896313原创文章,转载请以链接形式注明原始出处为http://blog.csdn.net/hongbomin/article/details/40896313摘要:从Andro转载 2015-09-09 11:39:07 · 597 阅读 · 0 评论 -
blink渲染知识11 - renderlayer tree的构建点
在收到了数据后,网页加载完成,创建rendertree时,也会对应创建renderlayer.创建renderlayer的Callstack:#0 WebCore::RenderLayer::RenderLayer (this=0x69014000,renderer=0x69004000, type=) at../../third_party/WebKit/Source/cor原创 2015-09-09 11:40:59 · 421 阅读 · 0 评论 -
blink渲染知识13- 硬件渲染之beginframe的处理以及一些后续步骤
执行线程是Chrome_InProcRenderThread,应该就是webcore线程。下面是webcore线程执行paint操作的内容。ThreadProxy::BeginMainFrame(->layer_tree_host()->AnimateLayers( //layer的动画计算layer_tree_host()->Layout(); //从新计算layoutboo原创 2015-09-09 11:45:21 · 1563 阅读 · 0 评论 -
blink渲染知识15- gl命令的生成和处理(command buffer)
看看下面的stack:是在render线程合成时的callstack,主要是处理compositorframe中的renderpass里面的quard,并把它们draw到gl的context上面。我们主要研究从此开始的gl的操作的过程。他调用gl操作开始绘制:#0Init (_size=5,_command=299, this=0x85f00730) at../..原创 2015-09-09 11:47:29 · 798 阅读 · 0 评论