visionclaw 0.1.200-dev.feat-issue-534-browser-singleton.1 → 0.1.200-dev.feat-issue-534-browser-singleton.2

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.
@@ -15,12 +15,14 @@ export declare function killPlaywriterChrome(): void;
15
15
  /**
16
16
  * Launch Chrome with a dedicated user-data-dir for Playwriter.
17
17
  *
18
- * The Playwriter extension is loaded straight from the bundled `playwriter` npm
19
- * package via `--load-extension` (issue #534, layer 1) instead of relying on
20
- * Chrome's external-install path. `--disable-extensions-except` pins the profile
21
- * to exactly that one unpacked extension so no stray copy can also connect to
22
- * the relay. We scrub any stale `external_uninstalls` blacklist entry first,
23
- * while this profile's Chrome is guaranteed not running.
18
+ * The Playwriter extension installs into this profile from its own
19
+ * `External Extensions/<id>.json` (web-store `external_update_url`), written by
20
+ * {@link ensurePlaywriterExtension}. Chrome installs externally-declared
21
+ * extensions on launch, so we only scrub any stale `external_uninstalls`
22
+ * blacklist entry first while this profile's Chrome is guaranteed not
23
+ * running so a previously-removed copy is re-added. We deliberately do NOT use
24
+ * `--load-extension`: that command-line switch is disabled by default on
25
+ * Chrome 137+ (and fully on 149), so it silently loads nothing (issue #534).
24
26
  */
25
27
  export declare function launchPlaywriterProfileChrome(): void;
26
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"session-browser-policy.d.ts","sourceRoot":"","sources":["../../../../src/agent/engines/claude/session-browser-policy.ts"],"names":[],"mappings":"AAyCA;;;GAGG;AACH,wBAAgB,8BAA8B,IAAI,IAAI,CAMrD;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAM3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,IAAI,IAAI,CAkCpD;AAED;;GAEG;AACH,wBAAgB,gCAAgC,IAAI,OAAO,CAO1D;AAYD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,sBAAsB,CAC1C,2BAA2B,EAAE,OAAO,EACpC,IAAI,SAAc,EAClB,IAAI,SAAQ,GACX,OAAO,CAAC,OAAO,CAAC,CA0BlB"}
1
+ {"version":3,"file":"session-browser-policy.d.ts","sourceRoot":"","sources":["../../../../src/agent/engines/claude/session-browser-policy.ts"],"names":[],"mappings":"AAwCA;;;GAGG;AACH,wBAAgB,8BAA8B,IAAI,IAAI,CAMrD;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAM3C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,6BAA6B,IAAI,IAAI,CA4BpD;AAED;;GAEG;AACH,wBAAgB,gCAAgC,IAAI,OAAO,CAO1D;AAYD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,sBAAsB,CAC1C,2BAA2B,EAAE,OAAO,EACpC,IAAI,SAAc,EAClB,IAAI,SAAQ,GACX,OAAO,CAAC,OAAO,CAAC,CA0BlB"}
@@ -1,7 +1,7 @@
1
1
  import { execFileSync, spawn } from "node:child_process";
2
2
  import fs from "node:fs";
3
3
  import { getPlaywriterProfileDir } from "../../../config/index.js";
4
- import { cleanPlaywriterExternalUninstalls, resolveBundledExtensionDir, } from "../../../onboarding/playwriter-extension.js";
4
+ import { cleanPlaywriterExternalUninstalls, } from "../../../onboarding/playwriter-extension.js";
5
5
  import { getPlaywriterRelayStatus, getRelayExtensionDiagnosis, invalidateRelayStatusCache, } from "../../../utils/playwriter-relay.js";
6
6
  import { logger } from "../../../logger.js";
7
7
  let _dataDir = null;
