首页
学习
活动
专区
工具
TVP
发布

盟主来了

专栏作者
221
文章
124426
阅读量
40
订阅数
Chromium 通过IDL方式添加扩展API,并且在普通网页也可以调用
先严格按照Chromium 通过IDL方式添加扩展API - 知乎、chromium 41 extensions 自定义 api 接口_chromium自定义扩展api-CSDN博客 里提到的方式,加入扩展api。然后最关键的地方来了:
龙泉寺扫地僧
2024-03-27
940
22.6.25日报:修复quickjs版本miniblink的几个小bug
在quickjs mb里会报错。原因是span.classList.__proto__ 是不可配置的。
龙泉寺扫地僧
2022-06-28
6300
2021.4.25日报:修复npapi的白屏问题,以及demo.finebi.com的字体问题
1,在给chrome加上npapi能力的时候,发现有窗口模式下,会出现绘制不完整的情况。验证发现是chrome新版本给Chrome_RenderWidgetHostHWND这层窗口设置了WM_EX_TRANSPARENT
龙泉寺扫地僧
2021-12-06
5140
19.8.12日报
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
龙泉寺扫地僧
2019-10-25
3460
19.9.21日报:修复flash中文问题
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
龙泉寺扫地僧
2019-10-25
4750
最新版chromium 76如何支持xp
我知道,当我写下这个标题的时候,肯定一大波人会过来嘲讽:都什么年代了,还XP?
龙泉寺扫地僧
2019-07-11
1.7K0
chromium最近几个版本的改动
Chrome 57 Beta: 1,css grid layout基本完成 2,Media Session API 3,视频全屏的时候锁住屏幕 4,setTimeout的性能大幅改进 5,Fetch API 支持.redirected attribute 6,padStart and padEnd 7,Service Worker Navigation Preload 8,Payment Request API  9,PaymentMethodData支持 basic-card 10,改进<event>属性 11,新增AudioContext.getOutputTimestamp api 12,开发者能发送WebAudio-specific事件,例如OfflineAudioCompletionEvent 与AudioProcessEvent.  13,XSS Auditor 功能加强
龙泉寺扫地僧
2019-02-20
1.1K0
21天自制chromium -- cc篇
好吧,我承认有点标题党了。 不过从这篇开始, 我们来点干货,如何从blink打造一个可以实用的浏览器。 chromium从零几年搞到现在,已经完全变成一个无所不包的庞然大物。 如果你只是想要一个能浏览网页的组件,方便嵌入到自己的程序里,或者想用网页来做界面--例如QQ音乐,网易云音乐那样, chromium的那堆多进程、mojo通信、Chrome Apps 框架、Aura Shell、增量升级系统、Chrome Extensions 、headless模式、P2P 通信库,native_client、pdf、ppapi、沙盒机制等等一堆乱七八糟你听都没听过的东西都不会需要。然而只要用了chromium的内核,这堆东西除了占用系统资源外,你还不得不都打包带上。 这时候你就会有个强烈的想法,我不需要这堆乱七八糟的功能,只要能浏览大部分网页的排版渲染组件可以么。 答案是肯定的。webkit内核就是为此而生。 但这里有个问题,chromium虽然当年是使用webkit内核,但自从和苹果分道扬镳后,把webkit改名成blink不说,代码和结构完全是面目全非,而且最重要的是blink已经不是像webkit那样是一个独立的组件了,而是chromium那堆几百个第三方库里一个小小的组件,所有外部设施都依赖于chromium的其他组件了。 我们来看看blink目前需要依赖哪些组件: 1,cc层(chromium 合成层,实现网页绘制并贴到屏幕上等操作。这个是最麻烦的,以后专门开一篇来讲如何自制) 2,base库(chromium基础库,类似字符串操作等一系列c++基础库) 3,各种和操作系统打交道的接口,例如菜单、文件读写、窗口操作等。这堆东西可以认为是要实现third_party/WebKit/public/platform/Platform.h里的一系列虚函数。 4,如果你不是打算卖到清真地区,通常icu你也不会想要。这是个占用体积很大的毒瘤,一个数据文件就10几M,作为轻量级内核,你肯定不想带。 5,网络层。 6,v8(js引擎) 7,skia(底层绘图库) 那我们如何在尽量少的使用chromium代码基础上,实现上诉一堆功能和组件呢? 这是目前我的解决方案: 1,cc层:我放弃了原版chromium cc层,自己完全重写了一遍。这个工作量相当巨大,如果你不是和我一样这么闲,建议直接使用原版cc。 2,base库:在chromium四十几版的时候,blink几乎不依赖base。然而高版本把wtf库里的大量实现,直接使用base库。所以如果你是从高版本blink开始撸,可以直接扣取低版本blink里的wtf来实现base相关依赖。此处工作量也甚大。 3,各种和操作系统打交道的接口:这块其实没有难度,就是有着巨大的工作量。一个个补齐就好。 4,icu:直接使用系统相关的接口。例如文字编码转换之类的,windouws就有现成的api。其他高级icu api例如断行断句,如果你只打算运行在中英文地区,那自己实现也很简单。 只有阿拉伯文、天成文、藏文这些小众语言那需要那么复杂的规则。 5,网络层:直接用webkit里的现成代码吧。 6,v8:直接使用chromium原始代码即可。毕竟这玩意不依赖其他任何组件。 7,skia:直接使用chromium原始代码即可。毕竟这玩意不依赖其他任何组件。 说到这里,大家肯定有个疑问:既然这么多都用webkit,那为啥我们直接拿webkit过来不就行了。 其实是可以的。webkit发展到今天,已经完全和chromium分开发展了(当年有一阵子谷歌的人也一直在给webkit提代码,后面苹果把他们都踢走了)。而且webkit就是个完整内核,你用来做轻量级组件正合适。但我有几个原因还是放弃了: 1,webkit对标准的支持还是有点偏差。例如web组件标准,css gird等等。 2,webkit的web inspect做的很烂,完全没blink好用。 3,webkit现在也很大了,我编译出来不算icu,也有26M多。作为一个有追求的程序员,我希望这个大小是10M左右。 4,最重要的,webkit的js引擎是javascriptcore。这样实现的组件就无法兼容市面上那堆v8造出来的轮子。例如electron、nwjs、nodejs都是用v8。 5,还有个小点就是chromium更新非常快,跟着谷歌大佬走感觉更有保障些,尤其是碰到各种莫名其妙的bug,还可以查chromium的更新记录。
龙泉寺扫地僧
2019-02-20
1.4K0
17.10.14日报
1,跟进一个用户的乱码问题,但发现该用户的winrar什么的都乱码,怀疑是字符串转换编码的那个windows api出了bug
龙泉寺扫地僧
2019-02-20
3090
2017.10.28日报
1,找到http://lpl.qq.com/es/live.shtml里flash不显示的原因:在http://ossweb-img.qq.com/images/js/qt/chat/chat.js里的flash检测,取到的数据是我在BlinkPlatformImpl::getPluginList里随便填的。现在改成正规的从flash npapi里面获取。
龙泉寺扫地僧
2019-02-20
3290
2017.10.28日报
1,修复wkeGetViewDC在透明窗口下像素都是0 的bug。原因是我用了updataxxx那个api
龙泉寺扫地僧
2019-02-20
3980
18.1.1日报
1,修复汤不热点击用户头像崩溃的bug,原因是weblayerimpl用到的m_scrollParent在析构时没通知父节点。现在把这个成员变量删了算了,反应暂时没用到。
龙泉寺扫地僧
2019-02-20
4200
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档