自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weolar的专栏

扫地僧

  • 博客(602)
  • 资源 (3)
  • 收藏
  • 关注

原创 2020.9.23日报:终于把chromium84支持npapi了

搞了两个多星期,踩了无数大坑以后,终于把chromium84支持npapi了。chromium很坑爹的把共享内存映射的base类删了,然后插件进程发送网络请求也变的超级复杂。很是坑爹。不过通过这么一搞,倒是又对chromium熟悉不少。...

2020-09-23 00:48:40 1527 2

原创 最新版chromium 76如何支持xp

我知道,当我写下这个标题的时候,肯定一大波人会过来嘲讽:都什么年代了,还XP?道理我都懂,但据我咨询了腾讯同事一些内部数据,XP在中国依然百之十几个点的占有率。里面最多的就是政企单位。这些电脑配置不好,比较古老了,而且关键是很多配套的软件只有xp版本。让他们升级系统?想法很好,但谁出钱找那些配套工具的厂商呢,更何况很多年久失修的软件的厂商可能早就倒闭不见了,人都找不到。哈哈,其实我说了这...

2019-07-10 15:24:33 4268 5

原创 miniblink API文档

新文档地址:https://weolar.github.io/miniblink/doc-main.htm  

2018-05-26 00:55:56 15815 7

原创 Cef经典N大问题

1、cef启动、退出的时候怎么崩溃了答:如果是启动时崩溃,请看资源目录是否文件都齐全.退出的话见https://github.com/fanfeilong/cefutil/blob/master/doc/CEF_Close.md如果是centos6.4 内核上跑CEF启动时候崩溃,原因是不支持一个uid有关的东西。启动时增加参数--disable-setuid-sandbox就OK了2、...

2016-11-25 17:35:33 26636 10

原创 搞了个miniblink的github站点

见https://weolar.github.io/miniblink/

2016-07-19 14:31:24 3135

原创 炫酷的miniblink demo已上传,基于bracket

因为最近这些版本不是太稳定,加上又从Webkit里挪了一些功能,所以就不说盛大发布了,先放个试玩版,然后每天迭代开发,争取早日稳定。用法:可以跑cefclient,也可以改名成wke.dll,然后丢到你们的wke的工程里去跑跑

2016-05-18 21:48:07 21053 8

原创 miniblink 的bug收集帖子

应广大网友的热情反馈,只好提前把miniblink 0.0.1 版放出来,果然一堆小问题。特此开个贴子收集下bug,以及解决情况

2016-05-14 21:02:30 2772 13

原创 electron主进程的nodejs消息循环是如何驱动的

很简单,有个NodeBindings::EmbedThreadRunner的函数,是在主进程的工作线程运行。这个函数会监听uv_loop_->iocp有没事件,如果有的话,就发消息给主线程,让主线程调用NodeBindings::UvRunOnce,里面就是调用libuv,然后驱动nodejs。那如果nodejs是开了定时器呢?在监听uv_loop_->iocp的时候会有个超时,超时的时间就是定时器的间隔。

2024-08-31 09:11:33 200

原创 chromium linux版本编译时,函数指针的汇编代码出问题

研究了几天,最后发现可能是clang的bug。触发的条件是要开启-fsanitize=cfi-icall优化。这个可以在chromium的编译参数里用is_official_build=true打开。这几天编译了chromium的linux版本,但加了几句很简单的用函数指针调用某个so的代码后,一跑就崩溃。看了下这块代码编译出来的汇编,很奇怪,像乱码一样,完全不是正常的汇编。目前暂时不清楚是不是我用的这个版本的clang导致的。

2024-08-11 15:01:28 128

原创 日报240624:禁用chromium里的[chromium-rawptr] 报错

RAW_PTR_EXCLUSION 可以禁用error : [chromium-rawptr] Use raw_ptr<T> instead of a raw pointer.加在字段前面就行,,比如。

2024-06-24 21:54:03 231

原创 chromium添加一个书签项,并自动显示图标

chromium把这块写的很复杂,其实真正的原因是chromium是要做成操作系统的,所以对各种icon有个统一的管理。而favicon的获取,需要打开网页,进行解析。麻烦的是怎么设置完书签以后还要显示这个书签对应的网址的favicon。这个涉及到chromium的icon管理。

2024-05-07 15:30:22 415 1

