给MiniBlink的更新做个日志吧。不是github的提交记录,而是有所整理的

github的提交日志比较详细,这里想要一个精简一点的更新日志.欢迎大家更正和补充。(最好是大佬另开一专贴来提交)

2018.02.04
1.增加window.XMLSerializer能力,修复了网易163邮箱弹参数错误的提示

2018.02.02
1.完善数组有关的wke api
2.把文件的真实路径也传进blink。另外修复字符串没0结尾的bug
3.修复关闭内存缓存下,网易的顶部图标无法显示的bug。原因是此图标是    background-image: url(products_sprites0727.svg),none;这种形式,而svg在RawResource::preCacheSubstituteDataForMainResource里被缓存准备加载的。现在对所有主资源类型的请求都放行

2018.02.01
1.修复 <input id="localfile-lexicon" style="width:100%;" type="file" />选择文件后有多余无意义字符串的bug
2.修复 <input id="localfile-lexicon" style="width:100%;" type="file" />选择文件后没有正确过滤文件的bug
3.修复http://www.ygdy8.net/html/gndy ... .html点击链接崩溃的bug原因是调起了迅雷的np dll。此dll写的不规范,传了个空值,所以加个判空即可
4.修复汤不热登录后点击用户头像的崩溃。原因是scrollChildren这些变量清空逻辑没写对,会发生野指针。去掉这些成员变量算了,因为暂时还没用到

2018.01.31
1.修复小白心提出的member.shihuizhu.net上传不了图片的bug。原因是pack.upload.js里取flie.type返回的值,有个多余的0。根本原因是WebFileUtilitiesImpl::baseName转换全路径到文件名的时候,多加了个0
2.修复https://m.lehuipay.com/login没显示验证码的bug。原因是wss协议没加https的url头

2018.01.30
1.修复http://www.discuz.net/forum-plugin-1.html在hover用户名字时,只显示一条宽线条的bug原因是这个线条其实是个div,在common.js和ajax.js里通过xhr请求生成的。

2018.01.28
1.修复http://sandbox.runjs.cn/show/pcohsrh0绘制的时候,tile边界有一像素多余线条的bug。原因是其实说完全不能开启扛锯齿(kLow_SkFilterQuality是一定要设置的)也不对,边缘的tile可以开启。具体见原版cc代码:cc\output\software_renderer.cc里的SoftwareRenderer::DoDrawQuad。

2018.01.27
1.打开woff2字体支持
2.修复http://www.layui.com/demo/tab.html按钮字体是问号的bug,原因是checkCharacterRangeCodePathAndFixIfNeeded把复杂文字直接替换成问号了。

2018.01.26
1.修复猎名网出现的异常色块。原因是纯色到纯色的变化时,如果脏区域没覆盖整个tile,则应该用曾经的纯色,再考虑背景色。

2018.01.25
1.修复http://www.w3school.com.cn/tiy ... sform 首字母不正确的bug,原因是判断字母和数字的函数写的有bug

2018.01.23
1.修复拼多多后台登录一直卡住的bug,原因是wss协议需要主动告诉curl是https。
2.修复钉钉的验证码颜色不对的问题。现在准备重新启用原版代码,抛弃gdi+。

2018.01.21
1.修复火币网登录不了的bug。原因是https//api.huobi.pro/v1/users/token/verify这个curl,content-type必须不能是application/x-www-form-urlencoded。但curl会在content-type没设置的情况下,在Curl_http函数里主动添加application/x-www-form-urlencoded。所以我们在外层判断如果没这个字段,且是post请求,且http body也没设置,就加一个空的content-type
2.增加跨域开关

2018.01.18
1.修复http://edu.17win.com/course/18 ... w%3D1播放不了的bug。

2018.01.16
1.打开CanvasRenderingContext2D相关api,火币网的k线绘图要用到
2.修复打开https://itunesconnect.apple.co ... ninfo页面出现的一处小断言错误
3.修复https://itunesconnect.apple.com选择文件的bug。BlobResourceLoader::didGetSize里没获取文件的真实大小

2018.01.13
1.修复zzz提到的test2_jq页面显示不正常的bug,原因是没实现setBackfaceVisibility的3d逻辑

2018.01.12
1.打开ICOImageDecoder,可以解析ico图片
2.增加wke操作frame的能力,如给frame注入脚本。所以现在需要传frame的id给wke调用者,如果直接传指针太危险 
3.增加显示自定义cursor能力

