chromium多进程架构 这部分是看文档总结的,没有实际读代码render process, 这个是多个blink或者webkit的进程,只是parse, layout浏览器进程,提供network stack和file IO。PLUG IN 的进程GPU 进程render process跟浏览器进程有交互,会给plug in 进程发指令,会通过share memory(gles2.0 instructions或...
WebKit与Blink工作流程以及显示页面 作为一个Render与Layout引擎,他们的工作步骤1 Parse HTML document,结果是把取到的TAG生成dom的nodes,存到dom tree中,DOM tree就是网页内容的tree。同时, style的数据也是在这里parse的,CSS和in style element。2 根据css和html里面的显示信息,对dom的node创建render tree. render...
一个完整的浏览器的功能分层 这一部分我不确定从哪里记录的1.The user interface - this includes the address bar, back/forward button, bookmarking menu etc. Every part of the browser display except the main window where you see the requested pag...
Android Webkit中,GL是如何执行到paintTextureWithBitmap 01-07 02:13:56.479 2647 2689 D CallStack: Neo callstack#00 pc 00185846 /system/lib/libwebcore.soWebCore::GLUtils::paintTextureWithBitmap(WebCore::TileRenderInfo const*, SkBitmap const&) ext...
以google 为例,google首页在android WebKit中加载与显示的整体过程 大致的执行过程,忽略了上层android webview部分与net statck加载资源void DocumentLoader::commitLoad(const char* data, int length)frameLoader->client()->committedLoad(this, data, length);void FrameLoaderClientAndroi...
Webkit中, HTML video标签创建renderVideo的过程 11-22 13:37:29.272 2533 2569 D CallStack: Neo callstack#00 pc 002163e6 /system/lib/libwebcore.soRenderVideo external/webkit/Source/WebCore/rendering/RenderVideo.cpp:6511-22 13:37:29.272 2533...
Webkit中video标签(MediaElement)创建mediaplayer的过程 11-22 13:37:15.487 2533 2569 D CallStack: Neo callstack#00 pc 0026396a /system/lib/libwebcore.soWebCore::MediaPlayerPrivate::create(WebCore::MediaPlayer*) /external/webkit/Source/WebKit/android...
Android Browser 在输入url之后,android Framework的Java部分完整的调用过程 //Neo, after input loading uri01-02 00:55:30.001 5178 5178 V TabControl: com.android.browser.TabControl.getCurrentTopWebView(TabControl.java:95)01-02 00:55:30.001 5178 5178 V Tab : com.andro...
Android Webkit 的JNI交互 chromium里面JNI的交互应该也类似,但是我忘记具体的,也懒得扒拉代码去找了,但是肯定跑不了System.loadLibrary这一步来加载对应的so,so里面有对应的Java接口。交互交互,就是双向的,java调用native, native调用java的,具体JNI如何实现的,我没有研究,这应该是java虚拟机来负责的。这里只查看两边如何互相建立联系(注册函数),说白了,就是一堆函数指...
简单回顾中断,IRQ 这里主要谈谈硬件相关的。Interrupt,中断听着很高大上,当年做嵌入的时候,一说发上来个中断刚开始也挺哆嗦的,后来工作中(当然工作也不是那么复杂)发现,基本只有一个原则,快速处理返回,一般就是发个消息就返回。为啥?中断就是硬件告诉CPU,我有个事要告诉你。至于CPU怎么处理这个事,硬件就管不了了。而CPU的事情很多,秒理万机啊,如果为了一个事情耗时太多,那会影响整个系统滴,所以一般来说,CP...
简单聊聊进程与线程 不管啥系统,基本都有线程与进程的概念,或者整个系统就是一个进程,里面所有的系统都是对应一个个线程,我印象里以前好像有做过这样的。但是无所谓了,基本原理一样的。每个进程都有自己的资源,例如数组啊,变量啊,说白了就是内存,不管是堆的还是栈的内存,这个资源不会与其他进程共享,或者说其他进程不会知道。如果想跟其他进程打招呼,那就要通过操作系统提供的进程间通讯机制来实现。同样的对线程也是,每个线程自己创...
WLAN on Android Broadcom, QCom Broadcom方案简单明了Broadcom的gitsvendor/Broadcom/wlan,wlan driver(dhd), it will build wlan.kohardware/Broadcom/wlanProvide firmware binsProvide driver interface for wpa_supplicantProvide libwifi-hal-...
MediaRouter的使用 这东西有点意思,首先,它不是创建出来的,MediaRouter有一个service,每个app进程是通过给getSystemService(Context.MEDIA_ROUTER_SERVICE); 拿到的一个MediaRouter,说白了就是一个跟MediaRouterService 交互的接口。什么bp, stub之类,不知道现在android这块改进到什么情况了。其次, 通过Media...
WML在chromium中实现的补充 忘记了,还有几个小的修改Source/core/editing/Editor.cppbool isSelectionInTextField(const VisibleSelection& selection){HTMLTextFormControlElement* textControl = enclosingTextFormControl(selection.start());...
在chromium中实现WML的支持 从KK开始,Google开始切换Web引擎了, androd webkit废弃,改为chromium了,但是前面运营商大爷要求的WML咋办?唉,硬着头皮开始把WML往chromium上搞呗.如何搞?采用最笨的方法,HTML相关的类被调用的地方过一遍,加上WML相对应的类。贴出来部分修改的地方,因为本来就是基于opensource的,所以不存在confidential的问题。看到修改的文件,大...
在Webkit中实现支持WML Webkit里面,WML作为过时的技术,早已不支持了,但是国内运营商要求必须支持,呵呵,客户要求就是天,再落后也要支持,所以把以前支持WML相关代码全部拿回来,再一点一点适配到新版本上。酸爽,一点一点读代码,debug,终于搞定了。Source/WebCore/css/CSSStyleSelector.cpp// Important: Intrinsic margins get added t...
WBMP in Chromium diff --git a/Source/platform/image-decoders/wbmp/WBMPImageDecoder.cpp b/Source/platform/image-decoders/wbmp/WBMPImageDecoder.cppindex a8ee7e6…88131e6 100644— a/Source/platform/image-decoders/wbmp/WB...
Create new lib for Chromium public class NativeLibraries {public static boolean USE_LINKER = false;public static boolean ENABLE_LINKER_TESTS = false;public static String[] libraries = {};public static final String[] LIBRARIE...
Callstack in chromium in webkit (blink), add chromium header #include <base/test/test_suite.h>in blink,+#include “wtf/Assertions.h”WTFReportError(FILE, LINE, WTF_PRETTY_FUNCTION, " Neo,data size %d, failed: %d",d...
HTTP get demo code HttpClient client = new DefaultHttpClient();HttpGet request = new HttpGet(url);HttpResponse response = client.execute(request);String html = “”;InputStream in = response.getEntity().getContent();...