原创 Chromium 通过IDL方式添加扩展API,并且在普通网页也可以调用

到src\extensions\renderer\native_extension_bindings_system.cc \src\extensions\renderer\script_context.cc这里面加这两句。js测试案例:chrome.gclxry.hello("hello world", function(state) {alert(state)});里提到的方式,加入扩展api。普通网页就能调用到gclxry.hello了。这个gclxry改成你们的api名字就行了。

2024-03-26 20:25:51 442

原创 chrome实现IE模式的一个小细节

把ie窗口贴在chrome的主窗口上面时,会发现ie显示黑屏。就能让ie显示出来了。猜测是ie的gpu加速和chrome的有冲突。

2024-03-19 00:01:02 489

原创 修复编译arm程序,找不到一些neon的基础类型例如 ‘__Int8x8_t‘等错误

现在我是用"C:/Microsoft/AndroidNDK64/android-ndk-r16b/toolchains/llvm/prebuilt/windows-x86_64/lib64/clang/5.0/include"里的头文件。要把这个目录的搜索顺序放到前面,不然别的目录里的arm_neon.h可能就替代这个目录下的arm_neon.h了。见:https://www.cnblogs.com/Forwarderz/p/12656058.html。

2023-12-02 23:54:17 630

原创 XP、windows2003下提示找不到SetProcessDEPPolicy

SetProcessDEPPolicy和Sleep参数个数一样,而且SetProcessDEPPolicy的参数值一般也就是0或者1,我给强制传给Sleep,完全不影响exe的流程。哈哈,这办法真是天才。查了下electron和chromium的代码都没用到这个api,那应该就是crt编译的时候带进去的,可能是exe启动时候调用了一下。我直接搜索exe里的SetProcessDEPPolicy字符串,然后强制改成Sleep。

2023-06-03 12:22:53 266

原创 23.5.29日报:修复mini-electron一处v8使用不当的错误

