3.8 KiB
Executable File
3.8 KiB
Executable File
title, tags, created, source
| title | tags | created | source | ||||
|---|---|---|---|---|---|---|---|
| WebKit release → macOS version mapping |
|
2026-10-06 | ~/Downloads/WebKit_sparse (git checkout of github.com/WebKit/WebKit, main @ 99051d5d08) |
WebKit release → macOS version mapping
TL;DR
Готовой опубликованной таблицы «релиз WebKit → macOS-релиз» не существует. Маппинг выводится из исходников — он в самом дереве WebKit, а не на сайте.
Механизм (ground truth)
AppleWebKit-версия в User-Agent собирается из двух частей:
AppleWebKit = SYSTEM_VERSION_PREFIX (зависит от macOS) + FULL_VERSION WebKit
1. macOS → SYSTEM_VERSION_PREFIX
Файл: Configurations/Version.xcconfig, строки 35–53.
| macOS | SYSTEM_VERSION_PREFIX |
|---|---|
| 15 Sequoia | 20 |
| 16 | 21 |
| 26 Tahoe | 21 |
| 27 Golden Gate | 22 |
| 28 | 23 |
| 29 | 24 |
| 30 | 25 |
| (default) | 22 |
2. FULL_VERSION WebKit (текущий main)
Configurations/Version.xcconfig:
- MAJOR = 627, MINOR = 1, TINY = 2 → FULL_VERSION =
627.1.2
Пример сборки UA-токена
| macOS | prefix | AppleWebKit/… |
|---|---|---|
| 15 Sequoia | 20 | 20627.1.2 |
| 16 | 21 | 21627.1.2 |
| 26 Tahoe | 21 | 21627.1.2 |
| 27 Golden Gate | 22 | 22627.1.2 |
| 30 | 25 | 25627.1.2 |
Примечание: префиксы 21 у macOS 16 и 26 — это одно и то же системное поколение нумерации, отсюда совпадение.
Что есть в дереве
| Что | Путь | Содержимое |
|---|---|---|
| macOS → prefix + текущая версия | Configurations/Version.xcconfig |
таблица префиксов + MAJOR/MINOR/TINY |
| macOS ↔ кодовые имена | Tools/Scripts/webkitpy/common/version_name_map.py |
Leopard … Tahoe, Golden Gate |
| таймлайн релизов WebKit | git log Configurations/Version.xcconfig |
коммиты «Versioning. WebKit-XXXX.Y.Z» |
| отгруженные релизы | git ls-remote --heads origin |
498 веток safari-XXXX-branch |
| генератор deployment target | Configurations/Scripts/generate-deployment-target-xcconfig.py |
6-значные minor-версии → semver |
Чего в дереве НЕТ
Готовой таблицы «релиз WebKit → macOS-релиз». Она собирается из трёх источников:
- prefix-таблица (в дереве,
Version.xcconfig); - Apple Safari/iOS release notes — какая версия вошла в какой macOS;
git log Configurations/Version.xcconfig— таймлайн бампов версии.
Источники (проверено)
- Файл:
~/Downloads/WebKit_sparse/Configurations/Version.xcconfig— 76 строк, 3640 байт. - Строки 35–53 — таблица префиксов и
SYSTEM_VERSION_PREFIX_macosx_*. - Строки 24–29 — MAJOR/MINOR/TINY/FULL.
- Источник: рабочий чекаут Alex (
WebKit_sparse), не внешний сайт.
Pitfalls
- Префикс
SYSTEM_VERSION_PREFIX_macosx_(пустой) =22— это default для неизвестного macOS; не путать с реальным. Version.xcconfigесть только вConfigurations/(один файл); вложенных копий вSource/нет.- Sparse/shallow клоны содержат лишь ~10 последних бампов версии — полная история требует полного клона.
- Ветки
originсодержатintegration/...safari-XXX-branch(мусор от CI) — фильтровать по чистому^safari-[0-9.]*-branch$.