Page MenuHomePhabricator

[keyserver/web/desktop] Add macos and windows as platforms
ClosedPublic

Authored by michal on Feb 24 2023, 9:28 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Oct 27, 6:16 PM
Unknown Object (File)
Sat, Oct 19, 12:48 PM
Unknown Object (File)
Sat, Oct 19, 12:48 PM
Unknown Object (File)
Sat, Oct 19, 12:48 PM
Unknown Object (File)
Sep 29 2024, 1:52 AM
Unknown Object (File)
Sep 29 2024, 1:52 AM
Unknown Object (File)
Sep 29 2024, 1:51 AM
Unknown Object (File)
Sep 29 2024, 1:41 AM
Subscribers

Details

Summary

We want to support desktop device types to be able to handle native notifications. This diff adds macos and windows to the possible platform and sets config on the web app depending on where it's running. Older desktop clients with newer web app will still be treated as web. Additionaly if on the socket initialization we detect that someone has a user agent with "Electron" and still has device token of web we will ask the web app to send us the current device type, so already logged in users will be updated.

Test Plan
  • check that after login the device type is macos
  • check that for already logged in users the device type changes to macos and remains that after logging out on the anoonymous cookie

Diff Detail

Repository
rCOMM Comm
Lint
No Lint Coverage
Unit
No Test Coverage

Event Timeline

ashoat added inline comments.
keyserver/src/socket/socket.js
460

I might be wrong, but I think if viewer.userAgent is not set, you'll need optional chaining on the function invocation as well

This revision is now accepted and ready to land.Feb 26 2023, 4:38 AM
keyserver/src/socket/socket.js
460

I tested it and it seems that if viewer.userAgent isn't set the call expression will evaluate to undefined. Flow also types it as void | boolean

keyserver/src/socket/socket.js
460

Thanks for checking!