DoujinStars
João Dias
João Dias

patreon


Sneak Peek - Join on Firefox And Edge Browsers

Ok, so I thought I'd go ahead and really try to make this a reality. Hopefully it works better this time :)

This doesn't require you to use extensions at all, just a plain old browser. Hopefully it works.

To try out Join on Firefox and Edge:

Many features are still missing from this version, but I wanted to make something available as an early preview :)

Let me know how it works!

Comments

I tried once again today to log into test website and I finally succeeded after I disabled Privacy Badger extension. Testing the rest of the new integration with Firefox right now. Thanks!

Michał Ciepły

I've only been able to test edge on Windows and that seems to be able to receive pushes very reliably every time when not open... Maybe it's something specific to edge on mac? Can you please check which version of edge you're using?

João Dias

So this could be flaky Service Worker implementation in Edge, though searching around I did not find much complaining about this. The Messages web interface (messages.google.com), which I believe uses Service Worker, has been quite stable for me in Edge for a long time. Though Messages does not attempt to display incoming messages unless the tab is open, even in Chrome.

Steven Ihde

Alright. I tested some more with both Chrome and Firefox. Chrome and FF are both quite a bit more reliable. They seem to be able to receive Join pushes even with the tab closed (as long as the browser is running). The Edge behavior is a bit difficult to quantify. It mostly receives pushes when the tab is open, though in some cases it will work at first and then stop. Just as I was typing this, I saw a test push come in several minutes after I sent it, so there's that too. It doesn't work at all when the tab is closed, save for perhaps once when it delivered an old push upon waking from suspend.

Steven Ihde

Thank you. Are you at all able to try out Chrome and see if it has the same issues? For me it has been working ok even with the tabs closed... :/

João Dias

I tinkered a bit but still not sure what's going on. Looking in dev tools, the Service Worker is there and registered and "active". I can receive a push from the phone, the notification shows. Then close the Join tab on the browser, do another push, and nothing happens. After closing the tab the dev tools show it is "active and stopped" (which I think is normal) but it still doesn't seem to receive the push. Happy to help with any further debugging, just let me know what would be useful.

Steven Ihde

Hm. Well it seems the Service Worker is doing something... I was testing before going out on a ride and nothing seemed to be working. I closed the Join tab and came back about two hours later. First thing that happened when I opened the lid was one of the pushes from before came through (and no Join tab was open). If I can find any local logs of the Service Worker I will dig through them for any interesting bits.

Steven Ihde

Very strange. The Service Worker should deliver notifications as long as the browser is not closed... :( I see I need to check again.

João Dias

No, the notifications only come in if the tab is open; I tested that when I first tried. Not sure about close/reopen... I'll test that later today since it's not working after suspend again.

Steven Ihde

Hhmm, interesting. Does it also happen if you close and then open it again right away? Also, are you getting notifications if you close the Join tab but keep your browser open?

João Dias

A little better, but still doesn't quite work. When I hit OK to accept the certificate, a new tab pops up for "https://192.168.217.242:2829/acceptcertificate" (2828 is the configured port; 2829 is configured + 1 as you explained). The tab gives a "connection reset" error. Investigating with curl, I see the following. I tried the same curl command from a different computer (running Linux) on the same network, and saw essentially the same result. $ curl -k -v https://192.168.217.242:2829/acceptcertificate * Trying 192.168.217.242... * TCP_NODELAY set * Connected to 192.168.217.242 (192.168.217.242) port 2829 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/ssl/cert.pem CApath: none * TLSv1.2 (OUT), TLS handshake, Client hello (1): * LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to 192.168.217.242:2829 * Closing connection 0 curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to 192.168.217.242:2829

Steven Ihde

Yes, by "suspend" I mean it goes to sleep (close the MacBook lid). Then a couple hours later I open it back up. All other tabs that were open before suspend (e.g. webmail) continue to work fine, but Join seems to lose its connection.

Steven Ihde

Ok, I think I fixed the https issue! Can you please try this version? https://drive.google.com/file/d/18V276YwSlfc3voV1s-SUxdCfoP9fCerp/view?usp=sharing

João Dias

Hhmm, I'm using Firefox 77. I wonder if that has anything to do with it. Could you maybe give that a try if you get a chance?

João Dias

It does not work correctly in private mode either. After signing in I am ending with blank page and it does not offer me the possibility to register the browser as a device. I already tried it in private mode without any extensions and with Enhanced Tracking Protection disabled but the result is the same.

Michał Ciepły

The fact that it works in private mode (where no extensions are used, right?) seems to indicate that some of those might be interfering.. Can you maybe try disabling them temporarily and see if it works then?

João Dias

I am using Firefox 76.0.1. I do not disable cookies for websites. From security oriented add-ons that might interfere with cookies I have: - DuckDuckGo Privacy Essentials - HTTPS Everywhere - Privacy Badger - uBlock Origin I have Enhanced Tracking Protection from Firefox enabled and set to Standard mode

Michał Ciepły

Yeah, that web browser doesn't have push history implemented yet :) By "suspend" do you mean putting your PC to sleep and then re-launching it again? The next time can you try closing your browser altogether and then re-opening the page and see if that makes it work? Thanks!

João Dias

Hi! Thanks for testing :) Did you maybe disable cookies for the website? Also, what Firefox version are you using?

