Hi everyone, this is Edgar from the OneDrive team. We know that some users may have experienced difficulty accessing OneDrive for Business on Linux. The issue was resolved as of Tue, March 22nd 3pm PST.
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.
Thanks for popping in here to clarify this personally, thanks very much for the imminent Linux-specific fix, and thanks for the clarification that this was an oversight :)
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.
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.
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
Edgar, you might be interested to know there are significant problems with the big javascript files being downloaded on Linux for Office365, particularly for WordOnline.
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.
You're describing the same issue. OneDrive is only affected because it preloads Office assets.
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.
So for the "New Microsoft" releasing a bug fix for a "bug" affecting customers using Linux for more than 3 months it just required to be popular at Hacker News and Reddit.
Sometimes at a large company feedback from support and those customer forms doesn't make it all the way back to the engineers. The engineers read hacker news. As soon as they saw this it makes sense that they fixed it.
Seems like the pipeline for customer feedback could be improved.
Kudos for fixing the issue. I do question whether it was originally tested throughly on Linux in the first place, otherwise it's hard to see how such a major bug could have crept in.
This! As a Linux user I don't really care if someone is neglecting my platform of choice or purposefully sabotaging it, I'll just move on in any case. Not performing testing on Linux is inexcusable in my book in this day and age.
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.
> Not performing testing on Linux is inexcusable in my book in this day and age.
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 don't care either, FWIW.I haven't used OneDrive yet and I probably never will. But the reason I will not use it is exactly this - I know I will always be unwanted customer in their eyes. And I don't trust them not to throw me under the bus if they feel like it. I should probably say "...is inexcusable to me in this...". Thought it was obvious.
Sure, but that is for some very limited cases. And even then you should generally check for browser and its version, not the OS. Browser makers go to great lengths to make browsers run identically on all supported platforms.
I am curious how @annnd detects whether link prefetching is supported by a browser in js on-the-fly (reliably and in a performant way) http://caniuse.com/#feat=link-rel-prefetch. There are many capabilities you can quickly detect, but for that one I can't think of a performant way. Test your solution with Safari on a Mac, which should return false.
I haven't tried detecting whether link prefetching is supported by a browser yet. Not that I think it should even be detected, because those are hints to the browser. If you need to depend on them there is something else wrong with the way you design your apps.
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.
And if they would have a pure JavaScript solution people who block JavaScript would start complaining instead no? Of course you could have JavaScript as a primary solution and then fall back on the other options.
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)
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.
It's depressing that your question is downvoted to grey. I consider it a sign that people think it's better to be a coincidence theorist rather than a conspiracy theorist.
I have to admit, the whole exchange is pretty funny:
> 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.
It may be funny, but at the same time it's great to see this kind of feedback directly from the customers to the company.
If someone listens up there, sooner or later they'll realize there is more money in the subscription business than in one-time OS purchases, and they will put the money where the mouth is.
I'm guessing (especially when you consider that OS X is in there) that it has more to do with the support burden and small number of people using Linux as a desktop OS than trying to get people to buy Windows.
So they make it run buggy in order to reduce the support burden??? Surely that makes for more support calls.
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.
Almost always, nobody has any intention to "make it run buggy." It's about making it run well on platforms you care about (and officially support), and ignoring the others. Complicated software is usually fragile enough that it will have similar results.
If a user agent change makes the software slower for a platform then that's not exactly an accident so somebody must have had the intention to make it run buggy.
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.
It's been mentioned a bunch in this thread already, but they're doing feature support detection by user-agent string. It's not malicious, it's sloppy.
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.
That commenter appears not to have heard of browser detection or UA sniffing, it has nothing to do with feature detection, they're a completely different method (and paradigm).
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 a user agent change makes the software slower for a platform then that's not exactly an accident so somebody must have had the intention to make it run buggy
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.
And that is merely one of the most documented cases.
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.
You are talking about something Microsoft did in the early 1990s. It is very likely that most or even all of the people involved don't work for Microsoft any more. No company is ever going to be perfect, but I honestly believe that today's Microsoft is a much better corporate citizen than 1990s Microsoft was. (And, with the AARD code, while they shipped it turned on in the beta, it was disabled in the final release – which suggests to me that someone in charge at Microsoft had second thoughts about this even back then.)
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.
> If 1990s Microsoft did something seemingly anti-competitive, it probably was intentionally anti-competitive.
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 was something that Microsoft did in the early 1990's. And they did nearly identical things in the late 1990's. And they did more of them in the early 2000's.
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.
You are within your rights to give the benefit of the doubt. Microsoft is also within their rights to get in front of this and show that "Microsoft Loves Linux" on the client side as well as the server side by addressing the issue instead of saying "well, just use Windows and it will work".
I'm guessing you don't really understand what he's saying. He's saying that by pretending to be Windows instead of Linux the webapplication runs better. There's nothing native about it.
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).
I struggle to consider that Microsoft is really that inept as to only be able to design it that well. I mean, do they do any testing at all? Across the browsers and platforms accessing their sites?
It seems most likely that they do testing on exactly the browsers and operating systems they say they support and no other platforms and do not want to expand the list because they'd have to provision more environments and do more testing.
What don't you buy? They test with a certain set of supported platforms. If a client isn't one of those (whitelisted) platforms, then they may send out a bunch of inefficient polyfills so they know XYZ functionality exists, even if it's slow.
Except that it works just fine if those 'unsupported' platforms are treated in the exact same way as the supported ones. To make it seem as if a whole pile of work was done in order to make unsupported platforms work less well but this is a good thing is something that I find very hard to reconcile. And if this were a company that did not have a history of exactly such tricks it might be more believable, MS - with me at least - does definitely not have the benefit of the doubt in cases like these.
No, a whole bunch of work was (hypothetically) _not_ done to verify if they were supported or not. I'm not suggesting that it's a good thing, I'm suggesting that laziness, sloppiness, or a simple oversight are just as plausible as malice.
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".
No it doesn't. It is just shoddy detection. It may rely on some windows native APIs that may or may not exist on all linux variants. The fact that it worked by changing the user agents in some case doesn't mean it would be wise for them to deploy it for everyone. The proper fix would obviously be to actual detection and not rely on the user agent string.
If you have different stuff available, you might choose to only cache/microoptimise the pages served to 98% of your userbase, which would lead to this type of effect with no malicious intent.
>Almost always, nobody has any intention to "make it run buggy."
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.
Decades old. The GWX consent brouhaha is decades old? Edge (not IE) becoming the default browser all by itself is decades old? Riiiiiiiight. Decades of consistent data, methinks.
I really don't get why they can't put the browser they like as the defaultone into their OS. Not that I'm an MS apologetic (I don't really use anything MS since time immemorial) but it seems silly to me, frankly.
For a while I was changing my browser back and forth between firefox versions. Every single time windows 10 would detect that change and 'protect' me from it by opening the default programs control panel and setting the default browser to Edge.
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.
I think it has a habit of changing itself to default even after the user sets something else as the default. Minor annoyance though compared to the overall pain of using a windows machine.
"Minor" depends on whom you ask: each time this happens, MS generates n angry support tickets...for me, not for themselves, of course: "the computer is broken again and I have lost all bookmarks and sign-in data, why did you break it again?!?" (The good news is, of course, that nothing is "lost" except for the default browser flag: resetting to FF fixes it...until next time)
As far as I am concerned, they can. But they are not bloody supposed to change it again, after I have changed it to something of my choosing. I am sick and tired of "yeah, so you have set your default browser to FF, but we know better than you what you want; so we have reset it again on yet another Patch Tuesday. Admit it, YOU WANT THE E!" (Consent, what consent?)
Does this only happen with certain configurations or something? I've been using Windows 10 since it came out and can't really remember this happening to me
As far as I'm aware this has to do with the fact that major updates are being delivered in a manner that's basically equivalent to a full reinstall, causing a lot of settings to get reset to defaults. This update method is particularly common for the insiders, but still happens from time to time on the general builds: anniversary update, creator's update and such.
While it's a solution, it's not a simple one. Developers don't have this luxury. Choosing an OS to support means supporting all the APIs and possible ecosystem that comes with it.
There are differences in supported features on different OS's with the same browser. They don't ship identical bits on each platform. The differences are pretty minor OS integration things usually, but there are differences.
But the only time it is buggy if you SAY it's Linux. If you say it's Windows, it works fine. That's not having the software passively become buggy, that's CHANGING the way the software works if and only if the OS is Linux, but working correctly if it's told (but isn't actually) Windows.
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.
It seems entirely plausible that there are optimizations that are only applied on certain platforms or something with the idea that any platform should fall back to the slower but better-supported behavior.
Except that we're talking - as far as is visible to me at the moment - about server side behavior, something that need not change at all depending on the user's client.
That is speculative. Yes, the client side is the one where the problem shows up but it's when the user agent is changed that the problem appears and the client side does not do anything with that user agent, it gets sent to the server. So something in the response from the server or some interaction with the server than causes the 100% CPU load.
That is exactly what the people you are responding to are saying.
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.
So, you're telling me Microsoft is unable to tell the difference between code that doesn't work (the 'old' code) and code that does work (the 'new' code), and that to be safe they are returning the non-working code as a fix for potential problems that do not appear to exist?
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.
Of course MS is unable to tell the difference between code that works and code that doesn't... on an unsupported platform.
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"
Well, from where I'm sitting a server should just do what it does for everybody without shipping different code to 'unsupported platforms' in order to make those platforms work worse. It either serves up the same to everybody or it contains code to support some platforms and blocks others.
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. "
Well not all platforms are created equal... it's why you have fall-backs to "Stable but not shiny" for platforms you don't support... or platforms you don't know supports New Shiney Thing (tm).
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.
> Are you saying you would ship HTML5 code to platforms you don't know support HTML5?
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.
"stick to open standards supported by the vast majority of users" is exactly what you get when the user agent isn't known. It just turns out in this case that it's unoptimized and performs pretty badly.
Please. If they displayed a page saying "sorry, Linux isn't supported; try using a supported platform instead" you'd be over here taking them to task for that.
Actually, I would not. MS is under no obligation to support anything other than their own platforms. But if it works it should work well rather than be effectively cripple-ware.
Well I completely disagree that not being able to use the software at all is better than a degraded experience and I can remember at one point Linux users railing against exactly what you're now advocating.
Skype was messed up for ages, they actually have a really cleaned up Linux client, it's based around Electron so it actually works a lot better than the older one. Skype is an example that they do care about Linux too.
I've said this before, but the last time Skype worked reliably for me was on the Nokia n800, circa 2008. I had a subscription for several years 2012-2015ish and didn't have an acceptable quality call once.
Treating Linux as a "best efforts" might be a reasonable middle ground. No expensive support commitment, but then they needn't hobble it in scenarios like this where the experience/support burden is not related to the OS (since it's in the browser)
> If someone listens up there, sooner or later they'll realize there is more money in the subscription business than in one-time OS purchases, and they will put the money where the mouth is.
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.
My manager and I rejected OneDrive when we were comparing different services, because it was slow and unresponsive. I didn't think to try it on Windows, so we chose a competitor.
Linux users are a small minority, but I suspect they have well above average influence in what IT services are purchased.
>Linux users are a small minority, but I suspect they have well above average influence in what IT services are purchased.
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.
Well, it used to be that MS used ActiveX extensively, as with the original Outlook Web Access, to achieve things that weren't possible in the browser. It's entirely possible they try to use advanced features only available in IE depending on the User-Agent header.
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.
It works fine in every browser, but you might need to download a small plugin if you're not on Chrome due to WebRTC being a standard but not a standard.
Regardless of your browser, it'll heat your system up so you can fry an egg or broil a steak.
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.
The biggest WebRTC interop problem is due to Chrome declining to implement the "Unified Plan" for multiple streams ... a plan they agreed to implement when the spec was worked out.
https://bugs.chromium.org/p/chromium/issues/detail?id=465349
Yeah the Hangouts website is my main gripe with it. Great service for talking with friends and family. Absolutely horrible performance on their site.
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..
There is a plugin for IE and safari. Some versions of Firefox work. The important issue is that chrome and Firefox are browsers that work on the big three platforms.
It is funny but in our experience around the company some people found out it works better on Safari than in Chrome (like, in Chrome oftentimes mic cannot be heard when one enters a hangout).
My office 365 Home install is not cloud based in any way as far as I can tell. All the 'traditional' office programs such as Excel and Word are installed locally.
There may be some cloud integration to OneDrive or something similar, but I haven't used that. It is nothing like Google Docs.
I went to vote for this, just for the fun of it, but got asked to login. Then it asked me to setup my username, and then complained that my 3 usual variants were already taken. I guess I have another account that's already sitting on that username. But who knows? Microsoft's multi-user login support is a disaster.
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've lost track of the number of times I've been stuck in a login/redirect loop with Google's multiple account handling when I want to use one of their services from one of my secondary accounts. Only way out of it is to clear cookies and log in again with the account I want, then add the other 4-5 accounts until the problem happens again.
No, the original message from Felix Tao was just a response saying OneDrive is not supported on Linux.
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.
"Don't assume bad intentions over neglect and misunderstanding." - Hanlon's razor
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.
Having a list of supported browsers is fine. All modern browsers are supposed to implement the same web standards, but they all have a different set of supported features and subtle rendering and layout bugs. Sniffing the User-Agent string to detect the browser is a small evil, but it's sometimes necessary.
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.
Well, Microsoft often doesn't get the benefit of the doubt because of their history of incredibly aggressive, borderline unethical behavior. Being a convicted monopolist tends to color people's attitudes to a company. Let alone something ridiculous like trying to destroy the open source movement in its nascent stages, stealing Google's search results, or running the completely insane Scroogled campaign. And all the other things Microsoft has done to erode good will.
The real difference is that now we have a choice. With Windows there was monopoly and it was practically impossible to use another platform if you wanted to exchange documents with others and similar (which is basic functionality for computer).
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.
They still make the biggest chunk of profit in the mobile space by some margin. Google might beat them in all technical departments, but Apple is making tons of cash from iOS.
Sure, they still make a ton of money, but I am arguing that their power is declining due to stagnation in innovations. Once the cycle reverses the profits will follow too. All IMHO, of course.
Apple is legacy hardware vendor, I don't see anything wrong making software for you own hardware to complete ecosystem. MS, on the other hand, tried to capture, lock in users' generic hardware and kill competitors, which is totally different case imho.
I hear this phrase "It didn't make business sense" all the time. It's a persistent misunderstanding of business and customer relationships.
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.
At a company the size of MS that is not a CTO level decision by any stretch unless it is a broad-based 'all-in' or 'all-out' decision to steer the company at a high level. It's much lower than that and it almost certainly is based on an assessment of competing priorities.
No, even at Microsoft. It won't be at the level of "the support for this app will work for firefox on linux" but it will be setting policy like "By default all Microsoft websites will support browsers x/y/z on platforms p/q/r/s, unless exempted by the relevant VP with supporting business case" etc.
That just isn't true (and I worked on Chakra while at Microsoft).
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.
They're just extensions in the same way that GCC has its own extensions for C and C++.
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.
I think that's another case of assuming bad intentions. Once Microsoft had a slightly differently behaving version of JavaScript that was in use by hundreds of millions of people, including many enterprise environments with internally developed and bought solutions that required Internet Explorer and it's version of JS and ActiveX to function who more often than not were also large Microsoft customers, the idea of breaking all the existing functionality just to be compliant with a standard becomes a non-starter. Were there people in the company that liked this situation? Probably. That doesn't mean it had to come about through malice. It's easy to see how a similar situation with Chrome or Safari could occur if they had greater than 90% of market share.
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.
For one, every Linux distribution comes with either Firefox or Chromium preinstalled. Is that monopolistic behaviour? Should EU require Linux developer to provide "Choose your web browser" wizard popping up on every new Linux install, similar way it is on Windows?
Microsoft's behavior was illegal not because of bundling alone, but because of bundling a product (IE) in a different market with a product which was a monopoly (Windows) in what was held to be (based on additional Al evidence beyond mere bundling) an attempt to leverage a monopoly in one market to monopolize a different market.
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.
Honest question: if Microsoft didn't bundle IE and the user hadn't received a copy of those ubiquitous AOL CD-ROMs which came in the mail/magazines (and sometimes carried the Netscape Navigator installer), how is the user expected to consume content on the web without a web browser?
Surely, you'll at least need a decent web browser to get online to download a different browser of your choice, no?
>
if Microsoft didn't bundle IE and the user hadn't received a copy of those ubiquitous AOL CD-ROMs which came in the mail/magazines (and sometimes carried the Netscape Navigator installer), how is the user expected to consume content on the web without a web browser?
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.
As a user who has just bought their first computer, would you
a) like to go to the shop and spend money to buy more software
b) try to figure out this thing called FTP, maybe going to the library to read up on it even though you have never heard of it so don't know what you are looking for
c) just use this thing called "Internet Explorer" that sounds like what you want to do, is free and already installed on the computer you just turned on for the first time?
Before, and for several years after, Microsoft started bundling IE, many, perhaps most, ISPs (dialup and what passed for "broadband" at the time) typically delivered software CDs that you were expected to install with their own software (often including their preferred web browser, preconfigured with their preferred start page and other settings.)
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.
Keep in mind, many people with a computer might not have the internet at all during this period. Purchasing internet service usually came with software to use it.
Every ISP I used in the 90's sent a floppy or CD-ROM with a setup guide, web browser and some other shareware internet tools (FTP clients, Stuffit Expander on the Mac, etc)
When I was a kid (before the publicly-used version of the Internet that we know and love today) and wanted to download software, I'd log into a BBS for my download.
Thanks for adding your perspective to the discussion though I'd argue that your experience might not have been representative of the larger population.
There is no need for a browser to download something from the internet. You only need the browser to browse the internet. (hence the name) A simple UI with a list of options was all that was needed.
Not every Linux distribution "comes with" Firefox or Chromium. They may be an option on the install disk and may even be part of the default install but they do not have to be installed and there are other choices (e.g. I typically install SeaMonkey because I like the mail client it comes with). In fact I can decide to install Linux on a PC and not install a browser at all. Last I checked it's still hard/impossible to remove IE/Edge from Windows. [1]
[1] Although admittedly the last real work I did in Windows was 7, so please correct me if the situation has changed.
If you were a web developer you'd be happy to know Edge is so much better at complying with web standards than IE ever was. Would love to know what people miss about IE.
If you're not just repeating an ancient talking point and actually don't understand this, it would be well worth spending some time on Wikipedia coming up to speed on the goals of antitrust enforcement.
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.
The point is that something seems to be actively looking at the user-agent string and then doing wrong things. Had they merely "not supported" Linux it would have worked fine.
Now it might still be a bug rather than malice, but it's a but that arises out of intentionally doing something stupid.
Statistically speaking, the odds of a bug being found first on an unsupported platform, which represents such a small segment of your users, are low. The odds of it only ever being found on an unsupported platform, even though it's not platform specific, probably means it's rare enough for the business not to care about it.
Not really. Once they get discovered and reported on a supported browser, it sounds like they'd be routed to the team. Theoretically, bugs could exist in supported browsers that only get reported in unsupported browsers, but you'd have to weigh the likelihood of that against randomizing the team investigating bugs in unsupported scenarios.
>This is how pretty much every company in the history of ever works.
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.
Not supporting a platform is completely fine. Purposefully hindering performance when it is proven that the software runs well on said platform is one of the shittiest moves a company could make. I wonder to which other products they do the same thing, especially on places where evaluating such behavior is not as simple as changing the contents of a string.
Unhelpful catch-all responses that don't display a shred of effort or care are the bane of my customer support experiences. Nothing hurts my opinion of a company like being brushed off like a bug.
Whenever I google a problem with a microsoft product, and the search ends up on one of these answer.microsoft.com pages, I always click on the link with an enormous feeling of dread.
I don't think I've ever seen a usable answer on that site.
My 7 year old audio interface (E-MU 0404 USB 2.0 for who cares) started making BSODs after upgrading from Windows 8 to Windows 8.1. The latest manufacturer drivers were for Vista.
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 have to say, the Microsoft folks involved in anything driver-related have been the most competent, down-to-earth, and underappreciated folks at the company. If you're a Microsoft driver person reading this, props to you my friend.
> My 7 year old audio interface (E-MU 0404 USB 2.0 for who cares) started making BSODs after upgrading from Windows 8 to Windows 8.1. The latest manufacturer drivers were for Vista.
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.
> I don't think I've ever seen a usable answer on that site.
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.
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 ?
I hate that they rarely seem to even read the post. I once had a bad issue with one of my Windows PCs, so I dug through the internet and read all of the support docs I could find. Unfortunately none of them were working. In desperation, I turned to asking on the MS support site. I explained my issue, and explicitly stated "I have already tried XYZ, as per other support pages, and it is not working." Naturally, the first and only response was "Please try doing XYZ".
At least there is an occasional employee commenting. Have you seen the Google support forums?
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!
I've always found it fascinating that Windows/Microsoft error messages seem to have some kind of UUID (Error #c101a053 is one I found on my search history from 5 years ago), but you _can't look them up by UUID_ on the MS help pages or even online (and sometimes they don't seem to even be unique). I've always wanted to know what they do with these numbers.
That looks like a NTSTATUS value. You often see also HRESULT values. They are structured values, some of the bits tell you which subsystem generated the error, other bits tell you the error number within that subsystem.
Right. My gripe with it is that you tend to see them thrown into error messages without the corresponding string representation, thus forcing the user to do the lookup by hand.
Seriously, it can't be that hard to call the NT equivalent of strerror(3) when formatting these messages.
I've used that technique in products I built. Not speaking for MS but in my case the UUID was either written into some server log (to hopefully be used to diagnose the problem if reported), or matched diagnostic statements in our source code (so the problem could be diagnosed in conjunction with the code). Using a unique identifier helps prevent the kind of confusion caused when 3 different developers all decide that "this can't happen" is a good diagnostic message to display to the user.
Fwiw the identifier you posted isn't a UUID but the same justification applies.
Right, I expressed myself poorly. Maybe I meant just an ID?
My gripe was just that I expected that to index a knowledgebase of error messages, but the one I mentioned, for instance, isn't even documented.
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.
As a sysadmin who has supported the gamut of OS's, the key to windows problem googling is the "-" operator. -microsoft.com -expertsexchange.com ...
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.
<cough>Bullshit</cough> If you were a Linux user in the mid-90's, then about the only place to get "help" was #linux on EFnet. Collectively, I don't think I've suffered more abuse on the internet than in that forum. And, yes, I'm still bitter. It was NOT a noob-friendly place. The best place -- ever -- to get Linux help was, and will always have been, the Gentoo forums, but that didn't take off till the early 2000's.
Oh, it’s quite easy to get help there, and has always been.
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.
I wonder how much of Linux's recent success (I know it's still a tiny fraction) is just because of Google. I can't imagine using Linux if you take away the ability to Google. The fact that usually the results are posts by actual people and not some company stooge makes a world of difference.
#linux was a troll channel, so that's a poor example. #e (The Enlightenment Window Manager) had people very eager to help.
So did #redhat, #mandrake, #debian #stampede, #slackware, and even #linux-users. All were quite active from '98-2002, before freenode swallowed everything.
source: I got trolled by swedes in #linux before abandoning that wasteland for greener pastures listed above.
I don't know about that - with (especially desktop) Linux one has to be quite specific to get an up to date solution. There's been a lot of churn in the stack in last decade (i think the stack is much improved as a result).
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.
I've been using Linux for the past 6 years (on and off only the first two of those) and I have never had this happen to me. Maybe when I was using Ubuntu it was harder to find good answers that were not specific to someone else's usecase because of the nature of Ubuntu forums.
Back in the day I chose Gentoo Linux entirely based on an evaluation of its forums. It didn't disappoint: In five or so years of heavy use, I only ran into one issue that wasn't explained in great detail in the forums. The ridiculously high bar to entry seemed to do wonders for discussion quality.
As a Windows user since the 90ss, when I tried using Linux for a week or two on a spare machine while my primary laptop was in the shop... Trying to find any information on Linux that didn't involve books' worth of text saying 'compile this', 'write this program in C', or 'do this incredibly arcane commandline operation' became an exercise in futility. Whenever I have a specific problem in Windows, I can Google it and either find a relevant YouTube video or something of value in the Microsoft knowledge base (separate from the "answers." Q&A board).
> 'do this incredibly arcane commandline operation'
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.)
I will agree that the built in Windows OS help is very sparse. But I find myself (since 3.11) needing it less than I ever needed help with Linux.
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.
I was once told by Microsoft support that what I wanted to do was impossible, because the code was so old and chaotic that nobody understood how it worked ;)
Most Linux forum answers online are "do this voodoo I copied from someone else and don't understand".
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"
> I don't think I've ever seen a usable answer on that site.
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?"
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.
I very much doubt this was intentional. If this was a small company targeting unsavvy users to try and upsell them something, sure. In this case the payout might be worth the fallout once people inevitably figure it out.
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".
But I doubt somebody would switch from Linux to Windows because OneDrive is faster there.
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.
The only reason I would hesitate to say it's intentional is Microsoft's relationship/experience with the DOJ. Maybe that's far enough in the past and the landscape has changed sufficiently that it's no longer a matter of concern for them.
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.
Sometimes companies with experience getting caught learn lessons on how not to be caught, rather than lessons on following the rules.
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?
I highly doubt that someone on OneDrive has KPIs that performance on Windows is X better than performance on another OS. Maybe if both teams were in the same org, then I could see that as a (n albeit very slight) possibility.
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.
While that type of disconnect is certainly plausible, this type of soft communication arbitrage is regularly used to sabotage projects in corporate politics. It allows the conspirators to keep their moves covert. Plausible deniability is key, and affable management personalities go a long way to keeping people believing in the fairy tale.
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.
then how else would such behaviour be explainable? I thought about reasonable explanations but i doubt a little background process that notices a unsupported user agent would act up like this
I don't know if MS has earned the benefit of my doubt, but it's conceivable that the software could have implemented platform-specific behavior or optimizations that ended up slowing things down for some reason.
Yeah after reading some other comments (also on reddit) the idea that they push fixes platform specific and linux just defaults to a state with many missing fixes sounds like a reasonable option.
It could very well be because of a lack of testing on that platform. Assumption is the mother of all fuckups, especially when you speculate about intentions.
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.
Doesn't mean they can't file the issue. Then the team just checks the box on their ticket solution that says "WONT FIX" or "NOT SUPPORTED" and moves on with their lives.
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.
Personally I'd be happier being told honestly I don't warrant interest, unsupported platform, I need to look elsewhere, than being strung along with false impressions.
It can always be passed on. The 'tech team' may say 'wontfix' because it's unsupported, but it's very clearly a bug that could bite them on 'supported' systems in the future as user-agent sniffing is notoriously unreliable.
Much like how Netflix monitors torrents to find out how popular movies/shows are, Microsoft could tabulate these reports to find what OS their customers want to use with OneDrive. But if they don't get recorded, there's no info to learn that from.
Much like how Netflix monitors torrents to find out how popular movies/shows are,
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.
"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!
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.
"Not supported" is an acceptable first half of a response, but all you really have to add is "I'll pass this on to the tech team" and the tone changes entirely.
But if it's not supported, they can't pass it on to the tech team; that would be against policy. Changing policy to make companies support unsupported software is a hard sell.
That doesn't sound right at all. It's been a number of years since I have been at MS, but any engineering team I worked on would have wanted this feedback and fixed the problem. Not supported officially doesn't mean a dev can't spend an hour on a likely simple fix to help a customer - depending on who saw this feedback there are certainly many devs at MS who would fix this without even being asked. I'm willing to bet that's happening right now and this will be resolved in a few days.
I was fortunate to participate in a bug fix driven by MS (for the Tedious sql adapter for node), and it was impressive. The issue was noticed by someone who worked on Azure (not Azure SQL), who upstreamed the report to appropriate people in the SQL teams who then dug in and found that there was something that wasn't being set right in the tedious adapter.
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.
I was wondering, too. Firefox is Firefox, no matter what OS it runs on. If OneDrive works well with Firefox on Windows, why wouldn't it on Linux or any other operating system?
So... Just lie? This isn't going anywhere, the platform isn't supported. I'm pretty sure the powers that be remembered that Linux was a thing when they made that decision.
You don't have to lie. Under these circumstances, I often say to the people reporting it very directly "That's not a supported use-case, but I will make sure the relevant people know anyway".
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.
No, we're not. Read the statement again. If you fuck with the headers, you get a totally different and much higher performance result _on linux_.
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.
I agree that other things might be possible, but looking a the history, assuming malice is a reasonable starting point with microsoft. It has been right many times in the past.
As the former head of a customer support department, I can tell you that the most important aspect of communication with a customer is empathy. Even more than expertise, if you can demonstrate that you care about their problem and will get to the bottom of it, the encounter will most likely result in customer retention.
Similarly, has anyone else noticed the overly fake "I want to help you." Interactions with more companies lately? I mean it couldn't be more scripted if someone tried. I applaud the effort, but actual caring/empathy is meaningful, the fake, scripted attempts at it that I've been experiencing lately feel much more condescending than anything else.
Yep. Comcast is a big fan of this method, which is really infuriating and condescending because they pretend to understand my frustration while they fail to fix my problem and pass me off to someone else.
Really? Because nothing grinds my gears more than fake sympathy/empathy coupled with an inability/unwillingness to understand my problem and an urgency to get me off the phone. Which is pretty much how customer support works.
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.
He said "the most important aspect of communication with a customer is empathy".
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.
Empathy, in this context, means to me that I care about the problem of the person I am supposed to help, which increases my motivation to actually help them.
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.
When I called in about this bug a few months ago the support representative was surprisingly helpful. He didn't bat an eye when I said I was using Ubuntu, quickly researched the issue while we were talking, and suggested (while making clear that it was not an official response) that I work around it by spoofing the user agent string. Seemed genuinely sympathetic.
After this post blew up, it seems Microsoft PR has swept in and deleted that original useless post, replacing it with a new one saying the problem has now been resolved. If only every legitimate support thread could be a top post on Hacker News!
I don't really see it that way. I don't think Microsoft would be expected to offer support for an operating system that's not officially supported. I could see only two ways this could've turned out, either "we're planning to support linux in a future version, we'll keep you updated when that happens" or exactly what we got here.
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.
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?
UA "detection" is an unworkable mess (i.e. a bad idea) when it's trying to differentiate between different consumer web browsers. But UA detection works just fine when it's only trying to differentiate between browsers as a whole, and things that are not browsers—like web spiders, or curl(1), or your native client app.
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.)
Doesn't giving web crawlers different pages than the user facing UI get you kicked out of search engine indexes? The original ticket indicated different pages were served, not just QOS.
(I think) we're talking about pages served to logged-in users—i.e. the pages for files and folders in a given user's OneDrive account. Web crawlers wouldn't be able to reach those either way, so it (inconveniently from a fail-early perspective) wouldn't affect anything if the detection code does something stupid/crazy in the case of crawlers.
You don't know when this code was written or what the original purpose was. User agent detection used to be a best practice. Onedrive for business is a mountain of legacy software going from sharepoint to groove to who knows what. This bug could be buried in some library that was written 5+ years ago. Maliciously going out of your way to not support Linux sounds like a good way to have your code review rejected.
> No company should _ever_ use user-agents for feature detection
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.
Yea, call my cynical, but Microsoft Office is one of the few applications that doesn't have a good alternative on Linux. So this seems like a ploy to stop people from using Linux. At least the ones that would like to use Microsoft Office.
And what if some programmers are put unto fixing this, to realise the normal code path has a number of other bugs for linux? If you write web software you clearly define what you support and what you do not.
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.
It's true, but the flip side is don't offer a web based product if you can't support a wide range of web browsers on multiple OSes. This gives me flashbacks to old (hopefuly dying) "web based" enterprise apps that were browser accessible only by a one magic version of windows explorer with a giant slew of automatically downloaded browser extensions. Just produce an app if that's all that can be supported.
If said code paths work correctly on the supported operating systems and browsers why does it matter? You could say that it's a poor technical decision but that's really not up to the support to address.
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.
Web apps are marketed as "working anywhere" you have a browser. The underlying OS should not matter, and that again is a selling point. And presumably this issue is present on mobile browsers with low market share.
That's not the point I'm trying to make. Clearly support has to draw the line somewhere, "working anywhere" is not a reasonable commitment. Linux is not officially supported, the problem doesn't occur (I assume) on supported configurations, therefore it's not up to support to deal with this.
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'".
This is not a new thing. Decades ago when Verizon contracted with Microsoft to "upgrade" their web portal, it was no longer usable from any browser other than IE. I had been using it from Netscape on various SPARC machines and from my mobile device (PalmOS). The web page html source had no exotic platform specific language elements. It was obviously a "business decision". I wrote the VP at Verizon a letter pointing out that they had just abandoned 5% of their user base. I also switched to AT&T.
Microsoft's cash cow has always been Windows, and secondarily, Office. That directed their decisions then and it directs their decisions now.
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.
Saying "its a business decision" doesn't justify unethical and potentially illegal behavior. This is either incompetence or malice. If it is malice it falls well on the wrong side antitrust behavior. If its incompetence, well it isn't much better is it?
Although I don't think it's unethical to intentionally make the experience slower for some users, I'm not trying to justify it.
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.
So why do you say anti-competitive behavior wouldn't be unethical?
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.
IMO, most companies can't engage in anti-competitive behavior independently. You need a special status as a monopoly or a part of a cartel. For normal companies, normal behavior is "anti-competitive" because the point of business is to beat your competitors.
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.
It's not throttling based on user-agent. It's just a bug that happens when the user-agent parser falls off a cliff when it exhausts the values that it knows about.
A bug that Microsoft won't fix, because Linux is not supported.
Is it possible that companies, teams within companies, and/or individuals might exploit "Hanlon's Razor" to their own benefit? It's easy to say "Oh, whoops" and often there's no easy way to prove incompetence vs malice. And because people are aware of this cliche/meme, they may be more susceptible to it.
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 wonder if people said "Hanlon's Razor" when they first heard about the VW emissions scandal.
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.
Anecdotal experience... but when I use Chrome and switch user agents to a random one that probably wouldn't be too common (in my case, Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36), in Chrome Network tools it seems that there were several Javascript pages that were being loaded through a "StaticLoad.aspx" (namely WordEditor.js and Hermes.js scripts), that simply hung while downloading.
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.
yes, but the hypothesised cause is an unhandled exception when it doesn't find a UA string from its list of expected UA strings, and that case might just hang until a timeout of some kind.
That sounds highly likely. Intentional throttling doesn't help Microsoft in this case. I don't think they view Linux desktops (aside from Chromebooks) as a serious threat. Why wouldn't they want more OneDrive users?
This reminds me of the article about the OneDrive team being allowed to introduce ads into Explorer because they don't care at all about the experience of using Windows and they just want more OneDrive users.
(Supporting documentation of the position "why wouldn't they want more OneDrive users"...)
A company has an IT director who upon review has determined that Linux workstations would be acceptable for some of his users now due to the fact he uses onedrive.
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.
That sounds exactly like Google, and makes the most sense.
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.
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.
And not every browser bug is detectable via feature detection. I've seen plenty of render specific bugs that were only able to be targeted via user agent parsing. Not it isn't perfect... but it's often the better of the options available.
They're probably doing broad bucketing for supported browsers first, instead of assuming it's supported then limiting/targeting specific versions for various fixes, or non-support.
I read in a comment on Reddit (lost the link at the moment), that it doesn't appear to be nefarious. Basically, they're trying to do feature detection based on UA instead of.. actual feature detection.
Plenty of parts of Google have done UA-sniffing all over the place. Opera, even after being Chromium based, have had plenty of problems as a result: the UA doesn't match so therefore they get an "unsupported" or "degraded" experience.
Even basic Google search seems to do some UA sniffing. I run Firefox but usually browse with IE or Chrome user agents, and clicking the results on a search won't actually navigate to them
It's just a very heavy page render due to the way asset preloading is implemented; details at [1]. Seems Linux user agents get a legacy method and Windows get a modern one.
You can see it yourself by viewing [2]. OneDrive renders several of those pages simultaneously.
> They can't be throttling based on user-agent... right?
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.
There can be a feature that is only tested on Windows and so is only enabled there. Does it make sense? Not really, but that can happen. Google does this everywhere, blocking features on browsers that are not Chrome.
They're still trying to get even for Marc Andreessen sabotaging NCSA Mosaic's cross-system portability stuff, in an attempt to prevent the year of the Windows Web Browser.
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.
I thought this was the New Microsoft. Any other hypotheses?
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?
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.
It is the "new" Microsoft, in terms of PR. Kind of like AT&T's "Gigabit to the press release." Tons of positive press for the announcement, but nothing real behind it.
FWIW, I see this kind of thing regularly because I have the RandomAgentSpoofer extension installed on Firefox. Sometimes the page will look at the UserAgent and think it can't run X or Y so I will get an HTML-only version.
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).
Considering that there are places in the world where government employees must use Linux due to regulations, and Microsoft is moving ever closer to cloud delivered services, one would think that they want to support Linux as an OS. [0]
Patent-encumbered media codecs are available in most Windows and Mac browsers thanks to the OS shipping codecs. On Linux?
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 don't think changing the user agent string affects which codecs or device drivers are available on the client. If changing the user agent string "solves" the problem, then the problem is most likely with the site - especially if the same problem and solution exist between different browsers. They are probably assuming some capability is absent instead of testing and gracefully degrading.
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.
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.
"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."
Apparently someone took notice. A few minutes ago a reply was added by a Microsoft employee stating a fix has been deployed. Wish they would have provided more details, but glad they finally listened after. Only took 4 months.
100MB? Assuming they're using GZIP, that's normally a 10% compression ratio, leading to about 1GB of actual data. Let's assume this data is stored as 8 bits, that's about one hundred million characters of code! Maybe what they're doing is downloading the entirety of Windows XP (roughly a gig in size), running it in JavaScript and then rendering the page in Internet Explorer within their version of XP.
I'm guessing that the customer service rep has no idea what the term "User-Agent" refers to. He just saw the word "Linux" in the post and then replied with a canned response.
I was managing a Google Apps account when I had a problem with Google Groups I didn't know how to solve. Picked up the phone and called the support number, and within minutes I was talking to a super nice guy who helped me out. That was the best customer support I've ever experienced.
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.
To be fair, if you've ever used paid support from Microsoft, you'd have gotten equal treatment. The couple times I had to call them back in the early 00's, I got super-technical, friendly people who got to the root of the problem right away.
One even taught me to catch a Windows error via remote debugging on a different machine. I leveled up because of a support call.
And this, along with MS' history, is why I still have a hard time using any of their technology. I appreciate some of their open source efforts, but for the most part they're still the same old. Embrace, extend, extinguish.
Tangentially related, but Netflix also do some similar User-Agent sniffing logic for Linux users browsing with Firefox. Firefox does indeed support Widevine, but unless you pretend to be Chrome Netflix refuses to work.
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.
Has anyone tested this on a Chromebook (being Linux based)? I get that they might overlook Linux desktop due to market share, but the edu sector uses Chromebooks heavily, and this would be shooting themselves in the foot to degrade (intentionally or unintentionally) the 'first experience' a person might have with ms products.
Isn't Onedrive just Microsoft's cloud storage service? I haven't used it before, but is this implying that a web file manager is slow? Feature detection or not, regardless of OS, I think an application of this nature just shouldn't be slow at all on any computer 5 years old or less.
Funny, I'm changing the user-agent to access web version of Skype from Android Firefox. It's also "not supported" but it works fine for occasionally checking the chat.
And we hear all the time that the browser is the new OS, and that web apps are the only cross platform way to do software. I am wondering why is MS spending for the new Skype for Linux web app but not for One Drive, it would make more sense to be consistent on what platforms the web apps made by MS are supported. Now it looks like we support Skype on Linux(as alpha for now) but not One Drive(I do not know what other business apps they have)
Hahaha silly me starting to think Microsoft after all these years had changed. Reminds me of how the crushed Lotus 1-2-3 by making their software run deliberately crappy on Windows and how they made sure all the competitors RTF products was always behind the Windows variant by releasing the updated specs to everybody only once they themselves had made a finished version. And who forgets their dirty tactics against Netscape?
Google is doing this with many of their products. And has been for many, many years. Limiting features, blocking services, etc... based solely on user agent.
Try https://meet.google.com in any browser other than Chrome and you'll get a message saying your browser isn't supported.
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.
Inbox when first launched was only available on Chrome and blocked other browsers via user-agent. However, if you were using Firefox and changed the user-agent to Chrome, everything worked fine.
Well the missing functionality comes and go, hard to keep track. One current that I know of is Google Maps (the Earth mode).
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).
Microsoft did the same thing way back with CPUID .. when it was Intel, it worked well. Otherwise (AMD, Transmeta), they would use very inefficient operations instead of SSE (IIRC), slowing down benchmarks that used media (like players, etc) and Photoshop. This is from a distant life in the past, but I think it was not limited to use of SSE.
It's not just Onedrive, it's the entire Office 365, e.g., https://office.live.com/start/Word.aspx crashes Chrome (renders it unresponsive, closing the tab then takes forever).
I don't know the intersection between SharePoint and OneDrive but when I use browse documents on SharePoint using linux/chrome my browser gets stuck eating 100% of a CPU while I don't have the same problem with linux/firefox or win10/chrome ...
So basically just one bug and community goes bananas on conspiracy theories.
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.
my 1$ hypothesis - partner company to which Onedrive UI project outsourced didn't had any Linux machine and all developers/QA working for this partner company were Windows users, to improve compatibility matrix they had kept few Mac machines in the office to run tests. Moreover this team might not received proper spec about the backend API at the initial stages of the project development, would have receive only at last stage of the development. So they try to get it working only in one or two platforms to make the release happen :)
I can't stand how awful the UI is on Mac compared to Windows. Why have the sections and the page list waste a ton of space on the left and why can't I collapse sub-sections?
I'm a person that wanted to give them another chance and got my self a Lumia 930. They didn't deserve it. Sometimes I get the feeling they are incompetent.
Use case: your company uses Office 365, and you want your cloud storage to be integrated with the rest of the Office 365 apps, and you don't otherwise care about the quality of the cloud storage app.
I'm going to basically cede my point to you because, honestly, Office 365 is not a bad product and even though I would not personally use it, I have to admit that this is a valid use-case, haha.
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.
yeah, but why? lots of discussions about user-agent detection and how its not a malicious attack against linux users, but no discussion how and why it is slow.
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?
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.