Microsoft loves Linux so much, its OneDrive web app runs like a dog on Windows OS rivals

Aw, your Office 365 storage is crippled? How convenient

frustration

Ever since Satya Nadella took over the reins at Microsoft, the Windows giant has been talking up how much it loves Linux – but it appears this hasn't trickled down to its OneDrive team.

Plenty of Linux users are up in arms about the performance of the OneDrive web app. They say that when accessing Microsoft's cloudy storage system in a browser on a non-Windows system – such as on Linux or ChromeOS – the service grinds to a barely usable crawl. But when they use a Windows machine on the same internet connection, speedy access resumes.

Crucially, when they change their browser's user-agent string – a snippet of text the browser sends to websites describing itself – to Internet Explorer or Edge, magically their OneDrive access speeds up to normal on their non-Windows PCs.

In other words, Microsoft's OneDrive web app slows down seemingly deliberately when it appears you're using Linux or some other Windows rival. This has been going on for months, and complaints flared up again this week after netizens decided enough is enough.

"Microsoft has been pulling this stuff for the last 30 years and won't stop any time soon," huffed one penguinista on Tuesday. "If you commit to using their products, expect to be jerked around if you try to do anything other than live in their expensive walled garden."

We asked Microsoft for comment, but the software giant didn't want to talk about it. If we're being charitable to Redmond, we'd say this is a case of Hanlon's Razor: never attribute to malice that which is adequately explained by stupidity.

When gripes about this suspicious slowdown have cropped up previously, Microsoft has coldly reminded people that OneDrive for Business is not supported on Linux, thus the crap performance is to be expected. But when you change the user-agent string of your browser on Linux to match IE or Edge, suddenly OneDrive's web code runs fine. That means there's an arbitrary limitation at play here, rather than an incompatibility or that there are some features missing from the browser.

What's likely happening here is that Microsoft is being super lazy and checking the user-agent string to see which version of its code it should serve to the browser: presumably, there are different versions tailored for IE 11, IE 7, Edge, and so on. Chrome or Firefox on Linux, for example, fall through the list of supported agents, and thus end up getting a crippled old version that doesn't work properly.

This is a super lazy way of identifying the capabilities of a web browser to ensure it gets the HTML and JavaScript it can properly use – Microsoft should really use feature detection to work out which code to deploy to the visiting browser. It's also rather convenient for the pro-Windows, anti-Linux factions within Microsoft: Linux doesn't work so great on OneDrive or Office 365 for Business? What. A. Shame – pop it on the todo list under "eating our way out of a silo of live spiders" and above "rewriting the NT kernel in Brainfuck."

"Microsoft is just doing really shitty feature detection using user-agent strings instead of, well, actual feature detection," a penguinista chimed in on Tuesday.

"I was able to reproduce the same result by setting my user agent to Firefox 52 on Windows 98 ... It appears if Microsoft cannot figure out your user agent – including your OS as part of it – it gives you a busted experience."

What. A. Shame. ®

Biting the hand that feeds IT © 1998–2017