单是一句 resolve(result);但这里有个小问题,就是 resolve(result);对于一个promise来说,调用了多次,v8会报告异常,这个异常被存到isolata里去,然后在console.log的时候出现断言错误。此时不知道为啥,偶尔会在v8的ConsoleCall里报错:CHECK(!修复方式很简单,把ipcRenderer.once改为ipcRenderer.on就行了。这句导致v8里报错了。

2023-05-29 23:12:46 389

原创 23.5.20:过pixelscan.net的一些技巧

里的canvas指纹,有2d和3d的。2d的会生成一个带文字和不带文字的。不带文字的不要加干扰,不然会被检测到。也要注意不要加干扰。

2023-05-20 18:52:08 415 1

原创 23.4.25日报:vs对多继承的析构函数处理有bug

这样写,会报错:error C2385: 对“delete”的访问不明确, note: 此诊断出现在编译器生成的函数“void *HeapVector::__delDtor(unsigned int)”中。这两写法按理说是等价的,在clang中也都能编译通过。但看起来第一种写法,vs默认会生成一个__delDtor,里面好像和delete有关系。其实这个bug是我在用vs编译blink时候发现的。查了下,好像是vs的bug。有人提过,不过微软没人修复。而第二种写法就没问题了,这就很神奇了。

2023-04-25 00:46:39 126

原创 23.2.7日报:编译chromium提示cannot create a temporary file

编译chromium提示cannot create a temporary file

2023-02-07 08:16:28 276

原创 2022.12.11日报:指纹浏览器新增字体指纹

字体指纹

2022-12-11 11:48:43 493

原创 2202.6.28日报:miniv8实现URLSearchParams

2022-06-28 17:54:12 289

原创 22.6.25日报:修复quickjs版本miniblink的几个小bug

2022-06-26 09:38:12 246

原创 22.6.20日报:修复指纹浏览器的几个bug

指纹浏览器源码

2022-06-22 16:21:29 648

原创 2022.6.9日报:正确处理webbrowser控件的键盘消息

webbrowser控件无法响应百度首页那个下拉框。网上查了下,说是要在消息循环里响应IOleInPlaceActiveObject::TranslateAccelerator照做了以后,发现某些网页的textarea,例如Javascript在线解压缩 - 在线工具​​​​​​按向下键,光标会下移动两行…于是我用SetWindowLongPtr,hook了ie的窗口消息响应函数,然后把WM_KEYDOWN给禁用了。这样做了以后,光标确实不会移动两行,但向...

2022-06-09 11:56:12 216

原创 2022.6.7日报:quickjs版miniblink逐步完善

1,给quickjs增加一个JS_CloneValue的api。这是为了模仿v8里面用到很多的v8::Object::Clone一开始,我是直接用JS_CopyDataProperties,但发现这个不会拷贝我设置了各种setter、getter之类的。所以我就再加一个JS_CloneDataProperties,通过遍历JSObject::shape来实现。2,给quickjs增加index callback。这是对应v8里的IndexedPropertyHandlerConfiguration操作。在b

2022-06-07 10:54:36 405

原创 2022.5.16日报:mb的打印机问题

1,最近发现,有的打印机比较奇葩,他那个physicalSizeDeviceUnits比printableAreaDeviceUnits要打一些。也就是物理打印区域比可打印区域大一些。这时候,传递给pdfium生成的dc需要调整一下,pdf的大小要适配可打印区域。一般是伸缩到可打印区域,或者干脆生成的时候安装可打印区域大小生成。...

2022-05-16 12:28:21 183

原创 2022.4.26:chrome100支持xp,堆栈大小问题

1,新版本v8确实恐怖,一上来就需要大堆栈,至少4M起步。动态申请大堆栈的地方,是chrome\app\chrome_exe_main_win.cc的入口里。这里用到了技巧,就是用ConvertThreadToFiberEx可以申请大内存。在v8的StackGuard::ThreadLocal::Initialize( ParseInfo::SetPerThreadState)里,会直接用当前堆栈地址GetCurrentStackPosition减去一个常量值,就成了堆栈溢出的检测值。(题外话,

2022-04-26 16:03:45 646 1

原创 2022.4.8日报:修复URLSearchParams崩溃

测试代码:const a = Object.create(null);var xx = new URLSearchParams(a);const n = xx.toString();崩溃原因是这个URLSearchParams是我从57版本弄回来的。49是没实现这个接口的。而57版本的constructor回调,判断传入参数无法字符串化后,是直接返回的。此时抛异常的时机是在ExceptionState的析构函数里。而49版本抛异常是要手动调用exceptionState.throwIfNeede

2022-04-08 23:40:11 283

原创 2022.3.23日报:_open_osfhandle、_get_osfhandle不能跨模块调用(调试ASAR功能里发现的)

1,今天在修改一个mini-electron的bug,就是mini-electron加载asar有时候提示文件UV_EBADF。原因是asar的Archive::Archive函数,会调用_open_osfhandle获取fd,然后传到nodejs的static void Read(const FunctionCallbackInfo<Value>& args)里,再用_get_osfhandle获取fd对应的windows句柄。然而这里有个问题,就是_open_osfh

2022-03-23 11:00:19 360

原创 2022.2.20日报:过年这几周研究了electron和linux

1,electron方面,重点研究了那个node隔离机制。其实就是const mainWindow = new BrowserWindow({ webPreferences: { contextIsolation: true }})这个其实就是利用chromium里很早很早就有的context隔离机制。早在chromium30几版本的时候,chromium为了让extension可以操作dom,又不希望污染dom的context,就搞出了隔离机制。具体来说,其实非常简单。

2022-02-20 22:30:56 980

原创 2022.1.9日报:修复input placeholder导致位置不准的问题

1,测试代码如下:<html lang="en"> <head> <meta charset="UTF-8"> <title>新建标签页</title> <link href="css/chunk-vendors.c98dfc91.css" rel="stylesheet"> <link href="css/browser.6f94aa46.css" rel="stylesheet

2022-01-09 10:57:18 867

原创 2022.1.6日报:增强browerview

1,继续完善mini-electron的browserview功能。2,v875版本遇到了一个bug,不知道是不是这个版本独有的。就是ant design这库(官网可重现这个bug),在装饰器装饰lazyUpdataPosition的时候用到了Object.getOwnPropertyDescriptor的返回值有问题。第一次是错的,第二次才对。3,修复pdf保存、打印时候的一些崩溃...

2022-01-06 10:05:19 819

原创 2021.12.29日报:重新开始撸mini-electron

1,mini-electron增加browserview控件2,增加audio context3,pdf样式美化

2021-12-29 11:25:53 1606 1

原创 2021.12.12日报:非ComplexPath下,skia显示黑体字有问题

测试代码是这样:<FONT style="FONT-SIZE: 12pt" face="黑体"><STRONG><SPAN>&nbsp; </SPAN></STRONG></FONT><br/>然后如果不开启ComplexPath,skia会显示空格变成一个方框,不知道是不是skia的bug。跟了一下,主要是Font::buildGlyphBuffer这里建立的glyph和ComplexPath不同。..

2021-12-12 18:31:44 795

原创 2021.12.9日报:v875的gc机制小结

最近被v875的gc搞蒙了。做个总结。1,v8::Persistent<T>的机制改了。如果用SetWeak设置了回收回调,那么如果在UnifiedHeapController::AdvanceTracing里不RegisterEmbedderReference的话,js如果也没引用,就会触发这个回收回调。57好像不会有这问题。这个变动,导致了一系列问题。例如document.getElementById("test").addEventListener这种方式添加的监听器,就直接被回收

2021-12-09 12:03:43 1248

原创 2021.11.6日报:跟进v8 的gc流程的一些笔记

1,v875的v8::PersistentHandleVisitor是可以把句柄全遍历出来的,但要想保持这些句柄长久不被gc回收,要在v8::EmbedderHeapTracer的AdvanceTracing里调用tracer->RegisterEmbedderReference。在v8::PersistentHandleVisitor里调用RegisterEmbedderReference是无效的。这个我研究了很久v8才知道。2,v8::EmbedderHeapTracer::RegisterV

2021-11-06 15:12:16 823

原创 2021.11.1日报,mb57切换到v875版本。

1,研究用vs编译v875的时候遇到了两个小问题。新版本v8,基本上没考虑过vs来编译。现在遇到了:(1)v8有部分代码是py预编译生成的。而在编译x86和x64的时候,居然这个预编译的代码还稍微有点不一样。具体是在gen\v8\torque-generated\builtins-array-from-dsl-gen.ccgen\v8\torque-generated\builtins-base-from-dsl-gen.ccgen\v8\torque-generated\built

2021-11-01 09:29:13 464

原创 2021.10.9日报:修复mb57的devtools问题

1,可以调用并获取flash npapi的返回值。之前没获取到,是因为_NPN_EVAL_xxx函数没实现完整。flash会在这里把_flash_temp_ = '111' 3之类的脚本,

2021-10-09 23:17:34 156 1

原创 2021.8.18日报:让v8忽略js的脚本错误继续执行

1,修复cssText获取节点的值不对的问题。原因是E:\mycode\minichrome53\third_party\WebKit\Source\build\scripts\make_css_property_names.py这里面我上次

2021-08-18 21:03:09 279

原创 2021.8.11日报:让v8跳过各种错误

1、现在碰到一个蛋疼的需求,就是有很多沙雕网页,js代码写的非常飘逸。而某些环境下,浏览器又必须得忽略这些错误。举个例子:var commonCookie = undefined;commonCookie.getCookie("userToken");console.log('finish');这种代码,必须得跳过前面的js错误,执行到console.log('finish');其他的js错误还有很多。除了运行时错误,还有编译错误。研究了一番后,我发现没有通用的解决方案。我是一.

2021-08-11 17:43:19 408

miniblink浏览器控件

Miniblink是一个追求极致小巧的浏览器内核项目,全世界第三大流行的浏览器内核控件。 其基于chromium最新版内核,去除了chromium所有多余的部件,只保留最基本的排版引擎blink。 Miniblink保持了10M左右的极简大小,是所有同类产品最小的体积,同时支持windows xp、npapi。

2019-02-13

ntfs源码(可编译工程)

ntfs的可编译的代码。我基于nt4改造的。相信搞文件系统的会相当有用吧?

2009-08-14

超强英语造句机

我花了整整一天的时间才做好!界面很华丽,最重要的是能把中文单词翻译成一些长句! 本地打开工具页面,输入句子进行翻译,支持中英文互译; 翻译时不刷新不提交页面,便于集成到其他页面; 支持在浏览器中选中文本后点击右键菜单进行即时翻译,中英文互译; 翻译支持词、句,建议用来翻译句子,如果是词还是用金山词霸更方便点; 几乎是零资源占用,翻译花费时间和网速成正比,最快只需半秒;

2007-04-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除