jumpy-lion 1.0.0-beta.5 → 1.0.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/browser-plugin.d.ts.map +1 -1
  2. package/dist/browser-plugin.js +15 -5
  3. package/dist/browser-plugin.js.map +1 -1
  4. package/dist/browser-process/anti-detect-config.d.ts +7 -0
  5. package/dist/browser-process/anti-detect-config.d.ts.map +1 -1
  6. package/dist/browser-process/anti-detect-config.js +68 -18
  7. package/dist/browser-process/anti-detect-config.js.map +1 -1
  8. package/dist/browser-process/apple-silicon-devices.d.ts +96 -0
  9. package/dist/browser-process/apple-silicon-devices.d.ts.map +1 -0
  10. package/dist/browser-process/apple-silicon-devices.js +185 -0
  11. package/dist/browser-process/apple-silicon-devices.js.map +1 -0
  12. package/dist/browser-process/browser.d.ts.map +1 -1
  13. package/dist/browser-process/browser.js +58 -21
  14. package/dist/browser-process/browser.js.map +1 -1
  15. package/dist/browser-process/gpu-family-profiles.d.ts +3 -0
  16. package/dist/browser-process/gpu-family-profiles.d.ts.map +1 -1
  17. package/dist/browser-process/gpu-family-profiles.js +170 -88
  18. package/dist/browser-process/gpu-family-profiles.js.map +1 -1
  19. package/dist/browser-process/integrity-headers.d.ts +33 -15
  20. package/dist/browser-process/integrity-headers.d.ts.map +1 -1
  21. package/dist/browser-process/integrity-headers.js +79 -19
  22. package/dist/browser-process/integrity-headers.js.map +1 -1
  23. package/dist/browser-profiles/chrome/create.d.ts +2 -1
  24. package/dist/browser-profiles/chrome/create.d.ts.map +1 -1
  25. package/dist/browser-profiles/chrome/create.js +2 -2
  26. package/dist/browser-profiles/chrome/create.js.map +1 -1
  27. package/dist/browser-profiles/chrome/default.d.ts +7 -0
  28. package/dist/browser-profiles/chrome/default.d.ts.map +1 -1
  29. package/dist/browser-profiles/chrome/default.js +16 -0
  30. package/dist/browser-profiles/chrome/default.js.map +1 -1
  31. package/dist/browser-profiles/chrome/populate-profile.d.ts +2 -0
  32. package/dist/browser-profiles/chrome/populate-profile.d.ts.map +1 -1
  33. package/dist/browser-profiles/chrome/populate-profile.js +2 -2
  34. package/dist/browser-profiles/chrome/populate-profile.js.map +1 -1
  35. package/dist/fingerprinting/hardware-realism.js +53 -1
  36. package/dist/fingerprinting/hardware-realism.js.map +1 -1
  37. package/dist/fingerprinting/locale-resolver.d.ts +21 -0
  38. package/dist/fingerprinting/locale-resolver.d.ts.map +1 -1
  39. package/dist/fingerprinting/locale-resolver.js +43 -6
  40. package/dist/fingerprinting/locale-resolver.js.map +1 -1
  41. package/dist/index.d.ts +5 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +16 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/launch-stealth-browser.d.ts +143 -0
  46. package/dist/launch-stealth-browser.d.ts.map +1 -0
  47. package/dist/launch-stealth-browser.js +133 -0
  48. package/dist/launch-stealth-browser.js.map +1 -0
  49. package/dist/tsconfig.build.tsbuildinfo +1 -1
  50. package/package.json +2 -1
@@ -8,9 +8,168 @@
8
8
  * Family ids must stay identical to the C++ `BaselineData::ForFamily(GpuFamily)`
9
9
  * ids (third_party/blink/renderer/platform/graphics/emulated/baseline_data.cc).
10
10
  */
