Re: [Webpush] The Push Experience
Luke Crouch <lcrouch@mozilla.com> Thu, 25 February 2016 16:07 UTC
Return-Path: <lcrouch@mozilla.com>
X-Original-To: webpush@ietfa.amsl.com
Delivered-To: webpush@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BD4FC1B2BFC for <webpush@ietfa.amsl.com>; Thu, 25 Feb 2016 08:07:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.422
X-Spam-Level: *
X-Spam-Status: No, score=1.422 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Tc9--Kh3QaXn for <webpush@ietfa.amsl.com>; Thu, 25 Feb 2016 08:06:58 -0800 (PST)
Received: from mail-qg0-x232.google.com (mail-qg0-x232.google.com [IPv6:2607:f8b0:400d:c04::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5D0501B2B7B for <webpush@ietf.org>; Thu, 25 Feb 2016 08:06:58 -0800 (PST)
Received: by mail-qg0-x232.google.com with SMTP id b67so43246477qgb.1 for <webpush@ietf.org>; Thu, 25 Feb 2016 08:06:58 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mozilla-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=pRZ5NYdRbUzmsXXtKi9VBTavQhXfGoFEusc37VoXkG0=; b=gyCK5Yz0zbSZgdyAnAo/km9dBG/iFMSwhxdARJBSDqACVDDhAeknmAdgjomcq/32Me dTWN/ddRwhZpDbdqoPpr5rYmCo3E80gxOrUxdbw1EMvzzjiqkYk+gXSNJXY2G1W02yMq WUHepdfYEXpX3dv7sDyJErCCgCKDne6Ei5CG0F2BWjNwTYUR6N90DGeBPpFqAl5utHzi 91sUSfvUBwHYt175gqBaTyRHKdrgk7xnk75LFhy0fwp1QDuBt4zWCSH23ToWDS8wW9q1 ZHRbUJCWaHkd/bsD3/6Ji0ylpM+MV4JqLKX9+uPhcPP2XK0ru7uCQERXFpO10J99Lepe AxfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=pRZ5NYdRbUzmsXXtKi9VBTavQhXfGoFEusc37VoXkG0=; b=XIsQov3aqITXv5UQ2Xl8M/y7ml62LebjAcwjF3nSgkdnXSUEbkqSuwVt5EOnrPPUk1 Ovjs9p+HSRgrjWjnC9bvmsxxynLHGv7A221y5YaSUerr4Yr+9NrYk4inEcqk5bJTKlb+ C2eWO64wAAKjNtk0kGN0OrRwJwNZMHUxxHjDWMSi1glMwryw/yXQeB4TUzexWISkefO3 QfPMEjpbs+Py2H+cImba2DXI24kI9Y/zO3nSOtiDq5lSWO9UnKqgrPL6UhKzcFap0KZN R0+Z4JKRmC5je3HUaqdlJ4NgHSbBpqGshyZo6U5jiPqj5J1b5nMOaTCWbKnlSOIbYxNa 3CSQ==
X-Gm-Message-State: AG10YOSyK51Xlky8BDn3U/C8kUnij1ktg7sfwAYm4+pBW4DPa1l9U6GP40qdMKeMoK/84bWlKjkDI0N6cuKKv8FF
X-Received: by 10.140.109.100 with SMTP id k91mr58241827qgf.54.1456416417514; Thu, 25 Feb 2016 08:06:57 -0800 (PST)
MIME-Version: 1.0
Received: by 10.140.33.230 with HTTP; Thu, 25 Feb 2016 08:06:37 -0800 (PST)
In-Reply-To: <CABp8EuK=DRedhyScTK5iFZaUb3tdiA3LsTewwD9TYJUiGSD1Ug@mail.gmail.com>
References: <CABp8EuK=DRedhyScTK5iFZaUb3tdiA3LsTewwD9TYJUiGSD1Ug@mail.gmail.com>
From: Luke Crouch <lcrouch@mozilla.com>
Date: Thu, 25 Feb 2016 10:06:37 -0600
Message-ID: <CAKVjE2UnjHLQi9gupqL-_VU6g_rCsms61ioNUQoN0e26_4RNZw@mail.gmail.com>
To: Benjamin Bangert <bbangert@mozilla.com>
Content-Type: multipart/alternative; boundary="001a1139b43a362f8d052c9a5f34"
Archived-At: <http://mailarchive.ietf.org/arch/msg/webpush/5dObmBYo60LpzW-_nCNXB3q0mLY>
Cc: "webpush@ietf.org" <webpush@ietf.org>
Subject: Re: [Webpush] The Push Experience
X-BeenThere: webpush@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Discussion of potential IETF work on a web push protocol <webpush.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/webpush>, <mailto:webpush-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/webpush/>
List-Post: <mailto:webpush@ietf.org>
List-Help: <mailto:webpush-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/webpush>, <mailto:webpush-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 25 Feb 2016 16:07:02 -0000
Just my $0.02 ... I spent the better part of 2-3 weeks in January learning how web push messages work, and yes - I had absorb notifications, service workers, push api, and vapid. I updated some MDN docs and examples along the way, and tried to contribute patches to libraries where I could. But, adding *another* spec at this point feels too much like https://xkcd.com/927/. I'd personally rather spend time coding the best push experience into *libraries* like the node module and the wordpress plugin to make it accessible to more developers. -L On Wed, Feb 24, 2016 at 10:44 PM, Benjamin Bangert <bbangert@mozilla.com> wrote: > This may not be entirely on-topic for the webpush ietf spec per-se, > but I know a lot of the right people are on this list, so I'm going to > throw this out here. If this was already proposed elsewhere, and > there's work proceeding on it, great, link me to it so we can choose a > version to support. :) > > First, a little background. > > Almost a month ago, Firefox 44 was released which included Push > support along with data payloads per the recent WebPush draft 02. > Since its release, we've seen some interesting uses of it, the least > of which was lots of dropped messages due to missing TTL headers which > the recent spec additions remedy. > > The most glaring issue though, is some of the difficulty from early > adopters actually trying to use it. This shouldn't be too surprising, > because to provide a compelling Push experience, a developer must > understand and utilize at least 4 specs, possibly 5... > > DOM API's > > Notification API: https://notifications.spec.whatwg.org/ > ^^ There's also WebNotification API on W3C, how do developers ever > figure this out?? > > Service Worker API: https://www.w3.org/TR/service-workers/ > Push API: https://www.w3.org/TR/push-api/ > > > IETF > WebPush: https://datatracker.ietf.org/doc/draft-ietf-webpush-protocol/ > Dep, HTTP Encryption: > http://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-00 > VAPID: https://datatracker.ietf.org/doc/draft-thomson-webpush-vapid/ > Dep, JWT: http://tools.ietf.org/html/rfc7519 > > (Additional Dep. specs left out) > > This is.... rather overwhelming to many web developers. Nevermind > trying to figure out what drafts of what specs each browser has > actually implemented. So far we have already seen libraries drop to > the lowest common denominator, which so far means we have not been > carrying data payloads even though Firefox supports it, because Chrome > does not. > > This doesn't include how you ask for permissions for these things, > because technically the Notification permission is separate from the > Push permission, but afaik, both Chrome and Firefox will accept one of > them as both to reduce clutter. So you might have accepted > notifications without knowing you get push when the tab is closed, > though lots of users probably can't make that distinction..... ugh. > How these permissions are squashed, and for which browsers, appears to > be completely ignored by the docs I've seen. Do the doc writers even > realize browsers are squashing these permissions? > > None of these specs speak to the user experience. Does the service > backing my browser allow 200 or 2000 notifications to be queued? Will > they all be shown? Do I want them to be? Does the browser implement > safeguards to prevent my screen from being flooded with these? Is > there a spec dictating the UX for how to handle 100 queued > notifications in a way that doesn't make the user immediately delete > the program (like the ask for permission spec)? > > Even ignoring the above paragraph, which some could perhaps consider a > browser detail that should not be mandated (so we can all compete on > how compelling our notification spam management is), there's more > important questions for our developers. How do I code this in a way > that works on more than one browser given there's 4-5 API's at various > draft states implemented at different stages in each browser? > > For that last question specifically, I'm proposing there a > meta-specification, perhaps called the Push Experience (I'm bad at > naming specs, no clever initials like VAPID), which essentially acts > as a global version pegging for the various spec dependencies needed > for a good Push experience. > > I.e. > > Push Experience Draft 1: > - Notification API Draft N: > - Service Worker API Draft Z: > > .... > > This way it's clearly documented to a developer what the overall set > of available API's they can work with are, as a base minimum for each > browser. I'm not a spec-writer myself, so I don't even know what group > this belongs in.... whatwg? ietf? w3c? Technically it's a meta-spec > pegging specs from a variety of groups together to provide a cohesive > whole that a developer won't lose their mind over implementing. I'm > not sure there's much precedent for this, as I haven't heard of any > other emerging web tech's that involve so many specs in such a variety > of locations (back-end and front-end web dev). > > I'd be happy to collaborate on this, or for some others to take over > this entirely, as I do believe having something like this is very > important to developers attempting to use Push. I'm not sure what the > appropriate venue for something of this nature to be, since it would > appear to tie together specs in at least 3 different spec groups. > Maybe it’s not a formal spec at all, but some other collaboration to > agree on minimum definitions for each phase, like the ACID 2 vs. ACID > 3 browser tests so that a developer could easily see ‘How ready is my > browser for a Push Experience?’. > > Thoughts? > > Cheers, > Ben > > _______________________________________________ > Webpush mailing list > Webpush@ietf.org > https://www.ietf.org/mailman/listinfo/webpush >
- [Webpush] The Push Experience Benjamin Bangert
- Re: [Webpush] The Push Experience Benjamin Bangert
- Re: [Webpush] The Push Experience Luke Crouch