As long as individual pieces are to spec, it's completely ok to rewrite modules and components from the ground: People rely on the standard, and not the app.
Punnycode encoded email addresses in email fields.
Numerical keyboard on number fields.
The whole mess with WebRTC.
Video elements codecs.
History API in early mobile browsers.
The various APIs for storing data locally in the browser (particularly regarding blocking and size limit).
Data expiration. This one is so messed up it makes me angry.
Spawning a background task.
And those are just the ones that popped in my head in a few minutes.
For example, the animation of 3d CSS transforms (which needs SLERP) differs in some test cases across different browsers. I don't think any browser displays the correct behavior here, though the spec is a copy of what webkit does so I suspect the spec gets it wrong too. Other engines have an implementation of the algorithm that doesn't match the spec textually. I'm unsure if the algorithms used in these browsers are actually equivalent and it's an implementation bug, or if the algorithm picked is wrong.
However these are just really examples of bugs. There have been cases where the spec itself is buggy, and cases where it is ambiguous, but both get addressed. The specs these days try hard to avoid this. But bugs will happen.
Most of these bugs will only be found by the people given the task to implement the spec, not users of the implementation.
I think that as more and more websites will move away from Java and Silverlight I expect that other companies will be forced to do the same as the customers will keep having less reasons to keep a browser with those plugins supported.
EDIT: Added "insanely"
Maybe in the short term keeping some users is worthwhile but they'll continue to lose them slowly to Chrome, and browsers aren't fighting a short game. Firefox, Chrome, IE, they're not going anywhere - they've been around for a long time with plenty of market share. It makes sense to be forward thinking here.
Every Firefox extension will be broken. Only Chrome extensions will be supported.
Hopefully we can hit a sweet spot with respect to customization. WebExtensions are a superset of Chrome extensions, and do we have an open process for people to propose new APIs.
Some people are never going to be happy, but hopefully others will step forward and build some cool stuff.
Every major change ever made in any system brings out those comments. Whether the change is good or bad, successful or not, is not related to the existence of those comments.
Just look through Bugzilla; you can find those comments in (it seems) any change that attracts public attention.
We all want faster more stable software but if that single feature trumps that for lots of people it seems crazy to just dump it. You can make a car faster and better on gas if you remove almost everything that makes it comfortable too. We all want cars that go faster and use less gas but we also like comfortable seats, storage, and air conditioning.
Remember that Google is an advertising company. Chrome is an ad delivery platform, ultimately. Firefox isn't broken because it isn't like Chrome.
Firefox's literal only advantage over Chrome is its extensibility, and that baby is being thrown out with the XUL bathwater. It's slower than Chrome, it's less secure than Chrome, and since Mozilla seems hellbent on turning Firefox into Chrome, I might as well just bite the bullet, use Chrome and save myself the headache.
The only other advantages I can see are philosophical, rather than practical, but given their history of shoving irrelevant shit into the default install and ignoring any and all user pushback to their decisions (the "we're forcing addon signing" comment section was unanimously negative), I'm not sure that's worth much either. If I want to use a browser where my input on features and so forth is discarded, again, I might as well use Chrome and gain some speed and security while I'm at it.
I ask this question in complete sincerity: Why would I want to use Firefox?
I'm not going to shed a tear over Classic Theme Restorer or DownThemAll if their loss means a faster, more secure, and still more extensible browser than Chrome.
Apparently, "people first" and "freedom" means "You can only install what we okay" (signing crap).
It also means "we will load the browser with utterly irrelevant add-ons whether or not you want them".
Apparently, "individuals can shape their own experience" means "we will outright prevent you from visiting sites configured a certain way" (see the dupe SSL cert handling bug that's been languishing for nearly a decade)
It also means "all that stuff you spent a decade getting used to gets thrown out, so sorry".
Mozilla, for all their talk of high-minded user-first ideals, sure doesn't treat their users like their time is valuable or their tasks are important. Perhaps I'd find this merely odious, rather than outright offensive if your company didn't continually talk like they wanted to be different and then behave in literally the opposite way.
Call this post gratuitously negative if you want to, but every time I give Firefox another try, I find another slap in the face. At least I know where I stand with Chrome.
The early days of Firebird were not spent trying to match the features of Internet Explorer!
Internet Explorer offered some superior features that Mozilla could never match. It even had awful custom CSS rules, that let websites do things like change the color of scrollbars.
Firebird focused on making a fully standards compliant browser, and then success found it, when the public got sick of Microsoft. And maybe that won't happen this time around, but so what?? This is just hubris on the part of Mozilla, at this point.
I'm horrified at what would have happened, if in 2006, everyone had rolled up their sleeves to bring ActiveX support to Firebird on par with IE6. Is that what you think would have worked?? Microsoft would always be several steps ahead of you.
This is tilting at windmills.
Chrome is crippled in many ways. Extensions are second class citizens, merely along for the ride. They can be removed remotely at Google's whim, and you can't rely on them to run reliably. They also don't have full access to the browser the way Firefox add-ons do.
Among my different profiles, I have profiles to slice and dice the web. I can do a ton of web scraping without having to write any scripts. I can do a ton of cool stuff, and customize Firefox the way I want. Firefox gives me cheatcodes to the web.
Who the hell said extensions had to be sandboxed? That's an overly cautious decision that makes sense for Google. It's a WEAKNESS. It's a COMPROMISE that Google had to make with Chrome. It is not a strength.
The iOS app store makes money for Apple. So does that mean we must copy the weaknesses of the iOS app store? That's cargo cult thinking.
For a site that has people who go on and on and on about the innovators dilemma this argument seems pretty shortsighted.
I think the second option will be used in most cases.
Java and Silverlight I get, but not upgrading certs I consider to be pushing it. When we cater to users who have no interest in upgrading technology we hold everyone else back.
I prefer the technique of saying "It's done on this date. Ignore us at your peril". The view that technology can just be bought and then never maintained is ridiculous and should die. Nothing else operates like this. You buy a machine and you know it's going to include ongoing maintenance costs. Software is no different and trying to pretend it is just ends up with you paying stupid amounts of money and resources to maintain an ancient tech stack decades later. Or worse you have a stack where the people you are paying big money to maintain it are starting to retire or die.
Google wants to make money by developing a platform.
Mozilla (should) want to make technology that empowers people. Mozilla does not have to provide technical support. Mozilla isn't making money off of it. I think that the only reason they did it was because Google did it.
Should emacs or Autocad require signing of extensions? Why not? Because it would go directly against the grain of what those tools are for. And users should be smart enough to handle their own security.
I would like someone to justify Firefox extension signing, while also explaining why nobody cares if other software has signed extensions.
I'm also not sure how extension signing makes Google any money?
Mozilla has no such incentives. And they also don't have any larger strategy that Firefox supports.
Edit: for those who don't want to dig, a random quote:
"Shortly before we left AMO [Firefox's integrated addon channel], an AMO editor publicly told someone asking a technical question about Zotero that Zotero was “evil”, adding, “They submit a new version every week, with thousands of lines of changes, nearly always additions. Every time I review it I hope they’ll go bankrupt”"
It seems (from many signals) very much like Mozilla would prefer it if most Firefox addons were tiny 200 line hobby projects that got updated once a blue moon.
We're working hard on further changes to the process to reduce the stress and delays associated with manual review, including moving the review process to a post-publication check, instead of a pre-publication requirement. The heavy-handed review process was necessary with the old model of add-ons which had unrestricted access to the browser and to the host system. The new, permissions-based WebExtension model is dramatically easier to audit.
Google will always beat you at this, always. They can afford to pay far more people than you have volunteering for you, ever.
There is no justification for Mozilla's extension policy. Mozilla is just LARPing as Google. They are superficially copying some features of Google's platform, in the hopes that they will magically inherit Google's success.
Microsoft still sells their software in boxes in retails stores. Perhaps Mozilla should spend money pressing discs, but instead of selling it, they should give away Firefox discs in stores. That's a good analogue to what Mozilla is doing.
This is a colossal waste of time that nobody asked for and nobody wants.
A quick google suggests that at one point 85% of users used extensions.. and as of last year it was still 60%
I don't know that any Servo code is shipping today, but a few little things will happen like the url parser.
The first big pieces will be the style system (Quantum Style or Stylo) and WebRender (Quantum Render), in that order. Once the style system is done, it probably makes sense to figure out how to get Servo's layout engine into Quantum, although that is a larger project since it requires us to implement a few large bits of layout that aren't done in Servo yet.
There's a lot of main things in Servo, but if we had style, layout, and WebRender, that would be a sizeable chunk. Our DOM engine and basic architecture is also pretty interesting, but it's unclear how to move that over incrementally.
Quantum Compositor (an architectural improvement written in C++) just shipped.
Quantum Render/Webrender (Servo's pure rust renderer that uses the GPU a lot) is in nightly, off by default (there's an about:config prefer, though it may not work depending on your drivers. about:support has more info). The current version of quantum render actually kind of renders twice -- first using webrender and then the regular one to fill in the missing bits. So don't expect it to be fast just yet.
Quantum Style (Stylo), servo's pure rust styling system, can be enabled at build time. We're discussing making it a preference in nightly, there are a couple of blockers for that.
The Rust URL parser (rust-url) can be enabled via network.standard-url.enable-rust. This will parse URLs using both rust-url and the regular parser, and complain about differences. I believe it's on by default in nightly and Aurora. It will fall back to the result of the regular parser if there is a difference, though there's a build time option to disable this. There are still some discrepancies which need fixing (most of them are actually gecko side bugs, we've fixed most if not all of the rust-url side spec issues), and this project is on the back burner for a bit since I'm busy with Stylo, but I hope to get back to pushing this soon!
On nightly, regardless of prefs, IPV6 URLs will always be serialized using rust-url. There were some spec bugs in geckos implementation and we decided to just use the rust stuff since we had bindings for it already. This landed a month ago, and should be in the Firefox 55 release in august.
The MP4 metadata parser in rust has been in Firefox releases for a while now.
Stylo is more parallel which will bring a big performance improvement, especially on multi-core and mobile devices while WebRender uses the GPU to render websites which will also bring a huge performance improvement to mobile devices and computers with an (integrated) GPU.
In a nutshell WebRender is used to send a web page to the GPU which will paint all divs, borders, shadows, images etc. Currently WebRender is the only component I'm aware of that is inside Firefox Nightly. It's still behind a config though.
In nightly currently IPV6 urls are unconditionally serialized with rust code, and this will ride the trains to a release without being turned off.
And a recent blog post about the first piece of the project landing in Firefox: https://blog.mozilla.org/blog/2017/04/19/first-big-bytes-pro...