It's a bit early to talk about Safari, because it has not implemented Push API, Service Worker API and push message encryption yet. And no information about their plans to do this. Currently Apple uses their own protocol for push notifications. I've asked my friend to register a test app from his Apple developer's account for me, and I'm going to test how it will work now, with APNs Variant.
Here is info, that Microsoft started development of Push API for Edge [1].
I decided to create a variant for Firefox just because variant saves authentication tokens for push service provider and later uses it's own notification sender for a specific push service provider. And I started to work on this, when here was no info that Chrome supports PushMessageData and push message encryption. But now it may be reasonable to create a WebPush variant. Or wait Push API in Edge and decide how to move forward after the third player in the game.
If we will create WebPush variant the advantages are:
- User have to create just one variant
- Unique extended Installation entity with "auth secret" and "public key" from the browser.
but disadvantages are:
- Required registration on each push notification provider: FCM, MPS, etc. (but advantage that the user will not forgot something)
- Determine browser on client side, store it in Installation during registration of device and make decision which push notification provider should be chosen before sending each message.
If we will create variant for each push notification provider the advantages are:
- Keep our rule, that each variant has it's own push message provider and auth information.
but disadvantages are:
- Determine browser on client side and choose appropriate variant secret.
- For FCM make decision about should we encrypt the message before sent (if the client is Chrome) or not.
Also here is a chance, that FCM, MPS and others will implement totally identical push services, according to the specification [2], with acknowledgment, receipts, HTTP/2, etc. So it may be reasonable to focus on one WebPush variant. It will not be a problem for me to rename Firefox to WebPush now. I can open a separate PR this evening.
Any thoughts?