Files
privacy.sexy/docs/desktop-vs-web-features.md
undergroundwires c546a33eff Show native save dialogs in desktop app #50, #264
This commit introduces native operating system file dialogs in the
desktop application replacing the existing web-based dialogs.

It lays the foundation for future enhancements such as:

- Providing error messages when saving or executing files, addressing
  #264.
- Creating system restore points, addressing #50.

Documentation updates:

- Update `desktop-vs-web-features.md` with added functionality.
- Update `README.md` with security feature highlights.
- Update home page documentation to emphasize security features.

Other supporting changes include:

- Integrate IPC communication channels for secure Electron dialog API
  interactions.
- Refactor `IpcRegistration` for more type-safety and simplicity.
- Introduce a Vue hook to encapsulate dialog functionality.
- Improve errors during IPC registration for easier troubleshooting.
- Move `ClientLoggerFactory` for consistency in hooks organization and
  remove `LoggerFactory` interface for simplicity.
- Add tests for the save file dialog in the browser context.
- Add `Blob` polyfill in tests to compensate for the missing
  `blob.text()` function in `jsdom` (see jsdom/jsdom#2555).

Improve environment detection logic:

- Treat test environment as browser environments to correctly activate
  features based on the environment. This resolves issues where the
  environment is misidentified as desktop, but Electron preloader APIs
  are missing.
- Rename `isDesktop` environment identification variable to
  `isRunningAsDesktopApplication` for better clarity and to avoid
  confusion with desktop environments in web/browser/test environments.
- Simplify `BrowserRuntimeEnvironment` to consistently detect
  non-desktop application environments.
- Improve environment detection for Electron main process
  (electron/electron#2288).
2024-01-13 18:04:23 +01:00

3.2 KiB

Desktop vs. Web Features

This table highlights differences between the desktop and web versions of privacy.sexy.

Feature Desktop Web
Usage without installation 🔴 Not available 🟢 Available
Offline usage 🟢 Available 🟡 Partially available
Auto-updates 🟢 Available 🟢 Available
Logging 🟢 Available 🔴 Not available
Script execution 🟢 Available 🔴 Not available

Feature descriptions

Usage without installation

You can use the web version directly in a browser without installation. The desktop version requires download and installation.

Note for Linux users: On Linux, privacy.sexy is available as an AppImage, a portable format that doesn't need traditional installation. This allows Linux users to use the desktop version without full installation, akin to the web version.

Offline usage

The web version, once loaded, supports offline use. Desktop version inherently allows offline usage.

Auto-updates

Both the desktop and web versions of privacy.sexy provide timely access to the latest features and security improvements. The updates are automatically deployed from source code, reflecting the latest changes for enhanced security and reliability. For more details, see CI/CD documentation.

The desktop version ensures secure delivery through cryptographic signatures and version checks.

Security is a top priority at privacy.sexy.

Note for macOS users: On macOS, the desktop version's auto-update process involves manual steps due to Apple's code signing costs. Users get notified about updates but might need to complete the installation manually. Consider donating to help improve this process ❤️.

Logging

The desktop version supports logging of activities to aid in troubleshooting. This feature is not available in the web version.

Log file locations vary by operating system:

  • macOS: $HOME/Library/Logs/privacy.sexy
  • Linux: $HOME/.config/privacy.sexy/logs
  • Windows: %APPDATA%\privacy.sexy\logs

Script execution

The desktop version of privacy.sexy enables direct script execution, providing a seamless and integrated experience. This direct execution capability isn't available in the web version due to inherent browser restrictions.

Logging and storage:

For enhanced auditability and easier troubleshooting, the desktop version keeps a record of executed scripts in designated directories. These locations vary based on the operating system:

  • macOS: $HOME/Library/Application Support/privacy.sexy/runs
  • Linux: $HOME/.config/privacy.sexy/runs
  • Windows: %APPDATA%\privacy.sexy\runs

Native file system dialogs:

The desktop version uses native system file save dialogs, offering more features and reliability compared to the browser's file system dialogs. These native dialogs provide a more integrated and user-friendly experience, aligning with the operating system's standard interface and functionalities.