Hi, Are you people still working on this at mozilla.org? I noticed that the Wiki now redirects to https://wiki.mozilla.org/WebAPI/PushAPI which seems specific to FirefoxOS.
I am interested in implementing the feature for other web browsers as extensions (+ helper javascript). On Tuesday, February 7, 2012 12:56:50 PM UTC+9, Jeff Balogh wrote: > I posted about making push notifications for the web last week: > > http://jbalogh.me/2012/01/30/push-notifications/. It's been getting a > > surprising amount of press. I didn't offer a place to give feedback, > > so gerv asked me to start a thread here. > > > > The idea: let websites/apps send small messages to users when they're > > not connected to the website. I think this will be most useful for > > telling users about events: "You broke the build", "Bret wants to > > party tonight", "Your mom joined Farmville", etc. Push notifications > > are already in iOS and Android. > > > > Current status: I made a prototype server > > (https://github.com/jbalogh/push/watchers) and some prototype patches > > for fennec (https://github.com/jbalogh/mozilla-central/compare/master...c2dm). > > Neither of those are ready to ship; I just wanted to understand the > > problem better. I've talked to dougt and the WebAPI team, and that > > blog was the start of bringing in a wider audience. > > > > How I'm expecting it to work in Firefox: > > 1. A website calls the DOM API to request push permission. > > 2. If the user consents, Firefox talks to the Notification Service and > > gets a new URL for the user. > > 3. Firefox responds to the API success callback with that URL. > > 4. The site sends that URL to its backend for storage. > > 5. The website backend sends a message to the saved URL. > > 6. The Notification Service sends the message to that user's Firefox. > > > > I want this to work wherever you have a Firefox agent, using Android's > > push API for Fennec, Apple's service for Firefox Home, and whatever > > scales best for B2G and desktop. To identify you across devices, I'm > > looking to use > https://wiki.mozilla.org/Identity/Features/Sign_into_the_browser. > > > > The Notification Service is a backend app Mozilla would run to proxy > > messages from apps to users. The DOM API passes around URLs so that > > users can run their own Notification Service, and so that other > > browsers can set up their own. > > > > Right now there's no way for sites to interact with notifications they > > send. We could fire an event if the page is open, but we don't have a > > way to run an event handler if the website isn't open. > > > > Inline responses to questions from > > https://wiki.mozilla.org/Services/Notifications/Push/API#Feedback: > > > > Gerv wrote: > > > Is the "body" plain text or HTML, or something else? > > > > Plain text. Existing systems (Growl, Android, Apple, Ubuntu) don't > > support HTML, and I think that's a good constraint. It limits the > > security space, the bandwidth usage, and keeps the system simple. > > > > The Desktop Notification spec (http://www.w3.org/TR/notifications/) > > takes a less emphatic stance, saying "The user agent may ignore any > > markup in this string and treat it as plain text." > > > > > Are clients forced to support actionURL (the notification system currently > > used in Ubuntu, for example, specifically removed support for clicking on a > > notification to take an action)? > > > > No. I'd really like to say yes, but I think all I can do is strongly > > suggest that clients implement this. > > > > I had a discussion with an engineer for Ubuntu (@sil) and it seems the > > Ubuntu Messaging Menu would be a better fit for push notifications. > > > > > What are the rules, if any, about cookie-sending and Referer and Origin > > when the actionURL is accessed? > > > > I had not considered specifying any special rules. I would treat it > > like opening a new tab, so cookies would be sent normally and there > > would be no Referer. > > > > > Are there maximum lengths for any of the fields? > > > > Yes, but I don't know the numbers yet. Apple limits messages to 256 > > bytes and Android limits it to 1024. The limits are important for > > mobile efficiency. > > > > > What about icons of multiple sizes? > > > > That's a good idea, but it may be impractical. Do you have an idea how > > to specify that so it's easy for developers and efficient on the > > network? Which sizes will we allow? > > > > > Does iconURL lead to a privacy issue because the site can see if the user > > has read the notification? Can we allow, or require, inline icons? > > > > Yes, it leaks data that the user agent opened the notification, like a > > beacon image in emails. However, I don't think we could get inline > > icons while maintaining the small messages size. > > > > > > > Are there rules or guidelines to avoid accidentally clashing replaceIDs, > > such as a "org.mozilla.notification-somerandomstring" convention? > > > > Each website would have a private replaceID namespace, so there's no > > possibility of collision. > > > > > How can we mitigate the problem of one (authorized) site spoofing > > notifications that look like those from another site? Will the in-browser > > UI show the origin of the notification? > > > > We may need to show the origin, as Chrome's desktop notifications > > currently do. I think we would also want a same-origin restriction on > > the iconUrl and actionUrl. > > > > Hixie wrote: > > > How does this handle a user who uses two different Web browsers? (e.g. IE > > at work and Firefox at home) > > > > I don't know a good way to handle this. It may be up to the website > > developers to say "I already have a URL for you, should I replace it?" > > I don't feel good about this. > > > > Ben Bucksch wrote: > > > How is the privacy impact of following the user (IP addresses, usage times) > > reduced to the absolute minimum possible? > > > > The Notification service won't be talking to Firefox unless you give a > > website permission to send you messages, so it won't be on without > > your assent. > > > > > Why the middle man Mozilla? Decentralization is a core principle of the > > Internet. > > > > If we didn't have a proxy, would each of your favorite sites keep a > > connection open to your device so they could send you their messages? > > > > Our proxy won't be the only one; it'll be the default for Firefox users. > > > > Ryan Schipper wrote: > > > From a security viewpoint, the obvious choice to prevent spoofing is > > digital signatures. However, client-side (in this case the notifying > > website) developers who aren't familiar with PKI often find it too complex, > > resulting in a lack of third-party API implementations (see OAuth!). If > > Mozilla intends to develop, distribute and support the client API > > themselves, this is less of an issue. If this is not the case, OAuth 2.0 > > has some non-PKI options. Implementing all of the OAuth 2.0 protocol may be > > too heavyweight, but it would at least offer some inspiration. > > > > I've been struggling with a way for the Notification Service to trust > > the site that is sending messages. Currently, we rely on a long, > > random sequence of characters in the URL that should only be known to > > Firefox and the third-party site. > > > > I don't want to require that sites set up some sort of API key with > > each notification service they want to talk to, since that would limit > > the ability to decentralize and would be a large hurdle for > > developers. Any ideas here would be fantastic. > > > > > The designers should also consider verifying the integrity and source of > > notifications received by the browser. > > > > All of the communication between Firefox and the Notification Service > > will be over https. > > > > > > Sorry about the length. I'm excited to hear feedback, on this list or > > directly to me. > > > > Thanks, > > jeff _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform