Skip to content

ull Request: Windows Support, Multi-Account Grid View, and Privacy Enhancements#611

Open
105211-ui wants to merge 14 commits intorafatosta:mainfrom
105211-ui:feature/win-support-grid
Open

ull Request: Windows Support, Multi-Account Grid View, and Privacy Enhancements#611
105211-ui wants to merge 14 commits intorafatosta:mainfrom
105211-ui:feature/win-support-grid

Conversation

@105211-ui
Copy link

Pull Request: Windows Support, Multi-Account Grid View, and Privacy Enhancements

🚀 Overview

This PR introduces significant features aimed at improving cross-platform compatibility and privacy for power users. Key additions include full Windows build support, a new Grid View for managing multiple accounts simultaneously, WebRTC IP-leak protection, and per-account proxy configurations.

✨ Detailed Changes

🏁 1. Windows Compatibility & Build System

  • Asset Bundling: Updated ZapZap.spec to correctly bundle translations (po), UI files, and the new webrtc_shield.js for Windows builds.
  • Build Scripts: Enhanced run.py with a new --windows build target.
    • Added automatic UI compilation using pyuic6 on Windows.
    • Configured PyInstaller to generate a windowed (GUI) executable.
  • Platform Helpers: Introduced zapzap/platform/ to handle cross-platform pathing and detection more reliably.

🖼️ 2. Multi-Account Grid View

  • Account Overview: Added a new "Grid View" button to the sidebar that displays all active WhatsApp sessions in a visual grid.
  • Thumbnail Generation: Implemented a caching system that captures snapshots of each WebView upon switching, ensuring the grid always shows the last-seen state of each account.
  • Smart Layout: Implemented dynamic grid logic that automatically calculates optimal rows and columns based on the number of active accounts.
  • Quick Switching: Clicking any thumbnail in the grid instantly switches focus to that specific account.

🛡️ 3. Privacy: WebRTC Shield

  • IP Masking: Created webrtc_shield.js, a specialized shim that overrides the browser's RTCPeerConnection API to prevent the leaking of local and public IP addresses.
  • Script Injection: Updated WebView.py to inject the shield immediately upon document creation across all subframes.
  • Control: Added a global "WebRTC Shield" toggle in the Network/Privacy settings page.

🌐 4. Per-Account Proxy Support

  • Granular Control: Redesigned the Network settings UI in PageNetwork.py to include an account selector.
  • Identity Isolation: Updated ProxyManager.py to store and retrieve proxy settings using a per-account prefix. This allows users to assign a different proxy (or none at all) to each WhatsApp instance individually.
  • Switching Logic: The Browser controller now triggers a proxy update whenever the active account is switched, ensuring traffic is routed correctly for the visible session.

🛠️ Testing Performed

  • Windows Build: Verified that python run.py build --windows generates a functional executable in the dist/ folder.
  • WebRTC Leak Test: Confirmed using browserleaks.com/webrtc that real IPs are masked when the shield is enabled.
  • Grid Navigation: Verified smooth transitions between the standard sidebar view and the grid layout.
  • Proxy Isolation: Confirmed that proxy settings for one account do not affect the connectivity of others.

@105211-ui 105211-ui force-pushed the feature/win-support-grid branch from 7d088bb to 8e2166c Compare March 14, 2026 04:34
@rafatosta
Copy link
Owner

A very significant change. I'm reviewing it very calmly and cautiously, but so far I haven't found any problems for me to reject your PR.

Thank you very much for the contribution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants