Feature/ubisoft connect shared login#627
Open
maxjivi05 wants to merge 3 commits into
Open
Conversation
Each WinNative container is a separate Wine prefix, so a Ubisoft Connect sign-in (stored as files: a session/refresh token) would otherwise have to be repeated per container. Redirect each container's two Ubisoft data directories to a single backing store (imagefs/home/.ubisoft-store) via symlinks at launch, mirroring the existing Steam-client sharing (updateSteamDirectoryVisibility). One sign-in -- including later token refreshes and launcher self-updates -- is then visible to every container. - shareUbisoftConnectLogin() runs each launch in setupWineSystemFiles, after the Steam-visibility block; applied unconditionally and idempotently. - Safe migration: an existing real dir seeds an empty store; a populated store is authoritative and never clobbered (stray local copy preserved as .local-<ts>, not deleted); the per-launch symlink refresh never deletes the store contents. - seedUbisoftLauncherRegistry() writes Ubisoft\Launcher\InstallDir (both the Wow6432Node and 64-bit views) so games can locate upc.exe even when Ubisoft Connect was installed from a different container. - Store lives under home/ so it survives ImageFS reinstalls (clearRootDir preserves only home/).
Builds on the shared-store login work: - Settings > Stores gets a dedicated "Ubisoft Connect" section with a Download button that fetches the Ubisoft Connect installer and installs it (silently, /S) into the default container via ComponentInstaller. The install lands in the shared store, so it covers every container. Once installed the card shows "Installed" and the button is grayed out. No standalone sign-in (the UC login is game-triggered, like GameHub) and no container picker (the shared store makes the choice moot). - Apply GameHub's Ubisoft CEF fix: per-exe HKCU\Software\Wine\AppDefaults\ <exe>\DllOverrides = builtin for dxgi/d3d9/d3d10/d3d10_1/d3d10core/d3d11 on the Uplay helper processes (upc.exe, UbisoftConnect.exe, UplayWebCore.exe, SocialClubHelper.exe, UplayService.exe), applied every launch. This routes their embedded Chromium through WineD3D -> GL(Zink) -> Vulkan instead of the game's DXVK device, so the login/store UI can render. - Seed HKLM Ubisoft\Launcher\InstallDir so games locate the launcher. - Hide the "Ubisoft Connect" launcher shortcut from the game library (ContainerManager.loadShortcuts/upgradeShortcuts skip it) — it's pre-installed plumbing, not a user game.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
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.
No description provided.