Commit Graph

292 Commits

Author SHA1 Message Date
schlagmichdoch fdf20cfdd9 save roomSecret and notify user that the pairing is successful only after the corresponding pairPeer has joined. 2023-05-10 21:59:45 +02:00
schlagmichdoch 7606fb398b Fix: notify user that "Selected peer left." only if dialog is shown. 2023-05-10 21:59:45 +02:00
schlagmichdoch 8d640be3a2 increase roomSecret length to 264 chars and implement roomSecret regeneration functionality 2023-05-10 21:59:45 +02:00
schlagmichdoch 241ea4f988 implement auto_accept (#91) and manual unpairing via new Edit Paired Devices Dialog and a BrowserTabsConnector 2023-05-10 21:59:43 +02:00
schlagmichdoch b42c8a0b1a remove background animation in favor of speed and efficiency 2023-04-20 22:02:00 +02:00
schlagmichdoch 3f72fa1160 remove fade-in from description (LCP) on page load 2023-04-20 21:57:24 +02:00
schlagmichdoch 7827a47d29 increase seo with recommendations from PageSpeed Insights 2023-04-17 15:19:54 +02:00
schlagmichdoch d50480b2f8
Merge pull request #94 from schlagmichdoch/add_theme_menu
Add theme menu to toggle between auto, light and dark mode.
2023-03-29 16:22:42 +02:00
schlagmichdoch ac1e88b6a0 Add possibility to reset theme to auto 2023-03-29 01:39:45 +02:00
schlagmichdoch d0b2c81582 Tidy up code 2023-03-28 19:07:33 +02:00
schlagmichdoch 251df2fbff try to fix share target api 2023-03-28 19:00:05 +02:00
schlagmichdoch dcc4e8b747 Optimize background animation drastically by using offscreen canvases to reuse frames. Rewrite animate function to prevent it from being called multiple times 2023-03-27 02:17:36 +02:00
schlagmichdoch 17abc91c86 rename function and add event to achieve compatibility with snapdrop-android app 2023-03-14 15:12:23 +01:00
schlagmichdoch 4e0fb89720 replace javascript operators `??` and `?.` to support older browsers (see #79) 2023-03-13 14:21:26 +01:00
schlagmichdoch 028752a809 fixes #76. 'File received' dialog not showing on iOS when big videos are sent. 2023-03-13 00:04:48 +01:00
schlagmichdoch 1093f4d246 log error onicecandidateerror 2023-03-10 22:21:19 +01:00
schlagmichdoch 5eeaae01fe add connection hash to title of display-name of receive dialogs 2023-03-06 15:39:24 +01:00
schlagmichdoch 660e523263 prevent sending of displayName if RTCPeer is not connected 2023-03-06 15:33:22 +01:00
schlagmichdoch c9dca7e083 fix download notification and add request notification 2023-03-06 15:32:42 +01:00
schlagmichdoch 954e9c7c3a
Merge pull request #65 from schlagmichdoch/pairdrop_cli_add_firefox_fallback
pairdrop-cli: add fallback if navigator.clipboard.readText() is not available
2023-03-06 12:25:54 +01:00
schlagmichdoch c0d504f6a8 remove base64 event listeners manually on hide instead of once: true 2023-03-06 12:20:30 +01:00
schlagmichdoch 36e152dc7c add { once: true } to deactivate-paste-mode event listener 2023-03-06 11:59:56 +01:00
schlagmichdoch fdf024f378 pairdrop-cli: add fallback if navigator.clipboard.readText() is not available 2023-03-06 11:56:17 +01:00
schlagmichdoch 9f2e4c5f8f fix displayName sometimes not exchanged on reload 2023-03-06 11:24:19 +01:00
schlagmichdoch edf2ab5eb3 revert some changes to regain stability 2023-03-06 03:47:24 +01:00
schlagmichdoch cc78b34d2e Revert making peerId ephemeral to prevent duplication of shown peers on reconnect. Implement peerIdHash to prevent rogue users from overtaking peerIds 2023-03-06 00:07:21 +01:00
schlagmichdoch f34f5bd4b2 tidy up code, add tooltip to device name and change color and bg-color of device-name 2023-03-06 00:07:21 +01:00
schlagmichdoch b7e7fd1b68 Merge branch 'master' into enable_renaming 2023-03-04 20:52:10 +01:00
schlagmichdoch 77b76a3b8d reduce reconnect timers to 1s 2023-03-04 15:46:26 +01:00
schlagmichdoch c0a4224a59 merge master into branch 2023-03-03 18:01:24 +01:00
schlagmichdoch 002b31a113 merge master into branch 2023-03-03 17:40:10 +01:00
schlagmichdoch bb0493d071 Make user notifications and document titles more concise. 2023-03-03 17:03:10 +01:00
schlagmichdoch bfb5aa8546 fix overwrite method _onMessage of class RTCPeer 2023-03-03 16:36:55 +01:00
schlagmichdoch 39ca5b2d21 ws-fallback: remove all WSPeers when server connection disconnects + fix onPeerLeft 2023-03-03 13:10:14 +01:00
schlagmichdoch d6ef5887dd move logging of rtc message from class Peer class to overwritten method in class RTCPeer 2023-03-03 12:38:34 +01:00
schlagmichdoch f9f1abef7a Replace all urls in received messages with links. Center the message if it does not include any whitespace. 2023-03-03 12:28:50 +01:00
schlagmichdoch d244f5fa47 fix circles position on ios safari are shifted by url bar 2023-03-03 12:03:20 +01:00
schlagmichdoch 3a2d8c75f7 - restructure and unify dialogs to use less space on mobile and be clearer
- give user option both options "share" and "download" on mobile
- add fallback if zipper fails that downloads files individually
- fix dequeuing of message queue not possible if sending peer has left
2023-03-03 12:01:43 +01:00
schlagmichdoch 545cdc2459 Fix browser reloading when first message is sent by preventing event default on submit 2023-03-02 16:30:47 +01:00
schlagmichdoch 7220e85422 document/tab title: Show number of received messages and move '- PairDrop' to the end 2023-03-02 15:31:06 +01:00
schlagmichdoch 1eb53498b1 add localStorage fallback to fix renaming on private tabs and fix Firefox inserting linebreaks into edited divs 2023-03-02 15:06:22 +01:00
schlagmichdoch de76da52fe merge master into branch 2023-03-01 21:55:50 +01:00
schlagmichdoch d56ee87437 - Enable renaming of own display name permanently via UI
- Make peerId completely ephemeral
- Stabilize RTCConnection by closing connections cleanly
2023-03-01 21:38:36 +01:00
schlagmichdoch a3b348d9b6 refactor all missing html ids to kebap-case 2023-03-01 21:38:13 +01:00
schlagmichdoch 4566528179 - restructure UI to use flexbox everywhere
- structure peers on desktop responsively
- make peer box scrollable when peers are overflowing + shadow
- add highlight badge to differentiate local peers into paired and not paired
- change websocket fallback warning and move to the bottom
2023-03-01 21:38:13 +01:00
schlagmichdoch 7b08973cef remove safari audio blop "hack" as it should not completely stop music that is playing in the background 2023-03-01 21:38:12 +01:00
schlagmichdoch 66359da2ca get rtcConfig dynamically from the server 2023-02-24 18:08:48 +01:00
schlagmichdoch 0eb13d9d1b increase QR-Code size as requested in #43 and fix overflow issues on iOS 2023-02-24 16:08:36 +01:00
schlagmichdoch 40c0735c90 touched UX to make receive dialogs more intuitive. closes #40 2023-02-22 03:01:06 +01:00
schlagmichdoch 8f0e465b8e pairdrop-cli: change domain via flag, move bash file to separate folder and add console logs to ui.js 2023-02-21 23:44:41 +01:00
schlagmichdoch 0f9bbf9bbb enable sending from cli by adding bash script 2023-02-20 17:42:02 +01:00
schlagmichdoch c5d0eaa034 [security] Add security number to PeerUI to make verification of peer-to-peer encryption possible. 2023-02-16 02:19:14 +01:00
schlagmichdoch 16f5711c98 fix beforeunload warning if peer on transfer 2023-02-11 11:49:32 +01:00
schlagmichdoch b933ef151a if devices are paired a second time, the old roomSecret is deleted upon saving the new one. 2023-02-11 00:52:37 +01:00
schlagmichdoch 414cc9aa57 if user actively disconnects from PairDrop server, disconnect all peer to peer connections immediately and do not wait for channels to close 2023-02-10 23:47:39 +01:00
schlagmichdoch 1eba7359d1 rolled back some changes to stabilize WebRTC connections 2023-02-10 23:41:04 +01:00
schlagmichdoch 616f6a6799 implement complete WSPeer as fallback if WebRTC is deactivated. Only ever use on self-hosted instances as clients need to trust the server! 2023-02-10 20:22:36 +01:00
schlagmichdoch b8c78bccfa try to stabilize connection and prevent remove reconnecting fallback on error 2023-02-10 18:56:13 +01:00
schlagmichdoch b0e798b3cd allow multiple message transfers by multiple peers simultaneously by putting them in a queue 2023-02-10 03:26:08 +01:00
schlagmichdoch 671dfa1c87 fix: process stops if image preview or thumbnail creation fails 2023-02-08 14:18:59 +01:00
schlagmichdoch a0ba46caf4 cope with CAPITALIZED file suffix 2023-02-08 14:18:59 +01:00
schlagmichdoch d111bbf067 allow multiple file transfer requests by multiple peers simultaneously by putting them in a queue 2023-02-08 14:18:08 +01:00
schlagmichdoch 81d36774b5 prevent word break between "on this network" and "and by paired devices" and fix circle center offset 2023-02-08 05:14:34 +01:00
schlagmichdoch 89d5ae3a02 indicate peer color meaning via underlines 2023-02-08 04:18:53 +01:00
schlagmichdoch 9f182eced3 remove unused method _onRoomSecretDelete 2023-02-08 04:18:47 +01:00
schlagmichdoch 1c3a8bfe1d remove unnecessary double signaling onPeerJoined and prevent second RTCPeer instance for same peerId 2023-02-08 04:18:39 +01:00
schlagmichdoch c674e2c8d2 remove WSPeer completely as the implementation has never been finished and routing all traffic through the server is not desirable for public PairDrop. ([see this issue for reasons](https://github.com/schlagmichdoch/PairDrop/issues/18#issuecomment-1416788548) 2023-02-04 17:04:05 +01:00
schlagmichdoch 8488ce1402 fix socket is null if PWA is offline 2023-02-04 16:22:57 +01:00
schlagmichdoch c0c51c38b3 only activate paste-mode the first time a file is opened with PairDrop by looking for the url parameter on start and removing it afterwords. 2023-02-02 15:19:28 +01:00
schlagmichdoch ca37331830 remove warning for removed crypto.subtle dependency 2023-01-31 21:57:00 +01:00
schlagmichdoch a2d6832d12 prevent user from accidentally closing the window if files are transferred. 2023-01-27 01:29:35 +01:00
schlagmichdoch d35c27aa91 revert zipping and unzipping files on transfer to minimize needed browser memory. Use fileQueue instead. 2023-01-27 01:28:10 +01:00
schlagmichdoch ea9613f2cf add btn shortcut as title tooltip 2023-01-25 10:01:45 +01:00
schlagmichdoch 4756a52278 fix filesize calculation for small files 2023-01-25 09:59:38 +01:00
schlagmichdoch 437aa5976e fix base64text: special characters decoded incorrectly 2023-01-25 09:43:32 +01:00
schlagmichdoch 1f7a43292b fix PWA offline capability 2023-01-23 20:40:08 +01:00
schlagmichdoch 689d2bd44c correct conversion of file sizes, differentiate between files and images on file receive dialog and update progress indicator while zip processing + small fixes 2023-01-23 20:09:35 +01:00
schlagmichdoch ec6bee05fd fix error `Cannot set remote answer in state stable` 2023-01-23 19:53:14 +01:00
schlagmichdoch 19d7e6fecd prevent channel from opening if connection is closed 2023-01-23 05:28:08 +01:00
schlagmichdoch d4dcfbc1b7 After successfully creating peer to peer connection, transferring files/messages now work completely independent of the PairDrop server. Transfers are not aborted and dialogs are not closed when the client has only lost connection to the PairDrop server or when 'peer-left' but only when the corresponding peer is disconnected. 2023-01-23 04:51:22 +01:00
schlagmichdoch d424a0294a fix persistent peerId -> displayName if PWA 2023-01-23 00:03:26 +01:00
schlagmichdoch c9f57c6fa0 Notify user if paired devices are not persistent. 2023-01-22 17:43:03 +01:00
schlagmichdoch 88e31407cb fix persistent peerId if PWA 2023-01-22 17:36:15 +01:00
schlagmichdoch bf79f72741 use console.log instead of console.error if indexeddb is not available as this behaviour is expected 2023-01-22 17:34:33 +01:00
schlagmichdoch 35aac22fae fix drop files when no peer is connected yet 2023-01-22 17:33:19 +01:00
schlagmichdoch 87aa958c60 add functionality to drop files to the background to select recipient 2023-01-22 16:14:27 +01:00
schlagmichdoch 7b860d5473 add base64text functionality for sending multi line text from iOS share menu 2023-01-22 16:12:00 +01:00
schlagmichdoch 0a3ab18e80 clarify UI on File Transfer Request 2023-01-21 18:21:58 +01:00
schlagmichdoch fb306b6c94 fix video + audio preview 2023-01-21 18:20:42 +01:00
schlagmichdoch 8c0d7bae49 include all favicons in favicon change 2023-01-20 15:56:20 +01:00
schlagmichdoch a0f46475dd fix restart animation when last peer left 2023-01-20 01:58:49 +01:00
schlagmichdoch f97bd6df9e
Implement tab title and favicon change if a file transfer has been requested or a file or a message has been received (#7)
Co-authored-by: schlagmichdoch <schlagmichdoch@users.noreply.github.com>
2023-01-20 01:36:15 +01:00
schlagmichdoch 469d3f6ec8 prevent base64ZipDialog from closing when ws disconnects 2023-01-19 15:07:58 +01:00
schlagmichdoch 6bc1bcf743 put files into innodb instead of to cache 2023-01-19 14:54:32 +01:00
schlagmichdoch 766b5d3dd7 add user notification if clipboard.readText() is undefined 2023-01-19 14:48:43 +01:00
schlagmichdoch 62c02aaed3 change position of button to close paste mode 2023-01-19 06:43:24 +01:00
schlagmichdoch d9c3d5172a FIX add mime types to files if missing -> needed for correct sharing via share-menu on ios 2023-01-19 06:01:23 +01:00
schlagmichdoch c53221ba01 Add Base64ZipDialog to PairDrop via share-menu on iOS 2023-01-19 04:40:28 +01:00
schlagmichdoch 7e7463de90 delete cached files after query; consistency updates 2023-01-18 22:42:47 +01:00
schlagmichdoch be6813d714 implemented WebShareTarget in manifest and serviceworker for testing 2023-01-18 21:01:29 +01:00
schlagmichdoch 7936f123c2 implement File Handler API 2023-01-18 15:46:09 +01:00
schlagmichdoch 6748cc0cb4 fix bugs 2023-01-18 15:44:20 +01:00
schlagmichdoch 29735ff617 add alert if corruption of files can not be checked and add optional nginx config for http to https redirect; always show preview of first file if image; 2023-01-18 15:37:36 +01:00
schlagmichdoch bdb9cb42d9 rewrite pasteMode activation/deactivation in PeerUI and PeersUI and add clear up PasteUI 2023-01-18 15:28:57 +01:00
schlagmichdoch 168d10a898 implemented NoSleep.js as suggested in this issue: https://github.com/RobinLinus/snapdrop/issues/412 2023-01-17 14:19:51 +01:00
schlagmichdoch 474eb9290f small fixes and style changes 2023-01-17 14:00:01 +01:00
schlagmichdoch c7ee067ef2 remove title and text from navigator.share() to prevent iOS from generating additional image from text 2023-01-17 11:44:52 +01:00
schlagmichdoch 24fdff8a8a adding a second stun server provided by the openrelayproject to the RTCPeer.config 2023-01-17 11:27:07 +01:00
schlagmichdoch 785db26882 refactor "Pairdrop" to "PairDrop" 2023-01-17 10:51:19 +01:00
schlagmichdoch 665aa857d7 revert div to input conversion to be able to insert linebreaks to messages 2023-01-17 10:47:44 +01:00
schlagmichdoch 5525caa766 implement file receive request with image-thumbnail-preview, share-menu on click additional to download and multiple file support by zipping file(s) to prepare for sending; add status "waiting.." and "preparing..." to UX; lock pointer-input when peer-node busy; tidy-up paste-mode deactivation 2023-01-17 10:45:29 +01:00
schlagmichdoch 2671aa128f disable pair dialog chars when hidden to prevent autofocus 2023-01-17 10:11:17 +01:00
schlagmichdoch 5c5fb2db0d send message: prevent insertion of formatted text; send text on CTRL+Enter / CMD+Enter 2023-01-14 01:57:33 +01:00
schlagmichdoch efb3857bd2 tidy up clearPeers method 2023-01-11 00:40:53 +01:00
schlagmichdoch fed9d17dc8 replace "snapdrop" with "pairdrop" and change links accordingly + add changes to faq and readme 2023-01-10 17:22:36 +01:00
schlagmichdoch bef7459019 do not hide ReceiveDialogs on disconnect 2023-01-10 16:10:46 +01:00
schlagmichdoch 8d2bbc795d Video and Audio preview 2023-01-10 16:03:52 +01:00
schlagmichdoch 7deeba161b disconnect on navigator.connection.change 2023-01-10 14:52:39 +01:00
schlagmichdoch 516e1ddf59 fix background animation speeding up uncontrollably 2023-01-10 14:52:03 +01:00
schlagmichdoch 3c07a4199b implement device pairing via 6-digit code and qr-code 2023-01-10 05:07:57 +01:00
schlagmichdoch e559aecde7 merge implement_paste_mode into branch 2023-01-07 03:34:01 +01:00
schlagmichdoch 206860c838 use openrelay server instead 2023-01-07 02:38:45 +01:00
schlagmichdoch cce8db7f84 stop background animation on disconnect 2023-01-07 01:54:36 +01:00
schlagmichdoch fe2422264a add notification on connect 2023-01-07 01:47:47 +01:00
schlagmichdoch 62b9e4e9e4 fix peer._channel is undefined 2023-01-06 19:51:35 +01:00
schlagmichdoch ee3d400de1 Merge branch 'fix_typo_repeat_partition' into add_device_pairing_render_node 2023-01-06 16:34:04 +01:00
schlagmichdoch 6c4b7b893a fix reconnection _onChannelClosed() 2023-01-06 16:19:45 +01:00
schlagmichdoch 6268ac7132 only reopen connection if it exists 2023-01-06 15:46:51 +01:00
schlagmichdoch 98a6f63799 remove notification for new displayName as peerId and display name is persistent again 2023-01-06 15:09:01 +01:00
schlagmichdoch 621c525d11 readd persistent peerId via sessionStorage 2022-12-31 18:52:18 +01:00
schlagmichdoch 8dc0f1cb0c stabilize connection 2022-12-31 18:52:18 +01:00
schlagmichdoch 6feeb6d4d9 potential fix for reconnect function 2022-12-31 18:52:17 +01:00
schlagmichdoch 0b45bdfd84 potential fix for reconnect function 2022-12-31 18:52:17 +01:00
schlagmichdoch 0436a2185a fix animation function if called multiple times 2022-12-31 18:52:17 +01:00
schlagmichdoch 651047cfa8 clear peers on page hide 2022-12-31 18:52:16 +01:00
schlagmichdoch 59671a751b remove reconnect function 2022-12-31 18:52:16 +01:00
schlagmichdoch 1b7aced340 remove forceDisconnect() and add change name notification 2022-12-30 22:55:48 +01:00
schlagmichdoch cb86e96ffc copy on CMD + C / CTRL + C 2022-12-30 20:34:54 +01:00
schlagmichdoch 009fcd7745 close About Snapdrop page on Escape Keydown 2022-12-30 17:09:15 +01:00
schlagmichdoch a7a91df558 fix force disconnect function 2022-12-24 04:29:47 +01:00
schlagmichdoch 800cf1712c restart animation when last peer leaves 2022-12-24 04:29:16 +01:00
schlagmichdoch 947e088aeb move files for node only implementation 2022-12-23 05:32:34 +01:00