Detect Rendering Engine from User-Agent

Identify the rendering engine (WebKit, Gecko, Blink, Trident) from a User-Agent string. Understand how engine detection helps with CSS and JavaScript compatibility.

Engine & Platform

Detailed Explanation

Detecting the Rendering Engine

The rendering engine determines how a browser interprets and displays HTML, CSS, and JavaScript. Identifying the engine from the UA string helps predict browser behavior.

Major Rendering Engines

WebKit (Apple Safari) Token: AppleWebKit/605.1.15 Used by: Safari (macOS and iOS), all iOS browsers

Blink (Chromium) Token: AppleWebKit/537.36 (reports as WebKit for compatibility) Used by: Chrome, Edge, Opera, Brave, Vivaldi, Samsung Internet

Gecko (Mozilla Firefox) Token: Gecko/20100101 Used by: Firefox (desktop and Android), Thunderbird

Trident (Legacy Internet Explorer) Token: Trident/7.0 Used by: Internet Explorer 11 (now deprecated)

The Blink-WebKit Confusion

Blink is a fork of WebKit, created by Google in 2013. For compatibility reasons, Chrome still reports AppleWebKit/537.36 in its UA string. To distinguish:

  • Real WebKit = AppleWebKit/605.x.xx (version 605+, used by Safari)
  • Blink = AppleWebKit/537.36 (frozen version number, used by Chrome/Chromium)

However, this is not a reliable method. A better approach:

  1. If Chrome/ or Chromium/ is present → Blink
  2. If Version/ + Safari/ is present (no Chrome) → WebKit
  3. If Gecko/ is present → Gecko
  4. If Trident/ is present → Trident

Why Engine Detection Matters

Different engines have different CSS and JavaScript support:

Feature Blink WebKit Gecko
CSS Container Queries Yes Yes Yes
View Transitions API Yes Safari 18+ No
CSS Nesting Yes Yes Yes
Popover API Yes Yes Firefox 125+
JPEG XL No Safari 17+ No

Engine detection is more reliable than browser detection for predicting feature support, because browsers on the same engine share the same rendering capabilities.

Use Case

Front-end developers use engine detection to apply targeted CSS fixes or polyfills. For example, WebKit-specific CSS properties like `-webkit-backdrop-filter` or Gecko-specific behavior differences in CSS Grid can be handled based on the detected engine rather than individual browser versions.

Try It — User-Agent Parser & Analyzer

Open full tool