是什么导致Android Chrome上的网络请求被取消

Sim*_*egg 12 android google-chrome http

在Android设备上的某些Chrome浏览器中,我们看到Chrome开发者工具中已取消的请求.

它似乎只发生在跟踪/content/:uuid路径格式和www子域名的文章的URL 上,我们认为我们已经缩小到它而不是所有文章,因为带有虚荣URL的内容似乎没有取消.

发生的情况是这些请求显示为已取消,然后立即再次请求但未取消.

大多数情况下这很好,浏览器加载请求的页面,但是偶尔www.ft.com点击链接到文章将首先取消原始请求然后,而不是重新生成该内容的请求,它将重新生成页面请求在这种情况下,他们已经开启了www.ft.com.

在发生此错误的设备上,初始取消的请求将一直发生,但原始页面的重新加载是间歇性的(可能是6次中的1次?).

取消的请求,最终通过:

取消请求,最终通过

取消的请求,重新加载原始页面:

取消请求,重新加载原始页面

这些设备上出现错误:

  • Chrome版本:59.0.3071.125,Android版本:7.1.2,型号:Pixel
  • Chrome版本:59.0.3071.125,Android版本:7.1.2,型号:Nexus 6P
  • Chrome版本:59.0.3071.125,Android版本:5.0.0,型号:Note 3

这些设备上不会出现错误:

  • Chrome版本:59.0.3071.125,Android版本:7.0,型号:Moto G5
  • Chrome版本:59.0.3071.125,Android版本:7.0,型号:Galaxy S7(mini)
  • Chrome版本:59.0.3071.125,Android版本:7.1.1,型号:OnePlus 3

这与Chrome开发者工具中资源均值的状态=取消有什么关系?,但我们很确定我们已经排除了接受答案中的原因.

调试我们尝试但没有帮助:

  • 禁用Javascript
  • 禁用我们的跟踪Javascript
  • 禁用我们的广告
  • 禁用我们的服务工作者
  • 禁用应用程序缓存

禁用Javascript确实改变了行为,我们看到请求仍然被取消,但没有看到它重新加载原始页面,因为我们看到启用了Javascript.

其他观察:

  • 单击Chrome Devtools模拟设备中的链接不会导致请求取消,只能直接使用设备.

小智 5

因此,这种特殊情况是因为当安装了处理深层链接的应用时,当前版本的Chrome中出现了一个错误.

在我的手机(Oneplus 3,Chrome 60.0.3112.107)上,我无法重现已取消的请求或错误的重定向UNTIL我在手机上安装了FT应用程序.

安装了应用程序(我假设它设置为处理模式链接www.ft.com/content/),单击文章链接会显示弹出窗口,以决定是否要在应用程序或Chrome中打开.这反映为"网络"选项卡中的已取消请求.即使选择始终在浏览器中打开,这些链接也会显示为已取消并重新请求(无论是主页错误,还是正确的文章).

我可以使用FT和WSJ及其各自的应用程序重现这一点,这意味着它是当前Chrome版本中的一个错误.

但是,在Chrome Beta(v61.0.3163.60)或Chrome Canary中也不会发生同样的行为 - 所以我它现在已经修复了......