Firefox 57 as the first release where only WebExtensions will be supported
Okay, I read through the entire comment tree and I didn&#x27;t see a single top-level comment explaining <i>why</i> they&#x27;re doing this. So I&#x27;m going to give it a shot.<p>If you don&#x27;t run an ad-blocker, and you go to a typical commercial web site (say, nytimes.com), Firefox can be incredibly slow and laggy. Scrolling is janky and the whole experience is just bad. The whole browser can lock up.<p>This is because Firefox&#x27;s UI uses the same single-threaded JavaScript engine that web pages do. Ads tend not to be good web citizens, so they cause that single-threaded engine to run poorly, which causes the <i>whole browser</i>, even UI elements like scrolling, to run poorly.<p>To fix this, Firefox has moved to a multi-process model. I believe it&#x27;s called Electrolysis (e10s). The UI uses a different JavaScript process than web pages.<p>Electrolysis is enabled today.<p>And yet, if you read the comments in this thread, you&#x27;ll see a lot of people complaining about Firefox being slow and janky. What&#x27;s up with that? Electrolysis was supposed to fix it!<p>Well, legacy extensions dig into the internals of Firefox. If you&#x27;ve built multi-process code, you know that it&#x27;s very sensitive to race conditions. Third-party extensions running arbitrary code make it impossible, or at least prohibitively difficult, for Firefox to run e10s.<p>So e10s is disabled if you have a legacy extension. This causes Firefox to be slow and janky.<p>To fix this problem, Firefox is removing support for legacy extensions.<p>To be clear, the engineering tradeoff being made here is this:<p>A) Allow legacy extensions to run arbitrary code. See performance get steadily worse in comparison to other browsers.<p>B) Have a fast, smooth, multi-process browser. Hope that the new extension mechanism is &quot;good enough&quot; and that important extensions are migrated.<p>You can&#x27;t have both. Mozilla has chosen B). You may disagree with this choice. Personally, I think it was the right one.<p>(You might say that the correct answer is C) run single-threaded when legacy extensions exist, and e10s otherwise. This is the situation that exists today. Look at all the people complaining about Firefox&#x27;s performance. I don&#x27;t think this is a viable solution, as people blame Firefox even when it&#x27;s their extensions that are to blame. Also, option B) gives extension developers a reason to migrate and help Mozilla identify needed APIs.)<p>Apologies if I got some of these details wrong. I&#x27;ve been following Firefox&#x27;s migration to a multiprocess model with interest, but I&#x27;m hardly an expert.