
1.浏览器研究
文章平均质量分 83
研究chromium/webkit浏览器内核
云水木石
70后程序员,仍然战斗在编码第一线,长期从事浏览器内核研发。
展开
-
Chromium 改造实录:国标AVS2 & AVS3 支持起来
距离今年的五一长假只有几个小时了,一般重大节日也是项目的里程碑(milestone)节点,我也赶在五一长假之前完成了中国标准 AVS2 和 AVS3 在 Chromium 浏览器上的支持工作。有句话,“一流企业做标准,二流企业做品牌,三流企业做产品”。在这一点上,中国企业一向做得不够,在很多重要的标准制定上没有话语权,但这种情况慢慢在改进。比如在音视频领域,中国也推出了自己的超高清标准方案:AVS...原创 2023-04-28 17:08:03 · 3944 阅读 · 1 评论 -
Chromium HTML Video 媒体播放代码梳理
经过一番探索(参见Android 10 WebView 踩坑实录),终于搞定 Chromium WebView 的代码下载和编译问题,加下来就要向 H265 8K 高清播放发起冲锋。不过在打开 Chromium 源码后,眼前一黑。这还是熟悉的 Chromium 代码吗?虽然我尽量选择了不那么新的代码,但我还是低估了谷歌工程师的努力程度,至少在 HTML Video 方面,代码结构已经改得面目全非。...原创 2023-03-07 23:05:31 · 2631 阅读 · 0 评论 -
Android 10 WebView 踩坑实录
项目要求支持 8K 高清视频(H265编码)播放,拿到板子后却发现使用 App 可以播放 8K 高清视频,但使用浏览器却不行,即使安装上最新的 Chrome for Android 也不行。根据以往的浏览器内核开发经验,在 Android 平台上,Chromium WebView 最终是调用系统框架层的 MediaPlayer 进行播放。理论上只要系统框架层能够支持 8K 高清播放,那么浏览器应该...原创 2023-03-05 20:53:13 · 4297 阅读 · 0 评论 -
Chromium 改造实录:8K 来了
2008 年 2 月 16 日,日本东芝公司宣布放弃 HD-DVD 格式,宣告这场大约持续了 6 年时间的高清光碟之战结束。东芝的 HD-DVD 彻底失败,而索尼的 Blu-ray Disc 大获全胜,宣告着高清时代的到来。还记得初次接触到 1080P 的高清样片,简直不敢相信自己的眼睛。对于从 VCD 时代走过来的我,在大学校园更多接触的是 RM 视频。那个时候,能够有 DVD 画质(720 x...原创 2023-04-19 22:48:20 · 3269 阅读 · 1 评论 -
选择最新 Chromium,支持 H264 / H265
在做了充分的准备后,我信心满满的向着 H265 8K 视频解码这个目标发起进攻,然而,正打算动手的时候,我突然发现,别说支持 H265 ,自编的 Chromium WebView 连 H264 解码都不支持。使用 WebView Shell 访问测试页面,结果如下:错误日志如下:03-0523:20:21.73190619124Echromium:[ERROR:batching_m...原创 2023-03-11 23:15:41 · 4917 阅读 · 1 评论 -
Chromium 改造实录:增加 MPEG TS 格式支持
在《选择最新 Chromium,支持 H264 / H265》一文中,记录了我通过升级 Chromium 版本解决了 H264 / H265 视频支持难题。然而难题接踵而至,这次的难题是 MPEG TS 流的支持。MPEG2-TS 传输流广泛应用于数字电视广播系统,所以是一个不得不支持的格式。通过查询资料,了解到 FFmpeg 是支持 TS 格式的,但 Chromium 中并没有默认开启这个功能。...原创 2023-03-25 11:34:13 · 3310 阅读 · 0 评论 -
Android 10 中的浏览器构建
从 Android 4.4 开始,系统浏览器内核开始从 WebKit 切换到 Chromium。为了保持 API 兼容,Chromium 为 Android WebView 提供了 Chromium WebView 封装。最初 Chromium Webview 代码是位于 AOSP 源码树中,和 AOSP 源码一起构建。到了 Android 5.0,Chromium WebView 代码依然在 A...原创 2023-03-01 10:32:17 · 3172 阅读 · 0 评论 -
工作上的问题,我问了问 AI
在上一篇文章《选择最新 Chromium,支持 H264 / H265》中,记录了我通过升级 Chromium 版本解决了 H264 / H265 视频支持难题。是不是就从此走向一条康庄大道,拿开源软件编译一下就能交差了呢?答案当然是 No。工作中哪有这么好的事,现实总会无情的告诉我,快来解决麻烦。这不,刚解决一个难题,立马又碰到另外一个拦路虎:MPEG TS 流的播放支持。关于 MPEG TS ...原创 2023-03-24 17:31:36 · 2563 阅读 · 0 评论 -
Chromium 改造实录:增加 MP2 音频支持
在上一篇文章《Chromium 改造实录:增加 MPEG TS 格式支持》中,讲了如何为 Chromium 增加 MPEG TS 流的支持。但这项任务并没有结束,因为 TS 只是一种容器格式,现在只是相当于把盖子打开了,而里面的视频流和音频流能否播放,取决于音视频采用何种编码格式以及这些编码格式是否支持。在解决了 TS 流中 H264 视频编码的解码问题后,我又碰到了音频解码问题。从 log 上看...原创 2023-03-29 17:03:29 · 2710 阅读 · 0 评论 -
chromiumwebview裁剪总结
前言近期一直忙Android ChromiumWebview的裁剪,简单说就是减少Webview相关文件的大小。有同学可能会疑惑,现在智能终端空间越来越大、内存也越来越大,比如现在手机没有64G ROM/4G RAM,都不好意思和别人打招呼,做裁剪的意义何在?说起来都是泪,总有些行业会为了省下几元钱而死磕,省下来才能生存啊。比如我们接到的任务是将Android 5.1系统裁剪到100M,因为设备只有原创 2017-08-04 09:11:13 · 9612 阅读 · 26 评论 -
关于Ubuntu菜单项中的%U参数
今天在研究chromium deb打包的时候,发现Google Chrome deb包中的/usr/share/applications/google-chrome.desktop文件定义入口为:Exec=/usr/bin/google-chrome-stable %U这个%U参数是做什么用的呢?查找了一下资料,有如下描述:%u A single URL. Local file...原创 2015-03-12 20:40:15 · 2278 阅读 · 0 评论 -
Ubuntu上从源码编译chromium浏览器
Ubuntu不仅是一个免费且开源的操作系统,而且其平台也是开放且透明的。每个组件的源码都可以获取到,也可以从源码自己编译软件包。下面就探讨一下在ubuntu下如何获取chromium源码,并编译Chromium Web Browser。要从ubuntu的仓库下载源码并编译软件包,最方便的就是使用apt-build实用工具。在ubuntu的发布版本中,该实用工具并没有安装,您可以用如下命令安装:...原创 2015-03-12 21:06:49 · 2063 阅读 · 0 评论 -
Chromium WebView C++代码的调试
从Android 4.4开始,系统的WebView组件就采用了Chromium/Blink引擎。Chromium的代码及其庞大,理解起来也有些难度。借助于gdb调试,通过跟踪代码的运行,打印调用堆栈,有助于理解代码的执行流程。另外libchromiumwebview.so的编译链接及其耗时间,所以那种打log的方式除非不得已,还是要尽量少用。原创 2017-03-07 23:38:07 · 2210 阅读 · 0 评论 -
为什么chromium webview不采用多进程
我们知道,从Android 4.4开始,系统开始使用chromium webview取代原来的webkit引擎,但和Chrome for Android不同的是,Chromium WebView采用了单进程模型,为什么不采用多进程模型呢?大概有如下几点原因:在Android上,并不能自由的创建进程,必须由系统框架来起进程。Chrome for Android为了解决这一问题,起了一个service原创 2017-04-10 21:13:20 · 4747 阅读 · 11 评论 -
在本地服务器上建立chromium镜像
Android 5.0发布了好长时间,一直都没有来得及研究。前两周终于将android 5.0源码下载了下来,大致看了一下代码。我所关注的并非Material Design,而是Android 5.0的web引擎。从Android 4.4开始,采用了chromium/blink内核,Android 5.0自然也不例外,只是chromium的版本升级到了37.0.2062.116。想到我的chromi原创 2015-03-11 09:26:59 · 2648 阅读 · 0 评论 -
在Chromium for Android中能否用TextureView替代SurfaceView
在开发Browser 2.0时,碰到一个非常头疼的问题,往布局上添加SurfaceView时,会引起黑屏闪一下。为了解决这个问题,我们不得不在初始化阶段就把SurfaceView添加好,之后也不能调整大小、移动位置。当时就考虑是不是能够用TextureView替代SurfaceView,不过由于计划上的调整,没有做进一步的尝试。今天在网上看到这篇文章,正好解答了我的疑问,在此把文章翻译过来,供参考。原创 2015-06-21 17:58:55 · 2534 阅读 · 0 评论 -
如何打印gyp构建系统中的变量值
chromium项目使用了gyp构建系统,gyp的全称是”Generate Your Projects”。gyp构建系统使用的并不广泛,目前已知的只有chromium开源项目采用了这一构建系统。官方虽然也有一些文档,但都是一些比较基础的指南,总体来说缺少详细的文档来指导开发人员在项目中使用。 因为研究chromium的缘故,所以对gyp构建系统也有一些了解,在使用中也碰到一些问题,本文所要探讨的是原创 2015-07-01 09:35:41 · 1252 阅读 · 0 评论 -
打造自己的chrome for Android
[注] 这是两年前写的一篇旧文,现翻出来,根据现在的实际变化作了修订。chromium移植已经接近尾声,正在冲刺beta版本。不过越往后面,越是一些难啃的骨头。虽然背靠chromium这座大山,但是网页的复杂性超乎想象。更郁闷的是,有些BUG在chrome for android上没有,但在我们的浏览器上存在。因此经常会有这样的质疑:人家的chrome浏览器好好的,你做的浏览器为什么会有这样的问题。原创 2015-09-24 20:56:15 · 4627 阅读 · 0 评论 -
Chromium for Android已经开源
最近一段时间都在忙其它的事情,没有关注chromium的最新进展。这几天浏览 http://www.chromium.org 上的文档,发现android build目标增加了一个:chrome_public_apk。编译方法: Build the full browser ~/chromium/src$ ninja -C out/Release chrome_public_apk原创 2015-09-25 10:13:07 · 5155 阅读 · 0 评论 -
基于chromium for android开发Android浏览器
在上一篇文章<< Chromium for Android开源了 >>中谈到了Google已经完全开源了Chromium for Android,这样我们就完全可以开发与Chrome for Android媲美的Android浏览器了。通常浏览器的一些新特性和新功能会先出现在Chromium for Android上,稳定后才会出现在Chrome for Android上,如果我们基于Chromiu原创 2015-11-03 14:12:40 · 8511 阅读 · 2 评论 -
在中国使用chromium镜像
Chromium的源码及其庞大,在国内也没法直接访问。这几年一直在做浏览器开发相关的工作,我们在公司内部为chromium的git库做了镜像,开发人员可以减少一些痛苦。然而chromium更新的相当频繁,我们做镜像也跟得相当痛苦。不过现在好了,CodeAurora下的Chromium browser for snapdragon也做了chromium的镜像,而且非常贴心的在中国部署了镜像服务器。这个项目由高通资助,致力于浏览器在高通snapdragon芯片上的优化。如果你是在开发ARM上的浏览器产品,非常原创 2016-08-05 08:33:27 · 26309 阅读 · 6 评论 -
chromium中的GN构建系统
阅读最新的chromium源码,发现项目的构建系统已经从GYP全面切换到GN了。在软件开发中,经常有人忠告:不要重复造轮子。但谷歌可不管这个,造的轮子一个接一个,谁叫人家牛呢?chromiumi项目为啥要折腾构建系统呢?因为谷歌chrome浏览器追求一个字:快。不仅浏览器的速度要快,构建系统也要追求快。构建系统简介在探讨chromium的最新GN构建系统之前,回顾一下软件开发中的构建系统。原创 2017-06-23 17:16:35 · 14568 阅读 · 8 评论 -
浏览器中的安全浏览模型
互联网的开放促成了互联网的繁荣,上面的内容呈爆炸性的增长,想想现在互联网的规模,已经不能和5年前甚至1年前同日而语,而且这种增长趋势丝毫没有停下来的迹象。任何一事物总有其两面性,互联网的开放造成繁荣,同时也引来了问题。现在的互联网鱼龙混杂,一不小心就可能中招,想必我们没少听“点击一个链接,损失好几万”这样的新闻吧。本文主要讨论浏览器中的安全浏览,即如果保证访问的未知网址是安全的。通常的做法是在访问网原创 2017-06-20 07:37:12 · 727 阅读 · 0 评论 -
365浏览器更新到v60.0.3112.20
一段时间没有跟进chromium的开发,回头再看chromium,版本已经升级到v60了,不得不感叹chromium项目的更新频率。照这样下去,版本突破v100指日可待,不知道谷歌到时会怎样制定版本号了。新版本的chromium在html5支持方面更全面,对于一些现代web技术也有了更多的支持,于是花了点功夫把365浏览器进行了升级。谷歌官方增加了对android studio的支持,具体可以参考文原创 2017-06-15 22:47:33 · 1057 阅读 · 3 评论