Onedrive is slow on Linux but fast with a “Windows” user-agent (2016)
answers.microsoft.com
answers.microsoft.com
We identified that StaticLoad.aspx, a page that prefetches resources in the background for Office online apps was using the link prefetching browser mechanism only for certain platforms (iOS, Chrome OS, Mac, Windows), but for Linux it was falling back to a less efficient technique that was causing the issue. Rest assured that this was not intentional. It was an oversight.
The prefetching optimization was disabled, and it will be enabled again soon after an update for StaticLoad.aspx has been tested on Linux and released.
We apologize for the inconvenience this may have caused.
It seems like a bad idea to check for capabilities by parsing user agent string anyway - I though we all figured that out about 20 years ago? JavaScript allows web page to check for capabilities on-the-fly, so there really is no excuse for whitelists.
Anyone can make a mistake, the real test is whether they change their ways to be less error prone. (With proper testing of Linux platforms too)
But if you still insist you need it, I don't think detection should be that difficult. When user comes to the page for the first time you put a hidden link somewhere with prefetch turned on. Then you ask server if the page has been accessed. And because you only make this check once (for instance on login page while the user is typing) it is performant enough.
Is it easier to whitelist? Sure. But we have seen here how reliable whitelisting is.
Unfortunately not all of us have that option. I'm currently trying to figure out an issue with TFS which means I can't do anything with a PR once it's been raised if I use a browser in Linux. After seeing this thread I think I'll be switching the user agent and see if that fixes it.
In theory yes. But for some cases it's just not realistic to do feature-detection, and then you move on to the second best option you have.
I'm pretty sure we'll have user-agent related bugs for quite a time to come.
No, wasting time for two open minded users instead of working for 99,999% users is inexcusable.
1. There are probably more IE7 users hitting OneDrive than Linux users of all distros combined. Should the fact that there are some users of a platform obligate MS to support it?
2. If you're running Linux on the desktop, you've made a decision to eschew all the major commercial software/OS vendors (particularly Microsoft and Apple). Why should you then expect Microsoft to bend over backwards to support your idiosyncracy? Why do you care?
I run OpenBSD on my desktop. I can't run Microsoft stuff. Even Outlook Web won't load unless I spoof my user agent. I don't care.
The percentage between $PLATFORM users generally and $PLATFORM users using your product may or may be not correlated. It may happen, that then first percentage will rise but the second will not - you are making it difficult for them, so why bother - and you will miss it.
You might fix the software later, but that's the easy part. The more difficult part is to fix your reputation and users habits. They already have opinion of you and found alternatives that work for them. The Thank you, I go back to Google Apps suite. response is a perfect example of this.
I'm curious about the "less efficient technique" you referred to. Insight into the technical context around the goal being achieved may be very interesting to other Web developers looking to make their JavaScript applications more efficient and responsive.
A lot of people are also likely to be very interested to learn what solution you use to fix this for Linux as well.
--
As an aside, link prefetching caught my eye - it's an interesting mechanism that works via <link> or <meta> tag, or via HTTP headers: https://developer.mozilla.org/en-US/docs/Web/HTTP/Link_prefe...
With less efficient technique, I refer to using <object>, <script>, <img> tags to prefetch content, which does not have the goodness of link prefetching mentioned in the article your shared. That is what Chrome on Linux was falling back to.
Link Prefetching is the way to go, and that is what Chrome on (Mac/Windows/Chrome OS) is currently using.
The reason why browser detection is needed is because it is not supported everywhere, e.g for instance, according to http://caniuse.com/#feat=link-rel-prefetch Safari does not support it, so StaticLoad.aspx uses the <object>, <script>, <img> technique, but unlike Chrome on Linux, Safari on Mac does not hang.
Again, this was not intentional. The second technique does not hang on Safari on Mac, but it does on Chrome on Linux. We will definitely ensure that more Linux testing is done! Our goal in OneDrive is to build a service that enables as many people as possible to be productive, so if in cases it looks like we are trying to favor our own OS, that is not really our intention.
Thanks! Edgar
I think I understand now: you added a whitelist that needed to see "Windows" (possibly alongside some other acceptable keywords) in order to serve the link prefetching implementation, and that Chrome on Linux just never got whitelisted. I'm very glad to hear that you'll be doing more Linux testing in future!
With that said, I'm now looking sideways at the Chrom{e,ium} team and wondering why using object/script/img tags is causing such massive lags on Linux - that's how most websites still work! If I may ask, what do you think were the contributing factors to the hangs? I'm guessing large code size might have had something to do with it...?
Thanks for the reiteration that this wasn't intentional, really cool to hear that. I also really like the view you have regarding different platforms :D
We've done similar experiments and proven it to be again based on your own user-agent detection, since normally they will take 30-60 seconds to load, causing the UI to essentially lock up and fail, when faking the agent-user to something else will work around it.
Multiple attempts at contacting Microsoft support come back with its not supported.
Its the Web... pretty sure you can build things without breaking them for Linux.
That's interesting; sounds like a very similar issue to this one (with Link Prefetching). That said, Edgar is from OneDrive, whereas you're talking about Office365. My guess is that the departments are "just far apart/different enough," so to speak, even though the issue does sound the same.
I really liked to hear that "We will definitely ensure that more Linux testing is done!"; hopefully this is a collective mindset (and I really do hope that, non-skeptically). Maybe if you're persistent now you might get somewhere - although it could take a while; the L1 techs on the forums or wherever are probably not completely tuned into these recent developments.
You could also try being unorthodox, such as for example politely poking random people on GitHub/microsoft (fish emails out of local repo clones :P) - that might find you someone who can figure out a good next hop in the direction of the right department, eg someone might be able to pass your email on to some developer directly. That's always really cool.
Other products (e.g. Teams, Office itself) are also affected for the same reason, and spoofing user agents to just officeapps.live.com works around the issue on all of them.
Seems like the pipeline for customer feedback could be improved.
Just tried (Thu Mar 23 10:25:18 CET 2017) -- the bug is still here.
Content prefetching? Sounds good (if you are prefetching the right content of course).
Checking the user-agent and doing prefetching only on that basis? I can think of no reason to do such a thing.
If this was not intentional, can you clarify the reason that your team engineered such a strange and unusual solution?
> Hello, Onedrive for Business open is very slow on Linux (Chrome/Firefox) but with very fast with a "Windows" user-agent.
> Hi DL, As Office 365 for Business services(e.g. SharePoint Online, including OneDrive for Business, Exchange Online) are not supported on Linux as shown below, for the best experience, we recommend the operating system listed in the article.
> Thank you, I go back to Google Apps suite.
> 12 people found this helpful
> 36 people found this helpful
Also:
> Solved my problem (12)
One of my accounts is corporate, and my browsers -- ALL of them on ALL OS's -- are constantly confused. Sometimes when I need to switch, it looks like my browser flips through about 4 or 5 pages, and then makes me manually refresh to get a prompt. How can this be so bad, at this point? Google had multi-user support sorted years ago, including business account logins. I guess it's a problem due to a difference between AD-backed corporate accounts and (I assume) non-AD accounts?
>I go back to Google Apps suite.
Regardless of your browser, it'll heat your system up so you can fry an egg or broil a steak.
Something to do with WebGL being used during background transitions would drop the performance of my graphics card into the dirt. Games running at the same time would incur a frame drop of 90% for the 5 seconds Hangouts is merely changing a PICTURE..
Ironically that's being caused by WebRTC not having compatible enough implementations across all major browsers (and as an aside being disproportionally difficult to debug). Otherwise they would've just dropped the plugin and be done with it much earlier. Though I'm surprised they didn't act earlier.
There may be some cloud integration to OneDrive or something similar, but I haven't used that. It is nothing like Google Docs.
Keep in mind, XMLHttpRequest was introduced by MS in IE, and then was adopted by other browsers. It's likely that some Google products use Chrome specific extensions if they detect Chrome. If you can provide a better experience, it's often worth doing so.
Unfortunately there may occasionally be problems where falling back to standard features may be buggy, or development has continued assuming the existence of proprietary features that has led to designs where the fallback to standard features isn't just a little slower, but massively slower, because it might be a less checked test case.
In other words, I think this is far more likely to be an oversight because of a poor testing regime than a purposeful action.
I'd have much more respect for them if they just came clean and said "we hate linux users, if you want to use that OS don't use our products because we try our best to make them not work on linux". Look at what they did with Skype for example. At least then we'd know not to try their stuff.
This has nothing to do with 'making it run well on platforms you care about' but it is 'making it run bad on platforms you don't care about'.
It takes more code for the software to act in this way (this is what proves this is intentional and not accidental), and more support to boot.
That's not necessarily true. For example they might be doing polyfills that are slower than the native windows implementation.
I feel like I'm seeing a lot of this kind of thinking everywhere. The canonical example for me is lately is "he voted for Trump/Hillary therefore he must support groping/war/whatever".
I wish people would ease up on these kinds of deduction-based motivation attribution. It's my view that there enough self-professed unethical motivations for us to work against, without speculating. The speculation just muddies the waters.
The same exact website/piece of software runs better by saying "Hi I'm on windows". This obviously means foul play.
No, it really doesn't. It could just as likely mean they load a bunch of slow polyfills and workarounds when the browser is not part of a whitelist (assuming it won't have support for various APIs that it actually does support).
Seriously, white-listing??
I don't buy it.
It is _less_ effort to say "We support these specific platforms, and rather than doing actual feature detection, we'll just load a bunch of polyfills to make it work on anything else".
Have you ever used Microsoft software?
If 1990s Microsoft did something seemingly anti-competitive, it probably was intentionally anti-competitive. If 2010s Microsoft does something seemingly anti-competitive, while it still might be by intention, I'm more inclined to give them the benefit of the doubt and presume it is the unintentional side effect of an innocent (even if misguided) decision.
Ok
> If 2010s Microsoft does something seemingly anti-competitive, while it still might be by intention, I'm more inclined to give them the benefit of the doubt and presume it is the unintentional side effect of an innocent (even if misguided) decision.
That's fine with me. But the degree to which MS has abused its monopoly position in the past, the degree to which they have been found guilty of bribery (in very recent times) in order to push MS products where Linux would have been a viable (and more sensible) alternative (for instance: http://www.intellinews.com/former-romanian-minister-admits-t... , there are plenty of other examples), the Windows 10 privacy violations, the crippling of Skype on Linux and so on make me believe that there are still at least some parts of MS that have not changed all that much.
It takes a long time for a company to recover from a toxic management team even after they are gone. Some never do.
Their fall from the heights since then has allowed me to ignore whatever malfeasance they committed in the late 2000's or early 2010's, but that doesn't mean that it didn't happen.
And for what it is worth, what they did to companies I worked for in the late 90's and early 2000's consisted of lying, cheating and stealing. It consisted of blatantly dishonest and illegal behavior. And it was completely institutionalized so that the default behavior was dishonest and malicious.
You can be wonderfully forgiving and credulous, but I personally find it very hard to do so.
From former employees, I know that the culture at that time and into the late 90's was that Microsoft employees were a better class of human being than non-employees. Knowing that, it's not surprising to see the amount of Us vs Them behavior that showed up as anything from active antagonism to malicious neglect.
The kids don't remember that time frame, and wonder why the old farts malign Microsoft. It's because they went out of their way to make malice look like incompetence. That sort of malignancy deserves not to be forgotten.
It's as if your kids only know Uncle Phil as a Born-Again Christian but you still remember him as a raging alcoholic and how Aunt Sue always had a black eye, or as the guy who molested you when you were a kid. Are you just supposed to forget that ever happened? You accept his apology (except MICROSOFT NEVER EVEN APOLOGIZED), enjoy him while you can but you still have to be on guard in case he falls off the wagon.
1) Windows is still closed source, their OpenDocument support is broken, and Secure Boot gives them an amount of power incomparable to anyone else in the industry: https://nudgedelastic.band/2016/01/i-am-still-not-buying-the...
2) DirectX 12 is Windows Store exclusive and it will never be possible to use DX12 apps on e.g. Wine: https://www.theguardian.com/technology/2016/mar/04/microsoft...
3) Patents: http://www.infoworld.com/article/3042699/open-source-tools/m... http://www.infoworld.com/article/2841412/open-source-softwar... https://news.ycombinator.com/item?id=13890580
Of course, all of these things are legal.
Here's a quote from the /r/linux thread [1], courtesy of /u/angellus:
> This is certainly a bug. It is not a targeted attacked against Linux users. Report it to Microsoft. Microsoft is just doing really shitty feature detection using User Agent strings instead of, well actual feature detection. I was able to reproduce the same result by setting my User Agent to Firefox 52 on Windows 98. If I set it to a "more realistic" user agent like IE 7 on Windows XP, it would actually redirect me to a busted page to upgrade my browser instead of Word Online. It appears if Microsoft cannot figure out your User Agent (including your OS as part of it), it gives you a busted experience.
1 https://www.reddit.com/r/linux/comments/60nj67/office_365_on...
Nor should browser detection cause Firefox to follow a different switch in the code when on a different OS, not since about version 2 when I think there were bugs making that useful.
Really browser detection was something needed to handle MSIE way back in the day, or possibly other browsers before web fonts.
But this ain't browser detection, definitely not feature detection, it's OS detection - the system responds differently when only the OS in the UA string is altered.
If it works in Firefox on Windows, there's no technical reason for it not to work the same way in Firefox on Linux.
Well, Microsoft has a long history of "making things buggy" everywhere else to create lock-ins. This instance may not be strictly related, but people's attitude has been shaped by years of anti-competitive stuff that MS has pulled.
It makes sense if they want the default browser to require user confirmation to change. But setting it to Edge in the meantime? That's just being rude and anti-customer.
They are most likely doing the 'put no effort in to make it not buggy' action, and it just appears that they are doing it on purpose.
I don't think this is a conspiracy, but I don't think the characterization that users think that because OneDrive works on Windows better than Linux, buggy by inaction is assumed to be buggy by action: this situation is far more damning than that.
The client makes a request to the server, and the server either returns the new optimized client code if the user agent is one that it knows supports the new code, or it sends back the older, slower, client code for an unknown user agent.
They are probably returning the older code because they KNOW it works, even if slower, while they aren't sure if the new code works or not on other machines. The author says it works fine on linux when getting the windows response, but we can't be sure he has tested every use case; maybe it fails under particular conditions, which is why they are still returning the old code. Or, perhaps, they just haven't tested it so they go with the safe thing, which is to return the older code.
If there is anything that would be more damaging to Microsoft than calling them malicious it is probably calling them incompetent, that's their core expertise you are challenging there.
Incompetent? "MS: We support Platform X, Y, Z." ... "Mob: MS must be malicious or incompetent because they aren't testing and pushing new code to Platform 9 3/4"
Unsupported. Means exactly that.
A 'best effort but unsupported' isn't an option, it reminds me of the SMB days.
Either you support a platform outright, you send out the same code to everybody or you disable the platform completely. Other options are sufficiently gray to count as ways to coerce people into making a platform switch, and the MS rep seems to be pushing in exactly that direction.
" For the best experience, we recommend the operating system listed in this article. "
Right.
If you know browser X, Y and Z support HTML5 video - because that's your actively supported platforms... but someone says I'm browser 6... do you push HTML5 video? Or do you fall back to stuff you know works but is years old tech?
If you don't know what Browser 6 is... then you have 2 options: Safe options or Feature Detection.
Safe option: I don't know if you can read HTML5... so I'm going to serve you HTML like it's 1999.
Feature Detection: I'm going to go out of my way to see if you can support random new technologies that I'm using. Can use HTML5? You can? Oh... Here's your scripts... or... You can't? Here's HTML like it's 1999.
The first option is a lot easier. "Unknown? You get 'Safe' tech that's not shiny, optimized or best-of-breed. Known? You get stuff we said we support on platforms we say we support".
Second option requires testing and blending the technology stack based on detected features. Possible - because plenty of people do it - but it's definitely not as easy to support dozens of techs in many many more possible combinations.
It looks like MS took Door #1.
Are you saying you would ship HTML5 code to platforms you don't know support HTML5? Because... that sounds like a recipe to send "broken" code to users because "everything should work the same everywhere" which is something that happens... never.
No, I would stick to open standards supported by the vast majority of users until the next wave was supported by the vast majority of users and so on. I would never detect a user agent and make crippling decisions based on the response.
And if you do decide to resort to such trickery then you'd better make sure that you extract the maximum out of each platform that presents itself otherwise you open yourself up to claims of favoritism.
As for the HTML5 video, given that I've pioneered that stuff and worked very hard to keep the video-on-the-web scene plug-in free and working with all browsers it was with serious reluctance that I eventually switched to H.264 encoded video with flash as the player because to me that was the wrong way to go about it but the market literally demanded it.
I suspect that if we had not had flash a proper <video> tag would have been implemented ages ago.
MS will I'm sure provide those details to demonstrate their lack of malice. /s
I think MS is nearly a decade ahead of you there.
Chromebooks run linux, and if this issue affects those, then O365 is looking terrible against Gsuite for huge numbers of school students. In five years, those students will be starting their working lives demanding Gsuite.
Linux users are a small minority, but I suspect they have well above average influence in what IT services are purchased.
Not really. If you're deciding on a vendor for a bunch of Windows users, you would test it on windows.
When you find bugs, you can always use them in negotiation.
According to the stack exchange official stats that were on the frontpage yesterday, over 30% of developers run Linux Desktop. That's not "a small minority" by any means.
It is a small minority of users of OneDrive, but a bigger fraction of people like systems administrators, IT department managers and so on, who decide what to buy.
After the post blew up on Hacker News, real Microsoft PR swept in and deleted that post, replacing that non-answer with the current one that says they've fixed it.
Here's an archived version: https://archive.is/zlXWy
I even got folks to vote on community features/issues so basic with other cloud providers.
This is a more realistic timeline, note the 2015 - 2017 duration: https://onedrive.uservoice.com/forums/262982-onedrive/sugges...
I think the lesson is get the issue up in HN for a company to start noticing.
Many angry employees (many on Linux) are now using their private Gmail accounts since the Microsoft web interfaces are very slow and buggy.
I worked as a Microsoft employee on the xbox.com website from 2007-2010. We didn't officially support any browsers on Linux because it represented <1% of our user base. It just didn't make business sense. We tested it on occasion anyway because we are decent people and, being part of the tech community, we were fans of Linux.
We supplied a list of officially supported browsers to the customer support team. Any bugs on non-supported browsers would never get reported back to our team, so we'd never hear about them. The support team did their job.
This is how pretty much every company in the history of ever works.
I think you're thinking of J++ (Microsoft's version of Java, not JavaScript). Now JScript (Microsoft's version of ECMAScript) does have some minor differences in the dialect, but that was only because the ECMA standard was at a standstill back then. Mozilla had no problems extending their implementation to match either.
J++ was created to counter shortcomings in the design of early Java language versions that Sun was not keen to re-integrate back into the Java language. That itself isn't bad (as other JVM-compatible languages exist, like Scala and Groovy) except that J++ then needed Microsoft's own Java VM with its own platform-specific runtime extensions - and that's what the Sun lawsuit was about. I agree it was badly handled by Microsoft, and in the end Microsoft just ditched Java and reinvented J++ as C# and the .NET Framework - which is where we are today.
As for JScript: before JavaScript was standardised there were extensions being added by everyone (Netscape had their own, as did Microsoft). I think Microsoft extended JScript in a very conservative way: the main change is the addition of the `new ActiveXObject` wrapper for COM objects which made AJAX possible, and also made JScript useful for automating Windows (and server-side JavaScript with ASP/JScript predates Node.js by 13 years!) - to my knowledge JScript itself didn't add any syntactical changes and provided you didn't use ActiveXObject your code would run without issue in other JavaScript engines. Note that this isn't the same thing as DOM extensions in Internet Explorer, of which there were many.
I think it's worth pointing out that when IE6 was released in 2001 it was by-far, the most W3C-compliant web-browser in existence: for CSS2.1, Netscape's then compliance level was abyssal, and even beating out Opera at the time too.
The only reason we are where we are today is because there's much less of a single dominant player in the browser space, so using standards are incentivized.
P.S. Yes, MS got their market share through shipping the browser with the OS. While it may have led to a monopoly in the browser space (or close to a monopoly, depending on how you want to look at it), I think it's hard to say any one of us wouldn't have made the same decision to bundle them were we in the position of selling the OS and also putting out a browser.
So, no, it's not like any Linux distribution bundling a third-party browser like Firefox or Chromium, since none of those distributions have a monopoly to leverage to start with.
Surely, you'll at least need a decent web browser to get online to download a different browser of your choice, no?
Go to store, by a CD with browser, install. The age when boxed software was a major thing extended past the point when IE started bundling IE.
Of course, with a TCP/IP stack you can get software from the internet a lot of ways without a web browser, too. FTP was a thing, after all.
If you just bought your first computer at that time, you weren't likely to have internet service to connect it to until you bought that separately, and when you did, you would have software, too.
False. See, for instance, Arch.
[1] Although admittedly the last real work I did in Windows was 7, so please correct me if the situation has changed.
I'm pretty sure I've seen the dialog in Windows 10 as well, but not for Edge, which I find even worse than IE.
https://developer.microsoft.com/en-us/microsoft-edge/platfor...
The short version is that the actions of a non-monopolist are looked at very differently than the actions of a monopolist.
Additionally, you're dead wrong about "every Linux distribution", and even if you weren't, the fact that there are many of them would moot an antitrust argument.
I don't think anyone has figured out how to scale this correctly.
Wouldn't this filter out a lot of legitimate bugs that just happened to be discovered first on an unsupported browser?
IMHO what Apple is doing only harms themselves. While they had Steve Jobs they could be successful in spite of their practices, but with no breakthroughs for some years now such "small" differences will become important. Google is beating them hands down in all departments of mobile platform space.
I actually wish Apple stayed strong because we need competition, but in the long run I don't see them as a dominant force in mobile OS anymore. They will likely become what they were with Macs before Steve Jobs came back - a niche player.
e: per WP:
> Apple is the world's largest information technology company by revenue, the world's largest technology company by total assets
Now it might still be a bug rather than malice, but it's a but that arises out of intentionally doing something stupid.
You support Linux users (or Mac or WinXP or those behind a firewall or MSI installer needing etc etc) because you want to dominate your competitors, you want your product to be the one everyone wants, and the one with the least bugs.
If you're going to say 'screw you' to some customers, that needs to be based on an actual assessment of costs, impact on users, how it can be mitigated, and what else that money would be spent on. A CTO level decision, not the support desk. And not supporting people running a standard web browser is just inept.
Not us. If a user comes to us with a crusty-ass Dell with its own localized food chain of insects and our site doesn't work on IE5, they'll wake us up at 2am to tell us that.
I've seen this time and time again and every time the sum "linux" bug ends up affecting some browser/OS combination that is supported. It's not breaking because it's linux, it's breaking because there's a bug and sooner or later it will rear it's head elsewhere.
Having a list of supported operating-systems is totally different. For a web app, this is almost never okay. The popular cross-platform browsers (Chrom{e,ium} and Firefox) are excellent examples of well designed cross-platform software. They both abstract the underlying platform and implement the layout engine in platform-independent code. It's very rare to find a rendering bug in these browsers that only affects a single platform. So, what I don't understand is why OneDrive is sending different code to Firefox on Linux and Firefox on Windows, and why are the support team being instructed to dismiss bug reports from Linux users when they are using a browser that would be supported on Windows? It's hard not to attribute this to malice. Even perpetuating the idea that it's not possible to write truly cross-platform software or that web apps have compatibility with specific operating systems works in Microsoft's favour, since they sell the most popular desktop operating system.
This user did some experimentation with user agents to narrow down the bug: https://www.reddit.com/r/linux/comments/60nj67/office_365_on...
[1] https://www.reddit.com/r/linux/comments/60nj67/office_365_on...
It wasn't an MS product, or supported, and they still took the time to help. I'd be surprised if one didn't find similar responsiveness from at least some of the o365 developers. More often than not, something is "unsupported" not because it doesn't or shouldn't work, but because it doesn't have the dedicated testing resources and in case there is an edge case bug that would be excessively costly to fix (ex: dealing with stupid flexbox issues with the current version of Safari on mac).
In any case, it doesn't matter, the response was a bad, canned response that doesn't take into account the troubleshooting the person reporting it already did.
"Supported" in this context is clearly "we want more money from your despite you already having paid the agreed amount for this product".
I then go and let the person who owns that product know. Half the time, they say "that's not a supported usecase and it's a pain to change, so it's not happening". The other half of the time, they shrug and say "Put a ticket in, if I can fix it easily I will, I'll take a look when I have time".
Unsupported doesn't mean "no", it means "we're not going to invest noticeable effort into it, and it's lowest priority". Easy fixes may happen, but results are not guaranteed.
The charitable hypothesis someone else raised is that there's a bug in how onedrive handles unknown user agents. Neither you nor I have any idea how much effort that will take to fix. You'd hope not a lot but you should never make assumptions about another man's stack. But if it is low effort to fix, Microsoft could get a small land-slide of partial compatibility with one change, which is good PR even if they don't officially support the platforms. It's definitely worth asking nicely rather than giving up and moping about it.
If this is actually a bug then I think it would be rather inappropriate for the support guy to escalate this to the devs when it only happens for an unsupported platform. And if they're purposefully throttling linux hosts then they won't admit to it there.
So the entire exchange (including Dam Lec deciding to abandon Onedrive) seems perfectly reasonable to me.
I've fallen into the "I know this browser is not supported, but everything works except for X" trap. Where you first spend a month fixing other bugs that also don't work, only to end up with a more complex QA dev process since you need to make sure all new features also work in this other browser or environment.
People forget that they're _actively_ appearing to break it by using this UA detection. No company should _ever_ use user-agents for feature detection, because user agents themselves are screwy in so many ways [0]. Honestly, I feel like this was someone actively deciding to break the system on Linux (or any unrecognised UA). Wouldn't any reasonable developer just send back a fully-featured page if they couldn't understand a UA?
I have a feeling that this is the latter case. The detection code was likely written to give a higher QOS priority to direct browser access, and a lower QOS priority to the native OneDrive sync service built into Windows (because it happens in the background.) But in doing so, they probably made the check ask the wrong question—"is this a browser" instead of "is this our client"—and thus wrote the check with a browser whitelist pattern (that was never tested outside of UA strings from browsers on Windows), rather than a blacklist pattern (their one sync-service UA.)
Wrong.
There are plenty of bugs that cannot be detected using feature detection, especially with events and <input> elements. Sometimes you can find a browser-agnostic workaround, but sometimes the only solution is to sniff the browser.
It is especially necessary if you need to support "obsolete" browsers that your customers still use.
It is important to really try and avoid browser sniffing when "fixing" bugs in current versions of browsers (since your "fix" is likely to break in future versions).
Note, feature detection usually implies that you are using JavaScript.
I guess you could reproduce the bug on a supported OS and browser by manually changing the user agent but I doubt the support would accept that either. It would be like complaining that the site becomes unusable if you disable javascript or images, they probably only support "vanilla" browsers.
I genuinely can't imagine what else the guy could do, checking for unsupported configurations is probably item #2 on his script, item #1 being "say 'Hi'".
The guy would've probably gotten fired if he was honest: "that almost looks like it was done on purpose to force people to use Windows", but he could have avoided completely dismissing the guy.
For instance, by saying: "thanks for reporting this, I'll pass this to the tech team. In the meantime you can keep using your solution if it solves the problem for you".
It's probably hard for a huge company to give good tech support. It's not as if the support guy has any power to be helpful, they probably give him some copy and paste responses according to what the problem is.
The best tech support that I happened to use was Apple's. The guy actually seemed to care about my problem, and bypassed the protocol to help me out when I spilled coffee on my laptop.
It's not something they can say. The product is unsupported and the "tech team" won't care.
Customers would feel respected, the workaround would be found and used, and no one would feel ignored. It would leave a customer happier than telling them they don't warrant interest.
Wait what? Really?? What are they monitoring, seed ratios from trackers? That's an interesting/novel way of researching demand-makes sense given the service Netflix provides.
http://variety.com/2013/digital/news/how-netflix-uses-piracy...
"SEE ALSO: Netflix’s ‘House of Cards’ Falls Prey to Piracy"
Still, that's a very interesting and out of the box method of thinking by the Netflix team. Definitely want to try and find out more about this; thanks for bringing this up!
In this case, I doubt someone thought "hey, let's mess with Linux users and serve them a bunch of garbage, it'll encourage them to move to Windows".
That would only be slightly less worse than the sabotaging theory.
At the same time, this company has printed money for 30 years, not just beat the competition but killed the competition in many cases, and even made that an internal mantra. They have a pile of very smart people, money, etc.. there are also browser compatibility test services. They could have a VM grid with every interesting browser ever and it's not a big cost to them. A 15 person startup? I get they you might skip some browsers and focus on a key supported set. The tooling for that VM grid is also something I think a lot of the community would eat up of MS made available, there are lots of ways to build good karma and improve community relations.
Intentional or not, it's just bad optics, if nothing else. A slate with the windows 10 linux subsystem looked like an interesting environment to play around with and maybe give a shot. This sort of thing makes it look a lot less interesting. No joke, I was thinking of getting my kids one.
If the only change necessary to improve speed is to update a string in the UA, I would say that's pretty hard to do accidentally. In theory, it could be an artifact of some internal QoS systems that prioritize requests from Windows boxes without the explicit intent of damaging the experience of non-Windows users, but that seems like a stretch. It'd be interesting to know if Mac UAs experienced similar slowdowns or not.
It's much more likely that Microsoft is interested in doing what they can to make sure that people feel "things just work better on Windows", and little limitations or breakages like this are the perfect way to do that. Windows is Microsoft's bread and butter and they haven't forgotten that.
Not knowing the code behind it, but knowing the history of the OneDrive for Business client, I could see a few ways this could happen. The OD4B client has gone through a bunch of iterations before being merged with the regular (public) OneDrive client, so along the way, there could have been optimizations added on that were only available to the new merged client. Due to constraints, this could have been done using a simple UA check. These optimizations could have been merged down to the OSX/Linux clients (not sure if they're using a merged one there, or still the separate ones) but since different teams work on the clients (most likely different teams on each client) and server, the Linux client team never told the server team that the it also supports these optimizations.
Easily could see the above scenario happening, it's not completely crazy when talking about big companies that teams don't have the best insight into eachother's work.
Disclaimer: Work on Microsoft. Not on Windows, not on OneDrive, completely different part of the company.
I'm sure a company like MS, who've had traumatic run-ins with the DOJ in the past, has internalized this phony management persona even more than most. And I do believe low-level developers who work on the individual clients are probably 100% earnest. They usually are. It's the people in the political structure who set their priorities and schedules and use them as pawns that you have to worry about.
Even if your postulation is exactly accurate, MS still bears responsibility for crippling the Linux client, no matter which specific employee the communication "fault" falls on.
I have no inside knowledge of Microsoft, this is just generic commentary and extrapolation on corporate politics in general. It is possible that I'm incorrect and this is truly an honest mistake. If this gets any attention, management will certainly claim that, and we'll never know the reality of whether it was unintentional or whether "The Linux client supports those speedups" was intentionally swallowed by someone along the line (or whether the patch was delayed for additional review because it was "accidentally bundled" with a bigger branch, or whether the priority has just been "innocently" pushed down, or whether the team is "just understaffed", or...).
The proof is in the pudding with corporate politics. Being in management is being a professional politician. That's always true. They're always going to try to tell people what they want to hear and cloud up the picture around things that that person doesn't want to hear. If Microsoft is continually engaging in a series of accidents that hurt non-Windows clients, that pattern is sufficient proof of management's intent, regardless of what they claim.
There is no reason with the modern setups that entirely different UI pages need to be sent based on user agent detection. Every best practice I have read says to detect for features, and fall back to something more general when a feature isn't present. Clearly that is not happening here, and that little bit of technical incompetence is enough room to slide in a few hundred mb/s of transfers for certain targets.
Microsoft has a long history of pretending to play and throwing curveballs. All the way back to Dr DOS. Their run in with the DOJ was just one time they got caught. They are even doing stuff now with CPU detection and not providing windows updates to people with and older but still "supported" OS and a newer CPU. Just because they won't let it go, they are still patent trolling android handset manufacturers.
Why do we think microsoft has changed for the better?
My guess is that they whitelist javascript or other things based on specific browser strings.
Onedrive for Business is a real shitshow product. IMO, the people supporting it scramble to make it perform at all.
Also, the percentage of desktops running Linux is still tiny relative to Windows. The last time I saw any numbers (about two or three years back), it was ~90% Windows, ~7.5% OS X, ~1.5% Linux, so there is little incentive for Microsoft to care about Linux desktops.
Not for this one reason, but for 'webpages just work faster on Windows', sure.
Maybe it's not wise to automatically assume malice if incompetence could be a factor, but it's also not correct to rule out malice just because incompetence is a possible explanation.
What I want from customer support is for someone to take the time to understand why I am calling. Not to pat me on the head and tell me things will be alright while urgently trying to get rid of me.
I disagree. When I call support I'm not looking to commiserate or share my misfortune. I'm looking for acknowledgement of and resolution to a problem.
This view that empathy is what's important is the reason why hold messages say "your call is important to us" and why all customer support feigns empathy to my emotional plight when I call them about anything.
Saying I care and actually caring are not the same. When I call a hotline with a problem and am stuck in a loop telling me how important my call is to them, it tells me they don't care at all.
At least that how I understand the comment, and since I also wear a helpdesk-monkey-hat at work, it is how I try to deal with our users.
I don't think I've ever seen a usable answer on that site.
Most of the time I get the impression the person writing it is a employee who is reading someone else's notes, has no idea what the answer even is, and then does the best to cover it up by using abstractions, off topic insight and buzz words.
Sorry Microsoft just my opinion regarding this one area. Room to improve maybe ?
Arch? You need to make sure you're not looking at something a decade old.
I often just scope my google search.
Also, I do not find that I can answer every question easily for linux, even though I've used it as my primary OS since ~2002 and have some idea what to google for.
In fact, I have both sound and bluetooth issues on my machine right now that I have given up trying to resolve.
but with Linux, the case for me is that given enough time, I can usually find all the information I need to figure it out. With Windows it's Google for 10 minutes then throw my hands in the air and figure out a workaround.
I'm not sure which is better for my productivity: realizing that I accidentally screwed up my DNS resolver and spending the next hour hunting through forum posts and man pages before finding the snippet that explains what I was supposed to do and reconfiguring my resolved.conf symlink or figuring out the quickest, crudest workaround on Windows.
Stackoverflow really changed the game. I really should get active there again to give back more, I can't tell you how much a random stackover/superuser question helped me narrow down an issue.
Also, has everyone forgotten about IRC?
I have seen my fair share of this in the Windows world, too. Edit registry keys you never even heard of, use that (mostly undocumented) command invocation (I'm look at you, SharePoint!), edit that XML file that sits in a place where it does not even make sense...
On Linux (and other Unix systems), at least you have man pages, on Windows I cannot recall a single instance where the builtin help system has actually helped me. I mean, even MS-freaking-DOS had a reasonably useful builtin help.
With Linux, at least it gets better once you get the hang of it. Microsoft's sorry excuse for documentation is (mostly) a joke. (The exception are developer tools - the documentation on T-SQL and the .Net framework classes is fairly good, even though it's such a mess that it's easier to Google for specific entries than using the TOC or the builtin search... once I find what I was looking for, I do usually find a helpful answer to my question.)
(To be fair, when I first started using Linux, I found it incredibly strange, complicated, confusing and intimidating; within the first six months of using Linux, I was this close to literally throwing my PC out the window on no less than three occasions. So I know the frustration you speak of.)
Man get-command
Get-help get-help
But I agree, PowerShell is a huge improvement.
If I went back to trying Linux, I'd need a suite of 'just-works' solutions; Plug & Play was the main reason my family moved from DR-DOS & Norton Commander to 95. And of course driver compatibility.
Honestly, if I went to an open OS from 7 at this point, I'd go to ReactOS.
True! However, obligatory "Gentoo is rice" link: https://fun.irq.dk/funroll-loops.org/
You just have to be tricky: People will not help you, but as pedantic as they are, they’ll correct mistakes you make.
You go there, and say "I’m disappointed that you can’t even use <device> with Linux" and you’ll get hundreds of answers telling you exactly how to use it.
source: I got trolled by swedes in #linux before abandoning that wasteland for greener pastures listed above.
It's a lot harder to pull a specific, coherent, considered answer out of the internet, which doesn't involve duct tape and breakable insecure awful things.
"How do I run x on startup" will as likely get you "download this Ruby script which calls IFTTT.com triggered by when your network adapter connects, btw install this binary wifi driver blob" as "put this with a plain text password in /etc/whoknowsbutitworks lol" as "on your distro with your shell the startup system is XYZ and the startup scripts run like a then b then /home/user/c so put it in ~/c"
To be fair, that isn't specific to Microsoft, and a lot of big company's support sites are useless.
IME, Apple's Q&A discussion site is equally useless. The answers there are always along the lines of "That's by design, you can't do that." or "Why do you want to turn that off anyway?!?" I've had much better luck on apple.stackexchange.com
This. I can remember asking years ago, back when I had to work on OS X, asking how to turn off that freakin' annoying jumping icon in the system tray that leaped up and down after every successful print job until you dismissed it, just like an excited two-year-old telling you they went potty in the potty chair AGAIN, "Just like a big kid!" I can't imagine anyone thinking that attention-grabbing, ADHD-exacerbating, flow-destroying behavior was good by design, but was asked, "Why do you want to turn that off anyway?"
Google promotes normal users to moderators on their support forums if they just post enough, so instead of being brushed off by some underpaid employee you are being ignored and ridiculed by someone not even being paid to!
At least not from a Microsoft employee. Sadly, the majority of posts from Microsoft employees I have seen basically repeat the problem description, followed by "Did I understand that correctly?", sometimes people get generic advice like reboot their computer, make sure their system has all available updates installed, etc.
I reported it on answer.microsoft.com. They asked for a crash dump. Complied. Another non-ms person analyzed the crash dump and suggested that it's USB 3.0 related. Disabling that in the BIOS solved the issue.
But the MS guys kept on going. A few weeks later, a reply that they managed to get their hands on a similar device (!!, cost about $200), but they couldn't find a driver, so they asked for mine. Pointed them to the online driver location (hidden on manufacturer site). Some time after that they commented that they managed to reproduce the BSOD. A few months later they released a fix (into Windows).
I had one of those, and the Vista drivers were never released as a production version. Driver support for it was THE thing that kept me from upgrading from XP to 7, and also what convinced me to never again buy a Creative product.
The matter became moot, and XP took a hike, when it finally crapped out one day. My audio interface is now a Focusrite.
Seriously, it can't be that hard to call the NT equivalent of strerror(3) when formatting these messages.
Fwiw the identifier you posted isn't a UUID but the same justification applies.
The landscape may change such that Microsoft feels it is beneficial to release things like .NET Core as open-source, but this doesn't reflect a change in what Microsoft values ("A PC on every desk running Microsoft software" and the associated revenue streams), it reflects a change in what they believe is necessary to secure their goals.
I'm trying to explain that as long as Microsoft's incentives align with making Windows dominant, they're going to engage in behaviors to make it happen, including things like artificially slowing connections from non-Windows machines.
Instead of saying "MS is releasing stuff open-source, they must be having a change of heart", we should say "MS believes that opening this as open-source is the best way to ensure Windows' continued dominance". That's what I'm trying to highlight.
Sorry for the double negatives, I am just trying to understand. It seems clear to me that potentially hurting paying customers to increase one's own wealth is obviously unethical. This of course presumes malice, which hasn't yet been proven.
If we assign MS the role of a "typical business" instead of a monopoly (they have may been a monopoly 20 years ago, but it's hard to make that case now), Microsoft is under no ethical obligation a) to provide a client for other operating systems; or b) to ensure that performance parity exists between every client on every platform.
While it may not be super polite to release clients for other platforms and then subtly cripple them in order to drive users back to Windows, there's nothing below-the-belt about it IMO.
A bug that Microsoft won't fix, because Linux is not supported.
</charitable>
Never attribute to malice that which is adequately explained by stupidity
Changing the version didn't seem to matter (I couldn't find the latest one for any Linux style OS easily, but I tried "Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" with the same results). However, Android type user agent strings like "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19" load fine.
Not knowing the code I have no idea what this could mean, but I suspect you're 100% right here, there's some server side rendering that does different things based on user agents, and it's having trouble on the "other UA" category for some reason.
case @useragent
when 'Windows'
send file fast
when 'OSX'
send file fast
else
sleep 3600resolve_renderer_module(user_agent.os)
where the osx/Windows ones are already loaded in RAM, but it has to try (and fail) to load the linux one every time somebody tries.
This is classic Hanlon's razor stuff.
I wonder if people said "Hanlon's Razor" when they first heard about the VW emissions scandal.
NOTE: I'm just thinking out loud here. I don't have any particular bias against Microsoft.
I don't think that was possible, because the engine specifically performed [0] better during the test and worse during normal operations. So what would Hanlon's Razor be? Whoops, the testing procedure accidentally happened to make our engine perform better?
[0] With the definition of performance being emissions output, not power or torque.
Like with pie."
Can't tell if this is intentional though.
- different generated html / js depending on user agent (UA)
- bug fixes are rolled out on a UA by UA basis
- bug fixes have been rolled out for Windows and Mac (supported)
- but not for the "generic" HTML / JS output
If this is true it will mean that anything other than the supported platforms will fall further behind as time goes by.(Supporting documentation of the position "why wouldn't they want more OneDrive users"...)
He tests this solution, finds it slow and decides to stick with Microsoft.
This is probably a happy accident but one they won't move quickly to fix.
This would be very amateurish. The right way to do it is to check browser capabilities. User agents can be easily manipulated and are considered unreliable.
If this happens to also drive people to Windows, that’s just a side bonus.
Regarding Google: Visit google.com with Firefox Mobile UA, and Chrome Mobile UA. The version presented to Firefox is the Google 2010 version, basically unchanged, with no search options or previews. The Chrome Mobile version actually works.
This is part of why Firefox Mobile now supports all -webkit- properties, webkit’s extensions of JS partially, and emulates Chrome’s UA for a great deal of websites.
Other than the obviousness of the new MS being worse than the old MS? Between the major issues Windows 10 has in almost all respects but not limited to shocking privacy issues, the very poor quality of updates, and the hamfisted way Win10 was forced on some users, I suspect we'll be missing the Gates/Balmer years more and more. As someone who has to roll out 100 Win10 workstations, I can't believe the shit I have to jump through to get basic funtionality and how the defaults in terms of start menu items, included apps, privacy, gpo limitations, etc is highly business inappropriate, even with professional volume licenses.
I'm not sure what the "New Microsoft" really means, but from what I've seen its something that has only added hassle to enterprise and chased more people into the loving arms of OSX. Everyone in my social circle now has a mac after toughing out on 7 and giving up on 10. Nadella's run is starting to look like a Marissa Mayer-like run to me. A welcomed change of leadership from the tech press but one that was unable to fix historic problems and also introduced their own new set of problems.
https://github.com/alandipert/ncsa-mosaic/blob/fd11fb7c900e8...
Much of the cross-system portability stuff has been intentionally
REMOVED from this version of the library by Marc A in order to
discourage attempts to make "easy" ports of Mosaic for X to non-Unix
platforms. The library needs to be rewritten from the ground up; in
the meantime, Unix is *all* we support or intend to support with
this set of source code.
And of course for this remark:https://ontechnologyandmedia.com/2009/07/12/the-return-of-th...
Netscape co-founder Mark Andreessen boasted that Netscape would reduce Microsoft Windows to “a set of poorly debugged device drivers.”
It can be, but not for the motives many would assume. I can imagine them white-listing clients that they've thoroughly tested with advanced functionality, and blocking it for others.
I'm not for a second suggesting this is a wise course of action, but I also really don't think it's a cynical attempt to make Linux a less viable platform. It's just cover-your-ass behaviour for a corporate-focused product.
User agent sniffing is usually a bad shortcut for feature detection, and little more.
Yes: there is no single 'New Microsoft'. I don't even know where the term originated. Instead there are a couple of departments within MS which have been heading in a new direction (see the open-sourcing, VSCode, ...) but others seem still to be stuck in <don't know what to call it>. Mismanagement maybe?
You can see it yourself by viewing [2]. OneDrive renders several of those pages simultaneously.
[1]: https://productforums.google.com/forum/#!msg/chrome/x-B5T7tn...
[2]: https://powerpoint.officeapps.live.com/p/StaticLoad.aspx?wx=...
It's actually kinda interesting to see what the website does when it thinks my browser can't support certain stuff (which it can...I just like to avoid fingerprinting).
[0] https://arstechnica.com/information-technology/2009/03/frenc...
On Windows you have a battle-tested Direct3D 9/11 backend for WebGL (ANGLE) used by Chrome and Firefox, while on other platforms you're subject to the whims of the GL implementation (and on Linux there are multiple drivers to choose from in some cases). Direct3D graphics are also thread-safe in a way that is not consistently true for OpenGL (just ask a driver developer) which means that certain operations could block the UI thread (or in the case of Chrome, GPU process) that can be performed asynchronously on Windows, resulting in a difference in application behavior.
On Windows there is one common software audio stack (they dropped hardware audio acceleration ages ago because it was a compatibility nightmare). On Linux in some circumstances there are multiple audio stacks which can produce differences in user experience and behavior. Recently Firefox has switched over to pulseaudio, which has caused some grief.
Windows and Mac and Linux all have different networking stacks that can result in behavioral differences between OSes if you're using WebSockets or WebRTC.
The GamePad API is also subject to OS differences depending on whether your gamepad has drivers and which underlying system API the browser uses. This even varies between browsers on the same machine.
I wonder what happens in Windows 10 with a user agent mimicking a Linux environment. Does the site slow down? If so, the support bot can't brush it off since it's a supported operating system.
That reply is gold!
We know that some users may have experienced difficulty accessing OneDrive for Business on Linux. The issue was resolved as of Tuesday, March 22nd 3pm PST.
We identified that StaticLoad.aspx, a page that prefetches resources in the background for Office O nline apps was using the link prefetching browser mechanism only for certain platforms (iOS, Chrome OS, Mac, Windows), but for Linux it was falling back to a less efficient technique that was causing the issue. Rest assured that this was not intentional. It was an oversight.
The prefetching optimization was disabled, and it will be enabled again soon after an update for StaticLoad.aspx has been tested and released on Linux.
We apologize for the inconvenience this may have caused.
I have no affiliation with Google and I still think the original issue I had with Google Groups was due to some sloppy UI-work on their part, but that support call makes me happy just thinking about it.
One even taught me to catch a Windows error via remote debugging on a different machine. I leveled up because of a support call.
Why? Why? Why? Who would do it like this? fuckit back to linux
I got brushed off in much the same way as this user did when I tried to discuss the matter with customer support. In the end I carpet bombed a bunch of executives by guessing the email address format, and only then did I get a response from someone who knew what they were talking about and understood my complaint.
I think front-line support being unhelpful like this (and furthermore being unwilling to escalate the issue to someone technically adept) is a widespread issue and I'd agree with some of the other posters here: I've encountered maybe 1 helpful post from answer.microsoft.com after numerous visits when troubleshooting Windows issues.
However Netflix has updated their system to allow Firefox to stream on Linux, just so you know.
If you setup Firefox to use a newer version of Chrome user agent, the page will at least load. Seems like they are using user agent instead of feature detection to limit usage.
Also virtually every tech demo they did over the years. One might argue that makes sense, but it really doesn't. Change user agent and it works (it's standards after all, and half the browsers on market are Chromium based anyway).
Tested Thu, 23 Mar 2017 12:11:09 +0000
What is most plausible? Microsoft does vast majority of user testing on Microsoft Windows or that they added sleep() for Linux? Do you know any software developer that works like that?
I can't turn Onedrive off because I'm on Windows 10 Home edition (thanks to the forced upgrade from Win 7). I don't use it but everytime I access a share on my linux box, it pops up and want to be configured.
I even have a system on work that required Chrome (by UA), but only actually works on Firefox... :'(
Side note: in this thread, users who mention events of decades past (ie, they are experienced) tend to be more critical of MS.
Cost and performance simply don't matter in many folks business decision methods when something is compared to a MS product.
I do have to point out your note about "not otherwise caring about the quality of the cloud storage app" which is more towards my point.
Don't tell me it's a myth, same thing happened with DR-DOS as well.
Yeah, what a pile of junk.
Their open source friendliness only goes so far.
Change the user agent and it works the same as on Windows...
is it protecting users from something further in the UX? is it stuck in an infinite loop trying to download silverlight? are they actually redirecting users to a staging server on the cheapest Azure instance?
seriously M$, what the F?
Microsoft in 2017: "Microsoft <3 Linux! It's totally not cancer, hehe. Please buy our products, we won't monopolize anymore we promise"