We have already seen that manifest with several new Windows 10 capabilities for Chrome. Now Edge developers believe Chromium’s mouse scrolling can be greatly improved. In fact, the company believe scrolling on Chrome is horrible and is caused by a bug. In a new proposal, developers say they will bring Edge’s “smooth Scrolling” that will solve Chromium’s “Janky” mouse scrolling. “Scrollbar scrolling using the mouse happens on the main thread in Chromium. If the main thread is busy, scrolling by clicking on the scrollbar will appear to be janky as the events keep getting queued up [and] wait for the main thread to free up,” writes a Microsoft engineer, pointing to a Microsoft Edge page on GitHub that explains how Microsoft thinks a browser should handle mouse events. “We observe on average scrollbar drags have [over double the] latency in Chromium as compared to EdgeHTML today, worse on particularly busy sites. We attribute this gap primarily to EdgeHTML’s feature for off-thread scrollbar drags. By avoiding the main thread in Chromium as well, we believe we can bring the performance of scrollbar drags more in line with what we observe in EdgeHTML.”
Bug or Feature
Microsoft engineers clearly think current Chromium mouse scrolling is a bug and have reported it on Chrome’s bug-report website. This post includes a file highlighting the issue with scrolling on Chrome. “What went wrong?” Microsoft explains. “Today, scrolling using the scrollbar takes place on the main thread. A long-running [JavaScript] can lead to mouse events getting queued up on the main thread event queue. This results in janky scrolling to the end user. For better user experience, scrolling using the scrollbar needs to move to the impl thread.” Now that Microsoft and Google are developing on the same software base, we guess some developer disputes will be coming soon. In this instance, a Chromium developer said this should not be a big report but a feature request. “Thanks for filing the issue,” the Chromium developer said. “As the issue seems to be a Feature request, hence marking it as Untriaged and requesting someone from respective team to look into it.”