- 博客(42)
- 收藏
- 关注
原创 chromium多进程架构
这部分是看文档总结的,没有实际读代码render process, 这个是多个blink或者webkit的进程,只是parse, layout浏览器进程,提供network stack和file IO。PLUG IN 的进程GPU 进程render process跟浏览器进程有交互,会给plug in 进程发指令,会通过share memory(gles2.0 instructions或...
2019-08-28 16:26:14 276
原创 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...
2019-08-28 14:51:21 450
原创 一个完整的浏览器的功能分层
这一部分我不确定从哪里记录的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...
2019-08-28 14:32:26 590
原创 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...
2019-08-28 14:17:08 222
原创 以google 为例,google首页在android WebKit中加载与显示的整体过程
大致的执行过程,忽略了上层android webview部分与net statck加载资源void DocumentLoader::commitLoad(const char* data, int length)frameLoader->client()->committedLoad(this, data, length);void FrameLoaderClientAndroi...
2019-08-28 14:13:21 250
原创 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...
2019-08-28 14:06:39 363
原创 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...
2019-08-28 13:56:48 460
原创 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...
2019-08-28 13:54:06 234
原创 Android Webkit 的JNI交互
chromium里面JNI的交互应该也类似,但是我忘记具体的,也懒得扒拉代码去找了,但是肯定跑不了System.loadLibrary这一步来加载对应的so,so里面有对应的Java接口。交互交互,就是双向的,java调用native, native调用java的,具体JNI如何实现的,我没有研究,这应该是java虚拟机来负责的。这里只查看两边如何互相建立联系(注册函数),说白了,就是一堆函数指...
2019-07-30 14:31:25 192
原创 简单回顾中断,IRQ
这里主要谈谈硬件相关的。Interrupt,中断听着很高大上,当年做嵌入的时候,一说发上来个中断刚开始也挺哆嗦的,后来工作中(当然工作也不是那么复杂)发现,基本只有一个原则,快速处理返回,一般就是发个消息就返回。为啥?中断就是硬件告诉CPU,我有个事要告诉你。至于CPU怎么处理这个事,硬件就管不了了。而CPU的事情很多,秒理万机啊,如果为了一个事情耗时太多,那会影响整个系统滴,所以一般来说,CP...
2019-07-18 11:34:46 206
原创 简单聊聊进程与线程
不管啥系统,基本都有线程与进程的概念,或者整个系统就是一个进程,里面所有的系统都是对应一个个线程,我印象里以前好像有做过这样的。但是无所谓了,基本原理一样的。每个进程都有自己的资源,例如数组啊,变量啊,说白了就是内存,不管是堆的还是栈的内存,这个资源不会与其他进程共享,或者说其他进程不会知道。如果想跟其他进程打招呼,那就要通过操作系统提供的进程间通讯机制来实现。同样的对线程也是,每个线程自己创...
2019-07-18 11:20:23 149
原创 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-...
2019-07-17 16:04:06 842
原创 MediaRouter的使用
这东西有点意思,首先,它不是创建出来的,MediaRouter有一个service,每个app进程是通过给getSystemService(Context.MEDIA_ROUTER_SERVICE); 拿到的一个MediaRouter,说白了就是一个跟MediaRouterService 交互的接口。什么bp, stub之类,不知道现在android这块改进到什么情况了。其次, 通过Media...
2019-07-17 15:07:38 3223
原创 WML在chromium中实现的补充
忘记了,还有几个小的修改Source/core/editing/Editor.cppbool isSelectionInTextField(const VisibleSelection& selection){HTMLTextFormControlElement* textControl = enclosingTextFormControl(selection.start());...
2019-07-17 11:14:47 189
原创 在chromium中实现WML的支持
从KK开始,Google开始切换Web引擎了, androd webkit废弃,改为chromium了,但是前面运营商大爷要求的WML咋办?唉,硬着头皮开始把WML往chromium上搞呗.如何搞?采用最笨的方法,HTML相关的类被调用的地方过一遍,加上WML相对应的类。贴出来部分修改的地方,因为本来就是基于opensource的,所以不存在confidential的问题。看到修改的文件,大...
2019-07-17 11:07:15 301
原创 在Webkit中实现支持WML
Webkit里面,WML作为过时的技术,早已不支持了,但是国内运营商要求必须支持,呵呵,客户要求就是天,再落后也要支持,所以把以前支持WML相关代码全部拿回来,再一点一点适配到新版本上。酸爽,一点一点读代码,debug,终于搞定了。Source/WebCore/css/CSSStyleSelector.cpp// Important: Intrinsic margins get added t...
2019-07-17 10:37:20 185
原创 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...
2019-07-17 10:06:01 391
原创 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...
2019-07-17 10:01:53 163
原创 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...
2019-07-17 09:58:43 176
原创 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();...
2019-07-16 16:48:14 308
原创 WebGL test website
http://192.16.134.130/homes/sel055233/webgl/sdk/demos/google/shiny-teapot/index.html
2019-07-16 16:46:23 385
原创 Get TCP traffic
get tcp traffic log*** Please note that you need root to use this command ***1: $ adb shell tcpdump -s 0 -w /data/capture.pcap (to start the logging)2: Take the log3: — CTRL-C ---- (to end logging...
2019-07-16 16:40:51 230
原创 Chromium Webview for Android
Key points and classes relationWebViewChromium.javaprivate void loadUrlOnUiThread mAwContents.loadUrl(loadUrlParams);mAwContents = new AwContentsAwContents.java public void loadUrl(LoadUr...
2019-07-16 16:34:29 620
原创 How Chromium paint layer called
08-14 15:35:25.502 4959 5015 D Neo,/RenderLayer.cpp::paintLayer:1855: called08-14 15:35:25.532 4959 5015 E chromium: #00 0x00d4ccc3 /system/lib/libwebviewxx.so WebCore::RenderLayer::paintLayer(...
2019-07-16 16:33:13 225
原创 Chromium webview click on input element
12-11 03:00:39.417 5746 5746 W System.err: java.lang.RuntimeException12-11 03:00:39.417 5746 5746 W System.err: at com.android.org.chromium.content.browser.ContentViewCore.sendGesture(Conten...
2019-07-16 16:32:52 190
原创 Input characters in input element
HTMLinput12-16 01:38:02.263 4494 4547 D Neo callstack: #00 pc 004588ec /system/lib/libwebviewchromium.so WebCore::HTMLInputElement::setValueFromRenderer(WTF::String const&) external/ch...
2019-07-16 16:18:27 200
原创 chromium drawGL
08-21 15:01:14.516 5179 5179 E chromium: #00 0x0069b0d3 /system/lib/libwebviewxx.so cc::Scheduler::SetNeedsManageTiles() ../../cc/scheduler/scheduler.cc:8608-21 15:01:14.516 5179 5179 E c...
2019-07-16 16:16:22 286
原创 How chromium layertreehost called
08-22 09:27:51.982 4256 4316 D Neo,/layer_tree_host.cc::LayerTreeHost:138: called,accelerated_animation_enabled=108-22 09:27:51.992 4256 4316 E chromium: #00 0x006a274b /system/lib/libwebviewXXX...
2019-07-16 16:15:17 249
原创 chromium to opengl
08-27 16:44:04.799 5766 5766 D Neo,/context_state.cc::RestoreTextureUnitBindings:106: called08-27 16:44:04.799 5766 5766 D Neo,/gles2_cmd_decoder.cc::DoBindTexture:3993: called08-27 16:44:04.7...
2019-07-16 16:10:32 262
原创 Chromium for Android
从KK上,Google使用chromium webview来取代android webkit了。自从chrome的老板当上了android的老板,两个项目合并的趋势有点明显。固然这次替代有节省cost的考虑,但是google直接把chromium opensource的全部code都放到android的code里面,这就有点意思了。但是还是要看后面android的演化,不知道在运营商定制大行其...
2019-07-16 16:09:07 1543
原创 一个有意思的bug fix,能够体现出对代码熟悉的程度与水平
其实要多说一句,有的时候,由于deadline的存在,对不熟悉的code 提交patch的优劣程度是研究的时间来决定的。如果时间充足,把出问题部分的代码上下文debug清楚,对于patch的质量肯定是有提高的,但是如果时间不够充足,只能采用时间范围内能够找到的最优方案。webkit是一个庞大的代码库,即使我在工作中经常读到或者debug到的code也不会超过10%,比较熟悉的部分不会超过5%。...
2019-07-16 16:07:06 1419
原创 Small bug fix in android webkit
Keep WebUrlLoadClient aliveIn some cases, WebUrlLoaderClient will be destructed in native part while JAVA side is not aware of and uses the invalid WebUrlLoaderClient handler to execute and it will c...
2019-07-16 16:03:02 158
原创 为什么写这个博客?
十多年的软件开发工作,做过很多行业,接触了很多领域的知识,但是很多领域的知识都是在当时工作中体会深刻,换行业之后以前的知识就逐渐淡化,唯一保留的是自己的思维,能力和心得上的提高。而且即使现在有些知识淡忘了,但是能够很快的拾起来。现在回想起来,很多知识都是相通的,很多软件的设计也都是相通的。为了不忘记一些工作中的体会,或者说为将来有空时能对自己作过的东西有个总结的机会,现在开始把工作中的感想或者...
2019-07-16 15:57:29 79
原创 WebKit create rendervideo
Call stack11-22 13:37:29.272 2533 2569 D CallStack: Neo callstack#00 pc 002163e6 /system/lib/libwebcore.so RenderVideo external/webkit/Source/WebCore/rendering/RenderVideo.cpp:6511-22 13:...
2019-07-16 15:54:50 135
原创 WebKit create MediaPlayerPrivate
Call stack11-22 13:37:15.487 2533 2569 D CallStack: Neo callstack#00 pc 0026396a /system/lib/libwebcore.soWeb WebCore::MediaPlayerPrivate::create(WebCore::MediaPlayer*) external/webkit/So...
2019-07-16 15:54:03 398
转载 Webkit GL Architecture (Copy from code comments)
GL Architecture for webkit on androidPosted: January 4, 2012 in android3GL Architecture To draw things, WebView use a tree of layers. The root of that tree is a BaseLayerAndroid, which may have num...
2019-07-16 15:52:32 174
原创 WebKit in Android Framework
这部分内容我实在记不起来是我自己总结的还是从哪里看来的?看着凌乱的内容,感觉应该是当时随笔记录的理解,即使是copy来的,也算是当时工作中的一些总结WebView extends AbsoluteLayout implements ViewTreeObserver.OnGlobalFocusChangeListener, ViewGroup.OnHierarchyChangeListener...
2019-07-16 15:51:12 305
原创 为什么还要记录android webkit
这是我第一次接触浏览器相关的开发,而且当时对android webkit学习的很快,甚至提交了好几个patch,很可惜啊。在我开始有能力提patch的时候,android放弃webkit了,改为chromium了。但是毕竟相识一场,该记录的还是记录吧...
2019-07-16 15:49:08 152
原创 Android Webkit Render
Rough exe sequencevoid DocumentLoader::commitLoad(const char* data, int length) frameLoader->client()->committedLoad(this, data, length);void FrameLoaderClientAndroid::committedLoad(Doc...
2019-07-16 15:47:04 163
原创 Webkit Paint and Draw page
06-09 06:02:46.573 3015 3015 W System.err: at android.webkit.WebViewClassic.setBaseLayer(WebViewClassic.java:4464)06-09 06:02:46.573 3015 3015 W System.err: at android.webkit.WebViewCla...
2019-07-16 15:45:23 5666
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人