I love the contrast between the motivation statements on Firefox pages vs Chrome pages about the topic. Shows that Mozilla does remember their values, even though we like to bitch about them:
Firefox[0]:
------------
Have you ever wished that a website could notify you when something important happened, even if you didn’t have the site open? Maybe you’ve got an incoming WebRTC call, an instant message, or a financial update. Perhaps your city just declared an emergency snow plowing schedule.
Sometimes you just want to know when something happens.
That’s what Web Push does. It’s available now in Firefox 44.
Further down, they have "What about privacy?" section.
Chrome[1]:
------------
If you ask a room of developers what mobile device features are missing from the web, push notifications are always high on the list.
Push notifications allow your users to opt-in to timely updates from sites they love and allow you to effectively re-engage them with customized, engaging content.
Yes, thank you, Mozilla for the hypocritical statement. It changes so much about the result!
I wouldn't say "we like to bitch about them", as Panorama, Thunderbird and FirefoxOS were an important part of my technological ecosystem.
These points were dealt with much hypocrisy (they're dead but not dead, we just know it because of leaks...), which permanently stained my opinion of Mozilla.
Panorama, Thunderbird and FirefoxOS were an important part of my technological ecosystem
They weren't an important part, or achieving being a part at all, of the ecosystem of the rest of the world, though. Not sure why you think continuing to pour resources into them after they were clearly lost causes is somehow a good idea, let alone it makes Mozilla hypocritical. Aside from the "me me me me it's all about me" syndrome that oozes from your statement.
On the contrary, Web Push is an important feature needed for parity with native apps, so Firefox supporting them is a great result.
Thunderbird has an estimated ~30 million users, and it's just about "me"?
Also, you deliberately deflect the point.
The problem was not so much that they killed these projects, but the way they did it.
They kept Thunderbird underfunded for a while before pulling the plug via an internal mail.
They could have done it in a much nicer and transparent way.
Probably the best is to go back reading how well Pocket furthered Mozilla's mission and helped the web.
They kept Thunderbird underfunded for a while before pulling the plug via an internal mail.
Not sure what "underfunded" means here. Thunderbird works. Email isn't evolving like the web is, so what point is there for Mozilla to throw resources at it? The announcement was to a public blog, but shared with the core contributors via email first. I think that's actually nicer than finding out through Twitter like some other companies do. Your arguments just have no merit whatsoever but apparently you're upset that your pet (and niche) programs don't receive the attention you believe they deserve.
Typical attitude in open source software: the more free something is, the more entitled people feel about it.
What this has to do with Push Notifications is anybodies guess.
> Thunderbird works. Email isn't evolving like the web is, so what point is there for Mozilla to throw resources at it?
Not related to the topic at hand, but I couldn't resist commenting on this point. Actually, what people really wanted out of Thunderbird for a very very very long time was calendaring that would work well with MS Exchange. Not some chat integration or other features people weren't really looking forward to in their email client.
People have managed and do manage with different solutions on the Lightning backend (which was integrated into Thunderbird main) like DavMail gateway, Exchange Provider (now maintained by Ericsson) and so on, but they're still not complete solutions for inviting people, accept/tentatively accept/decline invitations, have acceptance show up for other people properly (like Outlook would), etc. This is one area that could improve a lot and really make people using Thunderbird in an MS Exchange environment (which is at least a few hundred thousand, if not more) quit hanging on to Outlook or Outlook Web Access for "that one thing" that Thunderbird is not adequate for. All this desire does not mean that it's trivial in any way to implement these features, but there are many Thunderbird users who would value such a thing a lot. If that doesn't answer "what point is there for Mozilla to throw resources at it?", then nothing else can.
Another area of improvement is search. When Gloda (the global database and search) was introduced, it was a terrific feature that could look across all emails. I still use it, but sadly, it continues to be highly limited in how one can filter the search results and find the needle in the haystack, and things have not gotten much better with time, in my experience.
Yes, Outlook won in the enterprise. But there was no reason not to continue working on a really good alternative with so many users behind it.
As I've said before, if there were a way to donate to Mozilla and have a say in where that donation (or most of it) goes, I'd definitely be voting for Thunderbird to have my share. I'd like to believe many Thunderbird fans would too.
> Not sure what "underfunded" means here. Thunderbird works. Email isn't evolving like the web is, so what point is
there for Mozilla to throw resources at it?
If you look at the arguments people can give against a switch Thunderbird, they make valid points on some lacking features, that terrible solutions like Outlook do have. This is a problem since in some places they force people to use proprietary solutions for email based on these arguments.
>Typical attitude in open source software: the more free something is, the more entitled people feel about it.
Can you really make that judgment?
Many people have felt the same way about Mozilla's actions for a while.
People who donate and contribute to free software.
People who may have found inexcusable the lies about the money agreement on Pocket, among many other things.
If you think these people are all spoiled brats, then good for you.
>What this has to do with Push Notifications is anybodies guess.
The initial comment was using this to justify that "Mozilla does remember their values".
This is part of browsers improvements to stay competitive, not so much about value.
Of particular note, this also works on Android Chrome. So a site can send push notifications much like an app can. The Facebook mobile site uses it, so I've been able to remove the Facebook app entirely from my phone.
I really wish Apple would implement this as well, as it would remove the requirement for a number of apps that are just thinly wrapped webviews. Sadly, I don't think Apple's business model will allow it...
It does make you raise an eyebrow and wonder if they're holding back Safari (which all iOS users have to use in one way or another) to keep people using the app store and giving Apple their 30%.
Is there any short explanation how this works under the hood?
Does the browser maintain an open connection (like a Websocket) for each subscription, or there are some brokers, or if it can use OS facilities (like GCM/APN on mobile) when available, etc etc.
In particular, I'm curious of privacy implications. When I subscribe - what site knows of me (say, if that's a direct connections, I'm not sure I want to tell every site out there when I'm online), or if any third parties are involved - what they know and do (say, what's about sender and receiver authentication)?
From what I saw (but really not sure I got it right), it seems that I have to trust browser vendor and maintain a live connection to some Mozilla server, that'd listen for events (POSTs from sites) and aggregate them for me. But I'm not sure I understood it correctly.
I'll surely investigate this properly, but reading standards is tough, and end-user introductions written by marketing people are virtually useless. So I wonder if there's a short reading to get the overall picture quick, but still see all the important details.
In short, there's a single, persistent websocket connection between you and a broker service run by your browser vendor. Each subscription has a unique, anonymous URL on that service that gets provided to the website. To prevent abuse, there are throttles / quotas / limits imposed on push messages that do not show user-visible notifications.
The source to Mozilla's broker, autopush, is at https://github.com/mozilla-services/autopush. We recently rewrote it from Go into Python, which we now run with PyPy in production.
That means that Mozilla, as an example of a browser vendor, knows anything any site which uses that feature wants to notify me, including mails and messages from those sites?
All data brokered by the service must be encrypted to a keypair whose private key is held only by the end user's browser, using the scheme described in the webpush-encryption IETF draft spec at https://tools.ietf.org/html/draft-ietf-webpush-encryption-01
I wonder about metadata, though. While Mozilla doesn't know the contents of messages, it's still generally well aware of who (sender IP) is sending messages to whom (receiver IP) - is that correct?
(I suppose this can be somewhat mitigated by running private self-hosted autopush instance and replacing dom.push.serverURL)
> Is there any short explanation how this works under the hood?
Yes, the spec is the most detailed description of what goes on under the hood and it's not too long: https://www.w3.org/TR/push-api/, but here's my attempt at answering each of your questions:
> Does the browser maintain an open connection (like a Websocket) for each subscription, or there are some brokers, or if it can use OS facilities (like GCM/APN on mobile) when available, etc etc.
Yes. Chrome maintains an open connection to Google's push servers, Firefox maintains an open connection to Mozilla's push servers.
> In particular, I'm curious of privacy implications. When I subscribe - what site knows of me (say, if that's a direct connections, I'm not sure I want to tell every site out there when I'm online), or if any third parties are involved - what they know and do (say, what's about sender and receiver authentication)?
The Push connection itself would not reveal whether you are online since it's made to Google/Mozilla and not other individual sites, however the presence of a Service Worker could be used to determine this. For example, a website could send a background notification and check your network connectivity from the Service Worker without necessarily showing you a visible notification. This is already true for push notifications most people already receive from mobile apps.
A common use for these kinds of background notifications would be to do background data loading (such as loading new email messages to view later offline).
Firefox implements a quota system that restricts how many notifications may be sent "without user interaction". This is to reduce the likelihood that one could use this effectively for background tracking and to ensure you won't be swarmed with a gazillion of them if an application server has some bugs on sending notifications.
This is a HUGE game changer, so excited. The number one feature request year over year has been around push notifications. It's a really big pain point for a lot of people in media trying to spam users. They block all of the high bandwith offsite resources they try to shove down peoples throats and the scripts to shut down those scripts. Finally, companies can just trick you into accepting notifications and the problem is solved.
This is great for the acerage user too. Social networks are notorious for making it difficult to engage or get updates about your friends. So this will finally eliminate the friction around realtime relationship status changes and well informed election posts
Unfortunately you can click on the notification in Firefox and immediately kill all further notifications from the spammers. Hopefully other implementations will be more friendly to spammers and hide the 'make it stop' button deep in a sub-sub menu under an elusive Settings app.
RSS readers seem like such a good idea, but they've hardly caught on outside of tech groups. They weren't intuitive enough for most people to use, and we didn't want another interface that we had to check. We also didn't want it to fill up our inboxes with notifications when we didn't have time to read.
IMO, that's why Facebook continues to work well. You see updates from the people and the sites you want, and it's not at all overwhelming. There's no backlog of notifications to stress you out.
Done right, I think browser notifications could be the solution we're looking for. I look forward to seeing different implementations. There are already plugins for major CMSs.
> We also didn't want it to fill up our inboxes with notifications when we didn't have time to read.
1) Why would this messaging system deliver fewer notifications than RSS (besides the fact that few sites use this system yet)?
2) Why are popups on my screen a better interface than a mail-like interface? I strongly prefer the latter if I'm receiving many messages; lots of popups seem unpleasant.
RSS and push notifications solve different problems. RSS is for syndicating content: your news feed. Push notifications are for alerting you of interactions: new messages, replies, etc.
Thats because they were never properly rolled into the browser UI. They were either stand along programs you had to be running, or were implemented as "live bookmarks".
Publishers can't serve effectively serve ads through RSS. Ads have to be rolled into the post body and if the feedreader caches images, you can't track impressions.
A way around it is to serve a preview of the article and require readers to read the rest on the publisher's website, but at that point you might as well just use Twitter.
> A way around it is to serve a preview of the article and require readers to read the rest on the publisher's website, but at that point you might as well just use Twitter.
Don't say that. Reading Twitter isn't early as efficient as reading my RSS reader. I dread everyone moving to Twitter.
Also RSS is open and Twitter is not (one reason there are better RSS readers).
This could be RSS feeds without needing an RSS feedreader. Sites you are interested in could just send you updates when they have something you might find interesting. Click it open in a tab and read at your leisure.
For anyone who would like a demo and real-world example, my company put together a website to let you subscribe to Web Push notifications for trending Hacker News stories: https://hackernews.onesignal.com/
> For anyone who would like a demo and real-world example, my company put together a website to let you subscribe to Web Push notifications for trending Hacker News stories: https://hackernews.onesignal.com/
For some reason I only get this working on Firefox Mobile (not on my Windows 10 desktop), but definitely cool.
I can definitely see how this can/will subplant shallow webview-wrapping apps in the long run.
I use this feature selectively in Safari now, and am glad to see it in Firefox. Eventually I'm sure I'll run into the problem of getting duplicate notifications from the same sites. I wonder what the solution for that will be... running only one browser at a time is not an option. Maybe I'll have to keep track of and choose just one browser per site for allowing notifications.
Why have two browsers open at once? So that I can be logged into Google services simultaneously with two different accounts (personal and work). Off topic, but would be glad to know if there's another way to do that.
Most Google apps supports a way to have multiple Google accounts active, typically by adding /u/[numeric index of a specific Google account]. Gmail for example:
The "u/2" part indicates that this is the gmail view for the third (counting 0) user
For Google Apps for work, if you go to mail.google.com/a/example.com, it will let you log in separately to an example.com account and then redirect to a url like the one above.
> Most Google apps supports a way to have multiple Google accounts active, typically by adding /u/[numeric index of a specific Google account]
FWIW: instead of manually entering the numeric index, you can enter the full email address instead. so you can enter /u/john.d@work-email.biz or /u/j.doegg@gmail.com. This is handy because the numeric index depends on the order in which you logged into (added) the accounts and I don't want to have to remember that!
Chrome supports multiple user accounts. I do this for my work and personal accounts. You don't have to switch between them; you can have windows from both accounts open at the same time.
No, you can have one Chrome window assigned to persona "work" and another window assigned to "personal" and they will each have their own sets of cookies and settings and history.
I'm a bit annoyed that Facebook notifies me twice for every message, once on mobile through chrome and once on desktop. Is there any way to retract a notification after it's been sent? I feel like after clicking one, the other should disappear.
There is a solution for this when it comes to the Push API spec (not for Safari though).
When a notification is received, the browser's Service Worker can send an "I got this" webhook event back to the sender. The sender can then decide if they wish to send a message to other browsers that user may have installed. Note that this does also require a user to be logged in to the site so they can be identified across both browsers.
You can also state which profile to use on startup, I have a shell alias setup for each of my 5 or so profiles, so I can just run ffx_work or ffx_personal etc
I've been using Push Notifications on my site for a few months now [0]. Having gone through the detail on this announcement, I'm a bit confused and would like some clarity.
In Chrome & Chrome for Android, I have to use GCM to let the device know that there's a new message. The service worker then pings the server to find what the notifications are, before displaying them. Firefox supports sending payloads.
How can I distinguish between endpoints registered from FF, so I can send payloads directly without going via GCM?
Thanks
[0] https://movinggauteng.co.za. Users need to log in via social media, and then grant permissions for notifications by clicking on the crossed out bell at the top of the page.
Since the feature (as far as I know) started with Safari, some Apple-centric sites were early adopters, so sites like macrumors and appleinsider have it. But as far as more mainstream, one I know of is CNN, which has it for breaking news.
The Safari feature is non-standard. Firefox implements the WebPush API that Chrome also supports. So sites supporting Safari will not automatically work in Firefox.
We think it's a game changer too whereby, unlike email spam, users can opt into what information they want and really have much greater control. With Firefox, Chrome and Safari, browser push notifications are getting so much exciting.
anybody know if fastmail is planning to support this? that would be cool (even cooler if it could be set up on a per-folder basis) would be nice having a biff equivalent working in the browser without having to code something using IMAP...
A great example was given at the Chrome dev summit, which I think highlights the utility.
First, remember that you only need to click 'Yes' when your browser asks you for Push permission. You have revealed nothing new to the website, but provided it a way to contact you later. Think of it as a frictionless temporary e-mail.
So you go to a ticket website, or maybe its even a restaurant website, and there's some event coming up. Huh, yea, you want to know when tickets go on sale or whatever, but no way you want to give out your e-mail address again and get all that spam.
You instead opt for a push notification from the site when the tickets go on sale. Now you will be notified via your browser, and maybe once you see that notification, you're happy, you're done, so you unsubscribe (an option you can click on the notification itself to stop further push messages from that website).
If this privilege is abused, just as easy to cut-off that sole way to communicate that it has with you, right there on the notification. Unlike e-mail, when you kill the Push permission for a site, it has truly lost the ability to bug you ever again.
I'm sure there's plenty of other cases where it might be useful to one-off contact a user when they want to know about something your website provides, and people are (properly) wary about giving out e-mail addresses.
Yep, I find them to be really useful from Facebook and I can't wait until Slack implements them.
One of the nice features of Web Push notifications is that they each have an unsubscribe button on the notification itself. So once you don't want to get them from a website anymore, the block button is immediately available.
Your response surprises me, I subscribed to the notifications for less than a day before I unsubscribed. If you don't mind me asking, how many a day do you get and why do you like getting the notifications?
Overall I get about 3 to 4 notifications from Facebook per day, so the quantity isn't too high. It also helps me avoid the habit of frequently loading Facebook to check for new notifications when there usually aren't any.
I have a few users on https://movinggauteng.co.za using web notifications for transit updates. I'm intentionally not sending many for now, because I'm still working on a way for commuters to choose when to get updates.
Yes. It can finally let you sign up without an email and without a password!
Just visit the site, get an infinite session, and voila!
Logging in from a different machine? Cleared cookies? No problemo - to restore your session, get a notification, click it and session restored!
This is the poor man's "iCloud" also. Basically your google login or firefox login is your master login. It's basically same facebook connect - another identity provider. Move over personas! We've got a new OpenID in town. Except instead of email providers it's the browser vendors.
NOTE: This doesn't solve the problem of power dynamics -- browser vendors are still pretty centralized -- but does make it super simple to let users of these browsers get a account on a site without an email, mobile number or password, at least on the desktop.
Somebody make this into a WordPress plugin, so people can subscribe to category notifications without the need for RSS + Mailchimp. Make millions of bloggers happy.
Meanwhile, I sit here with the firefox usage pegged at 50%, and no way to tell which tab is killing the CPU. There's a 9-year-old bug open, requesting this feature. Now, before the fanboys jump in and say "it's open source, why don't you do it?", I'll admit that my hacking skillz are not enough to dive into Firefox source.
There's been a CPU profiler in the debugging tools for over a year, and before that there was one in the addon repository with documentation on the mozilla wiki.
Could be easier (like Chrome's task manager) but it's not as hard as you seem to think it is.
P.S. Chrome's task manager isn't accurate anymore because now a bunch of work is offloaded from the per-page processes to special catch-all processes like the 'GPU Process'. So this is actually a harder problem to solve than it seems at first glance...
Firefox[0]:
------------
Have you ever wished that a website could notify you when something important happened, even if you didn’t have the site open? Maybe you’ve got an incoming WebRTC call, an instant message, or a financial update. Perhaps your city just declared an emergency snow plowing schedule.
Sometimes you just want to know when something happens.
That’s what Web Push does. It’s available now in Firefox 44.
Further down, they have "What about privacy?" section.
Chrome[1]:
------------
If you ask a room of developers what mobile device features are missing from the web, push notifications are always high on the list.
Push notifications allow your users to opt-in to timely updates from sites they love and allow you to effectively re-engage them with customized, engaging content.
Thank you, Mozilla.
[0] https://hacks.mozilla.org/2016/01/web-push-arrives-in-firefo...
[1] https://developers.google.com/web/updates/2015/03/push-notif...