Browsers · WhiskerJS 0.1.0

Samsung Internet

Samsung Internet is a Chromium browser for Android; WhiskerJS treats it like Chrome on Android and checks one Samsung-related global.

In plain words

Samsung Internet is the browser that comes with many Samsung phones and tablets. It is built on Chromium, so WhiskerJS reads it like Chrome on Android: the Chromium-only signals work, nothing is left out on purpose, and the audio output latency is read because it is Android. WhiskerJS also checks for one global variable associated with Samsung’s browser.

At a glance

  • Browser class: chromium (the user agent has a Chrome/<number> token).
  • Excluded components: none.
  • Read on Android: audio_latency.
  • Samsung-related check: vendor_flavors includes samsungAr when that global exists.
  • Lab sample: none.

What works

  • Chromium-only components: device_memory, heap_limit, ua_client_hints and ua_versions read the same APIs as in Chrome; on a phone ua_client_hints usually carries mobile=1 and the model and form factors the browser reports.
  • audio_latency: read because the user agent says Android; the AudioContext is closed at once and nothing is played.
  • vendor_flavors: lists which of ten browser-specific globals exist. One of them is samsungAr. Whether a given Samsung Internet version defines it is up to the browser, so treat its presence as a hint, not a rule. The component is in the browser group of the visitorId.
  • touch_support and screen_resolution (larger side first, so rotation does not change it).
  • Graphics, offline audio, fonts, font preferences, Math, codecs, locale and display preferences.

What is unavailable or blocked

  • keyboard_layout uses an API meant for physical keyboards; expect unavailable on Android. It is outside the ids.
  • plugins: mobile builds often list none, and then report the plain value none.
  • apple_pay and private_click: the plain value none.
  • webgpu: depends on the browser version, Android version and GPU.
  • ua_client_hints and ua_versions report he=blocked when a Permissions Policy refuses the detailed hints.

What WhiskerJS excludes and why

Nothing. The chromium row of the exclusion table is empty. If the browser, a setting or an extension adds noise to canvas or WebGL readback, the double render marks canvas or webgl_image as noisy (render_mismatch) for that run. The known-answer probes also catch noise that is the same on both reads (noisy / seeded_noise, for canvas, webgl_image and audio).

Samsung Internet and Chrome on the same phone

Both are class chromium. Expect the browser group of the structuredId to differ (brands in ua_client_hints, globals in vendor_flavors, possibly codecs), while gpu, device and fonts often match because they follow the phone itself. See Comparing two results.

Integrity flags to expect

  • headless_markers does not apply its “desktop Chrome without window.chrome” test to user agents with Mobile or Android; a 0x0 outer window still raises it.
  • automation_webdriver under WebDriver control, for example in device test farms.
  • software_renderer in emulators that render WebGL in software.
  • The lie checks if a script overrides browser functions.

Early lab observations

There is no lab data for Samsung Internet yet. The early, small sample at signalsVersion 1 covered Mac Chrome, Mac Safari, iPhone Chrome and iPhone Safari only.

Testing it yourself

Open the live demo in Samsung Internet and in Chrome on the same phone and compare the structuredId groups. The lab mode copies one line per run. Nothing is sent anywhere.

Support table for Samsung Internet

Expected status of every component in this browser at signalsVersion 9, from the support matrix (updated 2026-10-26). Basis "code" means expected from the library code and documentation, not yet measured; "lab" means seen in the early lab sample.

ComponentStatusBasisNote
apple_paynonecodeNo ApplePaySession: reports the plain value none.
audiookcodenoisy / seeded_noise if the audio known-answer probe sees noise.
audio_latencyokcodeRead when the user agent says Android.
browser_classokcodeClass chromium.
canvasokcodenoisy / render_mismatch or seeded_noise if an extension or setting adds noise to readback.
canvas_readbackokcode
color_depthokcode
color_gamutokcode
content_blockersokcodenone, or the bait names a content blocker hid.
cpu_architectureokcode
device_memoryokcodeFrom Chromium 146 the value carries the tag ;c146 (new buckets).
dynamic_rangeokcode
font_preferencesokcode
fontsokcode
fonts_canvasokcode
forced_colorsokcode
hardware_concurrencyokcodeRead 16 times; noisy / read_varies if the reads disagree. Some browsers cap or round the value.
heap_limitokcode
intl_localeokcode
keyboard_layoutvariescodeChromium API meant for physical keyboards; on Android expect unavailable.
languagesokcode
mathokcode
media_codecsokcode
noise_profileokcodecanvas=exact,webgl=exact,audio=exact on a stock browser; webgl=na without WebGL.
pdf_viewerokcode
permissionsokcode
pixel_ratiookcode
platformokcode
pluginsvariescodeMobile builds often list no plugins and then report the plain value none.
prefers_contrastokcode
private_clicknonecodeNo attributionSourceId on anchors: reports the plain value none.
reduced_motionokcode
screen_frameokcode
screen_resolutionokcode
speech_voicesokcodeDigest of the voice list, or none; some browsers fill the list late.
storageokcode
time_zoneokcode
touch_supportokcode
ua_client_hintsokcodehe=blocked when a Permissions Policy refuses the detailed hints.
ua_versionsokcode
vendorokcode
vendor_flavorsokcode
webgl_imageokcodenoisy / render_mismatch or seeded_noise if an extension or setting adds noise to readback.
webgl_paramsokcodeWhere WebGL 1 is available; unavailable / no_context without it.
webgl_rendererokcode
webgl_vendorokcode
webgpuvariescodeDepends on browser version, operating system and GPU; needs a secure context. unavailable / no_api without navigator.gpu, no_context without an adapter.

Questions and answers

Does WhiskerJS have Samsung-specific code?

Only one thing: vendor_flavors checks whether a global named samsungAr exists, as one of ten browser-specific globals. Everything else is the same code as for any Chromium browser.

Is anything excluded in Samsung Internet?

No. It is classed chromium, whose exclusion row is empty.

Is there lab data for Samsung Internet?

No. The early lab sample covered Mac Chrome, Mac Safari, iPhone Chrome and iPhone Safari only.