修复miniblink无法显示某个网站的某个图标的bug
来源:互联网 发布:安知玉如意百度云 编辑:程序博客网 时间:2024/05/25 08:12
这个bug断断续续调试了三天。顺便把css解析温习了一遍。
起因是有大量用户反馈,他们的某个网站用了WEX5的日历控件,控件的切换年月日的图标显示不出来了:
这WEX5 还挺复杂。把网页代码精简了出来,发现单纯精态网页可以显示,动态就不行。
通过阅读wex5的代码,知道这个图标是通过
.prev-year, {
background:url(xxxx)
}
来设置背景图标的。
于是在blink里下断点:
ElementRuleCollector::collectMatchingRules
这里有句if (element.isStyledElement() && element.hasClass())比较关键。
这个函数会在收集元素会命中哪些css 选择器的时候执行。
而这句意思是如果一个元素有class,就走进去,把外部收集到的css样式,如link标签、style标签里的去和这个class对应匹配下。
堆栈如下:
同时在这个SelectorChecker::matchForRelation里会有这句
意思是不光本元素要匹配,父元素等也要。
这时我发现和正常流程比,这个图标父元素居然匹配中了一个样式(x-datePicker-touch)。于是我在SpaceSplitString里加了条件断点,一旦有元素设置了.x-datePicker-touch 这个样式,就中断。此时发现原来是js动态设置的。翻了下wex5的代码,居然是
这句设置的。此时终于明白了。原来miniblink默认开启了触屏的api···导致网站设置了一个pc版本不应该设置的样式。
bug的原因很简单,但调试这堆css的解析逻辑搞了我很久,特此记录一下。
- 修复miniblink无法显示某个网站的某个图标的bug
- 修复miniblink某些网站图片不显示的bug
- miniblink修复3D变换的两处渲染Bug
- miniblink 的bug收集帖子
- 修复miniblink 文件编码检测和退出内存泄漏的bug
- topdesk 图标隐藏 后无法显示的BUG
- 如何获取某个托盘图标的位置?
- 获得某个exe的图标句柄
- [ios] 模拟器图标 玻璃化 bug的修复
- miniblink滚轮太慢bug修复
- 由于线程停在某个无法进行垃圾回收的点----bug
- 某个Eclipse无法启动的问题
- 检测某个网站的链接速度
- 关于某个ASP网站的研究
- 如何屏蔽某个特定的网站
- 某个表空间的数据文件损坏的修复思路
- 设置datagridview的某个checkbox不显示
- 某个控件显示不全的原因
- tableView内的View悬停在导航栏的效果
- 常见的Python面试题+详细解答
- Python爬虫爬取Html中的Url常用知识
- spring mvc <mvc:annotation-driven/> 和<context:component-scan base-package=""/>解释
- Redis数据类型-List
- 修复miniblink无法显示某个网站的某个图标的bug
- Codeforces 742B B. Arpa’s obvious problem and Mehrdad’s terrible solution
- android入门小知识
- Tablayout使用小结
- 第十二章-无线传感网接入Internet
- 常见对象_BigDecimal的加减乘除法的使用
- Android 中使用MediaRecorder进行录像详解(视频录制)
- Codeforces 742C C. Arpa's loud Owf and Mehrdad's evil plan
- Bootstrap学习总结笔记(22)-- 基本插件之折叠