Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

core: refactor routing #3222

Merged
merged 3 commits into from
Jul 12, 2018
Merged

core: refactor routing #3222

merged 3 commits into from
Jul 12, 2018

Conversation

saghul
Copy link
Member

@saghul saghul commented Jul 5, 2018

Unfortunately, as the Jitsi Meet development evolved the routing mechanism
became more complex and thre logic ended up spread across multiple parts of the
codebase, which made it hard to follow and extend.

This change aims to fix that by rewriting the routing logic and centralizing it
in (pretty much) a single place, with no implicit inter-dependencies.

In order to arrive there, however, some extra changes were needed, which were
not caught early enough and are thus part of this change:

  • JitsiMeetJS initialization is now synchronous: there is nothing async about
    it, and the only async requirement (Temasys support) was lifted. See 0.
  • WebRTC support can be detected early: building on top of the above, WebRTC
    support can now be detected immediately, so take advantage of this to simplify
    how we handle unsupported browsers. See 0.

The new router takes decissions based on the Redux state at the time of
invocation. A route can be represented by either a component or a URl reference,
with the latter taking precedence. On mobile, obviously, there is no concept of
URL reference so routing is based solely on components.

@saghul
Copy link
Member Author

saghul commented Jul 5, 2018

Jenkins please test this please.

@saghul saghul force-pushed the refactor-router branch 2 times, most recently from 5a94681 to 872682e Compare July 6, 2018 09:11
@saghul saghul changed the title WIP - core: refactor routing core: refactor routing Jul 6, 2018
@saghul
Copy link
Member Author

saghul commented Jul 6, 2018

Jenkins please test this please.

@saghul
Copy link
Member Author

saghul commented Jul 6, 2018

@lyubomir This is now ready for review. Tests have passed, but somehow doesn't show it here. See: http://ci.jitsi.org/view/pr-testing/job/jitsi-meet-PR-test/4604/

@saghul saghul added the mobile Issue related to any mobile system running Jitsi Meet label Jul 10, 2018
@saghul saghul force-pushed the refactor-router branch 2 times, most recently from 1647006 to 37ca3dd Compare July 10, 2018 15:27
@lyubomir lyubomir self-assigned this Jul 11, 2018
saghul and others added 2 commits July 11, 2018 22:58
Unfortunately, as the Jitsi Meet development evolved the routing mechanism
became more complex and thre logic ended up spread across multiple parts of the
codebase, which made it hard to follow and extend.

This change aims to fix that by rewriting the routing logic and centralizing it
in (pretty much) a single place, with no implicit inter-dependencies.

In order to arrive there, however, some extra changes were needed, which were
not caught early enough and are thus part of this change:

- JitsiMeetJS initialization is now synchronous: there is nothing async about
  it, and the only async requirement (Temasys support) was lifted. See [0].
- WebRTC support can be detected early: building on top of the above, WebRTC
  support can now be detected immediately, so take advantage of this to simplify
  how we handle unsupported browsers. See [0].

The new router takes decissions based on the Redux state at the time of
invocation. A route can be represented by either a component or a URl reference,
with the latter taking precedence. On mobile, obviously, there is no concept of
URL reference so routing is based solely on components.

[0]: jitsi/lib-jitsi-meet#779
@lyubomir lyubomir merged commit 9c4da12 into jitsi:master Jul 12, 2018
saghul added a commit to saghul/jitsi-meet that referenced this pull request Aug 14, 2018
Your truly refactored routing in jitsi#3222
and broke it. When a bare room is entered the pathname was not updated when
applying the default URL.
saghul added a commit to saghul/jitsi-meet that referenced this pull request Aug 14, 2018
Yours truly refactored routing in jitsi#3222
and broke it. When a bare room is entered the pathname was not updated when
applying the default URL.
saghul added a commit that referenced this pull request Aug 16, 2018
Yours truly refactored routing in #3222
and broke it. When a bare room is entered the pathname was not updated when
applying the default URL.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
mobile Issue related to any mobile system running Jitsi Meet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants