craftdriver 1.6.0 → 1.8.0

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 (229) hide show
  1. package/CHANGELOG.md +35 -6
  2. package/README.md +17 -6
  3. package/dist/cli/agentSession.d.ts +62 -0
  4. package/dist/cli/agentSession.d.ts.map +1 -0
  5. package/dist/cli/agentSession.js +100 -0
  6. package/dist/cli/agentSession.js.map +1 -0
  7. package/dist/cli/artifactPaths.d.ts +42 -0
  8. package/dist/cli/artifactPaths.d.ts.map +1 -0
  9. package/dist/cli/artifactPaths.js +144 -0
  10. package/dist/cli/artifactPaths.js.map +1 -0
  11. package/dist/cli/bounds.d.ts +88 -0
  12. package/dist/cli/bounds.d.ts.map +1 -0
  13. package/dist/cli/bounds.js +128 -0
  14. package/dist/cli/bounds.js.map +1 -0
  15. package/dist/cli/client.d.ts +3 -0
  16. package/dist/cli/client.d.ts.map +1 -1
  17. package/dist/cli/client.js +24 -8
  18. package/dist/cli/client.js.map +1 -1
  19. package/dist/cli/daemon.d.ts +3 -0
  20. package/dist/cli/daemon.d.ts.map +1 -1
  21. package/dist/cli/daemon.js +152 -39
  22. package/dist/cli/daemon.js.map +1 -1
  23. package/dist/cli/defaults.d.ts +23 -3
  24. package/dist/cli/defaults.d.ts.map +1 -1
  25. package/dist/cli/defaults.js +50 -5
  26. package/dist/cli/defaults.js.map +1 -1
  27. package/dist/cli/dispatcher.d.ts +54 -11
  28. package/dist/cli/dispatcher.d.ts.map +1 -1
  29. package/dist/cli/dispatcher.js +851 -54
  30. package/dist/cli/dispatcher.js.map +1 -1
  31. package/dist/cli/index.d.ts.map +1 -1
  32. package/dist/cli/index.js +305 -56
  33. package/dist/cli/index.js.map +1 -1
  34. package/dist/cli/init.d.ts +14 -14
  35. package/dist/cli/init.d.ts.map +1 -1
  36. package/dist/cli/init.js +328 -180
  37. package/dist/cli/init.js.map +1 -1
  38. package/dist/cli/journal.d.ts +153 -0
  39. package/dist/cli/journal.d.ts.map +1 -0
  40. package/dist/cli/journal.js +252 -0
  41. package/dist/cli/journal.js.map +1 -0
  42. package/dist/cli/lineReader.d.ts +33 -0
  43. package/dist/cli/lineReader.d.ts.map +1 -0
  44. package/dist/cli/lineReader.js +66 -0
  45. package/dist/cli/lineReader.js.map +1 -0
  46. package/dist/cli/locatorCandidates.d.ts +44 -0
  47. package/dist/cli/locatorCandidates.d.ts.map +1 -0
  48. package/dist/cli/locatorCandidates.js +190 -0
  49. package/dist/cli/locatorCandidates.js.map +1 -0
  50. package/dist/cli/mcp/artifacts.d.ts +39 -1
  51. package/dist/cli/mcp/artifacts.d.ts.map +1 -1
  52. package/dist/cli/mcp/artifacts.js +104 -9
  53. package/dist/cli/mcp/artifacts.js.map +1 -1
  54. package/dist/cli/mcp/bounds.d.ts +65 -0
  55. package/dist/cli/mcp/bounds.d.ts.map +1 -0
  56. package/dist/cli/mcp/bounds.js +124 -0
  57. package/dist/cli/mcp/bounds.js.map +1 -0
  58. package/dist/cli/mcp/params.d.ts +38 -0
  59. package/dist/cli/mcp/params.d.ts.map +1 -0
  60. package/dist/cli/mcp/params.js +174 -0
  61. package/dist/cli/mcp/params.js.map +1 -0
  62. package/dist/cli/mcp/server.d.ts +94 -16
  63. package/dist/cli/mcp/server.d.ts.map +1 -1
  64. package/dist/cli/mcp/server.js +304 -150
  65. package/dist/cli/mcp/server.js.map +1 -1
  66. package/dist/cli/mcp/tools.d.ts +62 -17
  67. package/dist/cli/mcp/tools.d.ts.map +1 -1
  68. package/dist/cli/mcp/tools.js +373 -158
  69. package/dist/cli/mcp/tools.js.map +1 -1
  70. package/dist/cli/pageSemantics.d.ts +42 -0
  71. package/dist/cli/pageSemantics.d.ts.map +1 -0
  72. package/dist/cli/pageSemantics.js +194 -0
  73. package/dist/cli/pageSemantics.js.map +1 -0
  74. package/dist/cli/parseArgs.d.ts +6 -18
  75. package/dist/cli/parseArgs.d.ts.map +1 -1
  76. package/dist/cli/parseArgs.js +689 -45
  77. package/dist/cli/parseArgs.js.map +1 -1
  78. package/dist/cli/protocol.d.ts +8 -0
  79. package/dist/cli/protocol.d.ts.map +1 -1
  80. package/dist/cli/sessionRegistry.d.ts +42 -0
  81. package/dist/cli/sessionRegistry.d.ts.map +1 -0
  82. package/dist/cli/sessionRegistry.js +99 -0
  83. package/dist/cli/sessionRegistry.js.map +1 -0
  84. package/dist/cli/snapshot.d.ts +100 -18
  85. package/dist/cli/snapshot.d.ts.map +1 -1
  86. package/dist/cli/snapshot.js +248 -102
  87. package/dist/cli/snapshot.js.map +1 -1
  88. package/dist/cli/stateStore.d.ts +50 -0
  89. package/dist/cli/stateStore.d.ts.map +1 -0
  90. package/dist/cli/stateStore.js +122 -0
  91. package/dist/cli/stateStore.js.map +1 -0
  92. package/dist/index.d.ts +2 -1
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +2 -0
  95. package/dist/index.js.map +1 -1
  96. package/dist/lib/bidi/index.d.ts +1 -1
  97. package/dist/lib/bidi/index.d.ts.map +1 -1
  98. package/dist/lib/bidi/index.js +2 -2
  99. package/dist/lib/bidi/index.js.map +1 -1
  100. package/dist/lib/bidi/logs.d.ts +3 -0
  101. package/dist/lib/bidi/logs.d.ts.map +1 -1
  102. package/dist/lib/bidi/logs.js +7 -0
  103. package/dist/lib/bidi/logs.js.map +1 -1
  104. package/dist/lib/bidi/network.d.ts +14 -1
  105. package/dist/lib/bidi/network.d.ts.map +1 -1
  106. package/dist/lib/bidi/network.js +45 -7
  107. package/dist/lib/bidi/network.js.map +1 -1
  108. package/dist/lib/bidi/storage.d.ts +30 -6
  109. package/dist/lib/bidi/storage.d.ts.map +1 -1
  110. package/dist/lib/bidi/storage.js +190 -45
  111. package/dist/lib/bidi/storage.js.map +1 -1
  112. package/dist/lib/bidi/types.d.ts +7 -2
  113. package/dist/lib/bidi/types.d.ts.map +1 -1
  114. package/dist/lib/browser.d.ts +38 -3
  115. package/dist/lib/browser.d.ts.map +1 -1
  116. package/dist/lib/browser.js +196 -30
  117. package/dist/lib/browser.js.map +1 -1
  118. package/dist/lib/browserContext.d.ts +54 -18
  119. package/dist/lib/browserContext.d.ts.map +1 -1
  120. package/dist/lib/browserContext.js +295 -92
  121. package/dist/lib/browserContext.js.map +1 -1
  122. package/dist/lib/by.d.ts +3 -3
  123. package/dist/lib/by.d.ts.map +1 -1
  124. package/dist/lib/by.js +7 -3
  125. package/dist/lib/by.js.map +1 -1
  126. package/dist/lib/driver.d.ts +7 -0
  127. package/dist/lib/driver.d.ts.map +1 -1
  128. package/dist/lib/driver.js +12 -0
  129. package/dist/lib/driver.js.map +1 -1
  130. package/dist/lib/errors.d.ts +15 -0
  131. package/dist/lib/errors.d.ts.map +1 -1
  132. package/dist/lib/errors.js +15 -0
  133. package/dist/lib/errors.js.map +1 -1
  134. package/dist/lib/initScript.d.ts +9 -0
  135. package/dist/lib/initScript.d.ts.map +1 -0
  136. package/dist/lib/initScript.js +14 -0
  137. package/dist/lib/initScript.js.map +1 -0
  138. package/dist/lib/page.d.ts +22 -0
  139. package/dist/lib/page.d.ts.map +1 -1
  140. package/dist/lib/page.js +48 -0
  141. package/dist/lib/page.js.map +1 -1
  142. package/dist/lib/secureFile.d.ts +8 -0
  143. package/dist/lib/secureFile.d.ts.map +1 -0
  144. package/dist/lib/secureFile.js +67 -0
  145. package/dist/lib/secureFile.js.map +1 -0
  146. package/dist/lib/sessionStateValidation.d.ts +35 -0
  147. package/dist/lib/sessionStateValidation.d.ts.map +1 -0
  148. package/dist/lib/sessionStateValidation.js +223 -0
  149. package/dist/lib/sessionStateValidation.js.map +1 -0
  150. package/dist/lib/timing.d.ts +8 -0
  151. package/dist/lib/timing.d.ts.map +1 -1
  152. package/dist/lib/timing.js +8 -0
  153. package/dist/lib/timing.js.map +1 -1
  154. package/dist/lib/tracing.d.ts +2 -1
  155. package/dist/lib/tracing.d.ts.map +1 -1
  156. package/dist/lib/tracing.js +12 -1
  157. package/dist/lib/tracing.js.map +1 -1
  158. package/dist/lib/visual/antialias.d.ts +41 -0
  159. package/dist/lib/visual/antialias.d.ts.map +1 -0
  160. package/dist/lib/visual/antialias.js +126 -0
  161. package/dist/lib/visual/antialias.js.map +1 -0
  162. package/dist/lib/visual/codec.d.ts +24 -0
  163. package/dist/lib/visual/codec.d.ts.map +1 -0
  164. package/dist/lib/visual/codec.js +11 -0
  165. package/dist/lib/visual/codec.js.map +1 -0
  166. package/dist/lib/visual/compare.d.ts +38 -0
  167. package/dist/lib/visual/compare.d.ts.map +1 -0
  168. package/dist/lib/visual/compare.js +209 -0
  169. package/dist/lib/visual/compare.js.map +1 -0
  170. package/dist/lib/visual/diff.d.ts +18 -0
  171. package/dist/lib/visual/diff.d.ts.map +1 -0
  172. package/dist/lib/visual/diff.js +23 -0
  173. package/dist/lib/visual/diff.js.map +1 -0
  174. package/dist/lib/visual/expectScreenshot.d.ts +65 -0
  175. package/dist/lib/visual/expectScreenshot.d.ts.map +1 -0
  176. package/dist/lib/visual/expectScreenshot.js +287 -0
  177. package/dist/lib/visual/expectScreenshot.js.map +1 -0
  178. package/dist/lib/visual/index.d.ts +10 -0
  179. package/dist/lib/visual/index.d.ts.map +1 -0
  180. package/dist/lib/visual/index.js +9 -0
  181. package/dist/lib/visual/index.js.map +1 -0
  182. package/dist/lib/visual/pixelMath.d.ts +32 -0
  183. package/dist/lib/visual/pixelMath.d.ts.map +1 -0
  184. package/dist/lib/visual/pixelMath.js +70 -0
  185. package/dist/lib/visual/pixelMath.js.map +1 -0
  186. package/dist/lib/visual/pngHeader.d.ts +27 -0
  187. package/dist/lib/visual/pngHeader.d.ts.map +1 -0
  188. package/dist/lib/visual/pngHeader.js +63 -0
  189. package/dist/lib/visual/pngHeader.js.map +1 -0
  190. package/dist/lib/visual/pngjsCodec.d.ts +22 -0
  191. package/dist/lib/visual/pngjsCodec.d.ts.map +1 -0
  192. package/dist/lib/visual/pngjsCodec.js +70 -0
  193. package/dist/lib/visual/pngjsCodec.js.map +1 -0
  194. package/dist/lib/visual/types.d.ts +89 -0
  195. package/dist/lib/visual/types.d.ts.map +1 -0
  196. package/dist/lib/visual/types.js +20 -0
  197. package/dist/lib/visual/types.js.map +1 -0
  198. package/dist/lib/visual/visualError.d.ts +32 -0
  199. package/dist/lib/visual/visualError.d.ts.map +1 -0
  200. package/dist/lib/visual/visualError.js +59 -0
  201. package/dist/lib/visual/visualError.js.map +1 -0
  202. package/dist/lib/wait.d.ts.map +1 -1
  203. package/dist/lib/wait.js +7 -1
  204. package/dist/lib/wait.js.map +1 -1
  205. package/docs/agents.md +56 -61
  206. package/docs/api-reference.md +16 -1
  207. package/docs/browser-api.md +24 -4
  208. package/docs/browser-context.md +18 -12
  209. package/docs/cli.md +346 -26
  210. package/docs/error-codes.md +6 -4
  211. package/docs/getting-started.md +6 -1
  212. package/docs/index.md +1 -1
  213. package/docs/mcp.md +129 -62
  214. package/docs/public/examples/agent-actions.html +48 -0
  215. package/docs/public/examples/agent-debug.html +86 -0
  216. package/docs/public/examples/agent-late-mutation.html +18 -0
  217. package/docs/public/examples/agent-ref-shift.html +33 -0
  218. package/docs/recipes/login-once-reuse-session.md +32 -4
  219. package/docs/screenshots.md +15 -6
  220. package/docs/session-management.md +64 -3
  221. package/docs/visual-testing.md +254 -0
  222. package/docs/why-craftdriver.md +4 -3
  223. package/package.json +5 -1
  224. package/skills/craftdriver/SKILL.md +59 -75
  225. package/skills/craftdriver/agents/openai.yaml +4 -0
  226. package/skills/craftdriver/cheatsheet.md +18 -4
  227. package/skills/craftdriver/cli.md +194 -68
  228. package/skills/craftdriver/patterns.md +14 -8
  229. package/skills/craftdriver/workflow.md +149 -0
