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
>