Remove QtWebEngine#10092
Draft
i2h3 wants to merge 1 commit into
Draft
Conversation
81c9445 to
1ce9d63
Compare
|
❌ The last analysis has failed. |
Closed
Drop the legacy embedded login flow (Flow v1 / WebViewFlow) and every
piece of build, packaging, and signing infrastructure that existed to
support it. The modern OAuth flow (Flow2, used by Nextcloud server
>= 16.0.0) already drives login through the system browser and remains
the only authentication path.
User-visible consequence: Nextcloud servers older than 16.0.0, and any
server advertising the legacy globalscale.desktoplogin=1 capability,
can no longer be added through an in-app embedded browser. Modern
servers are unaffected.
Changes:
- delete src/gui/wizard/webview{,page}.{h,cpp,ui,ui.license}
- drop BUILD_WITH_WEBENGINE option, find_package calls, and
target_link_libraries entries from CMake; drop the cmakedefine in
config.h.in
- remove DetermineAuthTypeJob's WebViewFlow enum value and the
third (OldFlow) capability probe; the job now only runs the GET and
PROPFIND probes
- remove ConfigFile::forceLoginV2 / setForceLoginV2 and the
forceLoginV2 settings key
- drop the useFlow2 boolean machinery: WebFlowCredentialsDialog now
always hosts Flow2AuthWidget, and OwncloudWizard / OwncloudSetupPage
no longer thread a useFlow2 flag
- drop Page_WebView, WebViewPage, the welcomepage WebEngine branch
(Create Account now always opens the system browser), and related
#ifdef WITH_WEBENGINE blocks
- remove --without-webengine flag and buildWithWebEngine craft option
from mac-crafter
- remove signQtWebEngineProcessApp helper from mac-crafter's Signer
- remove the WiX/MSI rule that stripped Qt6WebEngineCore.pdb
- remove qt5.qtwebengine (and the now-dead isARM helper) from the Nix
flake
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Iva Horn <iva.horn@nextcloud.com>
1ce9d63 to
8faf717
Compare
|
Artifact containing the AppImage: nextcloud-appimage-pr-10092.zip Digest: To test this change/fix you can download the above artifact file, unzip it, and run it. Please make sure to quit your existing Nextcloud app and backup your data. |
Collaborator
Author
|
This is ready for review but @Rello explicitly asked for keeping it as a draft to prevent merging until dependent issues in other projects are resolved first. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Removes the QtWebEngine dependency from the desktop client. QtWebEngine existed in this codebase only to host the legacy embedded login flow (Flow v1 /
WebViewFlow) used during account setup and reauth. The modern OAuth flow (Flow2, used for any Nextcloud server >= 16.0.0) already drives login through the system browser and remains the only authentication path after this change.src/gui/wizard/webview{,page}.{h,cpp,ui}).WITH_WEBENGINECMake option,find_packagelookups, andtarget_link_librariesentries; drops the#cmakedefine WITH_WEBENGINEfromconfig.h.in.#ifdef WITH_WEBENGINEblock — keeping only the "without" branch — and removes the now-deaduseFlow2/forceLoginV2boolean machinery, theWebViewFlowauth type, thePage_WebViewwizard page, and theOldFlowcapability probe inDetermineAuthTypeJob(which existed solely to detect Flow-v1-requiring servers).--without-webengineand thebuildWithWebEnginecraft option from mac-crafter, removessignQtWebEngineProcessAppfrom the macOS signer, removes the WiX rule that strippedQt6WebEngineCore.pdbfrom the MSI, and removesqt5.qtwebenginefrom the Nix flake.User-visible consequence
Nextcloud servers older than 16.0.0 (and any server advertising the legacy
globalscale.desktoplogin=1capability — historically used by Global Scale deployments) can no longer be added through an in-app embedded browser. Modern servers are unaffected: login continues to go through the system browser via Flow2.Follow-up
The macOS build invokes a separate craft blueprint repo that defines
buildWithWebEngineas a blueprint option. With this PR, mac-crafter stops passing it. A follow-up PR to that blueprint repo can drop the option there too; it's not blocking.Test plan
cmake -S . -B buildconfigures cleanly with nofind_package(Qt6WebEngineCore)/find_package(Qt6WebEngineWidgets)output and noWITH_WEBENGINEin the generatedbuild/config.h.cmake --build buildcompletes without errors on Linux.grep -rn 'WITH_WEBENGINE\|WebEngine\|Page_WebView\|WebViewFlow\|forceLoginV2\|useFlow2\|signQtWebEngine' src/ admin/ CMakeLists.txt config.h.inreturns nothing.WebFlowCredentialsDialogshows the Flow2 polling widget (not anything Chromium-based) and recovers credentials.swift run mac-crafter build) succeeds and the resulting.appdoes not containContents/Frameworks/QtWebEngineCore.framework.QtWebEngine*files (7z l nextcloud-*.msi | grep -i webengineempty).🤖 Generated with Claude Code
Dependencies
This must be integrated before QtWebEngine can be excluded from the build environment which must happen in upstream changes tracked by this issue:
nextcloud/desktop-client-blueprints#37