@@ -17,8 +17,11 @@
17
17
  * - `browser.defaultContext` — the implicit context the browser
18
18
  * started in (id = `'default'`).
19
19
  */
20
- import fs from 'node:fs/promises';
20
+ import { writeSecureFile } from './secureFile.js';
21
+ import { CraftdriverError, ErrorCode } from './errors.js';
22
+ import { parseSessionState, hasNonEmptySessionStorage, isStorageStateError, nonEmptyOrigins, normalizeCookieForRestore, storageStateDetail, } from './sessionStateValidation.js';
21
23
  import { Page } from './page.js';
24
+ import { AUTH_STATE_HYDRATE_PATH, publicPageInitScript } from './initScript.js';
22
25
  export class BrowserContext {
23
26
  /** Monotonic counter for synthetic route ids returned by `route()`. */
24
27
  static _routeCounter = 0;
@@ -31,12 +34,6 @@ export class BrowserContext {
31
34
  _hooks;
32
35
  /** Per-context config (baseURL, extraHTTPHeaders). Read by Page for URL resolution. */
33
36
  _config;
34
- /**
35
- * Preload-script id installed by {@link loadStorageState} to write
36
- * localStorage entries on first navigation to each captured origin.
37
- * Tracked so a subsequent call replaces (rather than stacks) the script.
38
- */
39
- _localStoragePreloadId;
40
37
  /** Preload-script ids registered via {@link addInitScript}. */
41
38
  _initScriptIds = new Set();
42
39
  /**
@@ -58,6 +55,23 @@ export class BrowserContext {
58
55
  * after the `browsingContext.contextCreated` event arrives.
59
56
  */
60
57
  _notifiedPageIds = new Set();
58
+ /**
59
+ * Ids of internal (hydration) top-level contexts that must stay invisible to
60
+ * page tracking — never surfaced as a `'page'`, added to `_pageIds`, or given
61
+ * user routes/headers. See {@link _hydrateLocalStorage}.
62
+ */
63
+ _internalPageIds = new Set();
64
+ /**
65
+ * `> 0` while an internal `browsingContext.create` is awaiting its id.
66
+ * Top-level `contextCreated` events that arrive in that window are quarantined
67
+ * (the event can beat the create response), then the internal one is dropped
68
+ * and the rest replayed in order once the id is known.
69
+ */
70
+ _internalCreateInFlight = 0;
71
+ _quarantinedCreated = [];
72
+ _internalClassificationWaiters = new Set();
73
+ /** Settled tail used to serialize state overlays within this user context. */
74
+ _restoreTail = Promise.resolve();
61
75
  /**
62
76
  * The in-flight promise from the most recent call to {@link _ensurePageTracking}.
63
77
  * Doubles as the "is tracking armed?" flag — truthy after the first call,
@@ -103,7 +117,6 @@ export class BrowserContext {
103
117
  /** @internal Used by Page to keep preload-backed navigations on BiDi. */
104
118
  _hasInitScriptsForNavigation() {
105
119
  return (this._initScriptIds.size > 0 ||
106
- this._localStoragePreloadId !== undefined ||
107
120
  this._hooks?.hasBrowserInitScripts?.() === true);
108
121
  }
109
122
  /** BiDi partition descriptor for storage operations scoped to this user context. */
@@ -146,8 +159,11 @@ export class BrowserContext {
146
159
  async pages() {
147
160
  this.assertOpen();
148
161
  const tree = await this.conn.send('browsingContext.getTree', { maxDepth: 0 });
162
+ // The create event can beat the command response that tells us which id is
163
+ // internal. Wait for that classification before exposing this tree.
164
+ await this._waitForInternalClassification();
149
165
  return (tree.contexts ?? [])
150
- .filter((c) => c.userContext === this._id && !c.parent)
166
+ .filter((c) => c.userContext === this._id && !c.parent && !this._internalPageIds.has(c.context))
151
167
  .map((c) => new Page(this.driver, c.context, this.getDefaultTimeout, this.conn, this));
152
168
  }
153
169
  /**
@@ -165,7 +181,9 @@ export class BrowserContext {
165
181
  if (this._trackingPromise)
166
182
  await this._trackingPromise;
167
183
  return new Promise((resolve, reject) => {
184
+ let settled = false;
168
185
  const timer = setTimeout(() => {
186
+ settled = true;
169
187
  off();
170
188
  reject(new Error(`waitForPage() timed out after ${timeout}ms`));
171
189
  }, timeout);
@@ -174,11 +192,27 @@ export class BrowserContext {
174
192
  return; // nested frames
175
193
  if (params.userContext !== this._id)
176
194
  return;
177
- clearTimeout(timer);
178
- off();
179
- resolve(new Page(this.driver, params.context, this.getDefaultTimeout, this.conn, this));
195
+ const id = params.context;
196
+ void this._isInternalPageContext(id).then((internal) => {
197
+ if (internal || settled)
198
+ return;
199
+ settled = true;
200
+ clearTimeout(timer);
201
+ off();
202
+ resolve(new Page(this.driver, id, this.getDefaultTimeout, this.conn, this));
203
+ }).catch((err) => {
204
+ if (settled)
205
+ return;
206
+ settled = true;
207
+ clearTimeout(timer);
208
+ off();
209
+ reject(err);
210
+ });
180
211
  });
181
212
  action().catch((err) => {
213
+ if (settled)
214
+ return;
215
+ settled = true;
182
216
  clearTimeout(timer);
183
217
  off();
184
218
  reject(err);
@@ -313,53 +347,67 @@ export class BrowserContext {
313
347
  */
314
348
  async saveStorageState(path, opts) {
315
349
  const state = await this.storageState(opts);
316
- await fs.writeFile(path, JSON.stringify(state, null, 2), 'utf-8');
350
+ await writeSecureFile(path, JSON.stringify(state, null, 2));
317
351
  return state;
318
352
  }
319
353
  /**
320
354
  * Apply a previously-captured snapshot to this context.
321
355
  *
322
356
  * - Cookies are written immediately.
323
- * - localStorage entries are installed via a preload script that runs
324
- * on first navigation to each origin, before any page script. This
325
- * matches the way Playwright restores localStorage and survives full
326
- * reloads.
327
- *
328
- * Calling `loadStorageState` again replaces the previous preload
329
- * script; it does not stack.
357
+ * - localStorage is seeded once per captured origin through a private,
358
+ * intercepted same-origin document (BiDi has no "set localStorage for
359
+ * origin" command). Because it runs once not as a per-navigation
360
+ * preload — the application owns the values afterward, so its own writes
361
+ * survive a reload.
330
362
  *
331
363
  * @param source A `SessionState` object, or a path to a JSON file
332
364
  * produced by {@link saveStorageState}.
333
365
  */
334
366
  async loadStorageState(source) {
367
+ return this._loadStorageState(source, 'BrowserContext.loadStorageState');
368
+ }
369
+ /** @internal Same public contract with an owning API name for structured errors. */
370
+ async _loadStorageState(source, operation) {
335
371
  this.assertOpen();
336
- const state = typeof source === 'string'
337
- ? JSON.parse(await fs.readFile(source, 'utf-8'))
338
- : source;
339
- if (state.cookies?.length) {
340
- // Sanitize: a snapshot may contain cookies with sameSite:'none' and
341
- // secure:false because some engines report that combo for cookies
342
- // originally set via document.cookie. BiDi rejects it. Drop the
343
- // sameSite field on those so the engine picks its default.
344
- const sanitized = state.cookies.map((c) => {
345
- if (c.sameSite === 'none' && !c.secure) {
346
- const { sameSite: _drop, ...rest } = c;
347
- return rest;
348
- }
349
- return c;
372
+ const errorContext = this._storageStateErrorContext(operation);
373
+ const state = await parseSessionState(source, errorContext);
374
+ // A context/launch restore cannot carry tab-scoped sessionStorage to the
375
+ // caller's future pages — reject before any mutation rather than silently
376
+ // dropping it. (browser.loadState() takes the active-page path for that.)
377
+ if (hasNonEmptySessionStorage(state)) {
378
+ throw new CraftdriverError(ErrorCode.UNSUPPORTED, 'restoring sessionStorage is not supported for context/launch APIs (it is ' +
379
+ 'tab-scoped); use browser.loadState() after navigating to the origin', {
380
+ detail: storageStateDetail(errorContext, 'validation', { section: 'sessionStorage' }),
381
+ hint: 'Navigate to the origin and call browser.loadState(), or omit sessionStorage.',
350
382
  });
351
- await this.addCookies(sanitized);
352
- }
353
- // Replace any previously-installed localStorage preload.
354
- if (this._localStoragePreloadId) {
355
- await this.conn
356
- .send('script.removePreloadScript', { script: this._localStoragePreloadId })
357
- .catch(() => { });
358
- this._localStoragePreloadId = undefined;
359
- }
360
- if (state.localStorage && Object.keys(state.localStorage).length > 0) {
361
- this._localStoragePreloadId = await this.installLocalStoragePreload(state.localStorage);
362
383
  }
384
+ await this._runSerializedRestore(async () => {
385
+ let partialApplied = false;
386
+ // localStorage first — its private hydration page is where a restore failure
387
+ // would surface; applying cookies last means a hydration failure never
388
+ // leaves cookies behind.
389
+ if (nonEmptyOrigins(state.localStorage).length > 0) {
390
+ try {
391
+ partialApplied = await this._hydrateLocalStorage(state.localStorage, errorContext);
392
+ }
393
+ catch (err) {
394
+ if (isStorageStateError(err))
395
+ throw err;
396
+ throw this._restoreDriverError(err, errorContext, 'localStorage', partialApplied);
397
+ }
398
+ }
399
+ if (state.cookies?.length) {
400
+ for (const captured of state.cookies) {
401
+ try {
402
+ await this.addCookies([normalizeCookieForRestore(captured)]);
403
+ partialApplied = true;
404
+ }
405
+ catch (err) {
406
+ throw this._restoreDriverError(err, errorContext, 'cookies', partialApplied);
407
+ }
408
+ }
409
+ }
410
+ });
363
411
  }
364
412
  /**
365
413
  * Remove this user context. All of its pages are closed and any
@@ -381,12 +429,6 @@ export class BrowserContext {
381
429
  await this.conn.send('script.removePreloadScript', { script: id }).catch(() => { });
382
430
  }
383
431
  this._initScriptIds.clear();
384
- if (this._localStoragePreloadId) {
385
- await this.conn
386
- .send('script.removePreloadScript', { script: this._localStoragePreloadId })
387
- .catch(() => { });
388
- this._localStoragePreloadId = undefined;
389
- }
390
432
  if (this._hooks && this._routes.size > 0) {
391
433
  const net = this._hooks.getNetwork();
392
434
  for (const entry of this._routes.values()) {
@@ -402,6 +444,8 @@ export class BrowserContext {
402
444
  off();
403
445
  this._trackingOffs = [];
404
446
  this._trackingPromise = undefined;
447
+ this._internalPageIds.clear();
448
+ this._resolveInternalClassificationWaiters();
405
449
  await this.conn.send('browser.removeUserContext', { userContext: this._id });
406
450
  this._closed = true;
407
451
  // Fire close listeners last, after the context is fully gone.
@@ -454,7 +498,7 @@ export class BrowserContext {
454
498
  this.assertOpen();
455
499
  const fnDecl = typeof script === 'function' ? script.toString() : `() => { ${script} }`;
456
500
  const result = await this.conn.send('script.addPreloadScript', {
457
- functionDeclaration: fnDecl,
501
+ functionDeclaration: publicPageInitScript(fnDecl),
458
502
  userContexts: [this._id],
459
503
  });
460
504
  this._initScriptIds.add(result.script);
@@ -757,35 +801,197 @@ export class BrowserContext {
757
801
  return byOrigin;
758
802
  }
759
803
  /**
760
- * Install a preload script (scoped to this user context) that, on first
761
- * navigation to each captured origin, writes the localStorage entries
762
- * before any page script runs.
804
+ * Seed localStorage for each captured origin exactly once.
805
+ *
806
+ * BiDi has no command to set localStorage for an arbitrary origin, so we
807
+ * visit each origin in a throwaway top-level context whose navigation is
808
+ * fulfilled locally (never reaching the network), write the entries, and
809
+ * close it. Unlike a preload script this runs once — the application owns the
810
+ * values afterward, so its own writes survive a reload.
811
+ *
812
+ * The private context is created at the connection level (not via `newPage`),
813
+ * so it never enters `_pageIds`, the `'page'` event, routes, or active-page
814
+ * selection. The intercept is scoped to it, and navigation is forced onto
815
+ * BiDi — a Classic-initiated navigation would stall against a BiDi intercept.
763
816
  */
764
- async installLocalStoragePreload(localStorage) {
765
- // Serialize the origin entries map into the function body. Safe because
766
- // we control the JSON shape (strings only).
767
- const payload = JSON.stringify(localStorage);
768
- const fnSrc = `() => {
769
- try {
770
- const data = ${payload};
771
- const entries = data[location.origin];
772
- if (!entries) return;
773
- for (const k in entries) {
774
- try { window.localStorage.setItem(k, entries[k]); } catch (e) { /* quota / opaque origin */ }
775
- }
776
- } catch (e) { /* never break user pages */ }
777
- }`;
778
- const result = await this.conn.send('script.addPreloadScript', {
779
- functionDeclaration: fnSrc,
780
- userContexts: [this._id],
817
+ async _hydrateLocalStorage(byOrigin, errorContext) {
818
+ const origins = Object.keys(byOrigin).filter((o) => byOrigin[o] && Object.keys(byOrigin[o]).length > 0);
819
+ if (origins.length === 0)
820
+ return false;
821
+ const net = this._hooks?.getNetwork();
822
+ if (!net) {
823
+ throw new CraftdriverError(ErrorCode.UNSUPPORTED, 'restoring localStorage requires a BiDi session with network interception', { detail: storageStateDetail(errorContext, 'setup', { section: 'localStorage' }) });
824
+ }
825
+ // Reserve the internal-context slot before the create so page tracking hides
826
+ // it even if its contextCreated event beats the create response.
827
+ this._internalCreateInFlight++;
828
+ let privId;
829
+ try {
830
+ const created = await this.conn.send('browsingContext.create', {
831
+ type: 'tab',
832
+ userContext: this._id,
833
+ });
834
+ privId = created.context;
835
+ this._internalPageIds.add(privId);
836
+ }
837
+ catch (err) {
838
+ throw this._restoreDriverError(err, errorContext, 'localStorage', false);
839
+ }
840
+ finally {
841
+ this._internalCreateInFlight--;
842
+ this._drainQuarantine();
843
+ this._resolveInternalClassificationWaiters();
844
+ }
845
+ if (!privId)
846
+ return false;
847
+ const priv = new Page(this.driver, privId, this.getDefaultTimeout, this.conn, this);
848
+ let interceptId;
849
+ let partialApplied = false;
850
+ try {
851
+ // Fulfil this private context's top-level navigations with a minimal
852
+ // document, locally — the request never reaches the network. The pattern
853
+ // is specific (a bare `**/*` does not register a working intercept): only
854
+ // this context's deterministic hydrate URL is fulfilled, and the intercept
855
+ // is scoped to `privId`, so no user page is ever touched.
856
+ interceptId = await net.intercept(`**${AUTH_STATE_HYDRATE_PATH}*`, () => ({
857
+ status: 200,
858
+ headers: { 'content-type': 'text/html' },
859
+ body: '<!doctype html><html><head></head><body></body></html>',
860
+ }), ['beforeRequestSent'], [privId], { strict: true } // never let a hydration request reach the real network
861
+ );
862
+ for (const origin of origins) {
863
+ // The path is fixed and irrelevant — the intercept fulfils it locally.
864
+ // `domcontentloaded` forces the BiDi navigate path so the intercept
865
+ // applies (a default-context Classic `load` navigation would stall).
866
+ await priv.navigateTo(`${origin}${AUTH_STATE_HYDRATE_PATH}`, {
867
+ waitUntil: 'domcontentloaded',
868
+ });
869
+ // Confirm the realm is on the requested origin (an HSTS upgrade or other
870
+ // rewrite could land elsewhere), then write the entries in one call. The
871
+ // values travel as structured string arguments — never interpolated into
872
+ // the source; the source is a string, so the DOM globals it names are the
873
+ // browser's, not Node's.
874
+ const res = await this.conn.send('script.callFunction', {
875
+ functionDeclaration: 'function (expected, json) {' +
876
+ ' if (location.origin !== expected) return "MISMATCH:" + location.origin;' +
877
+ ' var e = JSON.parse(json);' +
878
+ ' for (var k in e) localStorage.setItem(k, e[k]);' +
879
+ ' return "OK"; }',
880
+ target: { context: privId },
881
+ arguments: [
882
+ { type: 'string', value: origin },
883
+ { type: 'string', value: JSON.stringify(byOrigin[origin]) },
884
+ ],
885
+ awaitPromise: false,
886
+ });
887
+ const value = res.type === 'success' ? res.result?.value : undefined;
888
+ if (value !== 'OK') {
889
+ const mismatch = new CraftdriverError(ErrorCode.STATE_INVALID, `could not hydrate localStorage for origin ${origin}`, { detail: storageStateDetail(errorContext, 'localStorage', { origin }) });
890
+ if (!partialApplied)
891
+ throw mismatch;
892
+ throw this._restoreDriverError(mismatch, errorContext, 'localStorage', true, { origin });
893
+ }
894
+ partialApplied = true;
895
+ }
896
+ return partialApplied;
897
+ }
898
+ catch (err) {
899
+ if (isStorageStateError(err))
900
+ throw err;
901
+ throw this._restoreDriverError(err, errorContext, 'localStorage', partialApplied);
902
+ }
903
+ finally {
904
+ if (interceptId)
905
+ await net.removeIntercept(interceptId).catch(() => { });
906
+ await this.conn.send('browsingContext.close', { context: privId }).catch(() => { });
907
+ }
908
+ }
909
+ /** @internal Serialize restores without coupling independent user contexts. */
910
+ _runSerializedRestore(task) {
911
+ const run = this._restoreTail.then(task, task);
912
+ this._restoreTail = run.then(() => undefined, () => undefined);
913
+ return run;
914
+ }
915
+ /** @internal Synchronous filter for events emitted after an internal id is known. */
916
+ _isInternalPageId(id) {
917
+ return typeof id === 'string' && this._internalPageIds.has(id);
918
+ }
919
+ /** @internal Wait through the create-response race, then classify an event id. */
920
+ async _isInternalPageContext(id) {
921
+ await this._waitForInternalClassification();
922
+ return this._internalPageIds.has(id);
923
+ }
924
+ _waitForInternalClassification() {
925
+ if (this._internalCreateInFlight === 0)
926
+ return Promise.resolve();
927
+ return new Promise((resolve) => this._internalClassificationWaiters.add(resolve));
928
+ }
929
+ _resolveInternalClassificationWaiters() {
930
+ if (this._internalCreateInFlight !== 0)
931
+ return;
932
+ for (const resolve of this._internalClassificationWaiters)
933
+ resolve();
934
+ this._internalClassificationWaiters.clear();
935
+ }
936
+ _storageStateErrorContext(operation) {
937
+ return {
938
+ operation,
939
+ browserName: this._hooks?.getBrowserName?.() ?? 'unknown',
940
+ protocol: 'bidi',
941
+ };
942
+ }
943
+ _restoreDriverError(cause, context, phase, partialApplied, extra) {
944
+ return new CraftdriverError(ErrorCode.DRIVER_ERROR, `storage state restore failed while applying ${phase}`, {
945
+ cause,
946
+ detail: storageStateDetail(context, phase, { partialApplied, ...extra }),
947
+ hint: partialApplied
948
+ ? 'Restore into a fresh browser context when failure isolation is required.'
949
+ : undefined,
781
950
  });
782
- return result.script;
783
951
  }
784
952
  /**
785
953
  * Subscribe (once) to BiDi page-creation / page-destruction events and
786
954
  * seed `_pageIds` with currently-open pages in this context. Powers
787
955
  * both the `'page'` event and route membership filtering.
788
956
  */
957
+ /** Apply the normal new-page handling (tracking, headers, routes, the `'page'`
958
+ * event) for a real top-level context. */
959
+ _handleContextCreated(id) {
960
+ this._pageIds.add(id);
961
+ // Headers must be applied before the first request from this page.
962
+ this._applyExtraHeadersTo([id]).catch(() => { });
963
+ // Register every existing route on the new page.
964
+ for (const sid of this._routes.keys()) {
965
+ this._registerRouteOnPage(sid, id).catch(() => { });
966
+ }
967
+ // Notify page listeners exactly once per page.
968
+ if (this._notifiedPageIds.has(id))
969
+ return;
970
+ this._notifiedPageIds.add(id);
971
+ if (this._pageListeners.size > 0) {
972
+ const page = new Page(this.driver, id, this.getDefaultTimeout, this.conn, this);
973
+ for (const fn of this._pageListeners) {
974
+ try {
975
+ fn(page);
976
+ }
977
+ catch { /* listener errors must not break events */ }
978
+ }
979
+ }
980
+ }
981
+ /** Replay contextCreated events buffered during an internal create, once none
982
+ * is in flight — dropping any that turned out to be internal. */
983
+ _drainQuarantine() {
984
+ if (this._internalCreateInFlight > 0)
985
+ return;
986
+ const buffered = this._quarantinedCreated;
987
+ this._quarantinedCreated = [];
988
+ for (const params of buffered) {
989
+ const id = params.context;
990
+ if (this._internalPageIds.has(id))
991
+ continue; // internal → stay hidden
992
+ this._handleContextCreated(id);
993
+ }
994
+ }
789
995
  _ensurePageTracking() {
790
996
  if (this._closed)
791
997
  return Promise.resolve();
@@ -805,31 +1011,25 @@ export class BrowserContext {
805
1011
  if (params.userContext !== this._id)
806
1012
  return;
807
1013
  const id = params.context;
808
- this._pageIds.add(id);
809
- // Headers must be applied before the first request from this page.
810
- this._applyExtraHeadersTo([id]).catch(() => { });
811
- // Register every existing route on the new page.
812
- for (const sid of this._routes.keys()) {
813
- this._registerRouteOnPage(sid, id).catch(() => { });
814
- }
815
- // Notify page listeners exactly once per page.
816
- if (this._notifiedPageIds.has(id))
1014
+ // Internal hydration context — stays invisible to page tracking.
1015
+ if (this._internalPageIds.has(id))
1016
+ return;
1017
+ // Its id may not be known yet (the event can beat the create response):
1018
+ // quarantine every top-level create in this context while one is in
1019
+ // flight, then drop the internal one and replay the rest.
1020
+ if (this._internalCreateInFlight > 0) {
1021
+ this._quarantinedCreated.push(params);
817
1022
  return;
818
- this._notifiedPageIds.add(id);
819
- if (this._pageListeners.size > 0) {
820
- const page = new Page(this.driver, id, this.getDefaultTimeout, this.conn, this);
821
- for (const fn of this._pageListeners) {
822
- try {
823
- fn(page);
824
- }
825
- catch { /* listener errors must not break events */ }
826
- }
827
1023
  }
1024
+ this._handleContextCreated(id);
828
1025
  };
829
1026
  const onDestroyed = (params) => {
830
1027
  if (params.parent)
831
1028
  return;
832
1029
  const id = params.context;
1030
+ if (this._internalPageIds.has(id)) {
1031
+ return; // internal hydration context — never tracked, nothing to tear down
1032
+ }
833
1033
  this._pageIds.delete(id);
834
1034
  this._notifiedPageIds.delete(id);
835
1035
  // Tear down any per-page intercepts registered against this page.
@@ -853,8 +1053,11 @@ export class BrowserContext {
853
1053
  // miss a contextCreated event that races with this seeding.
854
1054
  try {
855
1055
  const tree = await this.conn.send('browsingContext.getTree', { maxDepth: 0 });
1056
+ await this._waitForInternalClassification();
856
1057
  for (const c of tree.contexts ?? []) {
857
- if (c.userContext === this._id && !c.parent) {
1058
+ if (c.userContext === this._id &&
1059
+ !c.parent &&
1060
+ !this._internalPageIds.has(c.context)) {
858
1061
  this._pageIds.add(c.context);
859
1062
  }
860
1063
  }
@@ -1 +1 @@
1
- {"version":3,"file":"browserContext.js","sourceRoot":"","sources":["../../src/lib/browserContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browserContext.js","sourceRoot":"","sources":["../../src/lib/browserContext.ts"],"names":[],"mappings":"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"}