2018.01.10
1.修复百度新闻按ctrl+shift+right卡死的bug。原因是WordBreakIterator在识别“xxx\n”的时候,如果preceding传3,返回也是3,所以在findNextWordFromIndex死循环了。解决方案是往前推一个字符。但不知道是否会引发别的bug,待验证

2018.01.09
1.增加wkeSetLocalStorageFullPath,可以外部设置LocalStorage路径
2.增加wkeNetOnResponse,与wkeOnDownload的区别是可以获取更多如mime之类的参数

2018.01.08
1.修复https://8894f.com/打不开的bug。原因是此网站返回的请求头是http1.0,但实际必须使用http1.1。xsoft找到的问题原因。现在比较少网站还在用1.0了,但目前还不敢把所有curl的回应都改成1.1,所以目前只改https的强制走1.1

2018.01.03
1.以前的cookie访问接口太原始,现在改成wkeVisitAllCookie访问器模式
2.实现ReloadIgnoreCache等api 
3.实现cookie的增删改
4.实现CefFrameHostImpl::GetFrameIdByBlinkFrame

2018.01.02
1.修复http://dns.toaone.com里点击感叹号出现的对话框有残留线和有大块花屏的bug。这其实是两个问题。出现残留线的原因应该是精度误差。那个线是tile里没被光栅化的部分。没被光栅化的原因是这部分不属于layer了,在layer的边框外。理论上来说,边框外的部分应该在DoClipChileLayer和DoClipLayer里被裁掉,但就差了这么一个像素,我把边框大小外扩了一个像素就没事了。具体为啥差了这一个像素还在跟进。
  出现大块花屏的原因是tile的bitmap被new出来的时候,没按照layer的背景色清空。之前没清空是考虑性能问题。现在发现必须清空。和上个问题类似但不一样,有的tile刚好在脏矩形被光栅化的边界位置上,blink可能就是这样设计的,被光栅化的区域就显示光栅化的图片,没有的区域则显示背景色。而这个tile所在的区域,顺序是先纯色 -》点击感叹号后,出来个对话框,此时部分被光栅化,部分是背景色。
* cc层部分IntRect改成SkRect,防止精度丢失
* kMinDetTime的值调整,也许会流畅点
* 修复https://ssl.captcha.qq.com/cap ... 19l6w**&lang=2052&rnd=190017

的性能问题。解决方案是把m_pendingRepaintRectInRootLayerCoordinate改成数组。以前会把脏矩形一次性合并成一个大的,现在存在数组里,并做智能合并。

2017.12.31
1.修复https://cibmcha.swiftpass.cn点帮助中心打开页面空白的bug。原因是主资源的kAcceptHeader字段,chrome把这个设置从FrameLoader::addExtraFieldsToRequest放到 RenderFrameImpl::willSendRequest了,而miniblink没实现RenderFrameImpl::willSendRequest里面的逻辑。现在补上

2017.12.30
1.去掉sse4的支持,强制全走sse2
2.修复302跳转的网址,获取不到正确的url的bug。测试地址:https://xui.ptlogin2.qq.com/cg ... llect原因是最后一次\r\n被当成代理模式的最后一次处理了,导致没收到302 http code
3.增加wkeSetDebugConfig能力,可以打开调试模式,输出调试线什么的

2017.12.25
1.去掉FLAG_harmony_sloppy_function=true。这会导致https://wap.zol.com.cn/list/10 ... apSub 崩溃。真实原因应该是v8的bug。暂时没找到新版本的修复patch,相关patch可能有https://chromium.googlesource. ... %23F1

2017.12.24
1.setHTTPHeaderField不能直接设置referer,要调用setHTTPReferrer
2.fetch设置头不允许设置referer,现在打开这个限制

2017.12.23
1.增加NodeList的功能,方便实现NodeList::forEachForBinding,这个会用在v8导出函数里。querySelectorAll返回的就是NodeList,新h5标准需要forEach等函数。
2.打开V8Headers、V8MimeType、V8Path2D、V8Plugin这几个v8对象。v8Headers在fetch设置header里需要。其他几个只是顺手打开,反正代码已经编译进去了之前

2017.12.18
1.修复https代理的一系列bug。
重现方法:打开fiddler后,wke代理填127.0.0.1:8888
原因:
  1,curl_easy_getinfo CURLINFO_RESPONSE_CODE应该填CURLINFO_HTTP_CONNECTCODE
  2,代理有时候不会发最后的\r\n,此时DidReceiveResponse可能没被调用,导致http methon字段没有
  3,代理请求头最开始是Connection Established字段,需要抛弃掉
  4,setProxyInfo函数没添加合适的http前缀  
