capiumbrowser 1.1.6 → 1.1.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.
- package/lib/channels.json +32 -32
- package/lib/config.js +7 -4
- package/package.json +1 -1
- package/playwright.js +6 -4
- package/puppeteer.js +6 -4
package/lib/channels.json
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
2
|
+
"_comment": "SINGLE SOURCE OF TRUTH for the current stable Capium browser build per OS/arch. Each OS reaches stable independently -- edit one entry without touching the others. This file ships inside the wheel (the SDK reads it to pick each host's stable build) AND is published to the download server by the release pipeline. `version` is the Chromium version (what the browser reports to the customer -- unchanged by the revision); `revision` is our packaging counter -- the served R2 folder is chromium-v<version>.<revision>/, ALWAYS dotted-suffixed starting at 1 (chromium-v<version>.1/ is the first build, .2/ a same-engine re-spin), so publishing a re-spin never overwrites the artifact older SDKs still fetch. `published: false` means the tag is declared but no artifact exists yet -- the SDK raises a clear 'not published yet' error instead of a raw 404.",
|
|
3
|
+
"schema": 1,
|
|
4
|
+
"updated": "2026-10-08",
|
|
5
|
+
"channels": {
|
|
6
|
+
"stable": {
|
|
7
|
+
"windows-x64": {
|
|
8
|
+
"version": "153.0.8010.53",
|
|
9
|
+
"engine_version": "153.0.8010.52",
|
|
10
|
+
"revision": 5,
|
|
11
|
+
"sha256": "3f53b86f80a3b145cb75995615f19c957a74d6a1a0ae1151ff64517b3a931d67",
|
|
12
|
+
"published": true
|
|
13
|
+
},
|
|
14
|
+
"macos-arm64": {
|
|
15
|
+
"version": "153.0.8010.53",
|
|
16
|
+
"engine_version": "153.0.8010.52",
|
|
17
|
+
"revision": 6,
|
|
18
|
+
"sha256": "eca400433d74e5ac3b59fa1764bba783674a05cfc5a34598c8c1d2f02c708e18",
|
|
19
|
+
"published": true
|
|
20
|
+
},
|
|
21
|
+
"linux-x64": {
|
|
22
|
+
"version": "153.0.8010.52",
|
|
23
|
+
"revision": 5,
|
|
24
|
+
"sha256": "f65f11a2b15dea523ee95e35cadbbd43c77aba4751cdc0f96f8c138143f041bb",
|
|
25
|
+
"published": true
|
|
26
|
+
},
|
|
27
|
+
"linux-arm64": {
|
|
28
|
+
"version": "153.0.8010.52",
|
|
29
|
+
"revision": 1,
|
|
30
|
+
"sha256": null,
|
|
31
|
+
"published": false
|
|
32
|
+
}
|
|
33
|
+
}
|
|
33
34
|
}
|
|
34
|
-
}
|
|
35
35
|
}
|
package/lib/config.js
CHANGED
|
@@ -22,11 +22,14 @@ const path = require('path');
|
|
|
22
22
|
*
|
|
23
23
|
* seed: int identity seed (a stable, coherent device per seed). Random if null.
|
|
24
24
|
* platform: "windows" | "macos" | "linux" -- the spoofed OS persona.
|
|
25
|
-
* screen:
|
|
26
|
-
*
|
|
27
|
-
*
|
|
25
|
+
* screen: DEFAULT null -> use the seed's COHERENT per-seed device screen from the binary's
|
|
26
|
+
* device pool (GPU-matched resolution + realistic dpr); fitWindow then sizes the window
|
|
27
|
+
* to it so viewport ~= screen. Passing an explicit [w,h] FORCES that resolution on every
|
|
28
|
+
* seed (all instances share one screen AND can pair e.g. an RTX 5080 with 1440x900) --
|
|
29
|
+
* only for a fixed-kiosk scenario. (Previously defaulted to [1440,900], a cross-instance
|
|
30
|
+
* correlation + GPU-incoherence tell -- now matches the python SDK's screen=None.)
|
|
28
31
|
*/
|
|
29
|
-
function getDefaultStealthArgs(seed = null, platform = 'windows', screen =
|
|
32
|
+
function getDefaultStealthArgs(seed = null, platform = 'windows', screen = null) {
|
|
30
33
|
const args = [];
|
|
31
34
|
if (seed !== null && seed !== undefined) {
|
|
32
35
|
const s = Math.trunc(Number(seed));
|
package/package.json
CHANGED
package/playwright.js
CHANGED
|
@@ -236,10 +236,12 @@ async function fitWindow(browser, context, page) {
|
|
|
236
236
|
if (!scr || !scr.w || !scr.h) return;
|
|
237
237
|
const aw = Math.trunc(scr.w);
|
|
238
238
|
const ah = Math.trunc(scr.h);
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
const
|
|
242
|
-
const
|
|
239
|
+
// Size the window to the FULL per-seed screen (match python _fit_window_to_screen) so
|
|
240
|
+
// screen ~= viewport -- avoids the browserscan "screen != viewport" VM tell. NOT a forced 1440x900.
|
|
241
|
+
const w = aw;
|
|
242
|
+
const h = ah;
|
|
243
|
+
const left = 0;
|
|
244
|
+
const top = 0;
|
|
243
245
|
const pcdp = await context.newCDPSession(page);
|
|
244
246
|
const { targetInfo } = await pcdp.send('Target.getTargetInfo');
|
|
245
247
|
const bcdp = await browser.newBrowserCDPSession();
|
package/puppeteer.js
CHANGED
|
@@ -216,10 +216,12 @@ async function fitWindow(browser, page) {
|
|
|
216
216
|
if (!scr || !scr.w || !scr.h) return;
|
|
217
217
|
const aw = Math.trunc(scr.w);
|
|
218
218
|
const ah = Math.trunc(scr.h);
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
const
|
|
222
|
-
const
|
|
219
|
+
// Size the window to the FULL per-seed screen (match python _fit_window_to_screen) so
|
|
220
|
+
// screen ~= viewport -- avoids the browserscan "screen != viewport" VM tell. NOT a forced 1440x900.
|
|
221
|
+
const w = aw;
|
|
222
|
+
const h = ah;
|
|
223
|
+
const left = 0;
|
|
224
|
+
const top = 0;
|
|
223
225
|
const cdp = await page.createCDPSession();
|
|
224
226
|
const { targetInfo } = await cdp.send('Target.getTargetInfo');
|
|
225
227
|
const { windowId } = await cdp.send('Browser.getWindowForTarget',
|