Compare / browsers
WebKit vs the Safari it claims to be
Playwright's WebKit 26.4 sends a Mac Safari 26.4 user agent, but reports Linux x86_64, sets navigator.webdriver, offers only HTTP/1.1, renders with Linux fonts and has no WebGPU — while already exposing CSS from Safari 27.0. What it is good for, and every place a page can see it isn't Safari on a Mac or an iPhone.
WebKit on the fleet is the WebKit build that ships with Playwright, compiled for Linux — browser.version() 26.4 on 2026-11-13. Its user agent says it is Safari 26.4 on a Mac. This page puts the two side by side: what the user agent and Playwright's Desktop Safari and iPhone 15 descriptors claim, what a page and the network actually measure, and what Apple's release notes say Safari itself ships. It is measurement documentation for testers and scrapers, not a guide to hiding any of it. The comparison with Chromium is on WebKit vs Chromium.
What it claims, what it is
| What the user agent claims | What the fleet's WebKit measures | |
|---|---|---|
| Browser version | Version/26.4 Safari/605.1.15 — Safari 26.4 (Safari 26.4 notes (2026-03-24)). Safari is at 27.2 since 2026-10-26 (Safari 27.2 notes (2026-10-26)). | A WebKit build between releases: it has 26.5's :open, Origin and ToggleEvent.source (26.5 (2026-05-11)) and 27.0's width: stretch, :heading, revert-rule, ReadableStream.from(), appearance: base-select, overflow-anchor and WebAssembly JSPI (Safari 27.0 notes (2026-09-17)), and still the flow-tolerance name that 27.2 renamed to fit-tolerance (measured). |
| Operating system | Macintosh; Intel Mac OS X 10_15_7 — a frozen string; Safari on macOS freezes the OS version (Safari 26.0 notes (2025-09-15)). | navigator.platform Linux x86_64; navigator.appVersion repeats the Mac string (measured). |
| Automation | — | navigator.webdriver is true, headful and headless; bot.sannysoft.com fails "WebDriver (New)" and "Chrome (New)" of 57 checks (measured). |
| Vendor and client hints | navigator.vendor "Apple Computer, Inc.", no navigator.userAgentData. | The same — consistent with WebKit (measured). |
| Graphics | WebGL vendor "Apple Inc.", renderer "Apple GPU", WebGL 2.0. | Exactly these strings on a server with no GPU, so they are fixed values, not the hardware (measured). No WebGPU (navigator.gpu absent), which Safari 26.0 ships on macOS, iOS, iPadOS and visionOS (Safari 26.0 notes (2025-09-15)). |
| Network | An Apple browser. caniuse (checked 2026-11-13) lists HTTP/2 in Safari from 11 on macOS and 9 on iOS. | TLS ALPN offers only http/1.1, http/1.0, so every HTTPS site gets HTTP/1.1; JA4 t13d2913h1_723694b0fccc_5671b5df5029 (29 ciphers, 13 extensions). Request header order: Accept, User-Agent, Accept-Encoding, Accept-Language, Connection, Host, Sec-Fetch-Dest/Mode/Site (measured). |
| Fonts | A Mac's fonts. | None of -apple-system, SF Pro, Helvetica Neue, Menlo, Monaco, Lucida Grande, Geneva, Avenir, Futura, Georgia, Verdana, PingFang SC, Hiragino Sans or Apple Color Emoji. Present: Liberation Sans/Serif/Mono, Noto Sans, Noto Color Emoji, FreeSans; Helvetica and Arial render with Liberation Sans's metrics, Times with Liberation Serif's, Courier with Liberation Mono's (measured). |
| Media | Native HLS: caniuse (checked 2026-11-13) lists it in Safari from 6 on macOS and 3.2 on iOS. | canPlayType('application/vnd.apple.mpegurl') is "" — no native HLS. H.264, HEVC, AAC, VP9, AV1 and Opus answer "probably"; MediaSource and ManagedMediaSource exist (measured). |
| Apple-platform APIs | Apple Pay, AirPlay, Web Push (caniuse, checked 2026-11-13: Safari 18 on macOS, 16.4 on iOS), File System WritableStream and the Digital Credentials API (both Safari 26.0 notes (2025-09-15)). | ApplePaySession, -apple-pay-button-style, the AirPlay picker, PushManager, navigator.share, FileSystemWritableFileStream and DigitalCredential are all absent; 27.0's srgb-linear canvas colour space too. window.safari, GestureEvent and webkitEnterFullscreen exist (measured). |
Headful and headless are the same browser
- Both report the same user agent — WebKit adds no "Headless" token — the same JA4,
navigator.webdrivertrue, WebGL strings, canvas hash25c86b3f, feature set and the same two sannysoft failures (measured). - The one page-visible difference: headless has
outerWidth×outerHeightequal to the viewport (1280×720), headful has 38 px of window chrome (1280×758). - Headless costs one thread instead of two and launched in 0.4 s against 0.7 s in this run.
What the device descriptors change
devices['Desktop Safari']sends the same user agent WebKit already sends and changes only the pixel ratio (2) andscreen(1792×1120); the viewport stays 1280×720 (measured).devices['iPhone 15']sets the iPhone user agentiPhone OS 17_5 … Version/26.4 Mobile/15E148 Safari/604.1, a 393×659 viewport on a 393×852 screen, pixel ratio 3,ontouchstart,pointer: coarseand no hover (measured).- It leaves
navigator.platformLinux x86_64,maxTouchPoints0,navigator.webdrivertrue, nonavigator.standalone, no-webkit-touch-callout, and the same HTTP/1.1, JA4, fonts and missing WebGPU (measured). - The user agent pairs
iPhone OS 17_5withVersion/26.4. Apple's notes give Safari 26.0 on iOS asiPhone OS 18_6 … Version/26.0: from 26 on, iOS freezes the OS version the way macOS does (Safari 26.0 notes (2025-09-15)). So the descriptor's string is not one Safari 26 sends. - As with an iPhone descriptor on Chrome (case 02), a descriptor changes layout inputs, not the platform underneath. For a real iOS WebView, see iPhone.
What a site can use to tell it isn't Safari on a Mac or an iPhone
navigator.platformLinux x86_64under a Macintosh or iPhone user agent.navigator.webdrivertrue.- HTTP/1.1 only (ALPN without
h2) and its JA4, where Safari speaks HTTP/2 — visible before any page script runs (TLS fingerprints). - No WebGPU, no native HLS, no Apple Pay, AirPlay or Push API — features the claimed version ships on Apple platforms.
- Linux font metrics: no Apple system fonts, Noto Color Emoji instead of Apple Color Emoji.
- A feature set that doesn't match the version in the user agent: 27.0 features under
Version/26.4. - On the iPhone descriptor, also
maxTouchPoints0 with touch events, and an iOS 17 string beside a Safari 26 version.
What it is good for
- Engine and layout testing: how WebKit lays out a page — anchor positioning, Grid Lanes,
text-wrap: pretty, customizable<select>, scroll-driven animations — and WebKit-specific bugs, including mobile viewports with a device descriptor. It runs ahead of the Safari release its user agent names, so treat it as "WebKit trunk", not as a specific Safari version. - Not for pixel comparisons with a Mac: text renders with Linux fonts, so screenshots won't match Safari on macOS or iOS.
- Not for Apple-only features: Apple Pay, AirPlay, native HLS, WebGPU and Web Push can't be tested here.
- Not as a Safari visitor: every row above is readable by a site. For scraping, see WebKit vs Chromium and What a page can read about your browser.
Measured on the fleet (2026-11-13)
Two launches through the same proxy, headful (the default) and headless, probed from inside a page and via tls.peet.ws. The descriptor, font, codec, Apple-API and release-note feature rows above come from a one-off run in a third, headful session the same night (no descriptor, Desktop Safari, iPhone 15 contexts); its raw result is under descriptor_contexts below.
Launch and cost
Single run; timings depend on the proxy and on fleet load.
| WebKit headful | WebKit headless | |
|---|---|---|
| Launch body | {"headless":false} | {"headless":true} |
| Threads used | 2 (linux_headful) | 1 (linux_headless) |
| Browser version | 26.4 | 26.4 |
| Launch request → browser ready | 0.7 s | 0.4 s |
| Playwright connect | 0.1 s | 0.0 s |
| Load example.com | 1.9 s | 0.5 s |
| Load tls.peet.ws/api/all | 2.0 s | 1.4 s |
What the network sees
From tls.peet.ws/api/all, requested by the browser itself. JA3 hashes change between runs of the same build (GREASE), so compare JA4 and the HTTP/2 fingerprint.
| WebKit headful | WebKit headless | |
|---|---|---|
| HTTP version | HTTP/1.1 | HTTP/1.1 |
| JA4 | t13d2913h1_723694b0fccc_5671b5df5029 | t13d2913h1_723694b0fccc_5671b5df5029 |
| Peetprint hash | e2a4f6ec1c75767498bc87d934bfccec | e2a4f6ec1c75767498bc87d934bfccec |
| Cipher suites / extensions | 29 / 13 | 29 / 13 |
What page scripts see
Read with page.evaluate on example.com. Cores and memory are the server's and vary between fleet nodes.
| WebKit headful | WebKit headless | |
|---|---|---|
| navigator.userAgent | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15 | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15 |
| navigator.platform / vendor | Linux x86_64 / Apple Computer, Inc. | Linux x86_64 / Apple Computer, Inc. |
| Languages | en-US | en-US |
| Timezone / locale | UTC / en-US | UTC / en-US |
| Screen (w×h×availW×availH×depth) | 1280x720x1280x720x24 | 1280x720x1280x720x24 |
| Window outer / inner / DPR | 1280x758 / 1280x720 / 1 | 1280x720 / 1280x720 / 1 |
| hardwareConcurrency / deviceMemory | 8 / — | 8 / — |
| WebGL vendor | Apple Inc. | Apple Inc. |
| WebGL renderer | Apple GPU | Apple GPU |
| WebGL version | WebGL 2.0 | WebGL 2.0 |
| WebGPU (navigator.gpu) | no | no |
| Canvas hash | 25c86b3f | 25c86b3f |
| navigator.webdriver | yes | yes |
| window.chrome / navigator.connection | no / no | no / no |
| Plugins / PDF viewer | 5 / yes | 5 / yes |
| Notification.permission / permissions.query | default / prompt | default / prompt |
Web platform features
Presence probes; a user agent that claims one version while exposing another's features is a detectable inconsistency.
| WebKit headful | WebKit headless | |
|---|---|---|
Iterator.prototype.includes (new in Chrome 154) | no | no |
FontFace.width (new in Chrome 154) | yes | yes |
CSS text-decoration-inset (Chrome 157) | no | no |
Iterator.prototype.join (Chrome 153) | no | no |
Iterator.zip (Chrome 153) | no | no |
CSS scroll-axis-lock (Chrome 153) | no | no |
<camera> element (Chrome 153) | no | no |
document.requestStorageAccessFor (deprecated in 153) | no | no |
Topics API (document.browsingTopics) | no | no |
Protected Audience (navigator.joinAdInterestGroup) | no | no |
Shared Storage (window.sharedStorage) | no | no |
Attribution Reporting (window.attributionReporting) | no | no |
| Private Aggregation | no | no |
WebHID (navigator.hid) | no | no |
CSS margin-trim (Chrome 155) | yes | yes |
CSS text-decoration-skip-spaces (Chrome 155) | no | no |
CSS corner shorthand (listed for Chrome 160) | no | no |
CSS symbols() (Chrome 155) | no | no |
Element.streamAppendHTML (Chrome 157) | no | no |
WebTransport.reliability (on stable from Chrome 157; listed for 158) | yes | yes |
window.maximize() — Additional Windowing Controls (Chrome 155) | no | no |
Canvas srgb-linear colour space (on stable from Chrome 157) | no | no |
Permission policy media-playback-while-not-visible (Chrome 155) | no | no |
CSS random() (Chrome 156) | yes | yes |
CSS scroll-snap-type: pair (Chrome 156) | no | no |
Fenced frames (window.fence) | no | no |
rel=compression-dictionary (Chrome 156 updates) | no | no |
bot.sannysoft.com
The classic headless-detection test page; what it marks red.
| WebKit headful | WebKit headless | |
|---|---|---|
| Checks / failed | 57 / 2 | 57 / 2 |
| Failed checks | WebDriver (New), Chrome (New) | WebDriver (New), Chrome (New) |
A plain-HTTP URL (http://ip-api.com/json)
Chrome 154 warns before loading insecure HTTP by default — does that reach an automated session?
| WebKit headful | WebKit headless | |
|---|---|---|
| Final URL | http://ip-api.com/json/?fields=status | http://ip-api.com/json/?fields=status |
| HTTP status | 200 | 200 |
| Content loaded / warning page first | yes / no | yes / no |
Playwright over the remote connection
Which client features work on this side.
| WebKit headful | WebKit headless | |
|---|---|---|
| page.evaluate runs in the page's own world | yes | yes |
| addInitScript visible to page scripts | yes | yes |
| Console events | yes | yes |
| Request interception (page.route) | yes | yes |
| Screenshot | yes | yes |
| no — Error: page.pdf: PDF generation is only supported for Headless Chromium | no — Error: page.pdf: PDF generation is only supported for Headless Chromium | |
| Mobile device emulation | yes | yes |
| Tracing | yes | yes |
Rows where the two sides differ are highlighted. IP addresses are replaced with placeholders (203.0.113.x). The probe is compare/probe.mjs in our repository; the raw result is below.
Raw output
{
"ran_at": "2026-11-13T02:04:40.661Z",
"sides": [
{
"label": "WebKit headful",
"engine": "webkit",
"body": {
"headless": false
},
"launch": {
"browser": "webkit",
"resource_class": "linux_headful",
"weight": 2,
"launch_ms": 670,
"connect_ms": 150,
"example_ms": 1891,
"peet_ms": 2038
},
"network": {
"http_version": "HTTP/1.1",
"ja4": "t13d2913h1_723694b0fccc_5671b5df5029",
"ja3_hash": "2cbcec37dfff29e4c6a34dd35ebe1d70",
"peetprint_hash": "e2a4f6ec1c75767498bc87d934bfccec",
"ciphers": 29,
"extensions": 13,
"header_order": null
},
"page": {
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15",
"platform": "Linux x86_64",
"vendor": "Apple Computer, Inc.",
"languages": [
"en-US"
],
"hardware_concurrency": 8,
"device_memory": null,
"max_touch_points": 0,
"webdriver": true,
"plugins": 5,
"pdf_viewer": true,
"ua_data": null,
"screen": "1280x720x1280x720x24",
"window": {
"outer": "1280x758",
"inner": "1280x720",
"dpr": 1
},
"timezone": "UTC",
"locale": "en-US",
"webgl": {
"vendor": "Apple Inc.",
"renderer": "Apple GPU",
"version": "WebGL 2.0"
},
"canvas_hash": "25c86b3f",
"webgpu": false,
"chrome_object": false,
"chrome_runtime": false,
"notification_permission": "default",
"notification_query": "prompt",
"has_focus": true,
"connection_api": false,
"stack_read_by_debugger": false,
"features": {
"iterator_includes": false,
"iterator_join": false,
"iterator_zip": false,
"fontface_width": true,
"css_text_decoration_inset": false,
"css_scroll_axis_lock": false,
"websocket_options_bag": null,
"camera_element": false,
"topics_api": false,
"protected_audience": false,
"shared_storage": false,
"attribution_reporting": false,
"request_storage_access_for": false,
"webhid": false,
"private_aggregation": false,
"css_margin_trim": true,
"css_text_decoration_skip_spaces": false,
"css_corner_shorthand": false,
"css_symbols": false,
"stream_append_html": false,
"webtransport_reliability": true,
"window_maximize": false,
"canvas_srgb_linear": false,
"policy_media_playback_while_not_visible": false,
"css_random": true,
"css_scroll_snap_pair": false,
"fenced_frames": false,
"compression_dictionary": false
}
},
"page_main_world": null,
"sannysoft": {
"checks": 57,
"failed": 2,
"failed_names": [
"WebDriver (New)",
"Chrome (New)"
],
"passed": 29
},
"plain_http": {
"final_url": "http://ip-api.com/json/?fields=status",
"status": 200,
"title": "",
"loaded": true,
"warning_page": false,
"page_text": "{\"status\":\"success\"}"
},
"playwright": {
"evaluate_in_main_world": true,
"console_events": true,
"init_script": true,
"route": true,
"screenshot": true,
"pdf": false,
"pdf_error": "Error: page.pdf: PDF generation is only supported for Headless Chromium",
"mobile_emulation": true,
"tracing": true
},
"browser_version": "26.4"
},
{
"label": "WebKit headless",
"engine": "webkit",
"body": {
"headless": true
},
"launch": {
"browser": "webkit",
"resource_class": "linux_headless",
"weight": 1,
"launch_ms": 442,
"connect_ms": 17,
"example_ms": 466,
"peet_ms": 1402
},
"network": {
"http_version": "HTTP/1.1",
"ja4": "t13d2913h1_723694b0fccc_5671b5df5029",
"ja3_hash": "2cbcec37dfff29e4c6a34dd35ebe1d70",
"peetprint_hash": "e2a4f6ec1c75767498bc87d934bfccec",
"ciphers": 29,
"extensions": 13,
"header_order": null
},
"page": {
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15",
"platform": "Linux x86_64",
"vendor": "Apple Computer, Inc.",
"languages": [
"en-US"
],
"hardware_concurrency": 8,
"device_memory": null,
"max_touch_points": 0,
"webdriver": true,
"plugins": 5,
"pdf_viewer": true,
"ua_data": null,
"screen": "1280x720x1280x720x24",
"window": {
"outer": "1280x720",
"inner": "1280x720",
"dpr": 1
},
"timezone": "UTC",
"locale": "en-US",
"webgl": {
"vendor": "Apple Inc.",
"renderer": "Apple GPU",
"version": "WebGL 2.0"
},
"canvas_hash": "25c86b3f",
"webgpu": false,
"chrome_object": false,
"chrome_runtime": false,
"notification_permission": "default",
"notification_query": "prompt",
"has_focus": true,
"connection_api": false,
"stack_read_by_debugger": false,
"features": {
"iterator_includes": false,
"iterator_join": false,
"iterator_zip": false,
"fontface_width": true,
"css_text_decoration_inset": false,
"css_scroll_axis_lock": false,
"websocket_options_bag": null,
"camera_element": false,
"topics_api": false,
"protected_audience": false,
"shared_storage": false,
"attribution_reporting": false,
"request_storage_access_for": false,
"webhid": false,
"private_aggregation": false,
"css_margin_trim": true,
"css_text_decoration_skip_spaces": false,
"css_corner_shorthand": false,
"css_symbols": false,
"stream_append_html": false,
"webtransport_reliability": true,
"window_maximize": false,
"canvas_srgb_linear": false,
"policy_media_playback_while_not_visible": false,
"css_random": true,
"css_scroll_snap_pair": false,
"fenced_frames": false,
"compression_dictionary": false
}
},
"page_main_world": null,
"sannysoft": {
"checks": 57,
"failed": 2,
"failed_names": [
"WebDriver (New)",
"Chrome (New)"
],
"passed": 29
},
"plain_http": {
"final_url": "http://ip-api.com/json/?fields=status",
"status": 200,
"title": "",
"loaded": true,
"warning_page": false,
"page_text": "{\"status\":\"success\"}"
},
"playwright": {
"evaluate_in_main_world": true,
"console_events": true,
"init_script": true,
"route": true,
"screenshot": true,
"pdf": false,
"pdf_error": "Error: page.pdf: PDF generation is only supported for Headless Chromium",
"mobile_emulation": true,
"tracing": true
},
"browser_version": "26.4"
}
],
"descriptor_contexts": {
"note": "One-off run in one headful WebKit session, three contexts: no descriptor, Playwright devices[\"Desktop Safari\"], devices[\"iPhone 15\"]. Network from tls.peet.ws/api/all; the rest read with page.evaluate on example.com. Fonts: a family is present when \"<family>, serif\" or \"<family>, Liberation Mono\" measures differently from the fallback alone (width = 48px test string). Features: presence probes for items from WebKit's Safari 26.0–27.2 release notes.",
"ran_at": "2026-11-13T02:07:50.847Z",
"body": {
"headless": false
},
"browser_version": "26.4",
"contexts": {
"no descriptor": {
"network": {
"http_version": "HTTP/1.1",
"ja4": "t13d2913h1_723694b0fccc_5671b5df5029",
"alpn": [
"http/1.1",
"http/1.0"
],
"http1_headers": [
"Accept",
"User-Agent",
"Accept-Encoding",
"Accept-Language",
"Connection",
"Host",
"Sec-Fetch-Dest",
"Sec-Fetch-Mode",
"Sec-Fetch-Site"
],
"user_agent_header": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15"
},
"identity": {
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15",
"app_version": "5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15",
"platform": "Linux x86_64",
"vendor": "Apple Computer, Inc.",
"ua_data": false,
"webdriver": true,
"max_touch_points": 0,
"ontouchstart": false,
"standalone": "absent",
"pointer_coarse": false,
"hover": true,
"screen": "1280x720",
"viewport": "1280x720",
"dpr": 1,
"outer": "1280x758",
"languages": [
"en-US"
],
"timezone": "UTC",
"plugins": [
"PDF Viewer",
"Chrome PDF Viewer",
"Chromium PDF Viewer",
"Microsoft Edge PDF Viewer",
"WebKit built-in PDF"
],
"speech_voices": 4
},
"apple_apis": {
"window_safari": "object",
"apple_pay_session": "undefined",
"apple_pay_css": false,
"webkit_message_handlers": false,
"gesture_event": "function",
"airplay_event": "undefined",
"airplay_picker": "undefined",
"webkit_enter_fullscreen": "function",
"touch_callout_css": false,
"managed_media_source": "function",
"media_source": "function",
"navigator_share": "undefined",
"push_manager": "undefined",
"digital_credential": "undefined",
"webgpu": false
},
"codecs": {
"hls_native": "no",
"h264_mp4": "probably",
"hevc_mp4": "probably",
"aac_mp4": "probably",
"vp9_webm": "probably",
"av1_mp4": "probably",
"opus_ogg": "probably",
"flac": "maybe",
"mse_h264": true,
"mse_vp9": true
},
"fonts_base": {
"monospace": 692.84,
"serif": 663.99,
"sans-serif": 692.84,
"liberation_mono": 576.09,
"missing": 663.99
},
"fonts": {
"-apple-system": {
"present": false,
"width": 576.09
},
"BlinkMacSystemFont": {
"present": false,
"width": 576.09
},
"system-ui": {
"present": true,
"width": 692.84
},
"SF Pro": {
"present": false,
"width": 576.09
},
"SF Pro Text": {
"present": false,
"width": 576.09
},
"Helvetica Neue": {
"present": false,
"width": 576.09
},
"Helvetica": {
"present": true,
"width": 691.29
},
"Arial": {
"present": true,
"width": 691.29
},
"Times": {
"present": true,
"width": 662.86
},
"Times New Roman": {
"present": true,
"width": 662.86
},
"Courier": {
"present": true,
"width": 576.09
},
"Courier New": {
"present": true,
"width": 576.09
},
"Georgia": {
"present": false,
"width": 576.09
},
"Verdana": {
"present": false,
"width": 576.09
},
"Menlo": {
"present": false,
"width": 576.09
},
"Monaco": {
"present": false,
"width": 576.09
},
"Lucida Grande": {
"present": false,
"width": 576.09
},
"Geneva": {
"present": false,
"width": 576.09
},
"Avenir": {
"present": false,
"width": 576.09
},
"Avenir Next": {
"present": false,
"width": 576.09
},
"Futura": {
"present": false,
"width": 576.09
},
"Apple Color Emoji": {
"present": false,
"width": 576.09
},
"PingFang SC": {
"present": false,
"width": 576.09
},
"Hiragino Sans": {
"present": false,
"width": 576.09
},
"DejaVu Sans": {
"present": false,
"width": 576.09
},
"DejaVu Serif": {
"present": false,
"width": 576.09
},
"DejaVu Sans Mono": {
"present": false,
"width": 576.09
},
"Liberation Sans": {
"present": true,
"width": 691.29
},
"Liberation Serif": {
"present": true,
"width": 662.86
},
"Liberation Mono": {
"present": true,
"width": 576.09
},
"Noto Sans": {
"present": true,
"width": 744.24
},
"Noto Color Emoji": {
"present": true,
"width": 734.04
},
"Ubuntu": {
"present": false,
"width": 576.09
},
"Cantarell": {
"present": false,
"width": 576.09
},
"FreeSans": {
"present": true,
"width": 680.35
},
"Nimbus Sans": {
"present": false,
"width": 576.09
}
},
"features": {
"webgpu": false,
"anchor_positioning": true,
"scroll_driven_animations": true,
"text_wrap_pretty": true,
"contrast_color": true,
"url_pattern": true,
"trusted_types": true,
"fs_writable_stream": false,
"regexp_modifiers": true,
"digital_credentials": false,
"scoped_custom_element_registry": false,
"field_sizing": true,
"css_random": true,
"sibling_index": true,
"button_command": true,
"navigation_api": true,
"math_sum_precise": true,
"map_get_or_insert": true,
"scrollbar_color": true,
"caret_position_from_point": true,
"lcp_entries": true,
"grid_lanes": true,
"iterator_concat": true,
"webtransport": true,
"math_depth": true,
"open_pseudo": true,
"origin_api": true,
"toggle_event_source": true,
"stretch_keyword": true,
"heading_pseudo": true,
"revert_rule": true,
"readable_stream_from": true,
"base_select": true,
"overflow_anchor": true,
"canvas_srgb_linear": false,
"wasm_jspi": true,
"fit_tolerance": false,
"flow_tolerance": true,
"field_content_pseudo": false,
"video_encoder": true
}
},
"Desktop Safari": {
"network": {
"http_version": "HTTP/1.1",
"ja4": "t13d2913h1_723694b0fccc_5671b5df5029",
"alpn": [
"http/1.1",
"http/1.0"
],
"http1_headers": [
"Accept",
"User-Agent",
"Accept-Encoding",
"Accept-Language",
"Connection",
"Host",
"Sec-Fetch-Dest",
"Sec-Fetch-Mode",
"Sec-Fetch-Site"
],
"user_agent_header": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15"
},
"identity": {
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15",
"app_version": "5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15",
"platform": "Linux x86_64",
"vendor": "Apple Computer, Inc.",
"ua_data": false,
"webdriver": true,
"max_touch_points": 0,
"ontouchstart": false,
"standalone": "absent",
"pointer_coarse": false,
"hover": true,
"screen": "1792x1120",
"viewport": "1280x720",
"dpr": 2,
"outer": "1280x758",
"languages": [
"en-US"
],
"timezone": "UTC",
"plugins": [
"PDF Viewer",
"Chrome PDF Viewer",
"Chromium PDF Viewer",
"Microsoft Edge PDF Viewer",
"WebKit built-in PDF"
],
"speech_voices": 4
},
"apple_apis": {
"window_safari": "object",
"apple_pay_session": "undefined",
"apple_pay_css": false,
"webkit_message_handlers": false,
"gesture_event": "function",
"airplay_event": "undefined",
"airplay_picker": "undefined",
"webkit_enter_fullscreen": "function",
"touch_callout_css": false,
"managed_media_source": "function",
"media_source": "function",
"navigator_share": "undefined",
"push_manager": "undefined",
"digital_credential": "undefined",
"webgpu": false
},
"codecs": {
"hls_native": "no",
"h264_mp4": "probably",
"hevc_mp4": "probably",
"aac_mp4": "probably",
"vp9_webm": "probably",
"av1_mp4": "probably",
"opus_ogg": "probably",
"flac": "maybe",
"mse_h264": true,
"mse_vp9": true
},
"fonts_base": {
"monospace": 692.84,
"serif": 663.99,
"sans-serif": 692.84,
"liberation_mono": 576.09,
"missing": 663.99
},
"fonts": {
"-apple-system": {
"present": false,
"width": 576.09
},
"BlinkMacSystemFont": {
"present": false,
"width": 576.09
},
"system-ui": {
"present": true,
"width": 692.84
},
"SF Pro": {
"present": false,
"width": 576.09
},
"SF Pro Text": {
"present": false,
"width": 576.09
},
"Helvetica Neue": {
"present": false,
"width": 576.09
},
"Helvetica": {
"present": true,
"width": 691.29
},
"Arial": {
"present": true,
"width": 691.29
},
"Times": {
"present": true,
"width": 662.86
},
"Times New Roman": {
"present": true,
"width": 662.86
},
"Courier": {
"present": true,
"width": 576.09
},
"Courier New": {
"present": true,
"width": 576.09
},
"Georgia": {
"present": false,
"width": 576.09
},
"Verdana": {
"present": false,
"width": 576.09
},
"Menlo": {
"present": false,
"width": 576.09
},
"Monaco": {
"present": false,
"width": 576.09
},
"Lucida Grande": {
"present": false,
"width": 576.09
},
"Geneva": {
"present": false,
"width": 576.09
},
"Avenir": {
"present": false,
"width": 576.09
},
"Avenir Next": {
"present": false,
"width": 576.09
},
"Futura": {
"present": false,
"width": 576.09
},
"Apple Color Emoji": {
"present": false,
"width": 576.09
},
"PingFang SC": {
"present": false,
"width": 576.09
},
"Hiragino Sans": {
"present": false,
"width": 576.09
},
"DejaVu Sans": {
"present": false,
"width": 576.09
},
"DejaVu Serif": {
"present": false,
"width": 576.09
},
"DejaVu Sans Mono": {
"present": false,
"width": 576.09
},
"Liberation Sans": {
"present": true,
"width": 691.29
},
"Liberation Serif": {
"present": true,
"width": 662.86
},
"Liberation Mono": {
"present": true,
"width": 576.09
},
"Noto Sans": {
"present": true,
"width": 744.24
},
"Noto Color Emoji": {
"present": true,
"width": 734.04
},
"Ubuntu": {
"present": false,
"width": 576.09
},
"Cantarell": {
"present": false,
"width": 576.09
},
"FreeSans": {
"present": true,
"width": 680.35
},
"Nimbus Sans": {
"present": false,
"width": 576.09
}
},
"features": {
"webgpu": false,
"anchor_positioning": true,
"scroll_driven_animations": true,
"text_wrap_pretty": true,
"contrast_color": true,
"url_pattern": true,
"trusted_types": true,
"fs_writable_stream": false,
"regexp_modifiers": true,
"digital_credentials": false,
"scoped_custom_element_registry": false,
"field_sizing": true,
"css_random": true,
"sibling_index": true,
"button_command": true,
"navigation_api": true,
"math_sum_precise": true,
"map_get_or_insert": true,
"scrollbar_color": true,
"caret_position_from_point": true,
"lcp_entries": true,
"grid_lanes": true,
"iterator_concat": true,
"webtransport": true,
"math_depth": true,
"open_pseudo": true,
"origin_api": true,
"toggle_event_source": true,
"stretch_keyword": true,
"heading_pseudo": true,
"revert_rule": true,
"readable_stream_from": true,
"base_select": true,
"overflow_anchor": true,
"canvas_srgb_linear": false,
"wasm_jspi": true,
"fit_tolerance": false,
"flow_tolerance": true,
"field_content_pseudo": false,
"video_encoder": true
}
},
"iPhone 15": {
"network": {
"http_version": "HTTP/1.1",
"ja4": "t13d2913h1_723694b0fccc_5671b5df5029",
"alpn": [
"http/1.1",
"http/1.0"
],
"http1_headers": [
"Accept",
"User-Agent",
"Accept-Encoding",
"Accept-Language",
"Connection",
"Host",
"Sec-Fetch-Dest",
"Sec-Fetch-Mode",
"Sec-Fetch-Site"
],
"user_agent_header": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Mobile/15E148 Safari/604.1"
},
"identity": {
"user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Mobile/15E148 Safari/604.1",
"app_version": "5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Mobile/15E148 Safari/604.1",
"platform": "Linux x86_64",
"vendor": "Apple Computer, Inc.",
"ua_data": false,
"webdriver": true,
"max_touch_points": 0,
"ontouchstart": true,
"standalone": "absent",
"pointer_coarse": true,
"hover": false,
"screen": "393x852",
"viewport": "393x659",
"dpr": 3,
"outer": "393x697",
"languages": [
"en-US"
],
"timezone": "UTC",
"plugins": [
"PDF Viewer",
"Chrome PDF Viewer",
"Chromium PDF Viewer",
"Microsoft Edge PDF Viewer",
"WebKit built-in PDF"
],
"speech_voices": 4
},
"apple_apis": {
"window_safari": "object",
"apple_pay_session": "undefined",
"apple_pay_css": false,
"webkit_message_handlers": false,
"gesture_event": "function",
"airplay_event": "undefined",
"airplay_picker": "undefined",
"webkit_enter_fullscreen": "function",
"touch_callout_css": false,
"managed_media_source": "function",
"media_source": "function",
"navigator_share": "undefined",
"push_manager": "undefined",
"digital_credential": "undefined",
"webgpu": false
},
"codecs": {
"hls_native": "no",
"h264_mp4": "probably",
"hevc_mp4": "probably",
"aac_mp4": "probably",
"vp9_webm": "probably",
"av1_mp4": "probably",
"opus_ogg": "probably",
"flac": "maybe",
"mse_h264": true,
"mse_vp9": true
},
"fonts_base": {
"monospace": 692.84,
"serif": 663.99,
"sans-serif": 692.84,
"liberation_mono": 576.09,
"missing": 663.99
},
"fonts": {
"-apple-system": {
"present": false,
"width": 576.09
},
"BlinkMacSystemFont": {
"present": false,
"width": 576.09
},
"system-ui": {
"present": true,
"width": 692.84
},
"SF Pro": {
"present": false,
"width": 576.09
},
"SF Pro Text": {
"present": false,
"width": 576.09
},
"Helvetica Neue": {
"present": false,
"width": 576.09
},
"Helvetica": {
"present": true,
"width": 691.29
},
"Arial": {
"present": true,
"width": 691.29
},
"Times": {
"present": true,
"width": 662.86
},
"Times New Roman": {
"present": true,
"width": 662.86
},
"Courier": {
"present": true,
"width": 576.09
},
"Courier New": {
"present": true,
"width": 576.09
},
"Georgia": {
"present": false,
"width": 576.09
},
"Verdana": {
"present": false,
"width": 576.09
},
"Menlo": {
"present": false,
"width": 576.09
},
"Monaco": {
"present": false,
"width": 576.09
},
"Lucida Grande": {
"present": false,
"width": 576.09
},
"Geneva": {
"present": false,
"width": 576.09
},
"Avenir": {
"present": false,
"width": 576.09
},
"Avenir Next": {
"present": false,
"width": 576.09
},
"Futura": {
"present": false,
"width": 576.09
},
"Apple Color Emoji": {
"present": false,
"width": 576.09
},
"PingFang SC": {
"present": false,
"width": 576.09
},
"Hiragino Sans": {
"present": false,
"width": 576.09
},
"DejaVu Sans": {
"present": false,
"width": 576.09
},
"DejaVu Serif": {
"present": false,
"width": 576.09
},
"DejaVu Sans Mono": {
"present": false,
"width": 576.09
},
"Liberation Sans": {
"present": true,
"width": 691.29
},
"Liberation Serif": {
"present": true,
"width": 662.86
},
"Liberation Mono": {
"present": true,
"width": 576.09
},
"Noto Sans": {
"present": true,
"width": 744.24
},
"Noto Color Emoji": {
"present": true,
"width": 734.04
},
"Ubuntu": {
"present": false,
"width": 576.09
},
"Cantarell": {
"present": false,
"width": 576.09
},
"FreeSans": {
"present": true,
"width": 680.35
},
"Nimbus Sans": {
"present": false,
"width": 576.09
}
},
"features": {
"webgpu": false,
"anchor_positioning": true,
"scroll_driven_animations": true,
"text_wrap_pretty": true,
"contrast_color": true,
"url_pattern": true,
"trusted_types": true,
"fs_writable_stream": false,
"regexp_modifiers": true,
"digital_credentials": false,
"scoped_custom_element_registry": false,
"field_sizing": true,
"css_random": true,
"sibling_index": true,
"button_command": true,
"navigation_api": true,
"math_sum_precise": true,
"map_get_or_insert": true,
"scrollbar_color": true,
"caret_position_from_point": true,
"lcp_entries": true,
"grid_lanes": true,
"iterator_concat": true,
"webtransport": true,
"math_depth": true,
"open_pseudo": true,
"origin_api": true,
"toggle_event_source": true,
"stretch_keyword": true,
"heading_pseudo": true,
"revert_rule": true,
"readable_stream_from": true,
"base_select": true,
"overflow_anchor": true,
"canvas_srgb_linear": false,
"wasm_jspi": true,
"fit_tolerance": false,
"flow_tolerance": true,
"field_content_pseudo": false,
"video_encoder": true
}
}
}
}
}Bottom line
Playwright's WebKit is the WebKit engine on Linux with a Mac Safari user agent: its layout and CSS are WebKit's — newer than the version it names — while its platform, webdriver flag, HTTP version, fonts, media and Apple-only APIs are not Safari's.
Use it to check how the engine behind Apple's browser renders a page; don't read its results as what Safari on a Mac or an iPhone would show a site or a user.