João Dias

I have no luck with signing in on https://testsjoaomgcd.appspot.com/ using Firefox. I click on 'Google Sign In', I am logged into my Google account so I am redirected to 'Choose an account' page, I am selecting my account and I am redirected back to https://testsjoaomgcd.appspot.com/. And after some time loading I am presented with the same 'Google Sign In' button. I've tried to do the same in Private Mode and I succeed with sign in process but there is a blank page after redirect (in header there is my Google account picture and I can click on it and switch accounts). In developers console I only see one generic error 'uncaught exception: Object' (after log message 'Done loading APIs!') Is that something specific to my account or my browser configuration?

Michał Ciepły

Thanks for working on this! Can't wait to see it!

Steven Ihde

When waking up after (a long) suspend, the Join browser tab seems unable to receive pushes from Android. Even after pushing successfully in the other direction (Edge->Pixel), a Pixel->Edge push produces no result. Refreshing the Join page doesn't seem to help. Also tried closing the tab and opening a new one. This happened yesterday too and it did eventually start working, but not sure what made it work. Will keep an eye on it. This is Edge on Mac. Also, on Android Join app "Devices" section, the Edge->Pixel pushes show up under "This Device". But the Pixel->Edge pushes do not show up at all under the Edge device; neither the successful nor the failed pushes. The list is empty. The web app has no list of pushes but I assume that's just not implemented yet.

Steven Ihde

Cool! :D

João Dias

Ahh yah that's by design. Just to make it quick I made the https port be the http one plus 1. So that part seems to be working... Not sure why that port isn't working though... It worked on all my tests... :/

João Dias

By the way, I also tried setting an explicit port number for local network access. The notification about "Local Access Port Error" went away. However, the port still seems to speak HTTP, not HTTPS. I also found that when trying to enable local network on the browser side, the browser goes to the wrong port number now! It's off by one. For example, I set the port in the Android app to 2828. On the browser, it prompts me to enable local access. When I hit "OK", it sends me to https://192.168.217.242:2829/acceptcertificate where the port number is off by 1. This of course produces a "connection refused" error in the browser, as opposed to the previous behavior of spinning waiting for a response.

Steven Ihde

Yep! Working great now!

Brayden Houston

Nice! So now it's working?

João Dias

After disabling "Local Network Access" on the Join side, I am able to push from Edge to Join.

Steven Ihde

Reinstalled the app from the link in the post above. Nothing seems to have changed. "Local Access Port Error: Couldn't use port 1 for local network access. Used 41997 instead. Please configure a different port number in the app's settings." Browser spins when trying to accept the certificate. Using "curl" shows that the port is speaking HTTP, not HTTPS, although the browser is going to HTTPS. $ curl http://192.168.217.242:41997 {"errorMessage":"Unauthenticated access is disabled. Must provide token.","success":false,"userAuthError":true}

Steven Ihde

76.0.1 I did a restart of Firefox and got the prompt and registration this time! Not sure where the previous FF entry came from but I think it was in a bad state. Didn't have a device ID or anything.

Brayden Houston

What version of Firefox are you running?

João Dias

Oh darn... I fixed precisely what you were describing on that version... Seems like I didn't fix enough :P will have to check again on Monday. Thanks for testing!

João Dias

Yes, installed the app from the Drive link and switched to the test server.

Steven Ihde

Make sure to install the latest version I linked to :) that should fix that issue I think

João Dias

Yes Edge seems to be receiving unencrypted pushes OK.

Steven Ihde

When trying to enable "local network" access to Join, the browser page hangs. Investigating with curl it seems the Android app is listening on plain HTTP, but the browser is trying to go to an HTTPS url.

Steven Ihde

Hmm did you install the Android version linked in the op?

João Dias

Chromium seems to work without any issues. Got the naming prompt and can send messages to and from my phone to Chromium and a service worker is created.

Brayden Houston

Note to Self works OK... pushing a web page works OK too. Pushing in the other direction does not seem to work. I'm getting "Local Access Port Error" messages in a Join notification on the phone.

Steven Ihde

Yeah, encryption is not done yet... So you can push to edge correctly?

João Dias

Great! I just tested with Microsoft Edge for Mac. I had to disable encryption because I don't see an option to set the encryption key in the browser UI.

Steven Ihde

Hmm do you happen to have chrome to test it out?

João Dias

Yes. Checked for both.

Brayden Houston

Really? That's weird... It has to be for the test web site. Did you check that? Not the regular join website

João Dias

Maybe that's part of the problem? There doesn't seem to be a service worker for the Join website.

Brayden Houston

Can you please try going to about:debugging in Firefox, then Your Firefox and then try deleting the website service worker and then refresh the page and see if that helps

João Dias

I did test but nothing made it through from phone to browser. Happy to run any test you need me to though to help!

Brayden Houston

Thanks for testing! Were you able to push from phone to Browser?

João Dias

I didn't get a naming prompt on first launch but renaming works. Basic pushes from Firefox to my phone seem to be working! Side note how would one switch back from the test server to prod? All my devices seem to be missing on the test server 🙃 EDIT: Nevermind just hit the button 8 times again to change back to prod server whoops 😉

Brayden Houston

For now I'm on brave :) but happy for others !

Mat

Yessss! Testing now...

Brayden Houston


More Creators