playwriter 0.0.63 → 0.0.80

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 (216) hide show
  1. package/dist/aria-snapshot.d.ts +41 -3
  2. package/dist/aria-snapshot.d.ts.map +1 -1
  3. package/dist/aria-snapshot.js +131 -54
  4. package/dist/aria-snapshot.js.map +1 -1
  5. package/dist/aria-snapshot.test.js +5 -2
  6. package/dist/aria-snapshot.test.js.map +1 -1
  7. package/dist/aria-snapshot.unit.test.js +83 -41
  8. package/dist/aria-snapshot.unit.test.js.map +1 -1
  9. package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.d.ts +5 -0
  10. package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.d.ts.map +1 -0
  11. package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.js +5 -0
  12. package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.js.map +1 -0
  13. package/dist/bippy.js +1 -1
  14. package/dist/cdp-log.d.ts +1 -1
  15. package/dist/cdp-log.d.ts.map +1 -1
  16. package/dist/cdp-log.js +1 -1
  17. package/dist/cdp-log.js.map +1 -1
  18. package/dist/cdp-relay.d.ts.map +1 -1
  19. package/dist/cdp-relay.js +408 -298
  20. package/dist/cdp-relay.js.map +1 -1
  21. package/dist/cdp-session.d.ts.map +1 -1
  22. package/dist/cdp-session.js.map +1 -1
  23. package/dist/cdp-types.d.ts.map +1 -1
  24. package/dist/cdp-types.js +7 -7
  25. package/dist/cdp-types.js.map +1 -1
  26. package/dist/clean-html.d.ts.map +1 -1
  27. package/dist/clean-html.js +4 -5
  28. package/dist/clean-html.js.map +1 -1
  29. package/dist/cli.js +45 -27
  30. package/dist/cli.js.map +1 -1
  31. package/dist/create-logger.d.ts.map +1 -1
  32. package/dist/create-logger.js +3 -1
  33. package/dist/create-logger.js.map +1 -1
  34. package/dist/debugger-examples-types.d.ts.map +1 -1
  35. package/dist/debugger.d.ts.map +1 -1
  36. package/dist/debugger.js +1 -3
  37. package/dist/debugger.js.map +1 -1
  38. package/dist/diff-utils.d.ts.map +1 -1
  39. package/dist/diff-utils.js +1 -4
  40. package/dist/diff-utils.js.map +1 -1
  41. package/dist/editor-api.md +12 -2
  42. package/dist/editor-examples.d.ts +1 -1
  43. package/dist/editor-examples.d.ts.map +1 -1
  44. package/dist/editor-examples.js +1 -1
  45. package/dist/editor-examples.js.map +1 -1
  46. package/dist/editor.d.ts +1 -1
  47. package/dist/editor.d.ts.map +1 -1
  48. package/dist/editor.js +1 -1
  49. package/dist/editor.js.map +1 -1
  50. package/dist/executor.d.ts +26 -3
  51. package/dist/executor.d.ts.map +1 -1
  52. package/dist/executor.js +295 -64
  53. package/dist/executor.js.map +1 -1
  54. package/dist/executor.unit.test.js +38 -1
  55. package/dist/executor.unit.test.js.map +1 -1
  56. package/dist/extension-connection.test.js +139 -36
  57. package/dist/extension-connection.test.js.map +1 -1
  58. package/dist/ffmpeg.d.ts +148 -0
  59. package/dist/ffmpeg.d.ts.map +1 -0
  60. package/dist/ffmpeg.js +523 -0
  61. package/dist/ffmpeg.js.map +1 -0
  62. package/dist/ghost-browser.d.ts.map +1 -1
  63. package/dist/ghost-browser.js.map +1 -1
  64. package/dist/ghost-cursor-client.js +281 -0
  65. package/dist/ghost-cursor.d.ts +27 -0
  66. package/dist/ghost-cursor.d.ts.map +1 -0
  67. package/dist/ghost-cursor.js +63 -0
  68. package/dist/ghost-cursor.js.map +1 -0
  69. package/dist/htmlrewrite.d.ts.map +1 -1
  70. package/dist/htmlrewrite.js +17 -55
  71. package/dist/htmlrewrite.js.map +1 -1
  72. package/dist/htmlrewrite.test.js.map +1 -1
  73. package/dist/kill-port.d.ts.map +1 -1
  74. package/dist/kill-port.js +1 -3
  75. package/dist/kill-port.js.map +1 -1
  76. package/dist/locator-selector.test.d.ts +2 -0
  77. package/dist/locator-selector.test.d.ts.map +1 -0
  78. package/dist/locator-selector.test.js +96 -0
  79. package/dist/locator-selector.test.js.map +1 -0
  80. package/dist/mcp-client.js.map +1 -1
  81. package/dist/mcp.d.ts.map +1 -1
  82. package/dist/mcp.js +8 -3
  83. package/dist/mcp.js.map +1 -1
  84. package/dist/on-mouse-action.test.d.ts +2 -0
  85. package/dist/on-mouse-action.test.d.ts.map +1 -0
  86. package/dist/on-mouse-action.test.js +155 -0
  87. package/dist/on-mouse-action.test.js.map +1 -0
  88. package/dist/page-markdown.js +4 -4
  89. package/dist/page-markdown.js.map +1 -1
  90. package/dist/prompt.md +594 -255
  91. package/dist/protocol.d.ts +4 -0
  92. package/dist/protocol.d.ts.map +1 -1
  93. package/dist/readability.js +1 -1
  94. package/dist/recording-ghost-cursor.d.ts +41 -0
  95. package/dist/recording-ghost-cursor.d.ts.map +1 -0
  96. package/dist/recording-ghost-cursor.js +79 -0
  97. package/dist/recording-ghost-cursor.js.map +1 -0
  98. package/dist/recording-relay.d.ts.map +1 -1
  99. package/dist/recording-relay.js +8 -8
  100. package/dist/recording-relay.js.map +1 -1
  101. package/dist/relay-client.d.ts +17 -4
  102. package/dist/relay-client.d.ts.map +1 -1
  103. package/dist/relay-client.js +44 -10
  104. package/dist/relay-client.js.map +1 -1
  105. package/dist/relay-core.test.d.ts.map +1 -1
  106. package/dist/relay-core.test.js +187 -26
  107. package/dist/relay-core.test.js.map +1 -1
  108. package/dist/relay-navigation.test.d.ts.map +1 -1
  109. package/dist/relay-navigation.test.js +54 -31
  110. package/dist/relay-navigation.test.js.map +1 -1
  111. package/dist/relay-session.test.d.ts.map +1 -1
  112. package/dist/relay-session.test.js +113 -65
  113. package/dist/relay-session.test.js.map +1 -1
  114. package/dist/relay-state.d.ts +158 -0
  115. package/dist/relay-state.d.ts.map +1 -0
  116. package/dist/relay-state.js +306 -0
  117. package/dist/relay-state.js.map +1 -0
  118. package/dist/relay-state.test.d.ts +2 -0
  119. package/dist/relay-state.test.d.ts.map +1 -0
  120. package/dist/relay-state.test.js +472 -0
  121. package/dist/relay-state.test.js.map +1 -0
  122. package/dist/scoped-fs.d.ts.map +1 -1
  123. package/dist/scoped-fs.js.map +1 -1
  124. package/dist/screen-recording.d.ts +42 -4
  125. package/dist/screen-recording.d.ts.map +1 -1
  126. package/dist/screen-recording.js +88 -13
  127. package/dist/screen-recording.js.map +1 -1
  128. package/dist/selector-generator.js +1 -1
  129. package/dist/snapshot-tools.test.js +71 -28
  130. package/dist/snapshot-tools.test.js.map +1 -1
  131. package/dist/start-relay-server.d.ts +1 -1
  132. package/dist/start-relay-server.d.ts.map +1 -1
  133. package/dist/start-relay-server.js +1 -1
  134. package/dist/start-relay-server.js.map +1 -1
  135. package/dist/styles-api.md +8 -1
  136. package/dist/styles-examples.d.ts +1 -1
  137. package/dist/styles-examples.d.ts.map +1 -1
  138. package/dist/styles-examples.js +1 -1
  139. package/dist/styles-examples.js.map +1 -1
  140. package/dist/styles.d.ts.map +1 -1
  141. package/dist/styles.js +1 -3
  142. package/dist/styles.js.map +1 -1
  143. package/dist/test-declarations.d.ts.map +1 -1
  144. package/dist/test-utils.d.ts +1 -1
  145. package/dist/test-utils.d.ts.map +1 -1
  146. package/dist/test-utils.js +7 -5
  147. package/dist/test-utils.js.map +1 -1
  148. package/dist/utils.d.ts.map +1 -1
  149. package/dist/utils.js.map +1 -1
  150. package/dist/wait-for-page-load.d.ts.map +1 -1
  151. package/dist/wait-for-page-load.js +1 -1
  152. package/dist/wait-for-page-load.js.map +1 -1
  153. package/package.json +4 -3
  154. package/src/a11y-client.ts +5 -4
  155. package/src/aria-snapshot.test.ts +5 -2
  156. package/src/aria-snapshot.ts +303 -116
  157. package/src/aria-snapshot.unit.test.ts +199 -141
  158. package/src/aria-snapshots/github-raw.txt +1 -1
  159. package/src/aria-snapshots/hackernews-interactive.txt +240 -240
  160. package/src/aria-snapshots/hackernews-raw.txt +270 -270
  161. package/src/assets/aria-labels-example.png +0 -0
  162. package/src/assets/aria-labels-github.png +0 -0
  163. package/src/assets/aria-labels-hacker-news.png +0 -0
  164. package/src/assets/aria-labels-old-reddit.png +0 -0
  165. package/src/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.ts +5 -0
  166. package/src/assets/cursors/screen-studio/pointer-macos-tahoe.svg +18 -0
  167. package/src/cdp-log.ts +4 -1
  168. package/src/cdp-relay.ts +949 -737
  169. package/src/cdp-session.ts +12 -3
  170. package/src/cdp-types.ts +51 -51
  171. package/src/clean-html.ts +4 -5
  172. package/src/cli.ts +82 -55
  173. package/src/create-logger.ts +5 -3
  174. package/src/debugger-examples-types.ts +4 -1
  175. package/src/debugger.ts +1 -5
  176. package/src/diff-utils.ts +2 -5
  177. package/src/editor-examples.ts +11 -1
  178. package/src/editor.ts +10 -2
  179. package/src/executor.ts +372 -73
  180. package/src/executor.unit.test.ts +48 -1
  181. package/src/extension-connection.test.ts +612 -488
  182. package/src/ffmpeg.ts +769 -0
  183. package/src/ghost-browser.ts +4 -6
  184. package/src/ghost-cursor-client.ts +368 -0
  185. package/src/ghost-cursor.ts +110 -0
  186. package/src/htmlrewrite.test.ts +6 -2
  187. package/src/htmlrewrite.ts +348 -386
  188. package/src/kill-port.ts +1 -3
  189. package/src/locator-selector.test.ts +115 -0
  190. package/src/mcp-client.ts +1 -1
  191. package/src/mcp.ts +21 -15
  192. package/src/on-mouse-action.test.ts +196 -0
  193. package/src/page-markdown.ts +7 -7
  194. package/src/protocol.ts +73 -57
  195. package/src/recording-ghost-cursor.ts +107 -0
  196. package/src/recording-relay.ts +20 -12
  197. package/src/relay-client.ts +84 -17
  198. package/src/relay-core.test.ts +761 -583
  199. package/src/relay-navigation.test.ts +517 -484
  200. package/src/relay-session.test.ts +984 -929
  201. package/src/relay-state.test.ts +570 -0
  202. package/src/relay-state.ts +497 -0
  203. package/src/resource.md +21 -49
  204. package/src/scoped-fs.ts +9 -3
  205. package/src/screen-recording.ts +175 -31
  206. package/src/skill.md +619 -271
  207. package/src/snapshot-tools.test.ts +580 -528
  208. package/src/snapshots/shadcn-ui-accessibility-full.md +181 -183
  209. package/src/snapshots/shadcn-ui-accessibility-interactive.md +119 -121
  210. package/src/start-relay-server.ts +14 -11
  211. package/src/styles-examples.ts +8 -1
  212. package/src/styles.ts +20 -21
  213. package/src/test-declarations.ts +6 -6
  214. package/src/test-utils.ts +104 -91
  215. package/src/utils.ts +2 -1
  216. package/src/wait-for-page-load.ts +6 -1
