Bug 483938

Summary: Allow authorizing through an external web browser again
Product: [Applications] Tokodon Reporter: Joshua Goins <josh>
Component: generalAssignee: Unassigned bugs mailing-list <unassigned-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: carl, josh
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Other   
Latest Commit: Version Fixed In:

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