11
+ // Apple Silicon GL_* tokens the emulated GLES2 interface reports in GL_EXTENSIONS.
12
+ // Every WebGL name in APPLE_WEBGL1_EXTENSIONS and APPLE_WEBGL2_EXTENSIONS needs its
13
+ // backing token here, because Blink's Supported() checks for each extension read
14
+ // this string. A WebGL name on the allowlist without its backing token is silently
15
+ // dropped by getSupportedExtensions() while the capability is still advertised, which
16
+ // is the enumeration contradiction a sensor can probe. The legacy ES2 tokens
17
+ // (GL_EXT_blend_minmax, GL_OES_vertex_array_object, GL_OES_standard_derivatives,
18
+ // GL_EXT_sRGB, GL_CHROMIUM_depth_texture and similar) were missing before, which
19
+ // is why WebGL1 listed only 23 names instead of 39. Which token backs which
20
+ // extension follows Blink's Supported() checks and is unverified against a built
21
+ // binary in this repo.
22
+ export const APPLE_GL_EXTENSIONS = [
23
+ 'GL_ANGLE_clip_cull_distance',
24
+ 'GL_ANGLE_compressed_texture_etc',
25
+ 'GL_ANGLE_instanced_arrays',
26
+ 'GL_ANGLE_multi_draw',
27
+ 'GL_ANGLE_polygon_mode',
28
+ 'GL_ANGLE_provoking_vertex',
29
+ 'GL_ANGLE_stencil_texturing',
30
+ 'GL_ANGLE_texture_compression_dxt1',
31
+ 'GL_ANGLE_texture_compression_dxt3',
32
+ 'GL_ANGLE_texture_compression_dxt5',
33
+ 'GL_ANGLE_translated_shader_source',
34
+ 'GL_CHROMIUM_color_buffer_float_rgba',
35
+ 'GL_CHROMIUM_depth_texture',
36
+ 'GL_EXT_blend_func_extended',
37
+ 'GL_EXT_blend_minmax',
38
+ 'GL_EXT_clip_control',
39
+ 'GL_EXT_color_buffer_float',
40
+ 'GL_EXT_color_buffer_half_float',
41
+ 'GL_EXT_conservative_depth',
42
+ 'GL_EXT_depth_clamp',
43
+ 'GL_EXT_disjoint_timer_query',
44
+ 'GL_EXT_disjoint_timer_query_webgl2',
45
+ 'GL_EXT_draw_buffers',
46
+ 'GL_EXT_float_blend',
47
+ 'GL_EXT_frag_depth',
48
+ 'GL_EXT_polygon_offset_clamp',
49
+ 'GL_EXT_render_snorm',
50
+ 'GL_EXT_sRGB',
51
+ 'GL_EXT_shader_texture_lod',
52
+ 'GL_EXT_texture_compression_bptc',
53
+ 'GL_EXT_texture_compression_dxt1',
54
+ 'GL_EXT_texture_compression_rgtc',
55
+ 'GL_EXT_texture_compression_s3tc',
56
+ 'GL_EXT_texture_compression_s3tc_srgb',
57
+ 'GL_EXT_texture_filter_anisotropic',
58
+ 'GL_EXT_texture_mirror_clamp_to_edge',
59
+ 'GL_EXT_texture_norm16',
60
+ 'GL_IMG_texture_compression_pvrtc',
61
+ 'GL_KHR_parallel_shader_compile',
62
+ 'GL_KHR_texture_compression_astc_hdr',
63
+ 'GL_KHR_texture_compression_astc_ldr',
64
+ 'GL_NV_shader_noperspective_interpolation',
65
+ 'GL_OES_compressed_ETC1_RGB8_texture',
66
+ 'GL_OES_draw_buffers_indexed',
67
+ 'GL_OES_element_index_uint',
68
+ 'GL_OES_fbo_render_mipmap',
69
+ 'GL_OES_packed_depth_stencil',
70
+ 'GL_OES_sample_variables',
71
+ 'GL_OES_shader_multisample_interpolation',
72
+ 'GL_OES_standard_derivatives',
73
+ 'GL_OES_texture_float',
74
+ 'GL_OES_texture_float_linear',
75
+ 'GL_OES_texture_half_float',
76
+ 'GL_OES_texture_half_float_linear',
77
+ 'GL_OES_vertex_array_object',
78
+ 'GL_QCOM_render_shared_exponent',
79
+ 'GL_WEBGL_multi_draw',
80
+ ];
81
+ // Exact output of WebGL1 getSupportedExtensions() on real Chrome 156 on macOS
82
+ // Apple Silicon (M4 Pro), in Chrome's registration order. Pinned by sha256 of the
83
+ // comma-joined list (cb2d63c0ef05ac65, first 16 hex) from the fp-audit baseline.
84
+ // Not re-captured for Chrome 157: if 157 adds or reorders a name, update here.
85
+ export const APPLE_WEBGL1_EXTENSIONS = [
86
+ 'ANGLE_instanced_arrays',
87
+ 'EXT_blend_minmax',
88
+ 'EXT_clip_control',
89
+ 'EXT_color_buffer_half_float',
90
+ 'EXT_depth_clamp',
91
+ 'EXT_disjoint_timer_query',
92
+ 'EXT_float_blend',
93
+ 'EXT_frag_depth',
94
+ 'EXT_polygon_offset_clamp',
95
+ 'EXT_shader_texture_lod',
96
+ 'EXT_texture_compression_bptc',
97
+ 'EXT_texture_compression_rgtc',
98
+ 'EXT_texture_filter_anisotropic',
99
+ 'EXT_texture_mirror_clamp_to_edge',
100
+ 'EXT_sRGB',
101
+ 'KHR_parallel_shader_compile',
102
+ 'OES_element_index_uint',
103
+ 'OES_fbo_render_mipmap',
104
+ 'OES_standard_derivatives',
105
+ 'OES_texture_float',
106
+ 'OES_texture_float_linear',
107
+ 'OES_texture_half_float',
108
+ 'OES_texture_half_float_linear',
109
+ 'OES_vertex_array_object',
110
+ 'WEBGL_blend_func_extended',
111
+ 'WEBGL_color_buffer_float',
112
+ 'WEBGL_compressed_texture_astc',
113
+ 'WEBGL_compressed_texture_etc',
114
+ 'WEBGL_compressed_texture_etc1',
115
+ 'WEBGL_compressed_texture_pvrtc',
116
+ 'WEBGL_compressed_texture_s3tc',
117
+ 'WEBGL_compressed_texture_s3tc_srgb',
118
+ 'WEBGL_debug_renderer_info',
119
+ 'WEBGL_debug_shaders',
120
+ 'WEBGL_depth_texture',
121
+ 'WEBGL_draw_buffers',
122
+ 'WEBGL_lose_context',
123
+ 'WEBGL_multi_draw',
124
+ 'WEBGL_polygon_mode',
125
+ ];
126
+ // WebGL2 names real Chrome reports on macOS Apple Silicon, from the earlier Chrome
127
+ // 151 capture (36 names, shared ones included). The Chrome 156 baseline file only
128
+ // holds a count and hash for WebGL1, so this list is NOT verified against 156.
129
+ export const APPLE_WEBGL2_EXTENSIONS = [
130
+ 'EXT_clip_control',
131
+ 'EXT_color_buffer_float',
132
+ 'EXT_color_buffer_half_float',
133
+ 'EXT_conservative_depth',
134
+ 'EXT_depth_clamp',
135
+ 'EXT_disjoint_timer_query_webgl2',
136
+ 'EXT_float_blend',
137
+ 'EXT_polygon_offset_clamp',
138
+ 'EXT_render_snorm',
139
+ 'EXT_texture_compression_bptc',
140
+ 'EXT_texture_compression_rgtc',
141
+ 'EXT_texture_filter_anisotropic',
142
+ 'EXT_texture_mirror_clamp_to_edge',
143
+ 'EXT_texture_norm16',
144
+ 'KHR_parallel_shader_compile',
145
+ 'NV_shader_noperspective_interpolation',
146
+ 'OES_draw_buffers_indexed',
147
+ 'OES_sample_variables',
148
+ 'OES_shader_multisample_interpolation',
149
+ 'OES_texture_float_linear',
150
+ 'WEBGL_blend_func_extended',
151
+ 'WEBGL_clip_cull_distance',
152
+ 'WEBGL_compressed_texture_astc',
153
+ 'WEBGL_compressed_texture_etc',
154
+ 'WEBGL_compressed_texture_etc1',
155
+ 'WEBGL_compressed_texture_pvrtc',
156
+ 'WEBGL_compressed_texture_s3tc',
157
+ 'WEBGL_compressed_texture_s3tc_srgb',
158
+ 'WEBGL_debug_renderer_info',
159
+ 'WEBGL_debug_shaders',
160
+ 'WEBGL_lose_context',
161
+ 'WEBGL_multi_draw',
162
+ 'WEBGL_polygon_mode',
163
+ 'WEBGL_provoking_vertex',
164
+ 'WEBGL_render_shared_exponent',
165
+ 'WEBGL_stencil_texturing',
166
+ ];
11
167
  const PLATFORM_GPU_TABLE = {
12
- // Apple Silicon (M1/M2/M3/M4) via ANGLE Metal backend. Verified against
13
- // 2026-05 harvest on real M3 Pro running Chromium 147.
168
+ // Apple Silicon via ANGLE Metal backend. Verified against 2026-05 harvest on
169
+ // real M3 Pro running Chromium 147, so it is only known-correct for the
170
+ // Apple9 GPU family (M3 and M4). M1/M2 (Apple7/Apple8) limits differ and are
171
+ // kept out of the device table (weight 0 in apple-silicon-devices.ts) until a
172
+ // capture from that family exists.
14
173
  apple_metal: {
15
174
  maxTextureSize: 16384,
16
175
  maxViewportDim: 16384,
@@ -22,93 +181,16 @@ const PLATFORM_GPU_TABLE = {
22
181
  maxTransformFeedbackInterleavedComponents: 64,
23
182
  aliasedLineWidthRange: [1, 1],
24
183
  aliasedPointSizeRange: [1, 511],
184
+ // TWO namespaces in one field, by design of the C++ consumers:
185
+ // GL_* -> the emulated GLES2 GL_EXTENSIONS string (context creation)
186
+ // rest -> the allowlist getSupportedExtensions() filters against
187
+ // The allowlist is a set shared by WebGL1 and WebGL2 contexts, so the
188
+ // WebGL names are the WebGL1 list followed by the WebGL2-only names. Blink
189
+ // decides which of them each context version actually registers.
25
190
  extensions: [
26
- // TWO namespaces in one field, by design of the C++ consumers:
27
- // GL_* -> the emulated GLES2 GL_EXTENSIONS string (context creation)
28
- // rest -> the allowlist getSupportedExtensions() filters against
29
- // The GL_ set is derived from what each WebGL extension Supported()
30
- // check requires in blink/renderer/modules/webgl/*.cc; the WebGL set is
31
- // the exact 36 real Chrome 151 reports on macOS 26.5.2.
32
- 'GL_ANGLE_clip_cull_distance',
33
- 'GL_ANGLE_compressed_texture_etc',
34
- 'GL_ANGLE_instanced_arrays',
35
- 'GL_ANGLE_multi_draw',
36
- 'GL_ANGLE_polygon_mode',
37
- 'GL_ANGLE_provoking_vertex',
38
- 'GL_ANGLE_stencil_texturing',
39
- 'GL_ANGLE_texture_compression_dxt1',
40
- 'GL_ANGLE_texture_compression_dxt3',
41
- 'GL_ANGLE_texture_compression_dxt5',
42
- 'GL_ANGLE_translated_shader_source',
43
- 'GL_EXT_blend_func_extended',
44
- 'GL_EXT_clip_control',
45
- 'GL_EXT_color_buffer_float',
46
- 'GL_EXT_color_buffer_half_float',
47
- 'GL_EXT_conservative_depth',
48
- 'GL_EXT_depth_clamp',
49
- 'GL_EXT_disjoint_timer_query',
50
- 'GL_EXT_disjoint_timer_query_webgl2',
51
- 'GL_EXT_float_blend',
52
- 'GL_EXT_polygon_offset_clamp',
53
- 'GL_EXT_render_snorm',
54
- 'GL_EXT_texture_compression_bptc',
55
- 'GL_EXT_texture_compression_dxt1',
56
- 'GL_EXT_texture_compression_rgtc',
57
- 'GL_EXT_texture_compression_s3tc',
58
- 'GL_EXT_texture_compression_s3tc_srgb',
59
- 'GL_EXT_texture_filter_anisotropic',
60
- 'GL_EXT_texture_mirror_clamp_to_edge',
61
- 'GL_EXT_texture_norm16',
62
- 'GL_IMG_texture_compression_pvrtc',
63
- 'GL_KHR_parallel_shader_compile',
64
- 'GL_KHR_texture_compression_astc_hdr',
65
- 'GL_KHR_texture_compression_astc_ldr',
66
- 'GL_NV_shader_noperspective_interpolation',
67
- 'GL_OES_compressed_ETC1_RGB8_texture',
68
- 'GL_OES_draw_buffers_indexed',
69
- 'GL_OES_packed_depth_stencil',
70
- 'GL_OES_sample_variables',
71
- 'GL_OES_shader_multisample_interpolation',
72
- 'GL_OES_texture_float_linear',
73
- 'GL_OES_texture_half_float',
74
- 'GL_QCOM_render_shared_exponent',
75
- 'GL_WEBGL_multi_draw',
76
- 'EXT_clip_control',
77
- 'EXT_color_buffer_float',
78
- 'EXT_color_buffer_half_float',
79
- 'EXT_conservative_depth',
80
- 'EXT_depth_clamp',
81
- 'EXT_disjoint_timer_query_webgl2',
82
- 'EXT_float_blend',
83
- 'EXT_polygon_offset_clamp',
84
- 'EXT_render_snorm',
85
- 'EXT_texture_compression_bptc',
86
- 'EXT_texture_compression_rgtc',
87
- 'EXT_texture_filter_anisotropic',
88
- 'EXT_texture_mirror_clamp_to_edge',
89
- 'EXT_texture_norm16',
90
- 'KHR_parallel_shader_compile',
91
- 'NV_shader_noperspective_interpolation',
92
- 'OES_draw_buffers_indexed',
93
- 'OES_sample_variables',
94
- 'OES_shader_multisample_interpolation',
95
- 'OES_texture_float_linear',
96
- 'WEBGL_blend_func_extended',
97
- 'WEBGL_clip_cull_distance',
98
- 'WEBGL_compressed_texture_astc',
99
- 'WEBGL_compressed_texture_etc',
100
- 'WEBGL_compressed_texture_etc1',
101
- 'WEBGL_compressed_texture_pvrtc',
102
- 'WEBGL_compressed_texture_s3tc',
103
- 'WEBGL_compressed_texture_s3tc_srgb',
104
- 'WEBGL_debug_renderer_info',
105
- 'WEBGL_debug_shaders',
106
- 'WEBGL_lose_context',
107
- 'WEBGL_multi_draw',
108
- 'WEBGL_polygon_mode',
109
- 'WEBGL_provoking_vertex',
110
- 'WEBGL_render_shared_exponent',
111
- 'WEBGL_stencil_texturing',
191
+ ...APPLE_GL_EXTENSIONS,
192
+ ...APPLE_WEBGL1_EXTENSIONS,
193
+ ...APPLE_WEBGL2_EXTENSIONS.filter((n) => !APPLE_WEBGL1_EXTENSIONS.includes(n)),
112
194
  ],
113
195
  },
114
196
  // Linux + Mesa AMD radeonsi (radeon Vega/RDNA on a recent kernel + Mesa).
@@ -1 +1 @@
1
- {"version":3,"file":"gpu-family-profiles.js","sourceRoot":"","sources":["../../src/browser-process/gpu-family-profiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gpu-family-profiles.js","sourceRoot":"","sources":["../../src/browser-process/gpu-family-profiles.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@ export declare const CHROME_API_KEYS: {
34
34
  };
35
35
  export type ClaimedIntegrityPlatform = keyof typeof CHROME_API_KEYS;
36
36
  export interface IntegrityProfile {
37
- /** The full Chrome version this seed belongs to, e.g. 151.0.7922.108. */
37
+ /** The full Chrome version this seed belongs to, e.g. 157.0.8103.39. */
38
38
  version: string;
39
39
  /** kIntegritySeed for that exact build. */
40
40
  seed: string;
@@ -56,6 +56,23 @@ export interface IntegrityProfile {
56
56
  * base64(sha1('59d2629a8246b372' + macosKey + reducedUA)) = YphvkVZHC4/QbFYqn/v4wI6lmx0=
57
57
  * which is exactly the header captured from a real Chrome 151.0.7922.108 / macOS 26.5.2.
58
58
  *
59
+ * 156.0.8078.80 is verified against real Chrome on macOS (2026-11-04):
60
+ * UA: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36
61
+ * base64(sha1('25f19a0a21434856' + macosKey + UA)) = p0ryEJ6LCa7iMn63FawDjO0pVio=
62
+ * All 65 captured Google requests carried that digest.
63
+ *
64
+ * 157.0.8103.39 is verified against real Chrome on macOS (official dmg, 2026-11-04):
65
+ * UA: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/157.0.0.0 Safari/537.36
66
+ * base64(sha1('c7311ddf97a360ac' + macosKey + UA)) = GVcRH2YKULBIwBNheMTMHagkbO0=
67
+ * All 62 captured Google requests carried that digest.
68
+ *
69
+ * 157.0.8103.38 is verified against real Chrome on Linux (official deb, 2026-11-04):
70
+ * UA: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/157.0.0.0 Safari/537.36
71
+ * base64(sha1('ab4c254bf3136520' + linuxKey + UA)) = gY7B/hYIRXcXtzAlThaB5EzMNaw=
72
+ * All 65 captured Google requests carried that digest.
73
+ * Mac and Linux shipped different patch levels of 157, so each platform has its own row: a persona must claim
74
+ * the build its platform actually received.
75
+ *
59
76
  * The other two were extracted by the same anchored method but have no capture yet,
60
77
  * so they are recorded as unverified and are NOT eligible for use.
61
78
  */
@@ -66,18 +83,16 @@ export declare const UNVERIFIED_SEEDS: Record<string, string>;
66
83
  * The version we advertise when integrity headers are enabled.
67
84
  *
68
85
  * This is the crux of the coupling. The REDUCED user agent carries no patch level
69
- * (`Chrome/151.0.0.0`), so it is identical across every 151.x build and the seed is
86
+ * (`Chrome/156.0.0.0`), so it is identical across every 156.x build and the seed is
70
87
  * the only version-specific input to the digest. But `sec-ch-ua-full-version` DOES
71
88
  * carry the patch level, and Google can recompute the digest using the seed for
72
89
  * whichever version we claim there.
73
90
  *
74
- * So the claimed full version and the seed must come from the same build. Our binary
75
- * is 151.0.7922.72 and no seed exists for it (that build is neither installed
76
- * locally nor in Google's deb pool), which is why enabling this feature requires
77
- * advertising a version we hold a seed for. Nothing on the wire reveals the true
78
- * binary version.
91
+ * So the claimed full version and the seed must come from the same build.
92
+ * Our binary is 157.0.8103.39 (the macOS stable build), and its macOS seed is verified against a real capture.
93
+ * The advertised full version therefore matches both the binary and the seed.
79
94
  */
80
- export declare const INTEGRITY_CLAIMED_VERSION = "151.0.7922.108";
95
+ export declare const INTEGRITY_CLAIMED_VERSION = "157.0.8103.39";
81
96
  /**
82
97
  * Build the launch switches, or return an empty list when we cannot do it correctly.
83
98
  *
@@ -100,17 +115,14 @@ export declare function buildIntegrityHeaderArgs(options: {
100
115
  * full version to the seed we actually hold.
101
116
  *
102
117
  * THE COUPLING THIS RESOLVES. The reduced user agent carries no patch level
103
- * (`Chrome/151.0.0.0`), so it is identical across every 151.x build. But
118
+ * (`Chrome/156.0.0.0`), so it is identical across every 156.x build. But
104
119
  * `sec-ch-ua-full-version` and `fullVersionList` DO carry it, and Google can
105
120
  * recompute the digest with the seed belonging to whichever version we advertise
106
121
  * there. So the advertised full version and the seed must come from the same build.
107
122
  *
108
- * Our binary is 151.0.7922.72 and no seed exists for it - that build is neither
109
- * installed locally nor still in Google's deb pool - so alignFingerprintConfigWithBinary
110
- * leaves the config advertising a version we cannot produce a digest for. This
111
- * rewrites the advertised version to the one the seed belongs to. Nothing on the
112
- * wire reveals the binary's true version, so claiming .108 while running .72 is
113
- * consistent to every observer; claiming .72 while sending .108's digest is not.
123
+ * The default profile is the verified macOS capture for our 157.0.8103.39 binary.
124
+ * This keeps every advertised full-version field aligned with that profile,
125
+ * including when the input config still carries an older version.
114
126
  *
115
127
  * Mutates the config in place and returns whether it did anything, so the caller can
116
128
  * log the decision rather than silently shipping a mismatch.
@@ -120,9 +132,15 @@ export declare function applyIntegrityToConfig(config: {
120
132
  userAgentData?: {
121
133
  platform?: string;
122
134
  uaFullVersion?: string;
135
+ brands?: {
136
+ brand: string;
137
+ version: string;
138
+ full_version?: string;
139
+ }[];
123
140
  fullVersionList?: {
124
141
  brand: string;
125
142
  version: string;
143
+ full_version?: string;
126
144
  }[];
127
145
  };
128
146
  platform?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"integrity-headers.d.ts","sourceRoot":"","sources":["../../src/browser-process/integrity-headers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,eAAe,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC7B,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAOxE,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGnD,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,yBAAyB,mBAAmB,CAAC;AAE1D;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAC9C,8CAA8C;IAC9C,eAAe,EAAE,wBAAwB,CAAC;IAC1C,4DAA4D;IAC5D,cAAc,EAAE,MAAM,CAAC;CAC1B,GAAG;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAyBvC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CAClC,MAAM,EAAE;IACJ,SAAS,CAAC,EAAE;QACR,aAAa,CAAC,EAAE;YACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,eAAe,CAAC,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAA;aAAE,EAAE,CAAC;SAC1D,CAAC;QACF,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACjF,EACD,eAAe,EAAE,wBAAwB,EACzC,OAAO,GAAE,MAAkC,GAC5C;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAsCvC"}
1
+ {"version":3,"file":"integrity-headers.d.ts","sourceRoot":"","sources":["../../src/browser-process/integrity-headers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,+EAA+E;AAC/E,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,eAAe,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC7B,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAyBxE,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGnD,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,yBAAyB,kBAAkB,CAAC;AAEzD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAC9C,8CAA8C;IAC9C,eAAe,EAAE,wBAAwB,CAAC;IAC1C,4DAA4D;IAC5D,cAAc,EAAE,MAAM,CAAC;CAC1B,GAAG;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAyBvC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAClC,MAAM,EAAE;IACJ,SAAS,CAAC,EAAE;QACR,aAAa,CAAC,EAAE;YACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,MAAM,CAAC,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAC;gBAAC,YAAY,CAAC,EAAE,MAAM,CAAA;aAAE,EAAE,CAAC;YACrE,eAAe,CAAC,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAC;gBAAC,YAAY,CAAC,EAAE,MAAM,CAAA;aAAE,EAAE,CAAC;SACjF,CAAC;QACF,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACjF,EACD,eAAe,EAAE,wBAAwB,EACzC,OAAO,GAAE,MAAkC,GAC5C;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAuEvC"}
@@ -26,6 +26,7 @@
26
26
  * (see the harvest-chrome-integrity skill). A seed only enters this table once it
27
27
  * has reproduced a real captured header byte for byte.
28
28
  */
29
+ import { isGreaseBrand } from '../fingerprinting/ua-ch-brands.js';
29
30
  /** Platform-specific Google API keys, as compiled into real branded Chrome. */
30
31
  export const CHROME_API_KEYS = {
31
32
  macos: 'AIzaSyDr2UxVnv_U85AbhhY8XSHSIavUW0DC-sY',
@@ -45,10 +46,45 @@ export const CHROME_API_KEYS = {
45
46
  * base64(sha1('59d2629a8246b372' + macosKey + reducedUA)) = YphvkVZHC4/QbFYqn/v4wI6lmx0=
46
47
  * which is exactly the header captured from a real Chrome 151.0.7922.108 / macOS 26.5.2.
47
48
  *
49
+ * 156.0.8078.80 is verified against real Chrome on macOS (2026-11-04):
50
+ * UA: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36
51
+ * base64(sha1('25f19a0a21434856' + macosKey + UA)) = p0ryEJ6LCa7iMn63FawDjO0pVio=
52
+ * All 65 captured Google requests carried that digest.
53
+ *
54
+ * 157.0.8103.39 is verified against real Chrome on macOS (official dmg, 2026-11-04):
55
+ * UA: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/157.0.0.0 Safari/537.36
56
+ * base64(sha1('c7311ddf97a360ac' + macosKey + UA)) = GVcRH2YKULBIwBNheMTMHagkbO0=
57
+ * All 62 captured Google requests carried that digest.
58
+ *
59
+ * 157.0.8103.38 is verified against real Chrome on Linux (official deb, 2026-11-04):
60
+ * UA: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/157.0.0.0 Safari/537.36
61
+ * base64(sha1('ab4c254bf3136520' + linuxKey + UA)) = gY7B/hYIRXcXtzAlThaB5EzMNaw=
62
+ * All 65 captured Google requests carried that digest.
63
+ * Mac and Linux shipped different patch levels of 157, so each platform has its own row: a persona must claim
64
+ * the build its platform actually received.
65
+ *
48
66
  * The other two were extracted by the same anchored method but have no capture yet,
49
67
  * so they are recorded as unverified and are NOT eligible for use.
50
68
  */
51
69
  export const VERIFIED_INTEGRITY_PROFILES = {
70
+ '157.0.8103.39': {
71
+ version: '157.0.8103.39',
72
+ seed: 'c7311ddf97a360ac',
73
+ year: '2026',
74
+ copyright: 'Copyright 2026 Google LLC. All Rights Reserved.',
75
+ },
76
+ '157.0.8103.38': {
77
+ version: '157.0.8103.38',
78
+ seed: 'ab4c254bf3136520',
79
+ year: '2026',
80
+ copyright: 'Copyright 2026 Google LLC. All Rights Reserved.',
81
+ },
82
+ '156.0.8078.80': {
83
+ version: '156.0.8078.80',
84
+ seed: '25f19a0a21434856',
85
+ year: '2026',
86
+ copyright: 'Copyright 2026 Google LLC. All Rights Reserved.',
87
+ },
52
88
  '151.0.7922.108': {
53
89
  version: '151.0.7922.108',
54
90
  seed: '59d2629a8246b372',
@@ -65,18 +101,16 @@ export const UNVERIFIED_SEEDS = {
65
101
  * The version we advertise when integrity headers are enabled.
66
102
  *
67
103
  * This is the crux of the coupling. The REDUCED user agent carries no patch level
68
- * (`Chrome/151.0.0.0`), so it is identical across every 151.x build and the seed is
104
+ * (`Chrome/156.0.0.0`), so it is identical across every 156.x build and the seed is
69
105
  * the only version-specific input to the digest. But `sec-ch-ua-full-version` DOES
70
106
  * carry the patch level, and Google can recompute the digest using the seed for
71
107
  * whichever version we claim there.
72
108
  *
73
- * So the claimed full version and the seed must come from the same build. Our binary
74
- * is 151.0.7922.72 and no seed exists for it (that build is neither installed
75
- * locally nor in Google's deb pool), which is why enabling this feature requires
76
- * advertising a version we hold a seed for. Nothing on the wire reveals the true
77
- * binary version.
109
+ * So the claimed full version and the seed must come from the same build.
110
+ * Our binary is 157.0.8103.39 (the macOS stable build), and its macOS seed is verified against a real capture.
111
+ * The advertised full version therefore matches both the binary and the seed.
78
112
  */
79
- export const INTEGRITY_CLAIMED_VERSION = '151.0.7922.108';
113
+ export const INTEGRITY_CLAIMED_VERSION = '157.0.8103.39';
80
114
  /**
81
115
  * Build the launch switches, or return an empty list when we cannot do it correctly.
82
116
  *
@@ -114,17 +148,14 @@ export function buildIntegrityHeaderArgs(options) {
114
148
  * full version to the seed we actually hold.
115
149
  *
116
150
  * THE COUPLING THIS RESOLVES. The reduced user agent carries no patch level
117
- * (`Chrome/151.0.0.0`), so it is identical across every 151.x build. But
151
+ * (`Chrome/156.0.0.0`), so it is identical across every 156.x build. But
118
152
  * `sec-ch-ua-full-version` and `fullVersionList` DO carry it, and Google can
119
153
  * recompute the digest with the seed belonging to whichever version we advertise
120
154
  * there. So the advertised full version and the seed must come from the same build.
121
155
  *
122
- * Our binary is 151.0.7922.72 and no seed exists for it - that build is neither
123
- * installed locally nor still in Google's deb pool - so alignFingerprintConfigWithBinary
124
- * leaves the config advertising a version we cannot produce a digest for. This
125
- * rewrites the advertised version to the one the seed belongs to. Nothing on the
126
- * wire reveals the binary's true version, so claiming .108 while running .72 is
127
- * consistent to every observer; claiming .72 while sending .108's digest is not.
156
+ * The default profile is the verified macOS capture for our 157.0.8103.39 binary.
157
+ * This keeps every advertised full-version field aligned with that profile,
158
+ * including when the input config still carries an older version.
128
159
  *
129
160
  * Mutates the config in place and returns whether it did anything, so the caller can
130
161
  * log the decision rather than silently shipping a mismatch.
@@ -152,15 +183,44 @@ export function applyIntegrityToConfig(config, claimedPlatform, version = INTEGR
152
183
  // Align every place the patch level is advertised, not just uaFullVersion:
153
184
  // fullVersionList is sent as sec-ch-ua-full-version-list and would otherwise
154
185
  // disagree with it, which is its own contradiction.
186
+ //
187
+ // TWO BUGS FIXED HERE, both measured on the wire in 1.0.0-beta.5.
188
+ //
189
+ // 1. `full_version` was not rewritten. Each entry was spread from the
190
+ // binary-aligned brand list, which carries BOTH a `version` and a
191
+ // `full_version`, and only `version` was being replaced. The C++ config
192
+ // parse prefers `full_version` when present
193
+ // (blink_settings_config.cc, the fullVersionList mirror-by-name loop),
194
+ // so the old value won and every request went out with
195
+ // sec-ch-ua-full-version: "151.0.7922.108"
196
+ // sec-ch-ua-full-version-list: ..."Google Chrome";v="151.0.7922.72"
197
+ // Both fields are written now.
198
+ //
199
+ // 2. The GREASE entry was the ONLY entry the version regex rewrote. The
200
+ // test was `/^\d+\.0\.0\.0$/`, evidently meant to spare GREASE, but
201
+ // GREASE's version IS `99.0.0.0` and so it matched, while the real
202
+ // brands carry a four-part build number and did not. Real Chrome 151
203
+ // sends `"Not=A?Brand";v="99.0.0.0"`; rewriting it to `151.0.0.0` would
204
+ // have replaced one contradiction with a fresh one. Identified by brand
205
+ // shape now, not by version shape, which is what isGreaseBrand is for.
155
206
  const uaData = config.navigator?.userAgentData;
156
207
  if (uaData) {
157
208
  uaData.uaFullVersion = profile.version;
158
209
  if (Array.isArray(uaData.fullVersionList)) {
159
- const major = profile.version.split('.')[0];
160
- uaData.fullVersionList = uaData.fullVersionList.map((entry) => ({
161
- ...entry,
162
- version: /^\d+\.0\.0\.0$/.test(entry.version) ? `${major}.0.0.0` : profile.version,
163
- }));
210
+ uaData.fullVersionList = uaData.fullVersionList.map((entry) => (isGreaseBrand(entry.brand)
211
+ ? entry
212
+ : { ...entry, version: profile.version, full_version: profile.version }));
213
+ }
214
+ // `brands` is the array the C++ actually iterates; fullVersionList is
215
+ // only mirrored onto it by brand name. alignFingerprintConfigWithBinary
216
+ // assigns the SAME array object to both, so rebuilding fullVersionList
217
+ // above leaves `brands` pointing at the old one. Rewrite it too, and
218
+ // keep the major-version-only `version` field alone: that surface is
219
+ // sec-ch-ua, which carries no patch level in any Chrome.
220
+ if (Array.isArray(uaData.brands)) {
221
+ uaData.brands = uaData.brands.map((entry) => (isGreaseBrand(entry.brand)
222
+ ? entry
223
+ : { ...entry, full_version: profile.version }));
164
224
  }
165
225
  }
166
226
  return { applied: true };
@@ -1 +1 @@
1
- {"version":3,"file":"integrity-headers.js","sourceRoot":"","sources":["../../src/browser-process/integrity-headers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integrity-headers.js","sourceRoot":"","sources":["../../src/browser-process/integrity-headers.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export declare const modifyChromeProfile: (profile: any, profileOptions?: any) => any;
2
2
  export declare function createChromeProfile(profilePath: string, profileOptions?: {
3
- locale: string;
3
+ locale?: string;
4
+ acceptLanguages?: string;
4
5
  }): Promise<void>;
5
6
  //# sourceMappingURL=create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/browser-profiles/chrome/create.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,mBAAmB,YAAa,GAAG,mBAAkB,GAAG,QAMpE,CAAA;AACD,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAYjH"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/browser-profiles/chrome/create.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,mBAAmB,YAAa,GAAG,mBAAkB,GAAG,QAMpE,CAAA;AACD,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAY5I"}
@@ -1,6 +1,6 @@
1
1
  import fs from 'fs/promises';
2
2
  import path from 'path';
3
- import { DEFAULT_PROFILE } from './default.js';
3
+ import { withAcceptLanguages } from './default.js';
4
4
  // Preparation for modifying the browser profile based on options
5
5
  // @TODO: Implement
6
6
  export const modifyChromeProfile = (profile, profileOptions = {}) => {
@@ -16,7 +16,7 @@ export async function createChromeProfile(profilePath, profileOptions) {
16
16
  // Create the Preferences file
17
17
  const preferencesPath = path.join(profilePath, 'Default', 'Preferences');
18
18
  await fs.mkdir(path.dirname(preferencesPath), { recursive: true });
19
- const preferences = profileOptions ? modifyChromeProfile(DEFAULT_PROFILE, profileOptions) : DEFAULT_PROFILE;
19
+ const preferences = modifyChromeProfile(withAcceptLanguages(profileOptions?.acceptLanguages), profileOptions ?? {});
20
20
  await fs.writeFile(preferencesPath, JSON.stringify(preferences, null, 2));
21
21
  }
22
22
  //# sourceMappingURL=create.js.map