WebExtensions FAQ
wiki.mozilla.org
wiki.mozilla.org
Roughly what he said might be summarized as follows (sorry if I misunderstood his intention): Tree Style Tab is useful because the add-on changes the behaviors of the tab globally. That way, it can cooperate with other tab-related add-ons whose authors didn't intend to make the add-ons work with TST. Therefore providing the Sidebar API doesn't help because you can't expect add-on authors to write code just to make add-ons work better with TST.
[1]: https://twitter.com/piro_or/status/635078508981555202 https://twitter.com/piro_or/status/635079271032090624 https://twitter.com/piro_or/status/635079995371556864
At this moment in time, Firefox relies on XUL for both the Firefox UI and its extensions. Mozilla wants to move away from using XUL. What's the sensible approach for this?
In my opinion they're doing exactly what they should.
Step 1. Offer new extension APIs that are compatible with other browsers and decpreciate XUL.
Step 2. Encourage existing XUL-based extensions to be rewritten using the new APIs.
Step 3. After the majority of well used extensions use the new APIs, rework Firefox to drop XUL and use web technologies for the UI.
Step 4 (Not confirmed, but could happen). After the new Firefox UI is stable, offer lower level APIs to give further control over the UI.
I can't see a better way of moving away from XUL.
Mozilla isn't stopping people from using XUL by depreciating it, they're suggesting that developers should avoid it, as it'll eventually be taken away. The two extension systems will both be available until a sufficient portion of Firefox extensions have been migrated over to the new APIs.
Or to put it in another way, good news, they're doing what you said!
https://github.com/mozilla/browser.html
In the short run, perhaps try an ESR release?
This will mean my extensions for all three browsers can mostly share the same code. Since they use pretty standard HTML/CSS/JavaScript much of the code will also be shared with my app's traditional web services. This sounds like a huge win for bringing rich, native-like experiences to all browsers.
Would be great to see all browsers support a common extensions API. I hope WebExtensions is that API.
I'm glad developers (Edge, Firefox) copy the good model, rather than trying to reinvent the wheel. Even without strict compatibility it would be much easier to do support many browsers, since plugin platform will be conceptually similar.
Firefox Add-on SDK was at best annoying and so inconsistent -- some APIs being sync and some async etc.
I had to prepare an elaborate build system to have a single codebase (well, excluding Safari which is even worse).
Now it'd be possible to move pretty far with Chrome/Firefox/Opera/Edge without the need to hack around the differences.
There is a library made by the guy who created the Reddit Enhanced Suite that helps you create cross browser extensions right now. I've never used it but it did look very promising: https://github.com/honestbleeps/BabelExt
When Firefox loses the extensions which require XUL (whether fundamentally or merely to avoid rewrites) I doubt its upsides will outweigh its downsides for me anymore. They may surprise me, and even if they don't they still might increase usage with other people, but right now I am sad.
There's valid criticisms against WebExtensions, but the biggest misconception is that the capabilities of WebExtensions are set in stone and that X or Y addon "won't be possible". The entire point of announcing WebExtensions so early was to start getting feedback on what needs to be supported to make major and useful addons possible, and to start work on a way for experimentation outside of the officially supported spec to still happen.
On the other hand, Tree Style Tabs is far and away the biggest extension I care about, so that link does provide me with some level of hope. For which I genuinely thank you.
On the third hand, my cynical take is that apparently Mozilla really does take community feedback into consideration. When making a wish list of things that could potentially happen in the future to put on a wiki page. I've also heard that it's possible that Pocket could be moved to an extension.
From the FAQ, there's a proposal for a way to do things that require the same level of access that the browser chrome has here: https://discourse.mozilla-community.org/t/proposal-native-js...
To me it seems like a decent way to say "Hey, here's an explicitly unstable way to do things that aren't possible with WebExtensions, and hopefully we can eventually get those things into WebExtensions, or you can just live your life as you do now with no hard promises about compatibility."
> On the other hand, Tree Style Tabs is far and away the biggest extension I care about, so that link does provide me with some level of hope. For which I genuinely thank you.
You're welcome! :D
> On the third hand, my cynical take is that apparently Mozilla really does take community feedback into consideration. When making a wish list of things that could potentially happen in the future to put on a wiki page.
I could talk about this _forever_, but the short version would be: That's not a false criticism of Mozilla in recent times, but it's also not entirely true. Hacker News, r/firefox, and others are very vocal minorities compared to our greater userbase. Sometimes we really need to listen more and change our plans and be more open than we have been, but sometimes the people doomsaying everything we do might have a different opinion if they had all the details and metrics and info (knowing how to navigate Mozilla to find info about something is a skill in itself).
> I've also heard that it's possible that Pocket could be moved to an extension.
I dunno if we've specifically made that decision yet, but it is certainly one of the primary candidates for Go Faster: https://wiki.mozilla.org/Firefox/Go_Faster
Their current schedule only gives a year to build an api, mature the api, get a significant number of popular ported addons, and deprecate their old api. There will either be mature apis and many casualties, or half-conceived apis and lots of addons that will need to be changed with these apis.
With enough time and design, I'm sure this move would result in many positives at the cost of some negatives. But this time frame is just too short for such a huge undertaking.
Like what? Genuinely curious.
Being able to just type in the random things you remember from a url / title (I think it combines them) and have FF narrow down the alternatives, -fast, is something I haven't found in any other mainstream browser.
Another aspect is it doesn't automatically send everything you type to google (I don't worry to much but it is a nice touch.) Maybe the average user is confused by having a separate search field in addition to the address bar but I like it. (And yes, you can search from awesomebar as well, although there is no suggest feature.)
Chrome has exactly the same feature. You can disable Google Instant, too, but it's actually a really useful feature.
Try to type
new com <part of title of something you read on hn today>
to test. On FF and PM this just works but on Chrome I still don't think it works.[0]: which might explain why not everyone is using the better browser :-P
you [tab] searches on youtube. news [tab] searches hn. I've never set it up and works with almost every site I've performed a search on.
I agree Chrome's site search thing is awesome, but how did you teach it to use the new HN one?
EDIT: Chrome settings -> manage search engines. Very impressed with the list of those it's stored automatically. Point stands that it doesn't seem to relearn though when one changes.
Safari will suggest also suggest things like Wikipedia articles and popular sites. Similarly, if I type "imdb michael mann", Safari will suggest "Search imdb.com for michael mann".
Firefox's location bar is arguably much worse than both Safari and Chrome — it won't really autocomplete anything except "search Google for this" and bookmarks/history. Safari also leaves the search standing in the location bar when you submit it, whereas Firefox replaces it with an obscure, unreadable google.com URL.
1. Tab Groups: This is a must have for organizing tabs and keep me sane with 30+ tabs open. 2. Lazy loading: I am not sure if Chrome has it or not but FF doesn't load a tab content until I switch to it. I can regularly have a lot of tabs open without all of them using resources.
This is usually transparent to me. Except when I am on a train and realize that all the tabs I have opened in the background have never been loaded. :(
For this and other reasons I have removed tabs from my workflow, now I use 90% maximized or half-screen windows. It is also easier to alt-tab between them.
I could do something similar with bookmarks but that would be way slower and not as comfortable.
Circumstantial: In most cases I prefer the way Firefox handles runaway scripts. Though when it fails, it fails hard.
There are many others, though like I said...I doubt they'll out weigh Chrome's advantages sans the existing extension ecosystem.
1. Tree Tabs: this extension lays out my tabs stacked vertically on the left of my window. I can fit upwards of 50 tabs in a window before I have to scroll the tab list. This is great for managing big research or documentation sessions without the squinting in Chrome. The APIs necessary for tree tabs are not yet in chrome, although there is some discussion now of a sidebar API.
2. Vimperator: this extension provides a very powerful vim-like interface, including a .vimperatorrc file. I don't use any more of the advanced features like that, but it is excellent for keeping my hands totally on the keyboard as I switch between Tmux splits, vim windows, and my browser. There are several vimperator-inspired plugins for chrome, some of which are passable. However, vimperator is a lot faster than Vimium, and the interface is more concise and vim-like. A big difference is the UI for opening links: in Vimperator, you press `f` to enter follow-link command mode. Each link is assigned a number by page order; you filter links by typing letters, and can follow the first link by pressing `enter`. So to submit this text form, I would press `esc` to return to normal mode from edit mode, then press `f`, and then type "rep<enter>" to filter links to reply, and then click it. It's rather natural, and easy to click the right link.
In Vimium, each link is assigned two letters (which are easier to type than numvers), but you can't filter links. There's a lot more squinting at the little labels to type the right thing. Plus, it's easy to fat finger the link text with no recourse.
Are you sure you can't change that in Vimperator? I use Pentadactyl (can't even remember why I chose it over Vimperator) and i can just do `set hintkeys=asdfghjkl`.
This is its biggest upside and I suspect that I'm not the only one who sticks to FF pretty much exclusively because of it. I am even willing to look past their shenanigans with Pocket, EME, Loop, featured tiles and all other "for the sake of our users" crap Mozilla keep on stuffing into the browser. One thing is pretty obvious though - Mozilla now don't really give a damn about "community". They do what they want to do and the only deterrent is a risk of lash back from said community, rather than their approval.
Looks like they realised that to keep moving forward, clean up technical debt and fix longstanding issues, they'd unfortunately break almost all extensions in the process. And if that's the case, they might as well switch to a better API while they're at it. It's painful, yes, but Firefox is still a slow, unstable and memory-guzzling behemoth, where all your extensions break on every update. This won't change if they stick with single-process, XUL, XPCOM and the existing extension model.
I am optimistic. I think Firefox can and will survive this. Look how well Apple's Mac OS to OS X transition went. Mozilla are willing to help people port extensions. And their timeline is probably unrealistic, but it can be pushed back. In two or three years, Firefox will be a world-class browser again, and we will look back at the panic we had now and laugh.
I was hoping Servo would be their flagship in 3 years :/
Microsoft rebranded IE as Edge to jettison both technical debt (like ActiveX) and IE's bad reputation. Conveniently, IE and Edge both have blue "e" icons so users are not confused. :) I wonder if Mozilla could successfully launch a Servo-based browser product with a new name to distance it from Firefox's historical reputation for memory leaks and broken extensions.
https://wiki.mozilla.org/Addons/Extension_Signing (look for "not hosted")
Using dozens of extensions, this has not been my experience or the experience of many others I know. I believe the problems with extensions breaking and memory consumption were solved years ago; AFAIK tests show Firefox' memory consumption is less than Chrome's (in part because of the single-process model) and performance, at least a little while ago, was slighlty better. I haven't experienced, seen, or read about instability.
I don't think it's to do with extensions, though. I'm saying XUL, XPCOM and the single-process model hurt Firefox's maintainability and performance.
bp-9ae5ccb2-a36f-48f7-b649-648712150822
22/08/2015 15:49
bp-63bbf3d2-c39f-43ee-ad31-d8e812150820
20/08/2015 19:18
bp-816c2b7e-fa1a-422c-96ff-3b5e92150810
10/08/2015 20:43
bp-6ab2fecb-4d9a-4606-8b82-8bcbf2150804
04/08/2015 15:49
bp-f44c1dfa-ceff-4545-9296-497d12150729
29/07/2015 18:13
bp-2666bb07-a39d-43fc-ab4f-e65b62150718
18/07/2015 22:32
bp-8105e9f9-8f75-40bb-bda7-183f32150709
09/07/2015 23:09
bp-6b2109ed-a735-4ba1-9e89-c6aca2150707
07/07/2015 20:43
31FE13CD-B070-45CB-B157-5D04B0CB675F
28/06/2015 11:31
bp-bcc85795-d492-4315-8c2b-43e6e2150627
27/06/2015 16:25
bp-5ea95a70-01c4-4f39-b77f-6eba42150622
22/06/2015 19:21
bp-494b2943-ce7d-41e2-b7d7-75ae42150617
17/06/2015 18:10
bp-8b587d12-1fb5-4a03-91cf-1edd62150616
16/06/2015 19:19
bp-82493a68-01af-4c3c-9249-4853b2150616
16/06/2015 18:08
bp-80e2046a-e546-4a69-981a-776bd2150612
12/06/2015 21:59
bp-033f153d-3fd9-41fb-8b52-b9fdf2150530
30/05/2015 03:25
bp-ae103aba-4db2-40b7-bb09-731d62150528
28/05/2015 17:05
bp-d76b7a06-884c-4c34-9e1e-b40d72150520
20/05/2015 20:33
bp-6e67abea-846e-43e3-9f5d-a3abe2150508
08/05/2015 23:24
Very likely to happen if I've been streaming video for a long period of time (playing YouTube videos, especially long ones).It's strange that XUL survives for so long. Adding an additional markup language to CSS, JS and HTML/DOM to be used for extension development has been bold. For some time, they would have had the chance to push XUL for general development (when Qt and WPF/XAML were not yet that much more modern).
Of course, it didn't catch on, so Firefox was stuck with an obscure UI language only it used.
I get that some people may love XUL and whatever, but having never used it, I can't really comment. All I do know is that Jetpack (which Firefox has been pushing) is a sorry excuse for a way to build extensions after you've worked with Chrome. I really hope WebExtensions makes my life easier soon.
https://hackademix.net/2015/08/22/webextensions-api-noscript...
Being compatible with Google Chrome isn't very important. Extensions aren't used much on Chrome. I have the same extension for Chrome and Firefox, and Firefox usage is 100x greater.
Maybe I'm just lazy, but I was very surprised to find that Firefox would create such a technology when more "open web friendly" solutions were possible. I'm sure it's just that XUL is a vestige of a time when the web was still young, but I am going to wait until Web Extensions are released before I attempt to write any extensions for Firefox.
Are there any reasons to keep XUL around (other than lack of apps that were written with it)? It doesn't seem like there are any unique features that couldn't be reproduced using something like chrome's model...
If not I'll keep using the last version with proper extension support for a long time, until an alternative comes.
I guess it's good that they acknowledge that they didn't get input from those that write extensions before they made this decision.
I am a bit cranky over the entire thing, while I can understand the devs think this will be cleaner code, it sounds like a lot of time spent on working on things to get back to the status quo.
From the article: "It sounds like you've made decisions without community input, why?"
"We believe that moving Firefox away from XUL and XPCOM is a long-term strategic necessity. We need to find a way to do that. We have announced WebExtensions and the deprecation as early as possible so that we can get feedback from the community on how to make the transition. We know that WebExtensions will need to be improved. To innovate will require input and assistance from the community, which we are actively seeking. The path for WebExtensions will evolve in the coming weeks, months, and years, and we want the developer community to be a big part of that evolution."
Let's break this apart a bit. They think its a necessity, so they did not ask others? I don't think this is anything but ignoring the question.
They then go on to ask for help so that they can spend a bunch of time to return us to a status quo with less working extensions today, and continue to say that you should postpone development for a Firefox extension if you are thinking about working on one, "for a few months." Might as well start targeting Chrome since you cant even rely on FF to have a reliable API to even build a new extension against for a year.
Not to mention all the time and energy spent learning XUL's magical inner workings all gone to rot.
I guess there must be some HUGE technical impetus for this, because from my personal user perspective it seems mind bogglingly wasteful of time and resources.
Meanwhile, the Servo folks (according to Google results for 'servo xul') seem to want to actively avoid XUL for Servo and are vaguely hoping to build the entire browser UI in HTML. If they make that work, then yes, the time and energy spent fighting with XUL will be a sunk cost, but I suspect most extension authors are familiar with HTML.
To be fair, these are both decisions you make if your primary priority is building the best web browser possible. There is an argument that Firefox has already lost there to Chrome and that's not a battle worth fighting, and the priority should be building the best extensible web browser possible: it's something Firefox is already much better at, it's something that's harder for Chrome to be good at (because Chrome has already done this rearchitecting, being a much younger codebase), and it'll let Firefox compete on niche instead of competing head-to-head. And, clearly, Firefox is not a smoldering security disaster today, so maybe things will be fine in practice with a more moderate approach.
If you take that worldview, then yes, they should be asking people who primarily care about extensions (developers and users). But if you don't take that worldview, if you ask people who care about browsers in general, they'll be supportive of this rearchitecture.
Reading that made me extremely happy! I'm glad to see cross compatibility is still a goal for browsers.
One reason I've liked and used Firefox is that, especially with extensions, it has been more "my client".
Amidst all the noise over this change, I read into it that -- to some degree -- it is becoming less my client.
Which, to me, seems like another step in Chrome's direction, where I've felt that the client is increasingly the advertiser's client. (And the DRM pushers' client, etc.)
Being my client is what, for me, Firefox has had going for it.
It's my PC. On which I wish to use my client, handling and presenting data in the manner in which I want it handled.
And I'm sure the extensions to the webextensions api will provide enough to do what needs to be done
But web plugins are fast becoming obsolete, so it hardly matters.
Users can snapshot the current 40.0 release by copying the installation directory and creating a cloned profile for it with updates disabled. Personally I find the 42.0a2 development channel release to be backwards compatible with all extensions and to have superior memory management.
Anyway, if you're staying on an old release, please use Firefox 38 ESR (or switch to the ESR at Firefox 45, on the assumption that this change won't be complete by March). Sticking with Firefox 40 and disabling security updates seems like a terrible terrible idea.