1,在给chrome加上npapi能力的时候,发现有窗口模式下,会出现绘制不完整的情况。验证发现是chrome新版本给Chrome_RenderWidgetHostHWND这层窗口设置了WM_EX_TRANSPARENT
属性。原来现在这层窗口其实是不放置图像的,图像都统一由CC层绘制到主窗口。这个Chrome_RenderWidgetHostHWND貌似是给画中画使用的。
有WM_EX_TRANSPARENT这个属性的窗口,其实是个透明的。而子窗口绘制在上面后,会出现各种奇怪的效果。
后来想到的办法就是把npapi的窗口也挂到主窗口。但这要解决显示隐藏、焦点等问题。
2,mb在显示demo.finebi.com里的竖排文字的时候,会出现绘制重叠的问题。这网站很奇特,我hook了某些关键的技术的网络消息,重定向给本地文件,居然就报错了。最后使用了个暴力的办法,
在G:\mycode\mb\v8_5_7\src\builtins\builtins-global.cc的GlobalEval里,直接替换js的字符串。这个GlobalEval是js里eval的native实现。demo.finebi.com这网站把网络ajax拿到的js字符串用eval来执行。
但我们毕竟掌控了整个浏览器权限,所以直接在v8里动手脚,这网站就防范不了了。