When I send the push notification to Chrome devices the icon does not work - there is a blank white square instead. How can I solve this?
It seems that the icon you are using is served over HTTP. Please try hosting the image on HTTPS - it should immediately solve the issue.
Why does this require HTTPS?
Service workers require secure origins to ensure that the service worker script is from the intended origin and hasn't come about from a man-in-the-middle attack. Currently, that means using HTTPS on live sites, though localhost will work during development.