Firefox Can Now Get Push Notifications from Your Favorite Sites
blog.mozilla.org
blog.mozilla.org
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...
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.
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.
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.
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.
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.
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.
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...
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.
I am used to porting things the other direction; can I ask why you moved to Python for this service?
The above links to the slides only, here is a video of the talk: https://www.youtube.com/watch?v=_F2peRzJzhU
> a broker service run by your browser vendor
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?
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)
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).
[1] https://developer.mozilla.org/en-US/docs/Web/API/Service_Wor...
Bugzilla ticket: https://bugzilla.mozilla.org/show_bug.cgi?id=1153504
I'd also highly recommend checking out the examples at https://serviceworke.rs/
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
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.
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.
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).
Chrome is literally botnet
The workaround for now is to have the service worker fetch the payload from an API endpoint that the sender implements themselves.
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.
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.
https://mail.google.com/mail/u/2/#inbox
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.
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!
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.
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.
Facebook
Vice.com
eBay
www.mercurynews.comWe 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.
facebook.com forums.meteor.com
I find them useful.
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.
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.
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.
My only apprehension is will the big vendors not push to their competition? Like will GMail push to IE, Firefox, and Safari and vice versa?
EDIT: about:permissions does the trick
Well is it a feature-request that a simple firefox extension could handle? Or is it a bug report about something inherently wrong with Firefox?
Because it sounds like a feature request to me.
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...