fonsp / Pluto.jl

🎈 Simple reactive notebooks for Julia
https://plutojl.org/
MIT License
4.91k stars 284 forks source link

The "Notify when done" checkbox can't be checked #2809

Closed yha closed 4 months ago

yha commented 4 months ago

When checking it, it immediately unchecks. out This video is on Edge on Windows. Also observed on Firefox and Chrome.

fonsp commented 4 months ago

Can you check your notification settings for this site (localhost:1234), for your browser, and your OS? Are you able to receive OS notifications from other sites?

Edge support page: https://support.microsoft.com/en-us/microsoft-edge/manage-website-notifications-in-microsoft-edge-0c555609-5bf2-479d-a59d-fb30a0b80b2b

fonsp commented 4 months ago

@yha Did this resolve your issue?

fonsp commented 4 months ago

I made https://github.com/fonsp/Pluto.jl/commit/15962d618c6120f1560e2b65c777d86a6b6ed6f4 which should make this situation more clear for other users :)

yha commented 4 months ago

Can you check your notification settings for this site (localhost:1234)

Actually, I'm not running pluto on localhost, but on a server on a local network. Probably should have mentioned that, sorry for the confusion. When running Pluto locally, the notification works. Remotely still doesn't work. I tried it now with the new Pluto version. I have notifications enabled for the server's address, but the checkbox won't change state and I get the new error message. On Edge and Chrome, when I try to enable notifications more specifically for http://+address it refuses because it's not secure (Firefox allows setting it, but the notifications still don't work). So perhaps the insecure connection is the issue? Is there a way to serve Pluto over https?

ctrekker commented 4 months ago

You're correct, browsers generally don't permit notifications from insecure contexts (see this MDN page).

Pluto doesn't support HTTPS hosting by itself since there are better tools to do this anyways. To my knowledge the best way to host Pluto in a secure context is with a reverse proxy like NGINX, but this requires lots of extra setup, not to mention the difficulties of actually getting an SSL certificate signed so browsers will accept a secure connection.