@@ -60,12 +60,14 @@ export function killPlaywriterChrome() {
60
60
  /**
61
61
  * Launch Chrome with a dedicated user-data-dir for Playwriter.
62
62
  *
63
- * The Playwriter extension is loaded straight from the bundled `playwriter` npm
64
- * package via `--load-extension` (issue #534, layer 1) instead of relying on
65
- * Chrome's external-install path. `--disable-extensions-except` pins the profile
66
- * to exactly that one unpacked extension so no stray copy can also connect to
67
- * the relay. We scrub any stale `external_uninstalls` blacklist entry first,
68
- * while this profile's Chrome is guaranteed not running.
63
+ * The Playwriter extension installs into this profile from its own
64
+ * `External Extensions/<id>.json` (web-store `external_update_url`), written by
65
+ * {@link ensurePlaywriterExtension}. Chrome installs externally-declared
66
+ * extensions on launch, so we only scrub any stale `external_uninstalls`
67
+ * blacklist entry first while this profile's Chrome is guaranteed not
68
+ * running so a previously-removed copy is re-added. We deliberately do NOT use
69
+ * `--load-extension`: that command-line switch is disabled by default on
70
+ * Chrome 137+ (and fully on 149), so it silently loads nothing (issue #534).
69
71
  */
70
72
  export function launchPlaywriterProfileChrome() {
71
73
  const chromePath = getChromePath();
@@ -73,20 +75,16 @@ export function launchPlaywriterProfileChrome() {
73
75
  logger.warn(`Chrome not found at ${chromePath}`);
74
76
  return;
75
77
  }
78
+ // Scrub any stale external_uninstalls blacklist entry while this profile's
79
+ // Chrome is guaranteed not running, so Chrome re-installs the Playwriter
80
+ // extension from the profile's External Extensions JSON on launch.
81
+ cleanPlaywriterExternalUninstalls(getDataDir());
76
82
  const flags = [
77
83
  `--user-data-dir=${getDataDir()}`,
78
84
  "--no-first-run",
79
85
  "--no-default-browser-check",
80
86
  "--profile-directory=Default",
81
87
  ];
82
- const extensionDir = resolveBundledExtensionDir();
83
- if (extensionDir) {
84
- cleanPlaywriterExternalUninstalls(getDataDir());
85
- flags.push(`--disable-extensions-except=${extensionDir}`, `--load-extension=${extensionDir}`);
86
- }
87
- else {
88
- logger.warn("Playwriter: bundled extension dir not resolvable — launching Chrome without it");
89
- }
90
88
  const child = spawn(chromePath, flags, {
91
89
  detached: true,
92
90
  stdio: "ignore",
@@ -1 +1 @@
1
- {"version":3,"file":"session-browser-policy.js","sourceRoot":"","sources":["../../../../src/agent/engines/claude/session-browser-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-browser-policy.js","sourceRoot":"","sources":["../../../../src/agent/engines/claude/session-browser-policy.ts"],"names":[],"mappings":"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"}
@@ -37,9 +37,9 @@ export interface BuiltRuntimeSurface {
37
37
  *
38
38
  * Returns the resolved {@link BrowserBackend} rather than mutating config — the
39
39
  * backend is an internal runtime value (see {@link RuntimeSurface}). Playwriter
40
- * is selected only when its bundled extension is resolvable AND the relay is
41
- * viable; everything else (including all non-macOS) falls back to plain
42
- * Playwright CDP.
40
+ * is selected only when the dedicated profile's External Extensions JSON is
41
+ * installed AND the relay is viable; everything else (including all non-macOS)
42
+ * falls back to plain Playwright CDP.
43
43
  */
44
44
  export declare function detectBrowserBackend(config: VisionClawConfig): Promise<BrowserBackend>;
45
45
  export declare function buildRuntimeSurface(config: VisionClawConfig): Promise<BuiltRuntimeSurface>;
@@ -43,9 +43,9 @@ async function bringUpPlaywriterLazily(host, port) {
43
43
  }
44
44
  // Chrome is not running. Per the lazy-launch policy we do not start it at
45
45
  // detection time; it launches on first browser tool use. Keep Playwriter only
46
- // when the bundled extension is resolvable otherwise the deferred Chrome
47
- // would come up without it (the launcher loads it via --load-extension) and
48
- // never connect.
46
+ // when the dedicated profile's External Extensions JSON is installed
47
+ // otherwise the deferred Chrome would come up without the extension and never
48
+ // connect.
49
49
  if (!isPlaywriterExtensionAvailable()) {
50
50
  return { viable: false, mode: "deferred" };
51
51
  }
@@ -59,9 +59,9 @@ async function bringUpPlaywriterLazily(host, port) {
59
59
  *
60
60
  * Returns the resolved {@link BrowserBackend} rather than mutating config — the
61
61
  * backend is an internal runtime value (see {@link RuntimeSurface}). Playwriter
62
- * is selected only when its bundled extension is resolvable AND the relay is
63
- * viable; everything else (including all non-macOS) falls back to plain
64
- * Playwright CDP.
62
+ * is selected only when the dedicated profile's External Extensions JSON is
63
+ * installed AND the relay is viable; everything else (including all non-macOS)
64
+ * falls back to plain Playwright CDP.
65
65
  */
66
66
  export async function detectBrowserBackend(config) {
67
67
  if (process.platform !== "darwin")
@@ -84,7 +84,7 @@ export async function detectBrowserBackend(config) {
84
84
  }
85
85
  }
86
86
  else {
87
- logger.system("Browser backend: Playwright CDP (Playwriter bundled extension not found)");
87
+ logger.system("Browser backend: Playwright CDP (Playwriter External Extensions JSON not installed)");
88
88
  cleanupOrphanRelay();
89
89
  }
90
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-surface.js","sourceRoot":"","sources":["../../src/agent/runtime-surface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-surface.js","sourceRoot":"","sources":["../../src/agent/runtime-surface.ts"],"names":[],"mappings":"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"}
@@ -10,17 +10,13 @@ function getRelayInfoPath() {
10
10
  ?? join(homedir(), ".visionclaw", "profiles", "default", ".playwriter-relay-info.json");
11
11
  }
12
12
  function hasExtensionConfig() {
13
- // The extension ships unpacked inside the `playwriter` package and is loaded
14
- // into the dedicated Chrome via --load-extension (issue #534, layer 1). The
15
- // relay only needs that package to be resolvable. This entry is bundled to
16
- // CJS (no import.meta), so resolve with the ambient `require`.
17
- try {
18
- const extDir = join(dirname(require.resolve("playwriter/package.json")), "dist", "extension");
19
- return existsSync(join(extDir, "manifest.json"));
20
- }
21
- catch {
22
- return false;
23
- }
13
+ // The extension installs into the dedicated Playwriter profile from that
14
+ // profile's own External Extensions JSON (issue #534). The relay precondition
15
+ // is that this install config exists. The config dir is the parent of the
16
+ // relay-info path, so this honors RELAY_INFO_PATH overrides too.
17
+ const configDir = dirname(getRelayInfoPath());
18
+ const jsonPath = join(configDir, ".playwriter-chrome", "External Extensions", `${EXTENSION_ID}.json`);
19
+ return existsSync(jsonPath);
24
20
  }
25
21
  function hasConflictingPolicyInstall() {
26
22
  if (process.platform !== "darwin")
@@ -59,7 +55,7 @@ function removeRelayInfo() {
59
55
  }
60
56
  async function main() {
61
57
  if (!hasExtensionConfig()) {
62
- console.error("Playwriter bundled extension not found (expected node_modules/playwriter/dist/extension/manifest.json). Reinstall the playwriter npm package.");
58
+ console.error("Playwriter extension not configured (dedicated-profile External Extensions JSON not found). Run extension install first.");
63
59
  process.exit(1);
64
60
  }
65
61
  if (hasConflictingPolicyInstall()) {
@@ -1 +1 @@
1
- {"version":3,"file":"playwriter-relay.js","sourceRoot":"","sources":["../../src/entry/playwriter-relay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playwriter-relay.js","sourceRoot":"","sources":["../../src/entry/playwriter-relay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,YAAY,GAAG,kCAAkC,CAAC;AACxD,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAEjC,SAAS,gBAAgB;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe;WAC7B,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,6BAA6B,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,kBAAkB;IACzB,yEAAyE;IACzE,8EAA8E;IAC9E,0EAA0E;IAC1E,iEAAiE;IACjE,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,GAAG,YAAY,OAAO,CAAC,CAAC;IACtG,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,2BAA2B;IAClC,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,sDAAsD,CAAC;QACzE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,KAAK,CAAC;QACzC,MAAM,OAAO,GAAG,QAAQ,CACtB,iEAAiE,SAAS,eAAe,EACzF,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CACrC,CAAC;QACF,OAAO,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,IAAY;IAChD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;QACrC,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,SAAS;QAC9D,oBAAoB,EAAE,sBAAsB;QAC5C,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS;QAC5C,IAAI;QACJ,IAAI;QACJ,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACf,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,CAAC;QACH,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CACX,0HAA0H,CAC3H,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,2BAA2B,EAAE,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CACX,8EAA8E,CAC/E,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,WAAW,CAAC;IAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;IAE/E,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QACxD,OAAO,CAAC,KAAK,CAAC,kCAAkC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG;QAClB,GAAG,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QACtF,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;KAC3F,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,6BAA6B,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IACvF,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAC,qCAAqC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;IAEjE,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,eAAe,EAAE,CAAC;QAClB,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC5B,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAC;IAC7D,eAAe,EAAE,CAAC;IAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1,36 +1,24 @@
1
1
  declare const PLAYWRITER_EXTENSION_ID = "jfeammnjpkecdekppnclgkkffahnhfhe";
2
2
  /**
3
- * Resolve the unpacked Playwriter extension that ships inside the `playwriter`
4
- * npm dependency (`node_modules/playwriter/dist/extension`). The extension is an
5
- * MV3 build with a fixed manifest `key`, so its id is always
6
- * {@link PLAYWRITER_EXTENSION_ID}.
7
- *
8
- * Loading it directly with Chrome's `--load-extension` (issue #534, layer 1)
9
- * sidesteps Chrome's External-Extensions / enterprise-policy install path,
10
- * which the `external_uninstalls` blacklist can silently veto. `playwriter` is
11
- * marked `--external` in the esbuild bundle, so the package and this dir —
12
- * resolves at runtime in dev (tsx), the GUI bundle, and global installs alike.
13
- *
14
- * Returns null when the dir can't be resolved (e.g. a partial install), so
15
- * callers can fall back instead of launching Chrome with a broken flag.
16
- */
17
- export declare function resolveBundledExtensionDir(): string | null;
18
- /**
19
- * The Playwriter backend is viable when the unpacked extension that ships in the
20
- * `playwriter` npm dependency is resolvable — that is the exact directory we
21
- * hand to Chrome via `--load-extension`. This replaces the old "is the External
22
- * Extensions JSON installed?" gate (issue #534, layer 1): with `--load-extension`
23
- * the extension no longer depends on Chrome's external-install path at all.
3
+ * The Playwriter backend is viable when the dedicated automation profile's
4
+ * External Extensions JSON is installed. Chrome installs the extension into that
5
+ * profile (and only that profile) from the JSON's web-store `external_update_url`
6
+ * on the next launch — verified working on Chrome 149, where the older
7
+ * `--load-extension` command-line switch is disabled by default
8
+ * (`DisableLoadExtensionCommandLineSwitch`). Writing the JSON to the profile's
9
+ * own `External Extensions` dir (not the system-wide one) keeps the install
10
+ * scoped to automation Chrome, so the user's everyday Chrome is untouched and
11
+ * can't add a second same-id connection to the relay (issue #534 / #545).
24
12
  */
25
13
  export declare function isPlaywriterExtensionAvailable(): boolean;
26
14
  /**
27
15
  * Drop {@link PLAYWRITER_EXTENSION_ID} from the dedicated Playwriter profile's
28
16
  * `external_uninstalls` blacklist (`Default/Preferences` →
29
17
  * `extensions.external_uninstalls`). Chrome records an id there when an
30
- * externally-installed extension is removed; while present it can suppress the
31
- * extension on the next launch. `--load-extension` is not gated by this list, so
32
- * this is defensive — it also cleans profiles that previously went through the
33
- * old External-Extensions install path.
18
+ * externally-installed extension is removed; while present it blocks Chrome
19
+ * from re-installing the extension from the External Extensions JSON on the next
20
+ * launch. Scrubbing it lets the profile-scoped External Extensions install take
21
+ * effect again — this is exactly the silent-uninstall case behind issue #545.
34
22
  *
35
23
  * Must only run while this profile's Chrome is NOT live (a running Chrome would
36
24
  * overwrite Preferences on exit), which is exactly the pre-launch moment the
@@ -43,17 +31,22 @@ export declare function isPlaywriterExtensionInChromeProfiles(): {
43
31
  profiles: string[];
44
32
  };
45
33
  /**
46
- * Prepare the host so the Playwriter backend can come up. Since issue #534
47
- * (layer 1) the extension is loaded straight from the `playwriter` npm package
48
- * via Chrome's `--load-extension` (see {@link resolveBundledExtensionDir}), so
49
- * there is nothing to install into Chrome's external-install path anymore. This
50
- * now only *removes* the legacy install artifacts (enterprise policy +
51
- * External Extensions JSON) that earlier versions wrote, so a duplicate copy of
52
- * the same extension can't connect to the relay and trigger its "multiple
53
- * extensions" (4003) failure.
34
+ * Prepare the host so the Playwriter backend can come up. The extension is
35
+ * installed into the dedicated `.playwriter-chrome` profile via that profile's
36
+ * own External Extensions JSON (web-store `external_update_url`): Chrome honors
37
+ * `<user-data-dir>/External Extensions/<id>.json` and installs the extension
38
+ * into only that profile. This:
39
+ * - removes the legacy *system-wide* External Extensions JSON that older
40
+ * versions wrote keeping it would also install the extension into the
41
+ * user's everyday Chrome, producing the duplicate same-id relay connection
42
+ * behind issue #545 (and polluting the user's normal Chrome);
43
+ * - removes any legacy enterprise force-install policy;
44
+ * - writes the profile-scoped External Extensions JSON.
54
45
  *
55
- * Returns true when the bundled extension is resolvable (i.e. the backend is
56
- * viable on this host).
46
+ * The `external_uninstalls` blacklist is scrubbed at launch time
47
+ * ({@link cleanPlaywriterExternalUninstalls}) — while this profile's Chrome is
48
+ * guaranteed not running — so a previously-removed external install is re-added.
49
+ * Returns true when the profile JSON is in place (the backend is viable here).
57
50
  */
58
51
  export declare function ensurePlaywriterExtension(): boolean;
59
52
  export interface LegacyCleanupResult {
@@ -1 +1 @@
1
- {"version":3,"file":"playwriter-extension.d.ts","sourceRoot":"","sources":["../../src/onboarding/playwriter-extension.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,uBAAuB,qCAAqC,CAAC;AAEnE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,GAAG,IAAI,CAQ1D;AAcD;;;;;;GAMG;AACH,wBAAgB,8BAA8B,IAAI,OAAO,CAExD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iCAAiC,CAAC,UAAU,SAA4B,GAAG,OAAO,CAoBjG;AAED,wBAAgB,4BAA4B,IAAI,OAAO,CAatD;AAED,wBAAgB,qCAAqC,IAAI;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAkBlG;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CA2BnD;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAgB,8BAA8B,IAAI,mBAAmB,CAoCpE;AA4CD,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"playwriter-extension.d.ts","sourceRoot":"","sources":["../../src/onboarding/playwriter-extension.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,uBAAuB,qCAAqC,CAAC;AA6BnE;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,IAAI,OAAO,CAExD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iCAAiC,CAAC,UAAU,SAA4B,GAAG,OAAO,CAoBjG;AAED,wBAAgB,4BAA4B,IAAI,OAAO,CAatD;AAED,wBAAgB,qCAAqC,IAAI;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAkBlG;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAuCnD;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAgB,8BAA8B,IAAI,mBAAmB,CAoCpE;AA4CD,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
@@ -1,34 +1,23 @@
1
1
  import { execSync } from "node:child_process";
2
- import { existsSync, readFileSync, readdirSync, rmSync, writeFileSync } from "node:fs";
3
- import { createRequire } from "node:module";
2
+ import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync } from "node:fs";
4
3
  import { homedir } from "node:os";
5
- import { dirname, join } from "node:path";
4
+ import { join } from "node:path";
6
5
  import { getPlaywriterProfileDir } from "../config/index.js";
7
6
  import { logger } from "../logger.js";
8
7
  const PLAYWRITER_EXTENSION_ID = "jfeammnjpkecdekppnclgkkffahnhfhe";
9
- /**
10
- * Resolve the unpacked Playwriter extension that ships inside the `playwriter`
11
- * npm dependency (`node_modules/playwriter/dist/extension`). The extension is an
12
- * MV3 build with a fixed manifest `key`, so its id is always
13
- * {@link PLAYWRITER_EXTENSION_ID}.
14
- *
15
- * Loading it directly with Chrome's `--load-extension` (issue #534, layer 1)
16
- * sidesteps Chrome's External-Extensions / enterprise-policy install path,
17
- * which the `external_uninstalls` blacklist can silently veto. `playwriter` is
18
- * marked `--external` in the esbuild bundle, so the package — and this dir —
19
- * resolves at runtime in dev (tsx), the GUI bundle, and global installs alike.
20
- *
21
- * Returns null when the dir can't be resolved (e.g. a partial install), so
22
- * callers can fall back instead of launching Chrome with a broken flag.
23
- */
24
- export function resolveBundledExtensionDir() {
8
+ const PLAYWRITER_UPDATE_URL = "https://clients2.google.com/service/update2/crx";
9
+ function getExpectedExtensionJson() {
10
+ return JSON.stringify({ external_update_url: PLAYWRITER_UPDATE_URL }, null, 2);
11
+ }
12
+ function isExtensionJsonValid(jsonPath) {
13
+ if (!existsSync(jsonPath))
14
+ return false;
25
15
  try {
26
- const require = createRequire(import.meta.url);
27
- const extDir = join(dirname(require.resolve("playwriter/package.json")), "dist", "extension");
28
- return existsSync(join(extDir, "manifest.json")) ? extDir : null;
16
+ const parsed = JSON.parse(readFileSync(jsonPath, "utf-8"));
17
+ return parsed.external_update_url === PLAYWRITER_UPDATE_URL;
29
18
  }
30
19
  catch {
31
- return null;
20
+ return false;
32
21
  }
33
22
  }
34
23
  function getChromeExternalExtensionsDir() {
@@ -41,23 +30,27 @@ function getProfileExtensionJsonPath() {
41
30
  return join(getPlaywriterProfileDir(), "External Extensions", `${PLAYWRITER_EXTENSION_ID}.json`);
42
31
  }
43
32
  /**
44
- * The Playwriter backend is viable when the unpacked extension that ships in the
45
- * `playwriter` npm dependency is resolvable that is the exact directory we
46
- * hand to Chrome via `--load-extension`. This replaces the old "is the External
47
- * Extensions JSON installed?" gate (issue #534, layer 1): with `--load-extension`
48
- * the extension no longer depends on Chrome's external-install path at all.
33
+ * The Playwriter backend is viable when the dedicated automation profile's
34
+ * External Extensions JSON is installed. Chrome installs the extension into that
35
+ * profile (and only that profile) from the JSON's web-store `external_update_url`
36
+ * on the next launch verified working on Chrome 149, where the older
37
+ * `--load-extension` command-line switch is disabled by default
38
+ * (`DisableLoadExtensionCommandLineSwitch`). Writing the JSON to the profile's
39
+ * own `External Extensions` dir (not the system-wide one) keeps the install
40
+ * scoped to automation Chrome, so the user's everyday Chrome is untouched and
41
+ * can't add a second same-id connection to the relay (issue #534 / #545).
49
42
  */
50
43
  export function isPlaywriterExtensionAvailable() {
51
- return resolveBundledExtensionDir() !== null;
44
+ return isExtensionJsonValid(getProfileExtensionJsonPath());
52
45
  }
53
46
  /**
54
47
  * Drop {@link PLAYWRITER_EXTENSION_ID} from the dedicated Playwriter profile's
55
48
  * `external_uninstalls` blacklist (`Default/Preferences` →
56
49
  * `extensions.external_uninstalls`). Chrome records an id there when an
57
- * externally-installed extension is removed; while present it can suppress the
58
- * extension on the next launch. `--load-extension` is not gated by this list, so
59
- * this is defensive — it also cleans profiles that previously went through the
60
- * old External-Extensions install path.
50
+ * externally-installed extension is removed; while present it blocks Chrome
51
+ * from re-installing the extension from the External Extensions JSON on the next
52
+ * launch. Scrubbing it lets the profile-scoped External Extensions install take
53
+ * effect again — this is exactly the silent-uninstall case behind issue #545.
61
54
  *
62
55
  * Must only run while this profile's Chrome is NOT live (a running Chrome would
63
56
  * overwrite Preferences on exit), which is exactly the pre-launch moment the
@@ -117,17 +110,22 @@ export function isPlaywriterExtensionInChromeProfiles() {
117
110
  return { installed: profiles.length > 0, profiles };
118
111
  }
119
112
  /**
120
- * Prepare the host so the Playwriter backend can come up. Since issue #534
121
- * (layer 1) the extension is loaded straight from the `playwriter` npm package
122
- * via Chrome's `--load-extension` (see {@link resolveBundledExtensionDir}), so
123
- * there is nothing to install into Chrome's external-install path anymore. This
124
- * now only *removes* the legacy install artifacts (enterprise policy +
125
- * External Extensions JSON) that earlier versions wrote, so a duplicate copy of
126
- * the same extension can't connect to the relay and trigger its "multiple
127
- * extensions" (4003) failure.
113
+ * Prepare the host so the Playwriter backend can come up. The extension is
114
+ * installed into the dedicated `.playwriter-chrome` profile via that profile's
115
+ * own External Extensions JSON (web-store `external_update_url`): Chrome honors
116
+ * `<user-data-dir>/External Extensions/<id>.json` and installs the extension
117
+ * into only that profile. This:
118
+ * - removes the legacy *system-wide* External Extensions JSON that older
119
+ * versions wrote keeping it would also install the extension into the
120
+ * user's everyday Chrome, producing the duplicate same-id relay connection
121
+ * behind issue #545 (and polluting the user's normal Chrome);
122
+ * - removes any legacy enterprise force-install policy;
123
+ * - writes the profile-scoped External Extensions JSON.
128
124
  *
129
- * Returns true when the bundled extension is resolvable (i.e. the backend is
130
- * viable on this host).
125
+ * The `external_uninstalls` blacklist is scrubbed at launch time
126
+ * ({@link cleanPlaywriterExternalUninstalls}) — while this profile's Chrome is
127
+ * guaranteed not running — so a previously-removed external install is re-added.
128
+ * Returns true when the profile JSON is in place (the backend is viable here).
131
129
  */
132
130
  export function ensurePlaywriterExtension() {
133
131
  if (process.platform !== "darwin")
@@ -138,20 +136,30 @@ export function ensurePlaywriterExtension() {
138
136
  logger.system(`Playwriter: legacy enterprise policy removed`);
139
137
  }
140
138
  }
141
- // Remove any External Extensions JSON written by older versions — keeping it
142
- // would let Chrome install a second, separately-id'd copy of the extension
143
- // alongside the --load-extension one.
144
- for (const jsonPath of [getExtensionJsonPath(), getProfileExtensionJsonPath()]) {
145
- try {
146
- if (existsSync(jsonPath)) {
147
- rmSync(jsonPath);
148
- logger.system(`Playwriter: removed legacy External Extensions JSON (${jsonPath})`);
149
- }
150
- }
151
- catch (err) {
152
- logger.system(`Playwriter: failed to remove legacy External Extensions JSON: ${err instanceof Error ? err.message : String(err)}`);
139
+ // Remove the legacy system-wide External Extensions JSON written by older
140
+ // versions it would install the extension into the user's everyday Chrome
141
+ // too, adding a second same-id connection to the relay (issue #545).
142
+ const systemJsonPath = getExtensionJsonPath();
143
+ try {
144
+ if (existsSync(systemJsonPath)) {
145
+ rmSync(systemJsonPath);
146
+ logger.system(`Playwriter: removed legacy system External Extensions JSON (${systemJsonPath})`);
153
147
  }
154
148
  }
149
+ catch (err) {
150
+ logger.system(`Playwriter: failed to remove legacy system External Extensions JSON: ${err instanceof Error ? err.message : String(err)}`);
151
+ }
152
+ // Install the extension into the dedicated automation profile only.
153
+ try {
154
+ const profileExtDir = join(getPlaywriterProfileDir(), "External Extensions");
155
+ mkdirSync(profileExtDir, { recursive: true });
156
+ writeFileSync(join(profileExtDir, `${PLAYWRITER_EXTENSION_ID}.json`), getExpectedExtensionJson(), "utf-8");
157
+ logger.system("Playwriter: wrote External Extensions JSON to dedicated profile");
158
+ }
159
+ catch (err) {
160
+ logger.system(`Playwriter: failed to write External Extensions JSON: ${err instanceof Error ? err.message : String(err)}`);
161
+ return false;
162
+ }
155
163
  return isPlaywriterExtensionAvailable();
156
164
  }
157
165
  export function cleanupLegacyPlaywriterInstall() {
@@ -1 +1 @@
1
- {"version":3,"file":"playwriter-extension.js","sourceRoot":"","sources":["../../src/onboarding/playwriter-extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playwriter-extension.js","sourceRoot":"","sources":["../../src/onboarding/playwriter-extension.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prepare-mac.d.ts","sourceRoot":"","sources":["../../src/onboarding/prepare-mac.ts"],"names":[],"mappings":"AA2NA,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,MAAM,GAAG,2BAA2B,GAAG,IAAI,CAInG;AAkED,wBAAgB,6BAA6B,IAAI,OAAO,CAGvD;AAkbD,wBAAgB,yBAAyB,IAAI,OAAO,CA6BnD;AAgHD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAiB9C;AA+QD,wBAAgB,oCAAoC,IAAI,OAAO,CAkB9D;AAED,wBAAgB,iCAAiC,IAAI,IAAI,CAgExD;AAuFD,wBAAgB,8BAA8B,IAAI;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAkB3F;AAED,wBAAgB,4BAA4B,IAAI,OAAO,CAYtD;AAinBD,wBAAgB,kBAAkB,IAAI,IAAI,CAKzC;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAwCnD"}
1
+ {"version":3,"file":"prepare-mac.d.ts","sourceRoot":"","sources":["../../src/onboarding/prepare-mac.ts"],"names":[],"mappings":"AA2NA,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,MAAM,GAAG,2BAA2B,GAAG,IAAI,CAInG;AAkED,wBAAgB,6BAA6B,IAAI,OAAO,CAGvD;AAkbD,wBAAgB,yBAAyB,IAAI,OAAO,CA6BnD;AAgHD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAiB9C;AA+QD,wBAAgB,oCAAoC,IAAI,OAAO,CAkB9D;AAED,wBAAgB,iCAAiC,IAAI,IAAI,CAgExD;AAuFD,wBAAgB,8BAA8B,IAAI;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAkB3F;AAED,wBAAgB,4BAA4B,IAAI,OAAO,CAYtD;AAgnBD,wBAAgB,kBAAkB,IAAI,IAAI,CAKzC;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAwCnD"}
@@ -3,7 +3,7 @@ import { existsSync, mkdirSync, readFileSync, readdirSync, unlinkSync, writeFile
3
3
  import { homedir, tmpdir } from "node:os";
4
4
  import { join } from "node:path";
5
5
  import { generateAndSetWallpaper, getMacHardwareModelName } from "./generate-wallpaper.js";
6
- import { cleanupLegacyPlaywriterInstall, isPlaywriterExtensionAvailable, } from "./playwriter-extension.js";
6
+ import { cleanupLegacyPlaywriterInstall, ensurePlaywriterExtension, } from "./playwriter-extension.js";
7
7
  import { checkCliclickInstalled, checkFfmpegInstalled, checkWhisperCppInstalled, checkWhisperModelIntegrity, checkGhInstalled, checkPm2Installed, checkChromeInstalled, checkScreenRecordingPermission, checkAccessibilityPermission, checkAutomationPermission, checkFullDiskAccessPermission, checkCameraPermission, checkMicrophonePermission, checkContactsPermission, checkCalendarPermission, checkRemindersPermission, checkPhotosPermission, checkSpeechRecognitionPermission, checkInputMonitoringPermission, checkDesktopFolderPermission, checkDocumentsFolderPermission, checkDownloadsFolderPermission, grantAllTerminalPermissions, grantAllNodePermissions, getNodeBinaryPath, getCliclickBinaryPath, openSystemSettingsForPermission, pinHomebrewBinaries, saveTccPaths, WHISPER_MODEL_DIR, WHISPER_MODEL_PATH, WHISPER_MODEL_URL, } from "./macos-permissions.js";
8
8
  const GREEN = "\x1b[32m";
9
9
  const RED = "\x1b[31m";
@@ -1088,18 +1088,17 @@ export function isPlaywriterPolicyConfigured() {
1088
1088
  }
1089
1089
  function _checkPlaywriterExtension() {
1090
1090
  heading("Playwriter Extension");
1091
- // The Playwriter extension is loaded straight from the bundled `playwriter`
1092
- // npm package via Chrome's --load-extension at runtime (issue #534, layer 1),
1093
- // so there is nothing to install into the user's normal Chrome. Verify the
1094
- // bundled extension resolves, and scrub any legacy enterprise policy /
1095
- // External Extensions install that older versions wrote (a duplicate copy of
1096
- // the same extension would otherwise fight the --load-extension one for the
1091
+ // The Playwriter extension installs into the dedicated automation profile from
1092
+ // that profile's own External Extensions JSON (issue #534), so it never
1093
+ // touches the user's normal Chrome. Write/verify that JSON and scrub any
1094
+ // legacy enterprise policy / system-wide External Extensions install that
1095
+ // older versions wrote (a duplicate same-id copy would otherwise add a second
1097
1096
  // relay connection).
1098
- if (isPlaywriterExtensionAvailable()) {
1099
- ok("Playwriter extension resolved from bundled package (loaded via --load-extension at runtime).");
1097
+ if (ensurePlaywriterExtension()) {
1098
+ ok("Playwriter extension configured for the dedicated automation profile (External Extensions JSON).");
1100
1099
  }
1101
1100
  else {
1102
- fail("Playwriter bundled extension not resolvable reinstall dependencies.");
1101
+ fail("Failed to configure Playwriter extension for the automation profile.");
1103
1102
  }
1104
1103
  if (isPlaywriterPolicyConfigured()) {
1105
1104
  warn("Legacy Playwriter enterprise policy detected — removing it.");