O'Reilly

Firefox OS User Agent

By on  

While we consider user agent sniffing a horrible practice on the client side, UA sniffing is done quite a bit on the server side to serve up the appropriate page version of a site, or redirect to, for example, the mobile version of the site.  This can be a dangerous road but most large site with a separate mobile interface do it.  The following is the user agent for Firefox OS:

Mozilla/5.0 (Mobile; rv:18.0) Gecko/18.0 Firefox/18.0

At the moment, many large sites are sniffing for iPhone|Android instead of "Mobile", and thus they are serving their desktop site to Firefox OS devices.  Be aware of the Firefox OS user agent and update your server side logic appropriately!

Note:  Of course the version number within the user agent will update often, so detect "Mobile".

Track.js Error Reporting

Recent Features

  • Responsive Images: The Ultimate Guide

    Chances are that any Web designers using our Ghostlab browser testing app, which allows seamless testing across all devices simultaneously, will have worked with responsive design in some shape or form. And as today’s websites and devices become ever more varied, a plethora of responsive images...

  • Create Namespaced Classes with MooTools

    MooTools has always gotten a bit of grief for not inherently using and standardizing namespaced-based JavaScript classes like the Dojo Toolkit does.  Many developers create their classes as globals which is generally frowned up.  I mostly disagree with that stance, but each to their own.  In any event,...

Incredible Demos

  • Create Classy Inputs Using MooTools’ OverText

    The MooTools More library is a goldmine. A treasure chest. Pirates booty, if you will (and, of course, I will). More is full of plugins that add a lot of class and functionality to your website with minimal effort.

  • PHP IMDB Scraper

    It's been quite a while since I've written a PHP grabber and the itch finally got to me. This time the victim is the International Movie Database, otherwise known as IMDB. IMDB has info on every movie ever made (or so it seems). Their...

Discussion

  1. Matthew Felgate

    Not really worth it; Firefox OS: dead on arrival.

    • The “Most Ridiculous Quote of the Day” is brought to you by Matthew Felgate.

  2. Hm, I’ve read that Firefox OS 1.0 has Gecko 18. Weird…

    • Right; that number will vary but the point of the post is to not simply look for “Android” or “iPhone.

  3. The Firefox way should be used by Apple and Google on this.
    I love the fact that i’s “Mobile”, it makes so much more sense than IPhone, Android, Whatever…

    The content should be, if wanted, delivered by “use-case” and not “device-case”.
    Device-brand detection is like vendor-prefixes, they should be avoided as much as possible.
    Device-type detection is the right way of doing things, props to Mozilla!

  4. A user-agent string has more that one usage and as ua-strings go, this is an abomination.
    The ua-string belongs to the User-Agent and not the OS it happens to be installed on and thus should indicate which OS it is installed on.
    A user-agent string as “a strong values statement” ? (https://bugzilla.mozilla.org/show_bug.cgi?id=777710)
    Words fail…

  5. Why can’t there be a standard on User agents; where we don’t have to use a term like sniff to detect it.
    What is blocking the browsers to have a standard on user agents.

  6. It looks like this useragent isn’t even unique to a Firefox OS device: it could theoretically be transmitted by any Firefox Mobile browser installation with those versions of the components.

    All this means is that this device will be detected by all analytic software as either “desktop device” (if it’s a poor system) or “Generic Mobile Firefox device” if it’s a good one: basically put into the “generic, don’t care” pile.

    Either way, the big data analytics that are so popular nowadays will never organically credit Firefox OS with any market share, because it’s essentially cloaked. Microsoft made a similar mistake with Windows 8 devices cloaking themselves. And if Firefox OS doesn’t appear in the stats, then it effectively doesn’t exist for developers. They can’t target it specifically server-side except as “generic Firefox Mobile device”…

    The whole thing seems to be a case of almost-religious beliefs working against the success of the product.

    If an OS isn’t visible, it will never count, and users will be shortchanged as well.

    (Also, anyone just checking for “Android” and “iPhone” only on server-side really should get a better system).

  7. Thanks for this post. Previously I was trying to detect weather the userAgent was a mobile one or not by checking for each and every mobile browser (Android ,blackberry ,etc) but that was a impossible task due to sheer number of browsers out there. Your advice about checking “Mobile” inside the userAgent was a life saver

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!

Recently on David Walsh Blog

  • Loading Static Templates for Intern Testing

    I use Intern by SitePen for all of my JavaScript functional testing.  Intern has loads of features other functional test frameworks don't and it's completely Promise-based -- something I got very used to when I used the Dojo Toolkit every day. Async test creation can...

  • Convert Video to mp3

    Let's all be honest for a moment:  we've all ... not paid for ... music.  Whether it was via a file sharing app like Kazaa or Napster, or it was downloading and seeding on bittorrent, or maybe even downloading a music video and ripping its audio,...

  • Sort git Branches by Date

    I'll be first person to admit I don't do as much git repository maintenance as I should.  I rarely delete branches which have been merged, so a git branch execution shows me a mile-long list of branches that likely aren't relevant.  The best way to find branches I've recently...

  • Best Tools and Resources for Web Professionals in 2015

    Looking for the right resources to help you satisfy the needs of your clients? On the lookout for the best tools to help you increase your revenue? Searching for the right software to help you improve your business? Well, then you’ve come to the right place....

  • JavaScript Polling

    Polling with JavaScript is one of those ugly but important functions within advanced front-end user experience and testing practices.  Sometimes there isn't the event you can hook into to signify that a given task is complete, so you need to get your hands dirty and simply poll for...