@@ -3,9 +3,10 @@
3
3
  * Recording happens in the extension context, so it survives page navigation.
4
4
  *
5
5
  * This module communicates with the relay server which forwards commands to the extension.
6
- * SessionId (pw-tab-X format) is used to identify which tab to record.
6
+ * sessionId (pw-tab-* format) is used to identify which tab to record.
7
7
  */
8
- import type { Page } from '@xmorse/playwright-core';
8
+ import type { BrowserContext, Page } from '@xmorse/playwright-core';
9
+ import { RecordingGhostCursorController } from './recording-ghost-cursor.js';
9
10
  /**
10
11
  * Generate a shell command to quit and restart Chrome with flags that allow automatic tab capture.
11
12
  * This enables screen recording without user interaction (clicking extension icon).
@@ -18,7 +19,7 @@ export declare function getChromeRestartCommand(): string;
18
19
  export interface StartRecordingOptions {
19
20
  /** Target page to record */
20
21
  page: Page;
21
- /** Session ID (pw-tab-X format) to identify which tab to record */
22
+ /** CDP tab session ID (pw-tab-* format) to identify which tab to record */
22
23
  sessionId?: string;
23
24
  /** Frame rate (default: 30) */
24
25
  frameRate?: number;
@@ -36,7 +37,7 @@ export interface StartRecordingOptions {
36
37
  export interface StopRecordingOptions {
37
38
  /** Target page that is being recorded */
38
39
  page: Page;
39
- /** Session ID (pw-tab-X format) to identify which tab to stop recording */
40
+ /** CDP tab session ID (pw-tab-* format) to identify which tab to stop recording */
40
41
  sessionId?: string;
41
42
  /** Relay server port (default: 19988) */
42
43
  relayPort?: number;
@@ -46,6 +47,42 @@ export interface RecordingState {
46
47
  startedAt?: number;
47
48
  tabId?: number;
48
49
  }
50
+ export interface ExecutionTimestamp {
51
+ start: number;
52
+ end: number;
53
+ }
54
+ interface CreateRecordingApiOptions {
55
+ context: BrowserContext;
56
+ defaultPage: Page;
57
+ relayPort: number;
58
+ ghostCursorController: RecordingGhostCursorController;
59
+ onStart: () => void;
60
+ onFinish: () => void;
61
+ getExecutionTimestamps: () => ExecutionTimestamp[];
62
+ }
63
+ interface StartRecordingWithDefaultsOptions extends Omit<StartRecordingOptions, 'relayPort'> {
64
+ }
65
+ interface StopRecordingWithDefaultsOptions extends Omit<StopRecordingOptions, 'relayPort'> {
66
+ }
67
+ interface IsRecordingWithDefaultsOptions {
68
+ page?: Page;
69
+ sessionId?: string;
70
+ }
71
+ interface CancelRecordingWithDefaultsOptions {
72
+ page?: Page;
73
+ sessionId?: string;
74
+ }
75
+ export declare function createRecordingApi(options: CreateRecordingApiOptions): {
76
+ start: (opts?: StartRecordingWithDefaultsOptions) => Promise<RecordingState>;
77
+ stop: (opts?: StopRecordingWithDefaultsOptions) => Promise<{
78
+ path: string;
79
+ duration: number;
80
+ size: number;
81
+ executionTimestamps: ExecutionTimestamp[];
82
+ }>;
83
+ isRecording: (opts?: IsRecordingWithDefaultsOptions) => Promise<RecordingState>;
84
+ cancel: (opts?: CancelRecordingWithDefaultsOptions) => Promise<void>;
85
+ };
49
86
  /**
50
87
  * Start recording the page.
51
88
  * The recording is handled by the extension, so it survives page navigation.
@@ -76,4 +113,5 @@ export declare function cancelRecording(options: {
76
113
  sessionId?: string;
77
114
  relayPort?: number;
78
115
  }): Promise<void>;
116
+ export {};
79
117
  //# sourceMappingURL=screen-recording.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"screen-recording.d.ts","sourceRoot":"","sources":["../src/screen-recording.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AASnD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAYhD;AAWD,MAAM,WAAW,qBAAqB;IACpC,4BAA4B;IAC5B,IAAI,EAAE,IAAI,CAAA;IACV,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yDAAyD;IACzD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,8CAA8C;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,yCAAyC;IACzC,IAAI,EAAE,IAAI,CAAA;IACV,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CA8C5F;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB5H;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAU1H;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAcpH"}
1
+ {"version":3,"file":"screen-recording.d.ts","sourceRoot":"","sources":["../src/screen-recording.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * Recording happens in the extension context, so it survives page navigation.
4
4
  *
5
5
  * This module communicates with the relay server which forwards commands to the extension.
6
- * SessionId (pw-tab-X format) is used to identify which tab to record.
6
+ * sessionId (pw-tab-* format) is used to identify which tab to record.
7
7
  */
8
8
  import os from 'node:os';
9
9
  import path from 'node:path';
@@ -18,7 +18,9 @@ import { EXTENSION_IDS } from './utils.js';
18
18
  */
19
19
  export function getChromeRestartCommand() {
20
20
  const platform = os.platform();
21
- const flags = EXTENSION_IDS.map(id => `--allowlisted-extension-id=${id}`).join(' ') + ' --auto-accept-this-tab-capture';
21
+ const extensionFlags = EXTENSION_IDS.map((id) => `--allowlisted-extension-id=${id}`).join(' ');
22
+ // --profile-directory=Default skips the profile picker on startup, preventing Chrome from hanging
23
+ const flags = `${extensionFlags} --auto-accept-this-tab-capture --profile-directory=Default`;
22
24
  if (platform === 'darwin') {
23
25
  return `osascript -e 'quit app "Google Chrome"' && sleep 1 && open -a "Google Chrome" --args ${flags}`;
24
26
  }
@@ -32,9 +34,74 @@ export function getChromeRestartCommand() {
32
34
  * Check if an error is related to missing activeTab permission for recording.
33
35
  */
34
36
  function isActiveTabPermissionError(error) {
35
- return error.includes('Extension has not been invoked') ||
37
+ return (error.includes('Extension has not been invoked') ||
36
38
  error.includes('activeTab') ||
37
- error.includes('enable recording');
39
+ error.includes('enable recording'));
40
+ }
41
+ function resolveRecordingTargetPage(options) {
42
+ return options.ghostCursorController.resolveRecordingTargetPage({
43
+ context: options.context,
44
+ defaultPage: options.defaultPage,
45
+ target: options.target,
46
+ });
47
+ }
48
+ function withRecordingDefaults(options) {
49
+ const { relayPort, defaultPage, fn } = options;
50
+ return async (input = {}) => {
51
+ const targetPage = input.page || defaultPage;
52
+ const sessionId = input.sessionId || targetPage.sessionId() || undefined;
53
+ return fn({ page: targetPage, sessionId, relayPort, ...input });
54
+ };
55
+ }
56
+ export function createRecordingApi(options) {
57
+ const { context, defaultPage, relayPort, ghostCursorController, onStart, onFinish, getExecutionTimestamps } = options;
58
+ const startWithDefaults = withRecordingDefaults({
59
+ relayPort,
60
+ defaultPage,
61
+ fn: startRecording,
62
+ });
63
+ const stopWithDefaults = withRecordingDefaults({
64
+ relayPort,
65
+ defaultPage,
66
+ fn: stopRecording,
67
+ });
68
+ const isRecordingWithDefaults = async (opts = {}) => {
69
+ const targetPage = opts.page || defaultPage;
70
+ const sessionId = opts.sessionId || targetPage.sessionId() || undefined;
71
+ return isRecording({ page: targetPage, sessionId, relayPort });
72
+ };
73
+ const cancelWithDefaults = async (opts = {}) => {
74
+ const targetPage = opts.page || defaultPage;
75
+ const sessionId = opts.sessionId || targetPage.sessionId() || undefined;
76
+ await cancelRecording({ page: targetPage, sessionId, relayPort });
77
+ };
78
+ const start = async (opts) => {
79
+ const targetPage = resolveRecordingTargetPage({ context, defaultPage, ghostCursorController, target: opts });
80
+ const result = await startWithDefaults(opts);
81
+ onStart();
82
+ await ghostCursorController.enableForRecording({ page: targetPage });
83
+ return result;
84
+ };
85
+ const stop = async (opts) => {
86
+ const targetPage = resolveRecordingTargetPage({ context, defaultPage, ghostCursorController, target: opts });
87
+ const result = await stopWithDefaults(opts);
88
+ const executionTimestamps = [...getExecutionTimestamps()];
89
+ onFinish();
90
+ await ghostCursorController.disableForRecording({ page: targetPage });
91
+ return { ...result, executionTimestamps };
92
+ };
93
+ const cancel = async (opts) => {
94
+ const targetPage = resolveRecordingTargetPage({ context, defaultPage, ghostCursorController, target: opts });
95
+ await cancelWithDefaults(opts);
96
+ onFinish();
97
+ await ghostCursorController.disableForRecording({ page: targetPage });
98
+ };
99
+ return {
100
+ start,
101
+ stop,
102
+ isRecording: isRecordingWithDefaults,
103
+ cancel,
104
+ };
38
105
  }
39
106
  /**
40
107
  * Start recording the page.
@@ -48,9 +115,16 @@ export async function startRecording(options) {
48
115
  const response = await fetch(`http://127.0.0.1:${relayPort}/recording/start`, {
49
116
  method: 'POST',
50
117
  headers: { 'Content-Type': 'application/json' },
51
- body: JSON.stringify({ sessionId, frameRate, videoBitsPerSecond, audioBitsPerSecond, audio, outputPath: absoluteOutputPath }),
118
+ body: JSON.stringify({
119
+ sessionId,
120
+ frameRate,
121
+ videoBitsPerSecond,
122
+ audioBitsPerSecond,
123
+ audio,
124
+ outputPath: absoluteOutputPath,
125
+ }),
52
126
  });
53
- const result = await response.json();
127
+ const result = (await response.json());
54
128
  if (!result.success) {
55
129
  const errorMsg = result.error || 'Unknown error';
56
130
  // If the error is about missing activeTab permission, provide helpful guidance
@@ -81,7 +155,7 @@ export async function stopRecording(options) {
81
155
  headers: { 'Content-Type': 'application/json' },
82
156
  body: JSON.stringify({ sessionId }),
83
157
  });
84
- const result = await response.json();
158
+ const result = (await response.json());
85
159
  if (!result.success) {
86
160
  throw new Error(`Failed to stop recording: ${result.error}`);
87
161
  }
@@ -92,11 +166,12 @@ export async function stopRecording(options) {
92
166
  */
93
167
  export async function isRecording(options) {
94
168
  const { sessionId, relayPort = 19988 } = options;
95
- const url = sessionId
96
- ? `http://127.0.0.1:${relayPort}/recording/status?sessionId=${encodeURIComponent(sessionId)}`
97
- : `http://127.0.0.1:${relayPort}/recording/status`;
98
- const response = await fetch(url);
99
- const result = await response.json();
169
+ const url = new URL(`http://127.0.0.1:${relayPort}/recording/status`);
170
+ if (sessionId) {
171
+ url.searchParams.set('sessionId', sessionId);
172
+ }
173
+ const response = await fetch(url.toString());
174
+ const result = (await response.json());
100
175
  return { isRecording: result.isRecording, startedAt: result.startedAt, tabId: result.tabId };
101
176
  }
102
177
  /**
@@ -109,7 +184,7 @@ export async function cancelRecording(options) {
109
184
  headers: { 'Content-Type': 'application/json' },
110
185
  body: JSON.stringify({ sessionId }),
111
186
  });
112
- const result = await response.json();
187
+ const result = (await response.json());
113
188
  if (!result.success) {
114
189
  throw new Error(`Failed to cancel recording: ${result.error}`);
115
190
  }
@@ -1 +1 @@
1
- {"version":3,"file":"screen-recording.js","sourceRoot":"","sources":["../src/screen-recording.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screen-recording.js","sourceRoot":"","sources":["../src/screen-recording.ts"],"names":[],"mappings":"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"}
@@ -7373,6 +7373,6 @@ x-locator-editor.does-not-match {
7373
7373
  return asLocator2(lang, selector);
7374
7374
  }
7375
7375
 
7376
- // dist/_selector-generator-entry-97179-1771340082183.js
7376
+ // dist/_selector-generator-entry-46963-1772299414460.js
7377
7377
  globalThis.__selectorGenerator = { createSelectorGenerator, toLocator };
7378
7378
  })();
@@ -39,7 +39,7 @@ describe('Snapshot & Screenshot Tests', () => {
39
39
  await serviceWorker.evaluate(async () => {
40
40
  await globalThis.toggleExtensionForActiveTab();
41
41
  });
42
- await new Promise(r => setTimeout(r, 100));
42
+ await new Promise((r) => setTimeout(r, 100));
43
43
  const capturedCommands = [];
44
44
  const commandHandler = ({ command }) => {
45
45
  if (command.method === 'Page.captureScreenshot') {
@@ -48,7 +48,10 @@ describe('Snapshot & Screenshot Tests', () => {
48
48
  };
49
49
  testCtx.relayServer.on('cdp:command', commandHandler);
50
50
  const browser = await chromium.connectOverCDP(getCdpUrl({ port: TEST_PORT }));
51
- const cdpPage = browser.contexts()[0].pages().find(p => p.url().includes('example.com'));
51
+ const cdpPage = browser
52
+ .contexts()[0]
53
+ .pages()
54
+ .find((p) => p.url().includes('example.com'));
52
55
  expect(cdpPage).toBeDefined();
53
56
  const viewportSize = cdpPage.viewportSize();
54
57
  console.log('Viewport size:', viewportSize);
@@ -71,9 +74,9 @@ describe('Snapshot & Screenshot Tests', () => {
71
74
  expect(fullPageDimensions.width).toBeGreaterThanOrEqual(viewportDimensions.width);
72
75
  testCtx.relayServer.off('cdp:command', commandHandler);
73
76
  expect(capturedCommands.length).toBe(2);
74
- expect(capturedCommands.map(c => ({
77
+ expect(capturedCommands.map((c) => ({
75
78
  method: c.method,
76
- params: c.params
79
+ params: c.params,
77
80
  }))).toMatchInlineSnapshot(`
78
81
  [
79
82
  {
@@ -112,6 +115,40 @@ describe('Snapshot & Screenshot Tests', () => {
112
115
  await browser.close();
113
116
  await page.close();
114
117
  }, 60000);
118
+ it('should match window.innerWidth/Height without clip param', async () => {
119
+ // Proves that in connectOverCDP mode, Playwright already queries
120
+ // window.innerWidth/innerHeight for viewport screenshots, so passing
121
+ // a manual clip is redundant.
122
+ const browserContext = getBrowserContext();
123
+ const serviceWorker = await getExtensionServiceWorker(browserContext);
124
+ const page = await browserContext.newPage();
125
+ await page.goto('https://example.com/');
126
+ await page.bringToFront();
127
+ await serviceWorker.evaluate(async () => {
128
+ await globalThis.toggleExtensionForActiveTab();
129
+ });
130
+ await new Promise((r) => setTimeout(r, 100));
131
+ const browser = await chromium.connectOverCDP(getCdpUrl({ port: TEST_PORT }));
132
+ const cdpPage = browser
133
+ .contexts()[0]
134
+ .pages()
135
+ .find((p) => p.url().includes('example.com'));
136
+ expect(cdpPage).toBeDefined();
137
+ // Get actual browser viewport via JS
138
+ const actualViewport = await cdpPage.evaluate(() => ({
139
+ width: window.innerWidth,
140
+ height: window.innerHeight,
141
+ }));
142
+ console.log('Actual viewport (window.inner*):', actualViewport);
143
+ // Plain screenshot with scale:'css', NO clip
144
+ const screenshot = await cdpPage.screenshot({ scale: 'css' });
145
+ const dimensions = imageSize(screenshot);
146
+ console.log('Screenshot dimensions (no clip):', dimensions);
147
+ expect(dimensions.width).toBe(actualViewport.width);
148
+ expect(dimensions.height).toBe(actualViewport.height);
149
+ await browser.close();
150
+ await page.close();
151
+ }, 60000);
115
152
  it('should capture element screenshot with correct coordinates', async () => {
116
153
  const browserContext = getBrowserContext();
117
154
  const serviceWorker = await getExtensionServiceWorker(browserContext);
@@ -151,7 +188,7 @@ describe('Snapshot & Screenshot Tests', () => {
151
188
  await serviceWorker.evaluate(async () => {
152
189
  await globalThis.toggleExtensionForActiveTab();
153
190
  });
154
- await new Promise(r => setTimeout(r, 400));
191
+ await new Promise((r) => setTimeout(r, 400));
155
192
  const capturedCommands = [];
156
193
  const commandHandler = ({ command }) => {
157
194
  if (command.method === 'Page.captureScreenshot') {
@@ -206,7 +243,7 @@ describe('Snapshot & Screenshot Tests', () => {
206
243
  await serviceWorker.evaluate(async () => {
207
244
  await globalThis.toggleExtensionForActiveTab();
208
245
  });
209
- await new Promise(r => setTimeout(r, 400));
246
+ await new Promise((r) => setTimeout(r, 400));
210
247
  const result = await client.callTool({
211
248
  name: 'execute',
212
249
  arguments: {
@@ -263,7 +300,7 @@ describe('Snapshot & Screenshot Tests', () => {
263
300
  await serviceWorker.evaluate(async () => {
264
301
  await globalThis.toggleExtensionForActiveTab();
265
302
  });
266
- await new Promise(r => setTimeout(r, 400));
303
+ await new Promise((r) => setTimeout(r, 400));
267
304
  const stylesResult = await client.callTool({
268
305
  name: 'execute',
269
306
  arguments: {
@@ -418,9 +455,12 @@ describe('Snapshot & Screenshot Tests', () => {
418
455
  await serviceWorker.evaluate(async () => {
419
456
  await globalThis.toggleExtensionForActiveTab();
420
457
  });
421
- await new Promise(r => setTimeout(r, 100));
458
+ await new Promise((r) => setTimeout(r, 100));
422
459
  const browser = await chromium.connectOverCDP(getCdpUrl({ port: TEST_PORT }));
423
- const cdpPage = browser.contexts()[0].pages().find(p => p.url().includes('example.com'));
460
+ const cdpPage = browser
461
+ .contexts()[0]
462
+ .pages()
463
+ .find((p) => p.url().includes('example.com'));
424
464
  expect(cdpPage).toBeDefined();
425
465
  const cdpSession = await getCDPSessionForPage({ page: cdpPage });
426
466
  const layoutMetrics = await cdpSession.send('Page.getLayoutMetrics');
@@ -486,9 +526,12 @@ describe('Snapshot & Screenshot Tests', () => {
486
526
  await serviceWorker.evaluate(async () => {
487
527
  await globalThis.toggleExtensionForActiveTab();
488
528
  });
489
- await new Promise(r => setTimeout(r, 100));
529
+ await new Promise((r) => setTimeout(r, 100));
490
530
  const browser = await chromium.connectOverCDP(getCdpUrl({ port: TEST_PORT }));
491
- const cdpPage = browser.contexts()[0].pages().find(p => p.url().includes('example.com'));
531
+ const cdpPage = browser
532
+ .contexts()[0]
533
+ .pages()
534
+ .find((p) => p.url().includes('example.com'));
492
535
  expect(cdpPage).toBeDefined();
493
536
  // Use the new getCDPSessionForPage which reuses Playwright's internal WS
494
537
  const cdpClient = await getCDPSessionForPage({ page: cdpPage });
@@ -523,7 +566,7 @@ describe('Snapshot & Screenshot Tests', () => {
523
566
  await serviceWorker.evaluate(async () => {
524
567
  await globalThis.toggleExtensionForActiveTab();
525
568
  });
526
- await new Promise(r => setTimeout(r, 400));
569
+ await new Promise((r) => setTimeout(r, 400));
527
570
  const browser = await chromium.connectOverCDP(getCdpUrl({ port: TEST_PORT }));
528
571
  let cdpPage;
529
572
  for (const p of browser.contexts()[0].pages()) {
@@ -607,9 +650,8 @@ describe('Snapshot & Screenshot Tests', () => {
607
650
  fs.mkdirSync(assetsDir, { recursive: true });
608
651
  }
609
652
  const testPages = [
653
+ { name: 'old-reddit', url: 'https://old.reddit.com/' },
610
654
  { name: 'hacker-news', url: 'https://news.ycombinator.com/' },
611
- { name: 'google', url: 'https://www.google.com/' },
612
- { name: 'github', url: 'https://github.com/' },
613
655
  ];
614
656
  const loadPageWithRetries = async ({ name, url }) => {
615
657
  const page = await browserContext.newPage();
@@ -619,8 +661,7 @@ describe('Snapshot & Screenshot Tests', () => {
619
661
  for (let attempt = 1; attempt <= attempts; attempt += 1) {
620
662
  try {
621
663
  console.log(`[labels] opening ${name}: ${url} (attempt ${attempt}/${attempts})`);
622
- await page.goto(url, { waitUntil: 'domcontentloaded' });
623
- await page.waitForLoadState('networkidle', { timeout: 15000 });
664
+ await page.goto(url, { waitUntil: 'load' });
624
665
  console.log(`[labels] loaded ${name}: ${page.url()}`);
625
666
  return { name, url, page };
626
667
  }
@@ -629,12 +670,13 @@ describe('Snapshot & Screenshot Tests', () => {
629
670
  }
630
671
  }
631
672
  await page.close();
632
- throw new Error(`Failed to load ${name} after ${attempts} attempts`, { cause: lastError instanceof Error ? lastError : undefined });
673
+ throw new Error(`Failed to load ${name} after ${attempts} attempts`, {
674
+ cause: lastError instanceof Error ? lastError : undefined,
675
+ });
633
676
  };
634
- const pages = [];
635
- for (const testPage of testPages) {
636
- pages.push(await loadPageWithRetries(testPage));
637
- }
677
+ const pages = await Promise.all(testPages.map((testPage) => {
678
+ return loadPageWithRetries(testPage);
679
+ }));
638
680
  for (const { page } of pages) {
639
681
  await page.bringToFront();
640
682
  await serviceWorker.evaluate(async () => {
@@ -661,7 +703,10 @@ describe('Snapshot & Screenshot Tests', () => {
661
703
  const wsUrl = getCdpUrl({ port: TEST_PORT });
662
704
  for (const { name, url, page } of pages) {
663
705
  console.log(`[labels] start ${name}`);
664
- const cdpPage = browser.contexts()[0].pages().find(p => p.url().includes(new URL(url).hostname));
706
+ const cdpPage = browser
707
+ .contexts()[0]
708
+ .pages()
709
+ .find((p) => p.url().includes(new URL(url).hostname));
665
710
  if (!cdpPage) {
666
711
  throw new Error(`Could not find CDP page for ${name}`);
667
712
  }
@@ -670,9 +715,7 @@ describe('Snapshot & Screenshot Tests', () => {
670
715
  return await showAriaRefLabels({ page: cdpPage });
671
716
  }, 60000);
672
717
  console.log(`${name}: ${labelCount} labels shown`);
673
- if (name !== 'google') {
674
- expect(labelCount).toBeGreaterThan(0);
675
- }
718
+ expect(labelCount).toBeGreaterThan(0);
676
719
  console.log(`[labels] screenshot ${name}`);
677
720
  const screenshot = await withTimeout(`screenshot(${name})`, async () => {
678
721
  return await cdpPage.screenshot({ type: 'png', fullPage: false });
@@ -764,7 +807,7 @@ describe('Snapshot & Screenshot Tests', () => {
764
807
  await serviceWorker.evaluate(async () => {
765
808
  await globalThis.toggleExtensionForActiveTab();
766
809
  });
767
- await new Promise(r => setTimeout(r, 400));
810
+ await new Promise((r) => setTimeout(r, 400));
768
811
  const result = await client.callTool({
769
812
  name: 'execute',
770
813
  arguments: {
@@ -783,14 +826,14 @@ describe('Snapshot & Screenshot Tests', () => {
783
826
  expect(result.isError).toBeFalsy();
784
827
  const content = result.content;
785
828
  expect(content.length).toBe(2);
786
- const textContent = content.find(c => c.type === 'text');
829
+ const textContent = content.find((c) => c.type === 'text');
787
830
  expect(textContent).toBeDefined();
788
831
  expect(textContent.text).toContain('Screenshot saved to:');
789
832
  expect(textContent.text).toContain('.jpg');
790
833
  expect(textContent.text).toContain('Labels shown:');
791
834
  expect(textContent.text).toContain('Accessibility snapshot:');
792
835
  expect(textContent.text).toContain('Submit Form');
793
- const imageContent = content.find(c => c.type === 'image');
836
+ const imageContent = content.find((c) => c.type === 'image');
794
837
  expect(imageContent).toBeDefined();
795
838
  expect(imageContent.mimeType).toBe('image/jpeg');
796
839
  expect(imageContent.data).toBeDefined();
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-tools.test.js","sourceRoot":"","sources":["../src/snapshot-tools.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot-tools.test.js","sourceRoot":"","sources":["../src/snapshot-tools.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare function startServer({ port, host, token }?: {
1
+ export declare function startServer({ port, host, token, }?: {
2
2
  port?: number;
3
3
  host?: string;
4
4
  token?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"start-relay-server.d.ts","sourceRoot":"","sources":["../src/start-relay-server.ts"],"names":[],"mappings":"AAuBA,wBAAsB,WAAW,CAAC,EAAE,IAAY,EAAE,IAAkB,EAAE,KAAK,EAAE,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,iDAoBnI"}
1
+ {"version":3,"file":"start-relay-server.d.ts","sourceRoot":"","sources":["../src/start-relay-server.ts"],"names":[],"mappings":"AAsBA,wBAAsB,WAAW,CAAC,EAChC,IAAY,EACZ,IAAkB,EAClB,KAAK,GACN,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,iDAoBvD"}
@@ -14,7 +14,7 @@ process.on('unhandledRejection', async (reason) => {
14
14
  process.on('exit', async (code) => {
15
15
  await logger.log(`Process exiting with code: ${code}`);
16
16
  });
17
- export async function startServer({ port = 19988, host = '127.0.0.1', token } = {}) {
17
+ export async function startServer({ port = 19988, host = '127.0.0.1', token, } = {}) {
18
18
  const server = await startPlayWriterCDPRelayServer({ port, host, token, logger });
19
19
  console.log('CDP Relay Server running. Press Ctrl+C to stop.');
20
20
  console.log('Logs are being written to:', logger.logFilePath);