Commit graph

3485 commits

Author SHA1 Message Date
Bruno Windels 22df062bbb fix observable typescript errors 2022-04-25 14:05:02 +02:00
Bruno Windels 8b16782270 Merge branch 'master' into bwindels/calls-wip 2022-04-25 12:43:01 +02:00
Bruno Windels 3536d12680
Merge pull request #725 from vector-im/bwindels/templateview-ts
add typing for text bindings in template view
2022-04-25 12:42:37 +02:00
Bruno Windels ab893f63b5 remove unneeded assignment 2022-04-25 12:40:25 +02:00
Bruno Windels 6c57c96cb9 add typing for text bindings in template view 2022-04-25 12:07:28 +02:00
Bruno Windels 39ecc6cc6d WIP typing errors 2022-04-25 11:27:33 +02:00
Bruno Windels cdb2a79b62 add muting again, separate from changing media 2022-04-22 14:48:14 +01:00
RMidhunSuresh d8da128780 remove await 2022-04-22 14:34:16 +05:30
RMidhunSuresh 7a33c2e00d await 2022-04-22 12:26:29 +05:30
RMidhunSuresh 5a94a2feba Move handleConfigRequest inside handleRequest 2022-04-22 12:22:30 +05:30
RMidhunSuresh c6691cf1cb Simplify code 2022-04-22 12:10:25 +05:30
RMidhunSuresh 826835e518 No need to rewrite to index.html 2022-04-22 12:07:53 +05:30
Bruno Windels ac60d1b61d remove thick abstraction layer
instead just copy the DOM typing and make it part of the platform layer
2022-04-21 17:40:45 +02:00
RMidhunSuresh b6e55ef59c Remove comment 2022-04-21 14:46:55 +05:30
RMidhunSuresh 4f23944581 Use named param in Legacy Platform 2022-04-21 14:17:47 +05:30
RMidhunSuresh 1cdc76f5a4 Use undefine instead of null 2022-04-21 14:14:38 +05:30
Bruno Windels baa884e9d0 Merge branch 'bwindels/calls-wip' into bwindels/calls-thinner-abstraction 2022-04-21 10:20:03 +02:00
Bruno Windels 10a6269147 always send new metadata after calling setMedia 2022-04-21 10:15:57 +02:00
Bruno Windels 55c6dcf613 don't re-clone streams when not needed 2022-04-21 10:11:24 +02:00
Bruno Windels 99769eb84e implement basic renegotiation 2022-04-21 10:10:49 +02:00
Bruno Windels 82ffb557e5 update TODO 2022-04-21 10:09:31 +02:00
RMidhunSuresh 468b7e1595 Cache config.json 2022-04-21 12:52:42 +05:30
Bruno Windels d6b239e58f ensure we always set the correct session id when joining 2022-04-20 16:42:20 +02:00
Bruno Windels 4a8af83c8f WIP 2022-04-20 10:57:42 +02:00
Bruno Windels c42292f1b0 more WIP 2022-04-20 10:57:07 +02:00
RMidhunSuresh 6cd3c8ee2b Read config from URL 2022-04-20 12:42:07 +05:30
RMidhunSuresh 2cfcd4653f Use named params 2022-04-20 12:00:33 +05:30
Bruno Windels 382fba88bd WIP for muting 2022-04-14 23:19:44 +02:00
Bruno Windels 468a0a9698 Merge branch 'master' into bwindels/calls 2022-04-14 13:48:34 +02:00
Bruno Windels ea1c3a2b86 Merge remote-tracking branch 'origin/bwindels/calls' into bwindels/calls 2022-04-14 13:47:23 +02:00
Bruno Windels 021b8cdcdc send hangup when leaving the call
but not when somebody else leaves the call through a member event
2022-04-14 13:45:21 +02:00
Bruno Windels ff856d843c ensure all member streams are cloned
so we can stop them without affecting the main one
also, only stop them when disconnecting from the member, rather then
when the peer call ends, as we might want to retry connecting to
the peer with the same stream.
2022-04-14 13:44:11 +02:00
Bruno Windels 78f352b839 avoid white ring around avatars in dark theme 2022-04-14 10:38:08 +02:00
Robert Long 55097e4154 Add intent to CallHandler 2022-04-13 13:08:47 -07:00
Robert Long 2d00d10161 Export LocalMedia 2022-04-13 13:08:33 -07:00
Bruno Windels bc118b5c0b WIP 2022-04-13 18:34:01 +02:00
RMidhunSuresh 2d8a3d9f9b Fix SDK build 2022-04-13 17:12:38 +05:30
RMidhunSuresh 23aac5cb45 Make theme-name lowercase in manifest 2022-04-13 14:26:40 +05:30
RMidhunSuresh f7bfab6e08 Add develop only script tag to index.html 2022-04-13 14:26:40 +05:30
RMidhunSuresh 5e7432b5de Make badge font color always white 2022-04-13 14:26:40 +05:30
RMidhunSuresh 2de0450e97 Make colors better looking for dark variant 2022-04-13 14:26:40 +05:30
RMidhunSuresh f26b51e5da Change colors in more css files 2022-04-13 14:26:40 +05:30
RMidhunSuresh bf74c3c67b Add more colors to manifest 2022-04-13 14:26:40 +05:30
RMidhunSuresh 3d304be211 Convert theme.css
- Use color variables
- Use colorized icons
2022-04-13 14:26:40 +05:30
RMidhunSuresh 3e2a2b7942 Add theme manifest 2022-04-13 14:26:40 +05:30
RMidhunSuresh 061dc5f824 Replace icon colors with predefined color 2022-04-13 14:26:40 +05:30
Bruno Windels 2d4301fe5a WIP: expose streams, senders and receivers 2022-04-12 21:20:24 +02:00
Bruno Windels 36dc463d23 update TODO 2022-04-12 21:20:15 +02:00
Bruno Windels 0e9307608b update TODO 2022-04-12 14:02:57 +02:00
Bruno Windels 2635adb232 hardcode turn server for now 2022-04-12 14:02:38 +02:00
Bruno Windels 797cb23cc7 implement receiving hangup, and retry on connection failure 2022-04-12 14:02:13 +02:00
Bruno Windels fd5b2aa7bb only create datachannel on side that sends invite 2022-04-11 16:29:46 +02:00
Bruno Windels d734a61447 Merge branch 'master' into bwindels/calls 2022-04-11 16:14:34 +02:00
Bruno Windels a710f394eb fix lint warning 2022-04-11 15:57:23 +02:00
Bruno Windels 517e796e90 remove obsolete import 2022-04-11 15:56:31 +02:00
Bruno Windels 5cacdcfee0 Add leave button to call view 2022-04-11 15:55:02 +02:00
Bruno Windels c99fc2ad70 use deviceId getter in Member 2022-04-11 15:54:41 +02:00
Bruno Windels e0efbaeb4e show start time in console logger 2022-04-11 15:54:31 +02:00
Bruno Windels 387bad73b0 remove debug alert 2022-04-11 15:54:20 +02:00
Bruno Windels 9be64730b6 don't automatically join a call we create 2022-04-11 15:54:06 +02:00
Bruno Windels b84c90891c add very early datachannel support 2022-04-11 15:53:34 +02:00
Bruno Windels c02e1de001 log when renegotiation would be triggered 2022-04-11 14:55:14 +02:00
Bruno Windels 8e82aad86b fix logic error that made tracks disappear on the second track event 2022-04-11 14:55:08 +02:00
Bruno Windels 8153060831 only send to target device, not all user devices 2022-04-11 13:39:40 +02:00
Bruno Windels 302d4bc02d use session id from member event, and also send it for other party 2022-04-11 13:39:18 +02:00
Bruno Windels 1b0abebe8f remove unused constants 2022-04-11 12:37:05 +02:00
Bruno Windels 156f5b78bf use session_id from member event to set dest_session_id
so our invite event isn't ignored by EC
2022-04-11 12:36:02 +02:00
Bruno Windels c9bc080aef
Merge pull request #713 from vector-im/bwindels/fix-request-responsecode-error
fix error thrown during request when response code is not used
2022-04-08 15:26:12 +02:00
Bruno Windels cf780ce259 also apply custom tiles in reply preview in composer 2022-04-08 15:16:22 +02:00
Bruno Windels d21d10e4f2 pass in viewClassForTile from SessionView
so you can also use custom tiles when using the grid view
2022-04-08 15:15:21 +02:00
Bruno Windels 1fea14dd10 ensure other parameters don't get passed to TemplateView parent ctors 2022-04-08 15:04:38 +02:00
Bruno Windels 1f0cb542c8 pass viewClassForTile to tile views, so they can create reply view with correct subtile 2022-04-08 15:02:07 +02:00
Bruno Windels 57f50cc416 fix lint warnings 2022-04-08 15:01:27 +02:00
Bruno Windels cda96a35ee rename viewClassForEntry to viewClassForTile 2022-04-08 15:01:06 +02:00
Bruno Windels ac4bb8ca15 export tile view & view models from SDK 2022-04-08 14:27:08 +02:00
Bruno Windels a913671f0c make tileClassForEntry optional, as otherwise it is a breaking change 2022-04-08 14:19:34 +02:00
Bruno Windels 5445db2a42 allow injecting the tilesCreator from the Root/Session/RoomViewModel
this changes the API slightly to be more future-proof,
as we'll expose it in the SDK now.

