Bug 483938 - Allow authorizing through an external web browser again
Summary: Allow authorizing through an external web browser again
Status: RESOLVED FIXED
Alias: None
Product: Tokodon
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Other Other
: NOR normal
Target Milestone: ---
Assignee: Unassigned bugs mailing-list
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-03-18 20:16 UTC by Joshua Goins
Modified: 2024-04-16 20:37 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Joshua Goins 2024-03-18 20:16:38 UTC
This is better on desktops, the reason why the behavior changed to in-app was for mobile and especially Android.

It should also be possible to force this behavior to avoid a webengine dependency, as required by some distributions: https://invent.kde.org/network/tokodon/-/issues/62
Comment 1 Bug Janitor Service 2024-04-07 19:03:12 UTC
A possibly relevant merge request was started @ https://invent.kde.org/network/tokodon/-/merge_requests/489
Comment 2 Joshua Goins 2024-04-16 20:37:43 UTC
Git commit 21f14929eb7037ef591d84c4502af6255600d595 by Joshua Goins.
Committed on 16/04/2024 at 20:20.
Pushed by redstrate into branch 'master'.

Make QtWebView optional, overhaul auth (again)

Our current authentication system uses an in-app QtWebView. However,
WebView isn't available on all systems and arguably this only makes
sense for mobile.

So now this is how the authorization should've worked before:

* On desktop systems, the external browser method is preferred. Unless
you're running on a debug build, and Tokodon will choose the auth code
method for you. This is to prevent gotchas when you forgot to install
the .desktop file and other gubbins required for that feature to work.
* On mobile systems, the in-app web browser is preferred if QtWebView
is available.
* On other systems who don't want QtWebView, they can turn it off via
USE_QTWEBVIEW and Tokodon will fall back automatically.

M  +6    -1    CMakeLists.txt
M  +16   -2    src/CMakeLists.txt
M  +6    -4    src/account/abstractaccount.cpp
M  +3    -1    src/account/abstractaccount.h
M  +9    -3    src/account/account.cpp
M  +3    -0    src/account/account.h
D  +0    -58   src/content/ui/LoginFlow/AuthorizationPage.qml
A  +107  -0    src/content/ui/LoginFlow/BaseAuthorization.qml     [License: GPL(3+eV) GPL(v3.0) GPL(v2.0)]
A  +31   -0    src/content/ui/LoginFlow/BrowserAuthorization.qml     [License: GPL(3+eV) GPL(v3.0) GPL(v2.0)]
A  +38   -0    src/content/ui/LoginFlow/CodeAuthorization.qml     [License: GPL(3+eV) GPL(v3.0) GPL(v2.0)]
M  +70   -7    src/content/ui/LoginFlow/LoginPage.qml
A  +45   -0    src/content/ui/LoginFlow/WebViewAuthorization.qml     [License: GPL(3+eV) GPL(v3.0) GPL(v2.0)]
M  +2    -2    src/content/ui/LoginFlow/WelcomePage.qml
M  +6    -0    src/main.cpp
M  +18   -0    src/utils/navigation.cpp
M  +10   -0    src/utils/navigation.h

https://invent.kde.org/network/tokodon/-/commit/21f14929eb7037ef591d84c4502af6255600d595