On Thursday, January 24, 2013 5:06:25 AM UTC-8, Kazuho Oku wrote:
> 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

Firefox for Android is also looking to implement this right now (although the 
work is in a pretty early state).

- Wes
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to