2.把vc6crt no node版本的v8切到4.8版本,不然火币网打不开

2017.12.17
1.非严格模式也能用let。这是为了解决https://www.huobi.pro/zh-cn/xrp_usdt/exchange/显示不正常的bug

2017.12.13
1.增加getAllCookiesBegin接口,方便wke遍历所有cookie
2.增加wkePerformCookieCommand等api
3.恢复mutationObserver,不然https://live.bilibili.com/177的flash播放不了

2017.12.12
1.修复.blur {-webkit-filter: blur(8px);}.body {transition: all 6s;}样式下过渡动画没有的bug,原因是blink把过渡动画放到cc层了,只有最后一帧是在blink层实现

2017.12.11
1.修复打开bilibili的flash导致崩溃的bug。原因是asynStartTask在立刻调用析构的时候,没通知异步任务取消

2017.12.06
1.创建wke窗口增加WS_CLIPSIBLINGS | WS_CLIPCHILDREN;属性,防止vlc插件绘制不全的bug。因为vlc的插件里面居然还有真实窗口。
2.增加wkeGC,可以手动gc了

2017.12.05
1.打开performance,不然bilibili的视频跑不起来,因为https://static.hdslb.com/js/videomin.js

2017.12.04
1.修复http://micro.xy.com/lanyue/tui/27?adkey=23629刷新会崩溃的bug。方法是实现WebPluginImpl::stop()被注释掉的m_plugin->pluginFuncs()->destroy。但为了防止在npn_eval里调用stop,所以加了个异步调用。并且所有 NPN_xxx函数都检查NPP instance是否存火

2017.11.29
1.修复宇宙生物提到的bing无法切回国内版的bug。有两个原因:1,对于设置进来的domain=bing.com,因为没加点号".",所以下次获取cookie的时候获取不到这个ENSEARCH=BENVER=1;2,对于ENSEARCH=BENVER=1这种写法识别有问题,识别成ENSEARCH=BENVER了。

2017.11.24
1.修复m.baidu.com崩溃的bug。原因是WebStorageAreaImpl::key(unsigned index)没实现(xsoft反馈)

2017.11.23
1.修复zui.sexy滚动条的bug。原因是opaque=false的层,应该每次绘制之前刷一遍。

2017.11.22
1.修复不停reload导致百度图片加载不了的bug。原因是图片请求被cancel掉之后,没加error.isCancellation就不会从memorycache里面删除。导致下次reload还使用这个被标记为error的resource

2017.11.20
1.修复storage用不了的bug。加入了存入本地文件的功能

2017.11.14
1.增加g_navigationToNewWindowEnable能力,可以禁止打开新窗口

2017.11.09
1.修复http://news.qq.com的乱码问题
2.修复没有flash dll的时候,显示乱码的bug

2017.11.08
1.修复http://cul.qq.com/a/20160306/044906.htm 乱码的bug。两次网络数据,如果中断的地方刚好在gbk汉字的中间,就会出现。修复方案是在解码的时候,把最尾部的几个字节缓存起来。下次数据包再拼。不过目前只支持gbk,对GB 18030的四字节汉字不支持。

2017.11.05
1.增加一个wkeSetMemoryCacheEnable接口,可以关闭内存缓存
2.增加tip

2017.11.02
1.修复http://lpl.qq.com/es/live.shtml页面flash播放不了的问题。原因是这个TENCENT_CHANGES宏打开后,_NPVariant会多一个字段,导致NPV8Object.cpp里的createValueListFromVariantArgs通过_NPVariant数组来遍历参数的时候获取不到正确的内容

2017.10.30
1.增加setCookieJarFullPath、wkeOnDocumentReady2、jsEvalExW三个api
2.修复打开www.ik123.com崩溃的bug

2017.10.29
1.修复http://lpl.qq.com/es/live.shtml里面flash播放不了的bug。原因是http://ossweb-img.qq.com/images/js/qt/chat/chat.js从BlinkPlatformImpl::getPluginList获取插件信息是我随便填的。

2017.10.21
1.增加wkeSetNavigationToNewWindowEnable接口,可以强制让超链接不弹新窗口,而是在本窗口加载

2017.10.20
1.更新开源协议,使用mit发布,欢迎商业使用

2017.10.19
1.增加透明窗口需要的api支持

2017.10.18
1.wkeSetViewNetInterface接口,可以设置curl绑定的网卡 
2.wkeSeCspCheckEnable接口,可以关闭权限检查,实现跨域
3.增加wkeOnURLChanged2接口,和老接口的区别是会多传一个frame参数,可以用wkeWebFrameIsMainFrame等函数操作

2017.10.17
1.支持放大缩小接口
2.修复通过微博登录知乎网按钮点击没反应的bug。原因是网络层对重定向处理有问题,没清空老url的响应头,导致莫个跨域导致Content-Security-Policy里的东西被继承到新的链接,从而跨域的设定也被继承过去,从而某个请求被跨域拒绝了。这段代码是我从webkit里面扣的,webkit也有同样问题。
3.实现fetch api

2017.10.13
1.去掉ImageResource::setCustomAcceptHeader(),因为不支持webp。

2017.10.12
1.修复http://m.ji7.com/ 图标显示不出来的bug。原因是chromium的bug
2.打开CustomElementRegistrationContext的支持
3.修复wkeLoadFile加载中文路径时候的bug。顺便对file:///这种形式以及是否只有文件名没有路径的情况进行的修复处理

2017.10.10
1.修复MFC里使用窗口模式wke不显示的bug。原因是MFC的子窗口,mfc会画蛇添足的加个文件拖拽那个属性,所以GetWindowLong获取出来的不止有WS_CHILD属性。这里的判断方式不能用等于,而是and再判断

2017.10.04
1.修复打开优酷提示客户端无权限的bug。原因是PluginStream发起请求的时候没带UA和referer

2017.10.03
1.添加wolfssl工程
2.配置工程,使用wolfssl
3.增加wkeSetFileSystem接口

2017.10.02
1.修复打开https://www.teambition.com/projects慢可能的原因。猜测是太多请求没被关闭导致。导致的原因是WebThreadImpl::schedulerTasks里的循环如果一直有m_timerHeap被添加进来,则外层的startTriggerTasks得不到执行。这是在增加cancelAll接口时候发现的。cancalAll里会抛一个异步回调,但迟迟得不到执行。

2017.09.26
1.修复土豆网打开会挂的bug。原因是PluginStream::start()里面创建了Platform::current()->createURLLoader(),却没通知client()->willSendRequest

2017.09.23
1.修复http://www.ztcwhy.com/video/la ... .html里的flash无法加载的bug。

2017.09.21
1.修复高德地图点击某些按钮会crash的bug。原因是didReceiveBinaryMessage需要传new出来的vector,而不是栈上的

