-
Notifications
You must be signed in to change notification settings - Fork 806
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
Add support for compiling without QtWebEngine (webflow / flow2 support) -- rebased #2204
Conversation
A version that doesn't use the QtWebEngine would also solve #587 |
Personally I'm not much in love with yet another build time option which will mean either another entry in our CI matrix which would need to be checked (unlikely) or a combination which will break after a while (more likely). My understanding is that what pulls the QtWebEngineWidgets dependency really is the wizard bits, not really the flow2 auth itself. Redesigning that wizard step to not depend on QtWebEngineWidgets would look like a better path forward to me. |
As far as I see, the wizard simply displays the server's standard login page, which is a) an easy option and b) preserves the server's theming, which is nice. How would you suggest changing that? |
kubelogin opens oauth in the user’s webbrowser. Maybe a similar approach could be used here? |
Well, I guess we got some confusion to untangle... AFAIK the old webflow indeed displays the server's login page, so it'd be harder to replace. Flow2 shouldn't need it though since it opens the browser instead. |
I think it would be good to have an official statement whether:
Personally I would like to see this PR merged, or otherwise there may be another way to get rid of the webengine dependency. |
Well, as I mentioned earlier in its current form I don't think it's going into the right direction. It's taking to much of an axe through the auth schemes. At least it should preserve the flow2 auth. I'd understand why it'd need to disable webflow (where the browser had to be in the client) but not flow2 (where it triggers an outside browser using QDesktopServices). |
I'll take another look at flow2 when I get the chance then. I believe it was still pulling in webengine somehow, but I could be mistaken or that may no longer be the case.
|
You might be right that it still pulls webengine somehow, if that's the case I wonder why and I suspect it shouldn't so we'd better get that fixed. |
Allright, thanks for the feedback! I see that
I'm not sure how to handle this... Edit: I applied the commit 8460c8c to this branch. |
Yes, well... it should never create the WebView in there. This credentials class is reused between webflow and flow2 because the credentials storage is the same between the two approaches. It should never get in any of the branches leading to the creation of a WebView though (this needs to be verified of course). In that case said branches can likely be ifndef'd, that should be the last bit linking to QtWebEngine in your case I think. Once you get there I think you can reenable LoginFlow2 in networkjobs.cpp (I see it is still replaced with Basic but that shouldn't be necessary anymore and that's what I'm trying to avoid). |
Ok, I will check it once I find the time. Everybody is welcome to contribute to this issue. Just ask for access to my branch. |
Signed-off-by: Max Rees <maxcrees@me.com> Signed-off-by: theova <theova@member.fsf.org>
Signed-off-by: theova <theova@member.fsf.org>
AppImage file: Nextcloud-PR-2204-1f577e539ac8d7894a8090a6d54abf88c3e37a26-x86_64.AppImage |
Hi, the included appimage binary works in a vnc / xfce4 setup that wouldn't work otherwise in a similar setup as the one mentionned on #587 ! And so, it would be good to have a non-qtwebengine binary available more generally (or through compile option…) |
@@ -176,6 +176,13 @@ if(NO_SHIBBOLETH) | |||
add_definitions(-DNO_SHIBBOLETH=1) | |||
endif() | |||
|
|||
# Disable webengine-based components | |||
option(NO_WEBENGINE "Build without webflow / flow2 support so QtWebEngine isn't required" OFF) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In my opinion this should be called something like WITH_WEBFLOW, because this is the feature to be enabled/disabled, with ON as default. The consequence of being enabled is that webengine is pulled in. Thinking as a Gentoo user the use-flag of the nextcloud-client would be something like webflow
. A feature like webengine
would suggest that there is an alternative, like qtwebkit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just saw that there is also a NO_SHIBBOLETH and hence the negative-form NO_WEBFLOW should be preserved for consistency.
Thanks for asking. I don't have time to work on this issue. Maybe I'll come back to it. Then a separate pr removing flow2 would definitely help! So this PR can be closed for me... |
@theova Thanks for your reply :) I was speaking of removing flow1, not flow2. flow2 is the mein authentication mechanism :) |
Still enabled by default Fixes nextcloud#856 nextcloud#932 Supersedes nextcloud#1808 nextcloud#2204
Still enabled by default Fixes: nextcloud#856 nextcloud#932 Supersedes: nextcloud#1808 nextcloud#2204 Signed-off-by: Max Rees <maxcrees@me.com>
Still enabled by default Fixes: nextcloud#856 nextcloud#932 Supersedes: nextcloud#1808 nextcloud#2204 Signed-off-by: Max Rees <maxcrees@me.com>
Still enabled by default Fixes: nextcloud#856 nextcloud#932 Supersedes: nextcloud#1808 nextcloud#2204 Signed-off-by: Max Rees <maxcrees@me.com>
The only component that still uses QtWebEngine at this point is the providers functionality (WITH_PROVIDERS). However, you can now also set WITH_WEBENGINE=OFF and the providers functionality (if enabled) will still work - it will just open a link in the external browser instead. Fixes: nextcloud#856 nextcloud#932 Supersedes: nextcloud#1808 nextcloud#2204 Signed-off-by: Max Rees <maxcrees@me.com>
The only component that still uses QtWebEngine at this point is the providers functionality (WITH_PROVIDERS). However, you can now also set WITH_WEBENGINE=OFF and the providers functionality (if enabled) will still work - it will just open a link in the external browser instead. Fixes: nextcloud#856 nextcloud#932 Supersedes: nextcloud#1808 nextcloud#2204 Signed-off-by: Max Rees <maxcrees@me.com>
The only component that still uses QtWebEngine at this point is the providers functionality (WITH_PROVIDERS). However, you can now also set WITH_WEBENGINE=OFF and the providers functionality (if enabled) will still work - it will just open a link in the external browser instead. Fixes: nextcloud#856 nextcloud#932 Supersedes: nextcloud#1808 nextcloud#2204 Signed-off-by: Max Rees <maxcrees@me.com>
A rebase of @sroracle's branch, see #1808 :