I run Firefox Nightly, and I still believe it has the most potential out of all the browsers to maintain an open web.
The problem with chrome is that like Android, even though they open source most of it, average joe OSS programmer will never get a commit into the main branch because everything is done by google folks. It is much easier to get going on firefox development.
Having the source and having the browser be a community project are very different things. The problem with Firefox is they need to be more open - there is a magical threshold, that the Linux Kernel has shown us (since Android uses it) that you can have a fully open and community driven project that given enough attraction of OSS developers will overwhelm any enterprise option - it just requires extreme openness to development.
Firefox is pretty much in that spot. It stands to say that anyone who complains about anything wrong with Firefox can go and try to fix it - but you do run into the same problem any new dev on the project runs into with things like the kernel or libre office or rails - the code base by this point is gargantuan and the documentation is often fragmented because so many people worked on different things. This means you have no idea how they, for example, implemented the tab rendering that resizes tabs as you add more, and don't know it any external variables are lingering around messing that up, or where the coloration of text is, or how the default text engine works, without going through thousands of lines of code.
And that is too much commitment for someone to do in their free time. I think fixing up the documentation in firefox might go a long way to getting more freelance developers working on it again, and if you had a good 100 or so devs consistently spending a few hours a week trying to optimize the code, it would only be a few releases before most of the memory holes go away.
But #1 problem with web browsers going forward is all of them perfecting sandboxing. Sandbox plugins, web pages, and addons, and making all those sandboxes work flawlessly, will be the real win in the end for whoever pulls it off best - perfect sandboxing means a user doesnt know the difference between a local or remote app, and a crashed web page, or addon, or plugin, doesn't affect the browser itself in any really negligible way.