2017.09.12
1.支持blob(见http://www.ruanyifeng.com/blog ... 2.html)。

2017.09.07
1.把设置cookie的接口公开出来一个,方便wke里面直接设置

2017.09.05
1. 新增wkeJsBindFunction、wkeJsBindGetter、wkeJsBindSetter三个接口,老接口不变。老接口的问题是使用了fast call,在C#里调用不了。

2017.09.1
1.修复https://www.teambition.com/登录后显示不正常的bug。原因是layer从只有一个tile到有多个tile计算宽高的方式不正确
2.修复wkeNetSetData无效的bug,原因是在HandleLoadUrlBegin里调用wkeNetSetData的话,blink内部某个load的client并没设置进去。现在改成缓存在job里,等blink初始化好后再把job中的数据设直接传给net层

2017.08.30
1.跟进https://account.teambition.com/登录后立刻关闭页面,会导致FontLoader::FontToLoad在关闭时候无法释放的问题。原因是关闭时候BlinkPlatformImpl::shutdown()没调用

2017.08.29
1.修复https://account.teambition.com/ 登录时候关闭页面会崩溃的bug。

2017.08.26
1.fastmalloc加入ENABLE_MEM_COUNT宏控制
2.log输出支持utf8格式

2017.07.18
1.性能统计的代码用ENABLE_MEM_COUNT宏包起来

2017.06.25
1.添加libpng和libjpeg库代码
2.修改图片解析方式为libjpeg和libpng

2017.06.23
1.修复渲染不对的bug。案例可参考http://echarts.baidu.com/echarts2/doc/example.html

2017.04.19
1.增加wkeSetUIThreadCallback接口,可以在blink里调用到ui线程里去。但需要外部宿主实现此回调

2017.04.17
1.增加DOM相关wke api 

2017.04.16
1.增加空的getJumpListSettingsApi,方便跑起vscode

2017.03.20
1.把名字改成node.dll方便兼容electron的三方库

2017.03.19
1.额外支持下node50版,以便跑起vscode最新版的第三方dll 

2017.03.04
1.增加getCursorInfoType函数,方便获取光标信息

2017.03.02
1.增加wkeCreateStringW、wkeDeleteString、拖拽、光标相关api

2017.02.22
1.补充electron会用到的base api
2.增加wkeGetWebViewForCurrentContext\wkeSetUserKayValue\wkeGetUserKayValue三个api

2017.02.08
1.增加wkeGetWebViewForCurrentContext接口,方便获取脚本现在对应的view
2.增加wkeSetUserKayValue接口,方便设置外部数据

2017.02.07
1.增加wkeOnDidCreateScriptContext等2个回调,方便hook页面里面的脚本创建逻辑
2.onDidCreateScriptContext的回调只在主frame下调用
3.提供blinkMicrotaskSuppressionLeave接口,方便外部禁用blink的一些断言
4.新增menu、ipc等api
5.加入unzip

2017.02.04
1.完善electron的api
2.让外部可以设置SetV8Platform,这样可以不使用blink的v8platform
3.nodeblink的回调增加preinit回调,方便设置v8platform

2017.01.22
1.把node线程和ui线程合并,降低编程复杂度。不过会损失点性能,比如node线程如果js做比较复杂的运算,会卡ui

2017.01.21
1.加入wkeIsUpdataInOtherThread接口,这样合成线程可以直接回调到外部

2017.01.20
1.webContents api补全

2017.01.14
1.添加contents类
2.添加contents对象,实现loadurl函数

2017.01.09
1.将无node版mb的v8降级到 4.5,并采用vc6crt编译

2017.01.07
1.开启getPluginOcclusions支持

2017.01.06
1.修复node的接口未导出的问题
2.开启openssl支持

2016.12.26
1.添加node初始化完成回调

2016.12.24
1.修复hao123的城市选择框,下拉滚动条一点击就消失的bug

2016.12.23
1.修复jsEval没有实现的bug

2016.12.22
1.添加给单个view设置代理的接口,修复语言设置
2.给cef模式加上didReceiveTitle回调
3.加入didDispatchPingLoader回调

2016.12.21
1.移除Node工程
2.开启curl的openssl支持

2016.12.19
1.融合node到mb

2016.12.16
1.修复CWebView::runJS没有返回值的bug

2016.12.15
1.将V8升级到最新版

2016.12.11
1.实现前进后退功能
2.实现tab键功能

2016.12.10
1.实现urlChangedCallback wke回调

2016.12.08
1.增加设置cookie缓存路径的接口
2.修复网友提的http://j016433.xicp.net:11852/里日历控件无法显示的bug。原因是默认开启了触屏api

2016.12.04
1.增加wkeLoadW
2.WebFrameClientImpl::decidePolicyForNavigation里增加wke的回调 

2016.12.03
1.增加WebPage::isDrawDirty()方法,替代以前的needsCommit。因为wke需要知道是否需要重绘,而needsCommit表示是否整个界面有变化,需要跑一套排版、等流程

2016.12.01
1.加入最原始WKE API的支持

2016.11.23
1.打开portAllowed开关
2.打开KURL::createIsolated

2016.11.16
1.修复腾讯地图刷新时,刷到下层div的bug。原因是skia的intersect居然在矩形不相交时,不会清空原矩形,大坑啊

2016.11.15
1.添加文件下载回调

2016.11.12
1.修改滚动条箭头风格

2016.11.05
1.修复淘宝网页打开出现非法请求的bug
2.添加SetUserAgent接口

2016.11.03
1.添加npapi的支持
2.添加fileutil接口

2016.10.25
1.修复http://pcsample.app.cloudx5.com站点左边栏hover时刷新出下层内容的bug

2016.10.22
1.添加网络层HOOK回调

2016.10.21
1.解决输入法不跟随

2016.10.20
1.支持websocktet
2.添加导出接口条件编译宏
3.CEF接口添加条件编译

2016.10.16
1.切换到libcurl的网络层,抛弃之前的win inet方案。但还保留代码,可以随时切换回去
3.添加一个hook库:底层辅助库,封装ring3层的底层操作,实现内存dll,进程注入,反调试,API Hook等功能

2016.10.08
1.补充vc6 runtime,修复xp下崩溃问题。

2016.09.27
1.首次上传到github仓库。
已邀请:

要回复问题请先登录注册