穿越火线登录界面右侧那块QQ音乐广告,很多人盯了半天只看到一片惨白,鼠标点过去光转圈,就是出不了一张唱片封面。这毛病不是穿越火线独有,其他游戏启动器里的活动页、公告页同样频繁翻车。表面看是网络不好,可游戏本体能登录,好友列表能刷新,偏偏内嵌网页打不开,说明问题出在游戏自带的那套浏览器壳子上。
那套壳子不是什么新东西,大多数游戏用的是Windows的WebBrowser控件,本质上是把老IE的Trident引擎打包进了exe。腾讯的穿越火线登录器从最早一代开始就靠它渲染广告和公告,十几年没换过。既然底层是IE,IE的毛病就全承接下来。从Windows 10开始,微软把IE封印起来,默认文档模式被压在IE7或IE8,但WebBrowser控件依然用这套老引擎。现在的广告服务器早就不理IE了,QQ音乐页面里随便扔一句ECMAScript语法糖或者一个Chrome专属接口,老引擎解析不了,直接放弃渲染。白屏的根本原因就在这里,不是游戏服务器挂了,也不是玩家网速不行,而是那个被淘汰的浏览器内核对新代码束手无策。
再往深处挖,IE的兼容性设置还会被系统安全机制捆住手脚。控制面板里Internet选项的安全级别如果不匹配,比如开启了“增强保护模式”,内嵌网页的ActiveX和本地脚本全被按停。QQ音乐广告为了拉取用户登录态,会写部分跨域Cookie,偏偏游戏内嵌窗口的安全沙箱默认屏蔽第三方Cookie,于是页面反复跳转登录,最终回到空白。有的玩家试着把网址复制进Chrome,居然能正常打开,这更加重了“游戏有问题”的印象。其实浏览器一换,说明远端服务是好的,问题全在游戏调用的那个IE内核身上。
网络环境也是个大坑。加速器和游戏代理为了降低延迟,经常改系统代理或者用LSP注入网络层。内嵌网页的HTTP请求也被强行绕道,一旦代理节点对y.qq.com之类域名返回异常响应,页面自然加载不出来。某些安全管家还会把内嵌页面误判成弹窗广告,直接拦截进程,连加载机会都不给。玩家反馈中使用代理时打不开、关了代理就正常,多半是这类干扰。还有个容易忽略的细节:系统时间不对,会导致HTTPS证书校验失败。内嵌网页走的是HTTPS,电脑日期多偏了一天,证书信任验证就崩溃,页面同样白茫茫。
至于解决办法,玩家能动手的其实有限。在系统注册表里给游戏exe加上FEATURE_BROWSER_EMULATION键值,把该程序的IE兼容模式指定为11000,也就是IE11,很多页面能活过来。把Internet选项里的“激活HTTP1.1”和“使用TLS1.2”都打上勾,关闭增强保护模式,清除SSL状态,也有一部分效果。但真正彻底的做法,得靠游戏厂商跟上时代。穿越火线登录器最理想的改造是弃用古老WebBrowser控件,换成CEF或者WebView2,像QQ音乐这种富交互页面才能稳定渲染。可惜腾讯把登录器当成了广告渠道,不愿意动那套老骨架。

按理说游戏自带网页应该是个轻量辅助功能,可现在它反而成了最不稳定的一环。玩家为了看个活动公告,得反复折腾系统设置,这不合理。游戏公司与其花力气修广告服务器,不如早点把内嵌浏览器升级一新。否则下次登录界面换成网易云音乐的广告,白屏毛病依旧还在。