Firefox OS Simulator – previewing version 3.0
hacks.mozilla.org
hacks.mozilla.org
The idea is that you write apps in HTML/js/etc, using some well-defined APIs to access the underlying hardware capabilities.
The implementation is an underlying Linux system (Gonk), and Firefox's rendering/javascript/etc engines.
If you ask, 'can it run alternate browsers', what exactly are you asking? The browser app of FF OS is written the same way other apps are -- in that sense you definitely can. But it'll still be running on top of Gecko et al.
Ok, so can you replace Gonk/Gecko with some other underlying implementation? Well, that's kind of the whole idea! But if you do that, you won't be running FF OS anymore.
The reason we care about alternate browsers is choice. FF OS enables choice by promoting standards. They want an app written for the system to work just as well on Chrome or Safari (whenever Google/Apple get around to implementing the same APIs.)
I'm a fan of what Mozilla is doing, but I encourage you to go look at Gaia code and then come back and repeat this. None of it will run in other browsers for two reasons:
1) They use JavaScript 1.7 features that no other browser is going to implement until ES6.
2) They use -moz prefixes in their CSS but don't include the other vendors: https://github.com/mozilla-b2g/gaia/blob/master/apps/calenda...
If someone steps up and wants to provide an alternate middle layer under Gaia, I really doubt Mozilla will stand in their way.
sed -i 's/const/var/g' *
right? So I'm not sure how any of the Gaia apps are going to run on non-Firefox browsers until other vendors start implementing ES6, so a year from now at least.ES6 is already here, piece by piece it is being added. It's just like HTML5 - there is no future date when suddenly it will show up. Firefox, Chrome, etc. all have parts right now.
> 2) They use -moz prefixes in their CSS but don't include the other vendors: https://github.com/mozilla-b2g/gaia/blob/master/apps/calenda....
Sounds like a bug, filing an issue would be appreciated I am guessing.
Not sure what you mean, here's a compatibility table: http://kangax.github.com/es5-compat-table/es6/
Doesn't seem to be "already here" by any reasonable definition of here. Looks like no one but Mozilla is adding stuff that aggressively. Knowing the companies, I'd say it's very doubtful that Apple or Microsoft implement much until ES6 is finalized.
It isn't "here" as in all here, but parts of it are, and more are added all the time. My point was that just like HTML5, it's a gradual thing, at least for Firefox and Chrome - it's possible other browsers will hold off, as you say, although I hope not.
I think that the main idea is that your app should be portable between Firefox OS and other mobile web browsers such as Opera Beta and Chrome for Android.
Gaia is not meant to be run under another browser. I think as other vendors implement the needed APIs, they will be unprefixed.
But it would be a bit silly for Mozilla to pursue that at the cost of an expedient release of FF OS, when there aren't even any other implementations to test with. :)
The prospect that the next generation of Windows on ARM devices would limit users to one browser is untenable and represents a first step toward a new platform lock-in.
If Windows users deserve choice then surely Firefox OS users deserve choice as well. It can't be a desktop vs mobile thing because Mozilla are campaigning for Firefox to be allowed on iOS [2].
[1] https://blog.mozilla.org/blog/2012/05/09/windows-on-arm-user... [2] http://news.cnet.com/8301-14013_3-57573440/mozilla-says-no-p...
(Presumably there is nothing stopping someone implementing a browser in a HTML5 canvas, and Mozilla certainly wouldn't "ban" such an app.)
As far as I know Windows RT supports developing apps in Javascript/CSS so it sounds like Trident is pretty built in to Windows RT. That has not stopped Mozilla calling for the ability to bring Firefox to Windows RT [1].
>(Presumably there is nothing stopping someone implementing a browser in a HTML5 canvas, and Mozilla certainly wouldn't "ban" such an app.)
There is nothing stopping Mozilla doing that for iOS but they (rightly) want to be able to release a browser that has decent performance.
[1] http://blog.mozilla.org/blog/2012/05/09/windows-on-arm-users...
If you want another browser, you just have to write it up in HTML + JS, like every other app on the device.
Besides, the OS is literally a browser. The only way to avoid having a default browser is to remove the little Firefox-branded app that opens a new gecko window. That doesn't seem to promote competition at all.
Not quite. They are encouraging apps that are based on HTML and Javascript, but as far as I can tell Firefox OS includes plenty of APIs that are not available on other platforms, and there are no plans to bring them to other platforms [1].
Yes this isn't necessarily the fault of Mozilla, they can't force Google/Apple/Microsoft/Opera/Nokia etc to add features to their browsers [2], but that of course is one of the problems of using the 'open' web as a platform for everything. Either you remain standards compliant with very limited features dictated by the glacial/gridlocked standards process, or you extend the standards even without the support of the other big players, resulting in apps that only work on one OS (although are perhaps easier to port, depending on exactly what is missing).
[1] https://wiki.mozilla.org/WebAPI I see plenty of grey "not currently planned for this platform" items in this list
[2] other than to release their own browser on those platforms, which brings us full circle… the most important thing is open platforms where anybody can write and distribute native software targeting them
On the very page you are commenting on as "grey" they explicitly mention that each API will be submitted to the W3C for standardization once they reach a point where it is suitable (ie it has an implementation demonstrating it).
Every single article I have seen about Firefox OS that includes comments from a dev has seen the dev explicitly call out that all the APIs they are creating will be submitted for standardization to allow the apps to run on any browser that supports these open standards.
Please, please either stop misrepresenting the intent of the Firefox OS team, or if you are honestly in error, do more research before attempting to speak authoritatively.
Except the browser.
Mozilla could build Firefox for iOS using the technologies available to other third party apps on iOS. They (rightly) don't think that is good enough because it means they can't build a browser that is competitive performance wise with the built in browser.
http://news.cnet.com/8301-14013_3-57573440/mozilla-says-no-p...
The sticking point for Mozilla is not being able to carry over its sophisticated rendering and javascript engines to iOS. Essentially, the organization doesn't feel like it can build the browser it wants to for Apple's platform, Sullivan told CNET.
Also, the reason you can't get good performance on a 3rd-party iOS browser is that Apple artificially restricts JIT to first-party apps.
Actually, Firefox on FirefoxOS is written in HTML + JS. Here's the source: https://github.com/mozilla-b2g/gaia/tree/master/apps/browser
Sure, the HTML + JS runtime on FirefoxOS is Gecko, but that's an implementation detail. The browser itself, as users will experience it, is Just Another Webapp.
Except that it's NOT, because the core of the whole thing -- HTML + JS -- is native.
Apple does the same thing on iOS -- you can use UIWebView to render HTML/CSS, and to execute JS. Yet that wasn't good enough for Mozilla -- why?
Yeah, and Firefox doesn't allow native code execution at all either, so, also slow. Mozilla doesn't have the moral high-ground here, in that they're also creating two tiers of developer: Mozilla, and everyone else.
Now what?
I don't want to live in that two-tier world of web vendors and everyone else.
One issue is that Apple gives themselves a much faster version WebKit, but doesn't let anyone else use it. If you want to be a browser on iOS, you have to use an intentionally crippled engine.
Another is that Apple's iron grip on iOS is in direct opposition to the Mozilla Manifesto. Mozilla simply can't be a party to that platform without compromising its values.
That second issue is at the heart of FirefoxOS.
That's not true, Mozilla could build Firefox for iOS the way they want to, they just can't release it on the App Store. It's an imposed limitation, not a technical one.
As others have said, if you can compile WebKit with Emscripten you can build a WebKit-based browser for Firefox OS that gets 2x performance vs. native.
So basically, with Firefox OS, you're limited to using the Mozilla browser. Sounds like Firefox is trying to lock you into their standards, exactly what they're accusing Apple of doing with the webkit engine in iOS.
Android and Ubuntu Mobile look to be the only solutions that give me the flexibility I want in a phone OS.
Yes, the purpose of the project is to promote open standards for phone-oriented web apps.
"exactly what they're accusing Apple of doing with the webkit engine in iOS."
iOS is not an open system and does not promote open standards. The point of the FirefoxOS project is to make interoperable standards that will hopefully be supported by every future web browser.
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/...
The intent seems to be to document the OS abstraction layer and have the capability to launch applications that do not depend on the browser layer:
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/...
I have no idea why you brought Darwin into the conversation.
[1] I'm not sure that the iOS version of Darwin actually is totally open source, but for the sake of argument I'm going to assume that enough of the code is available that you could cobble together a phone that runs Darwin and then run whatever software you wanted on it
Firefox OS is a browser. Asking if it supports other browsers is like asking if the Linux kernel supports BSD, Windows and Darwin.
In other words, if you replace Gecko in Firefox OS, you are left with nothing of Firefox OS. Just the underlying Linux kernel basically. So technically this just makes no sense.
The situation is different on iOS, Android, etc. - web browsers are just another app there. Many browsers run on Android, and the only reason they do not run on iOS is policy, not technical matters.
The only OSes like that are Chrome OS and Firefox OS (edit: and WebOS). Windows, Android, iOS, etc. are not browser based, so it make sense to ask for other browsers to run on them.