微软改进Chromium浏览器在Win10设备上奇怪的Pinch-Zoom缩放问题
去年微软宣布计划成为Chromium项目的重要贡献者之一,希望为包括Edge和Chrome在内所有基于Chromium的浏览器带来更多改进和功能。在增强鼠标滚动和搜索功能之外,微软现在将部分精力放在部分Windows 10设备(例如Surface Pro系列和Surface Book系列)上奇怪的Pinch-Zoom缩放问题上。
根据数月前的BUG报告,用户无法在Surface Pro等Windows 10设备的触控板上使用双指缩放手势。当用户尝试在触控板上执行双指捏大缩放手势(一根手指保持不变,而另一根手指从触控板中心位置离开)的时候,在部分网页上可能会出现错误。
正如用户所解释的,在以下情况下无法使用双指缩放手势
1.将光标放在“Real prevent default handler”滚动条上
2.做一个快速的触控Fling滚动操作(滚动条实际上不会滚动)
3.立即执行捏缩放手势
微软工程师表示虽然这种情况在MacBook 2016和MacBoook Pro 2018上也出现过,但是这种情况在Surface系列设备上出现更加频繁。工程师表示:“故意重现这个问题很难。在工作期间,每天平均会发生5次错误,并且并不会是所有设备都复现这个问题。我在MacBook 2016和无Touch Bar的MacBook Pro 2018 13英寸设备上也出现了这个问题。根据我的主观感受,在Surface Book Pro上重现更容易。”
根据最新提交的内容,目前微软已经提交了一个正确'preventDefault'缩放缩放的解决方案。目前该Commit标记为“活动”,表示夹点缩放有时不正确地被阻止。
在Commit中写道:“有两种不同的场景:要么从滚动过渡 - >捏合,要么从投掷 - >捏合。这个CL修复了这个问题,通过检查正在确认的事件与TPEQ期望ACK的事件相比,如果它们不匹配则提前结束并忽略ACK。”
根据另一个Commit,微软希望在不会发生fling滚动手势时立即发送滚动结束事件。微软指出:“现在有了这个改变,如果我们从滚动转换到捏合,事件的momentum_phase被设置为Blocked,表示动量滚动不会发生。然后,我们立即发送结束事件,而不是等待。”