Skip to content

Disable file provider on macOS 13 Ventura#10021

Merged
i2h3 merged 1 commit into
masterfrom
worktree-10018-ventura
May 12, 2026
Merged

Disable file provider on macOS 13 Ventura#10021
i2h3 merged 1 commit into
masterfrom
worktree-10018-ventura

Conversation

@i2h3
Copy link
Copy Markdown
Collaborator

@i2h3 i2h3 commented May 12, 2026

Closes #10018.

The file provider extension is completely incompatible with macOS 13 Ventura (see #9927). Until a code-level fix is possible, this PR stops exposing the feature on Ventura at runtime. macOS 14 Sonoma and later are unchanged.

A single static gate Mac::FileProvider::available() (returns false on Ventura, true on Sonoma+) is wired in at every user-visible VFS entry point:

  • Wizard defaultOwncloudWizard::useVirtualFileSyncByDefault() returns false on Ventura, so the wizard takes the classic-sync setup path; useVirtualFileSync(), the per-folder check in slotCreateLocalAndRemoteFolders, and the file-provider branch in slotAssistantFinished all naturally follow.
  • Wizard VFS radioOwncloudAdvancedSetupPage no longer auto-selects rVirtualFileSync on Ventura, and initializePage unconditionally hides the radio + layout (even with experimental options enabled).
  • Account settingsAccountSettings skips constructing the file provider settings panel on Ventura and hides it.
  • Startup cleanupApplication instantiates FileProviderSettingsController on Ventura, which now branches in its constructor: skips restoreMissingDomains / reconnectAll / configureXPC, and instead calls a new helper that loops over accounts with a non-empty fileProviderDomainIdentifier and reuses
    the existing setVfsEnabledForAccount(..., false) path. NSFileProviderDomainRemovalModePreserveDirtyUserData keeps any dirty user data on disk, as the issue requires.
  • Defensive guardFileProvider::configureXPC() early-returns on Ventura, so any code path that reaches it is a no-op.

Each Ventura-only branch carries a comment noting it can be removed once Ventura is no longer supported (same precedent as SingleInstanceManager).

@i2h3 i2h3 added this to the 33.0.5 milestone May 12, 2026
@i2h3 i2h3 self-assigned this May 12, 2026
@i2h3 i2h3 added bug os: 🍎 macOS Apple macOS, formerly also known as OS X feature: 📁 file provider macOS File Provider Extension, more general also known as virtual file system. labels May 12, 2026
@github-project-automation github-project-automation Bot moved this to 🧭 Planning evaluation (don't pick) in 💻 Desktop Clients team May 12, 2026
)

  The file provider extension is completely incompatible with macOS 13 Ventura (see #9927). Until a code-level fix is possible, hide the feature at runtime on Ventura while leaving macOS 14 Sonoma and later unchanged.

  A single static gate `Mac::FileProvider::available()` (false on Ventura, true on Sonoma+) is wired in at every user-visible VFS entry point:

  - Wizard default: `OwncloudWizard::useVirtualFileSyncByDefault()` returns false on Ventura so the wizard takes the classic-sync setup path.
  - Wizard VFS radio: `OwncloudAdvancedSetupPage` no longer auto-selects `rVirtualFileSync` on Ventura and `initializePage` unconditionally hides the radio + layout, even with experimental options enabled.
  - Account settings: `AccountSettings` skips constructing the file provider settings panel on Ventura and hides it.
  - Startup cleanup: `Application` instantiates `FileProviderSettingsController` on Ventura. Its constructor now branches — skipping `restoreMissingDomains`, `reconnectAll`, and `configureXPC`, and instead looping over accounts with a non-empty `fileProviderDomainIdentifier` to reuse the existing
  `setVfsEnabledForAccount(..., false)` path. `NSFileProviderDomainRemovalModePreserveDirtyUserData` keeps any dirty user data on disk, as the issue requires.
  - Defensive guard: `FileProvider::configureXPC()` early-returns on Ventura, so any path that reaches it is a no-op.

  Each Ventura-only branch carries a comment noting it can be removed once Ventura is no longer supported (same precedent as `SingleInstanceManager`).

  Fixes #10018

Signed-off-by: Iva Horn <iva.horn@nextcloud.com>
@i2h3 i2h3 force-pushed the worktree-10018-ventura branch from 2b3b879 to 15e7740 Compare May 12, 2026 13:36
@i2h3 i2h3 requested a review from Copilot May 12, 2026 13:36
@i2h3 i2h3 moved this from 🧭 Planning evaluation (don't pick) to 🏗️ In progress in 💻 Desktop Clients team May 12, 2026
@i2h3
Copy link
Copy Markdown
Collaborator Author

i2h3 commented May 12, 2026

/backport to stable-33.0

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@i2h3 i2h3 requested a review from Copilot May 12, 2026 14:02
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
0.0% Coverage on New Code (required ≥ 80%)
46 New Code Smells (required ≤ 0)
D Security Rating on New Code (required ≥ A)
E Maintainability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@i2h3 i2h3 merged commit 739bf17 into master May 12, 2026
26 of 27 checks passed
@i2h3 i2h3 deleted the worktree-10018-ventura branch May 12, 2026 14:51
@github-project-automation github-project-automation Bot moved this from 🏗️ In progress to ☑️ Done in 💻 Desktop Clients team May 12, 2026
i2h3 added a commit that referenced this pull request May 13, 2026
)

The file provider extension is completely incompatible with macOS 13 Ventura (see #9927). Until a code-level fix is possible, hide the feature at runtime on Ventura while leaving macOS 14 Sonoma and later unchanged.

A single static gate `Mac::FileProvider::available()` (false on Ventura, true on Sonoma+) is wired in at every user-visible VFS entry point:

- Wizard default: `OwncloudWizard::useVirtualFileSyncByDefault()` returns false on Ventura so the wizard takes the classic-sync setup path.

- Wizard VFS radio: `OwncloudAdvancedSetupPage` no longer auto-selects `rVirtualFileSync` on Ventura and `initializePage` unconditionally hides the radio + layout, even with experimental options enabled.

- Account settings: `AccountSettings` skips constructing the file provider settings panel on Ventura and hides it.

- Startup cleanup: `FileProviderSettingsController` is instantiated unconditionally at GUI setup time (via the QML singleton registration in `owncloudgui.cpp`). Its constructor now branches — skipping `restoreMissingDomains`, `reconnectAll`, and `configureXPC` on Ventura, and instead looping over accounts with a non-empty `fileProviderDomainIdentifier` to reuse the existing `setVfsEnabledForAccount(..., false)` path. `NSFileProviderDomainRemovalModePreserveDirtyUserData` keeps any dirty user data on disk, as the issue requires.

- Defensive guard: `FileProvider::configureXPC()` early-returns on Ventura, so any path that reaches it is a no-op.

Each Ventura-only branch carries a comment noting it can be removed once Ventura is no longer supported (same precedent as `SingleInstanceManager`).

Note: the original master commit (#10021) also touched `src/gui/application.cpp` to gate a direct `configureXPC()` call there and to instantiate `FileProviderSettingsController` explicitly on Ventura. On stable-33.0 that hunk is unnecessary — `application.cpp` does not call `configureXPC()` directly, and `FileProviderSettingsController::instance()` is already created unconditionally via the QML singleton registration in `src/gui/owncloudgui.cpp`, so the Ventura cleanup path is reached.

Fixes #10018

Signed-off-by: Iva Horn <iva.horn@nextcloud.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug feature: 📁 file provider macOS File Provider Extension, more general also known as virtual file system. os: 🍎 macOS Apple macOS, formerly also known as OS X

Projects

Status: ☑️ Done

Development

Successfully merging this pull request may close these issues.

Disable file provider feature for macOS 13 Ventura

2 participants