The function now returns a SimpleTile constructor, rather than an
instance. This allows us to test if an entry would render in the
timeline without creating a tile, which is something we might want in
the matrix layer later on.

The function is now called tileClassForEntry, analogue to what we
do in TimelineView.
2022-04-08 12:52:30 +02:00
Bruno Windels 220f35ae03 fix typescript error 2022-04-08 11:52:21 +02:00
Bruno Windels 6aa79cf6e2 allow to inject custom tile view creator fn into timeline view 2022-04-07 17:25:20 +02:00
Bruno Windels 8a06663023 load all call members for now at startup
later on we can be smarter and load then once you interact with the call
2022-04-07 16:55:41 +02:00
Bruno Windels ad140d5af1 only show video feed when connected 2022-04-07 16:55:26 +02:00
Bruno Windels a78ae52a54 to test with EC, also load prompt calls at startup 2022-04-07 16:55:10 +02:00
Bruno Windels b133f58f7a don't throw here for now, although it is probably a sign of why the tracks disappear 2022-04-07 16:54:47 +02:00
Bruno Windels bade40acc6 log track length 2022-04-07 16:54:36 +02:00
Bruno Windels 1dc46127c3 no need to throw here 2022-04-07 16:54:24 +02:00
Bruno Windels 79411437cf fix who initiates call, needs to be lower, not higher 2022-04-07 16:53:57 +02:00
Bruno Windels 6472800387 impl session id so EC does not ignore our messages 2022-04-07 16:53:37 +02:00
Bruno Windels fe6e7b09b5 don't encrypt to_device messages for now 2022-04-07 16:50:16 +02:00
Bruno Windels 88482292e1
Merge pull request #700 from vector-im/ajbura-patch-2
Add observeNavigation in ViewModel
2022-04-07 14:08:40 +02:00
Bruno Windels 9755062563 fix error thrown during request when response code is not used 2022-04-07 10:35:00 +02:00
Bruno Windels ad1cceac86 fix error thrown during request when response code is not used 2022-04-07 10:33:12 +02:00
Bruno Windels 2852834ce3 persist calls so they can be quickly loaded after a restart
also use event prefixes compatible with Element Call/MSC
2022-04-07 10:32:43 +02:00
Bruno Windels 42b470b06b helper to print open items with console logger 2022-03-30 15:19:07 +02:00
Bruno Windels d7360e7741 fix multiple device support 2022-03-30 15:18:46 +02:00
Bruno Windels c54ffd4fc3 support multiple devices in call per user 2022-03-29 17:13:33 +02:00
Bruno Windels ba45178e04 implement terminate and hangup (currently unused) 2022-03-29 12:01:47 +02:00
Bruno Windels 11a9177592 log state changes in PeerCall 2022-03-29 12:01:47 +02:00
Bruno Windels 4bf171def9 small fixes 2022-03-29 12:01:47 +02:00
Bruno Windels eaf92b382b add structured logging to call code 2022-03-29 12:01:47 +02:00
Bruno Windels a0a07355d4 more improvements, make hangup work 2022-03-29 12:01:47 +02:00
Bruno Windels 0a37fd561e just enough view code to join a call 2022-03-29 12:01:47 +02:00
Bruno Windels 9efd191f4e some more fixes 2022-03-29 12:01:46 +02:00
Bruno Windels cad2aa760d some fixes 2022-03-29 12:01:46 +02:00
Bruno Windels 4be82cd472 WIP on UI 2022-03-29 12:01:46 +02:00
Bruno Windels e760b8e556 basic view model setup 2022-03-29 12:01:46 +02:00
Bruno Windels e482e3aeef expose mediaDevices and webRTC from platform 2022-03-29 12:01:46 +02:00
Bruno Windels 6daae797e5 fix some ts/lint errors 2022-03-29 12:01:46 +02:00
Bruno Windels 07bc0a2376 move observable values each in their own file 2022-03-29 12:01:46 +02:00
Bruno Windels 1bccbbfa08 fix typescript errors 2022-03-29 12:01:46 +02:00
Bruno Windels f674492685 remove local media promises (handle them outside of call code) + glare 2022-03-29 12:01:46 +02:00
Bruno Windels 3c160c8a37 handle remote ice candidates 2022-03-29 12:01:46 +02:00
Bruno Windels b213a45c5c WIP: work on group call state transitions 2022-03-29 12:01:46 +02:00
Bruno Windels b2ac4bc291 WIP13 2022-03-29 12:01:46 +02:00
Bruno Windels 6da4a4209c WIP: work on group calling code 2022-03-29 12:01:46 +02:00
Bruno Windels 4bedd4737b WIP11 2022-03-29 12:01:46 +02:00
Bruno Windels 60da85d641 WIP10 2022-03-29 12:01:46 +02:00
Bruno Windels 6fe90e60db WIP9 2022-03-29 12:01:46 +02:00
Bruno Windels ecf7eab3ee WIP8 - implement PeerCall.handleAnswer and other things 2022-03-29 12:01:46 +02:00
Bruno Windels 25b0148073 WIP8 2022-03-29 12:01:46 +02:00
Bruno Windels 98b77fc761 WIP7 2022-03-29 12:01:46 +02:00
Bruno Windels 179c7e74b5 WIP6 2022-03-29 12:01:46 +02:00
Bruno Windels 98e1dcf799 WIP5 2022-03-29 12:01:46 +02:00
Bruno Windels e5f44aecfb WIP4 2022-03-29 12:01:46 +02:00
Bruno Windels 468841ecea WIP3 2022-03-29 12:01:46 +02:00
Bruno Windels b12bc52c4a WIP2 2022-03-29 12:01:46 +02:00
Bruno Windels 46ebd55092 WIP 2022-03-29 12:01:46 +02:00
Bruno Windels ca211f929b
Merge pull request #702 from vector-im/bwindels/observablemapts
convert (Base)ObservableMap to typescript
2022-03-09 11:53:59 +01:00
Bruno Windels 6150e91c3f fix type error again 2022-03-09 11:51:11 +01:00
Bruno Windels 762925d4a5 fix type error 2022-03-09 11:44:49 +01:00
Bruno Windels 21080d2110 fix tests 2022-03-09 11:41:26 +01:00
Bruno Windels 6d7c983e8e convert (Base)ObservableMap to typescript 2022-03-09 11:33:49 +01:00
Ajay Bura e07abfa02a
Add missing type 2022-03-07 11:33:51 +05:30
Bruno Windels 8b8233ff00
Merge pull request #691 from vector-im/madlittlemods/only-crypto-in-secure-context
Only initialize `Crypto` when olm is provided
2022-03-03 17:33:50 +01:00
Ajay Bura 61ce2f9e3d
Add observeNavigation in ViewModel 2022-03-03 15:36:25 +05:30
Eric Eastwood 2f4c639cef Only initialize Crypto when olm is provided
See https://github.com/vector-im/hydrogen-web/pull/691#discussion_r816988082
2022-03-02 03:17:59 -06:00
Eric Eastwood c09964dc30
Add data-event-id="$xxx" attributes to timeline items for easy selecting in end-to-end tests (#690)
Split out from https://github.com/vector-im/hydrogen-web/pull/653

Example test assertions: db6d3797d7/test/e2e-tests.js (L248-L252)

```js
// Make sure the $abc event on the page has "foobarbaz" text in it
assert.match(
  dom.document.querySelector(`[data-event-id="$abc"]`).outerHTML,
  new RegExp(`.*foobarbaz.*`)
);
```
2022-03-01 18:36:14 -06:00
Bruno Windels 2e1283d199
Merge pull request #670 from vector-im/bwindels/ts-olm
Convert olm code to typescript
2022-03-01 18:53:22 +01:00
Bruno Windels 62ce111938
Merge pull request #692 from ryushar/ryushar/typescriptify
Convert domain/avatar.js and domain/LogoutViewModel.js to Typescript
2022-03-01 18:50:19 +01:00
Bruno Windels 770f7aea00
Merge pull request #689 from vector-im/madlittlemods/add-more-html-elements
Add more HTML form and SVG elements
2022-03-01 18:43:34 +01:00
Bruno Windels b6d9993ed0 remove unused import 2022-03-01 17:08:49 +01:00
Bruno Windels 643ab1a5f3 cant export this for some reason 2022-03-01 15:48:42 +01:00
Bruno Windels ee8e45926f also export observable value classes 2022-03-01 15:42:04 +01:00
Bruno Windels 4c50dbf7ec make SDK exports explicit 2022-03-01 15:41:44 +01:00
Ajay Bura 4a4856a29e
export module 2022-02-28 17:19:01 +05:30
Tushar 17acda7741 typescriptify domain/LogoutViewModel.js 2022-02-25 16:45:07 +05:30
Tushar 7055f02f16 typescriptify domain/avatar.js 2022-02-25 15:52:54 +05:30
Eric Eastwood 0935f2d23a Only try to use window.crypto.subtle in secure contexts to avoid it throwing and stopping all JavaScript
Relevant error if you crypto is used in a non-secure context like a local LAN IP `http://192.168.1.151:3050/`
```
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'deriveBits')
	at new Crypto
	at new Platform
	at mountHydrogen
```

For my use-case with https://github.com/matrix-org/matrix-public-archive, I don't need crypto/encryption at all.

Docs:

 - https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts
 - https://developer.mozilla.org/en-US/docs/Web/API/Crypto/subtle
    - "Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers."

---

Related to https://github.com/vector-im/hydrogen-web/issues/579
2022-02-25 01:59:48 -06:00
Eric Eastwood b993331e06 Add more HTML form and SVG elements
Split off from https://github.com/vector-im/hydrogen-web/pull/653

Personally using `select`, `option`, and `path` currently in https://github.com/matrix-org/matrix-public-archive
but added a few extra SVG elements that seemed common to me.
2022-02-25 01:40:52 -06:00
Bruno Windels 8adc5a9fae these were public actually 2022-02-18 17:24:55 +01:00
Bruno Windels 3f9f0e98c7 remove unused olm property in SenderKeyDecryption 2022-02-18 17:21:27 +01:00