Edge浏览器

微软出了Edge浏览器, 但我一直不知道其内核是啥. 是完全不同于IE的全新内核呢, 还是基于Webkit的内核?

以下引用段落摘自官方博客

As detailed in Jacob Rossi’s article for Smashing Magazine,the new engine began as a fork of MSHTML.dll but has since diverged very quickly. By making this split, we were able to keep the major subsystem investments made over the last several years, while allowing us to remove document modes and other legacy IE behaviors from the new engine

则可知, Edge浏览器使用的是EdgeHTML内核, 它是从 MSHTML(也即Trident) fork 而来,删掉了几乎所有的 IE 私有特性.

A clean break also necessitates a new user-agent string to ensure that no IE-specific code was being sent:
Mozilla/5.0 (Windows NT 10.0; <64-bit tags>) AppleWebKit/<WebKit Rev> (KHTML, like Gecko) Chrome/<Chrome Rev> Safari/<WebKit Rev> Edge/<EdgeHTML Rev>.<Windows Build>

另外需要注意的是, Edge浏览器使用了新的用户代理字符串, 前面一大段跟Safari一样, 但这是为了不让服务端发送IE特定的内容, 并非浏览器真的是基于Webkit内核. 从这里也可看出, user-agent其实是很不靠谱的东西, 带有”欺骗”的味道, 要使用user-agent来作判断时, 请三思而后行

因此由上可知, Edge浏览器使用的是新内核EdgeHTML, 它是基于IE内核MSHTML(Trident)的, 但跟Webkit内核却没有任何关系

参考资料

Fork me on GitHub