Cross-Platform Browser Profiles: Same Identity on Any OS
Run Windows browser profiles on macOS or Linux without platform-specific leaks. How cloud browsers achieve cross-platform identity consistency.
Introduction
Windows dominates desktop browser market share. When running automation at scale, presenting a Windows browser identity is often the most statistically natural choice. But if your infrastructure runs on macOS or Linux, dozens of platform-specific signals will contradict your Windows User-Agent.
BotCloud enables true cross-platform profiles: a session claiming to be "Chrome on Windows 10" produces consistent Windows signals regardless of the underlying server OS.
Platform-Specific Signals
Navigator Properties
navigator.platform- "Win32" vs "MacIntel" vs "Linux x86_64"navigator.userAgent- OS string embedded in UAnavigator.userAgentData- Client Hints with platform and platformVersion
Font Availability
Each platform has distinctive default fonts:
- Windows: Segoe UI, Calibri, Consolas, Cambria Math
- macOS: San Francisco, Helvetica Neue, Menlo
- Linux: DejaVu Sans, Liberation Mono, Ubuntu
Font fingerprinting reveals the platform even if the User-Agent claims otherwise.
Text Rendering
The same font renders differently across platforms due to different rendering engines:
- Windows: DirectWrite with ClearType sub-pixel rendering
- macOS: Core Text with Apple's anti-aliasing
- Linux: FreeType with configurable hinting
measureText() returns platform-specific widths and heights.
GPU Renderer Strings
WebGL renderer strings contain platform-specific information:
- Windows: "ANGLE (NVIDIA, NVIDIA GeForce GTX 1080, D3D11)"
- macOS: "ANGLE (Apple, Apple M1, OpenGL 4.1)"
- Linux: "ANGLE (NVIDIA, NVIDIA GeForce GTX 1080, OpenGL 4.6)"
Note the different graphics API suffixes (D3D11 vs OpenGL).
Screen Properties
Default screen dimensions and taskbar positions vary by platform. Windows typically has a taskbar at the bottom reducing availHeight, while macOS has the menu bar reducing availTop.
Why This Matters
If any platform signal contradicts the claimed identity, detection systems can flag the session. Running a "Windows Chrome" session on a Linux server with exposed Linux fonts, FreeType text metrics, and OpenGL renderer strings is trivially detectable.
How BotCloud Handles Cross-Platform
When you select a Windows profile in BotCloud:
navigator.platformreturns "Win32"- Font detection returns Windows-specific fonts
- Text metrics match DirectWrite rendering
- WebGL renderer strings include D3D11 references
- Screen dimensions include Windows taskbar offset
- Client Hints report the correct Windows version
All signals are coordinated from the profile, not from the host operating system. The underlying server OS is invisible to page JavaScript.
Use Cases
Running Windows Profiles from Linux Servers
Most cloud infrastructure runs Linux. BotCloud lets you present Windows browser identities from Linux servers without any platform leakage:
// This session looks like Chrome on Windows, regardless of server OS
const browser = await puppeteer.connect({
browserWSEndpoint: 'wss://bots.win/ws?apiKey=YOUR_API_KEY',
});
Matching Target Demographics
If your target website's audience is primarily Windows users, presenting Windows profiles is statistically normal and less likely to receive scrutiny than less common platforms.
Best Practices
- Use Windows profiles for general-purpose automation - They match the most common desktop browser demographic
- Match the profile to the target market - Japanese e-commerce sites may expect more macOS traffic
- Verify cross-platform consistency - Check that fonts, text metrics, and GPU strings all align
- Keep browser versions current - A Windows profile with an outdated Chrome version is suspicious