playwright-core 1.55.0-alpha-2025-08-08 → 1.55.0-alpha-2025-08-09

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.
@@ -212,7 +212,7 @@ class BrowserContext extends import_channelOwner.ChannelOwner {
212
212
  this._routes.splice(index, 1);
213
213
  const handled = await routeHandler.handle(route);
214
214
  if (!this._routes.length)
215
- this._updateInterceptionPatterns().catch(() => {
215
+ this._updateInterceptionPatterns({ internal: true }).catch(() => {
216
216
  });
217
217
  if (handled)
218
218
  return;
@@ -310,11 +310,11 @@ class BrowserContext extends import_channelOwner.ChannelOwner {
310
310
  }
311
311
  async route(url, handler, options = {}) {
312
312
  this._routes.unshift(new network.RouteHandler(this._platform, this._options.baseURL, url, handler, options.times));
313
- await this._updateInterceptionPatterns();
313
+ await this._updateInterceptionPatterns({ title: "Route requests" });
314
314
  }
315
315
  async routeWebSocket(url, handler) {
316
316
  this._webSocketRoutes.unshift(new network.WebSocketRouteHandler(this._options.baseURL, url, handler));
317
- await this._updateWebSocketInterceptionPatterns();
317
+ await this._updateWebSocketInterceptionPatterns({ title: "Route WebSockets" });
318
318
  }
319
319
  async _recordIntoHAR(har, page, options = {}) {
320
320
  const { harId } = await this._channel.harStart({
@@ -367,15 +367,15 @@ class BrowserContext extends import_channelOwner.ChannelOwner {
367
367
  const promises = removed.map((routeHandler) => routeHandler.stop(behavior));
368
368
  await Promise.all(promises);
369
369
  }
370
- await this._updateInterceptionPatterns();
370
+ await this._updateInterceptionPatterns({ title: "Unroute requests" });
371
371
  }
372
- async _updateInterceptionPatterns() {
372
+ async _updateInterceptionPatterns(options) {
373
373
  const patterns = network.RouteHandler.prepareInterceptionPatterns(this._routes);
374
- await this._channel.setNetworkInterceptionPatterns({ patterns });
374
+ await this._wrapApiCall(() => this._channel.setNetworkInterceptionPatterns({ patterns }), options);
375
375
  }
376
- async _updateWebSocketInterceptionPatterns() {
376
+ async _updateWebSocketInterceptionPatterns(options) {
377
377
  const patterns = network.WebSocketRouteHandler.prepareInterceptionPatterns(this._webSocketRoutes);
378
- await this._channel.setWebSocketInterceptionPatterns({ patterns });
378
+ await this._wrapApiCall(() => this._channel.setWebSocketInterceptionPatterns({ patterns }), options);
379
379
  }
380
380
  _effectiveCloseReason() {
381
381
  return this._closeReason || this._browser?._closeReason;
@@ -144,7 +144,7 @@ class Page extends import_channelOwner.ChannelOwner {
144
144
  this._routes.splice(index, 1);
145
145
  const handled = await routeHandler.handle(route);
146
146
  if (!this._routes.length)
147
- this._updateInterceptionPatterns().catch(() => {
147
+ this._updateInterceptionPatterns({ internal: true }).catch(() => {
148
148
  });
149
149
  if (handled)
150
150
  return;
@@ -406,7 +406,7 @@ class Page extends import_channelOwner.ChannelOwner {
406
406
  }
407
407
  async route(url, handler, options = {}) {
408
408
  this._routes.unshift(new import_network.RouteHandler(this._platform, this._browserContext._options.baseURL, url, handler, options.times));
409
- await this._updateInterceptionPatterns();
409
+ await this._updateInterceptionPatterns({ title: "Route requests" });
410
410
  }
411
411
  async routeFromHAR(har, options = {}) {
412
412
  const localUtils = this._connection.localUtils();
@@ -422,7 +422,7 @@ class Page extends import_channelOwner.ChannelOwner {
422
422
  }
423
423
  async routeWebSocket(url, handler) {
424
424
  this._webSocketRoutes.unshift(new import_network.WebSocketRouteHandler(this._browserContext._options.baseURL, url, handler));
425
- await this._updateWebSocketInterceptionPatterns();
425
+ await this._updateWebSocketInterceptionPatterns({ title: "Route WebSockets" });
426
426
  }
427
427
  _disposeHarRouters() {
428
428
  this._harRouters.forEach((router) => router.dispose());
@@ -449,15 +449,15 @@ class Page extends import_channelOwner.ChannelOwner {
449
449
  const promises = removed.map((routeHandler) => routeHandler.stop(behavior));
450
450
  await Promise.all(promises);
451
451
  }
452
- await this._updateInterceptionPatterns();
452
+ await this._updateInterceptionPatterns({ title: "Unroute requests" });
453
453
  }
454
- async _updateInterceptionPatterns() {
454
+ async _updateInterceptionPatterns(options) {
455
455
  const patterns = import_network.RouteHandler.prepareInterceptionPatterns(this._routes);
456
- await this._channel.setNetworkInterceptionPatterns({ patterns });
456
+ await this._wrapApiCall(() => this._channel.setNetworkInterceptionPatterns({ patterns }), options);
457
457
  }
458
- async _updateWebSocketInterceptionPatterns() {
458
+ async _updateWebSocketInterceptionPatterns(options) {
459
459
  const patterns = import_network.WebSocketRouteHandler.prepareInterceptionPatterns(this._webSocketRoutes);
460
- await this._channel.setWebSocketInterceptionPatterns({ patterns });
460
+ await this._wrapApiCall(() => this._channel.setWebSocketInterceptionPatterns({ patterns }), options);
461
461
  }
462
462
  async screenshot(options = {}) {
463
463
  const mask = options.mask;
@@ -33,19 +33,23 @@ class Tracing extends import_channelOwner.ChannelOwner {
33
33
  return channel._object;
34
34
  }
35
35
  async start(options = {}) {
36
- this._includeSources = !!options.sources;
37
- await this._channel.tracingStart({
38
- name: options.name,
39
- snapshots: options.snapshots,
40
- screenshots: options.screenshots,
41
- live: options._live
36
+ await this._wrapApiCall(async () => {
37
+ this._includeSources = !!options.sources;
38
+ await this._channel.tracingStart({
39
+ name: options.name,
40
+ snapshots: options.snapshots,
41
+ screenshots: options.screenshots,
42
+ live: options._live
43
+ });
44
+ const { traceName } = await this._channel.tracingStartChunk({ name: options.name, title: options.title });
45
+ await this._startCollectingStacks(traceName);
42
46
  });
43
- const { traceName } = await this._channel.tracingStartChunk({ name: options.name, title: options.title });
44
- await this._startCollectingStacks(traceName);
45
47
  }
46
48
  async startChunk(options = {}) {
47
- const { traceName } = await this._channel.tracingStartChunk(options);
48
- await this._startCollectingStacks(traceName);
49
+ await this._wrapApiCall(async () => {
50
+ const { traceName } = await this._channel.tracingStartChunk(options);
51
+ await this._startCollectingStacks(traceName);
52
+ });
49
53
  }
50
54
  async group(name, options = {}) {
51
55
  await this._channel.tracingGroup({ name, location: options.location });
@@ -62,11 +66,15 @@ class Tracing extends import_channelOwner.ChannelOwner {
62
66
  this._stacksId = result?.stacksId;
63
67
  }
64
68
  async stopChunk(options = {}) {
65
- await this._doStopChunk(options.path);
69
+ await this._wrapApiCall(async () => {
70
+ await this._doStopChunk(options.path);
71
+ });
66
72
  }
67
73
  async stop(options = {}) {
68
- await this._doStopChunk(options.path);
69
- await this._channel.tracingStop();
74
+ await this._wrapApiCall(async () => {
75
+ await this._doStopChunk(options.path);
76
+ await this._channel.tracingStop();
77
+ });
70
78
  }
71
79
  async _doStopChunk(filePath) {
72
80
  this._resetStackCounter();
@@ -28,8 +28,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var tracing_exports = {};
30
30
  __export(tracing_exports, {
31
- Tracing: () => Tracing,
32
- shouldCaptureSnapshot: () => shouldCaptureSnapshot
31
+ Tracing: () => Tracing
33
32
  });
34
33
  module.exports = __toCommonJS(tracing_exports);
35
34
  var import_fs = __toESM(require("fs"));
@@ -37,6 +36,7 @@ var import_os = __toESM(require("os"));
37
36
  var import_path = __toESM(require("path"));
38
37
  var import_snapshotter = require("./snapshotter");
39
38
  var import_protocolMetainfo = require("../../../utils/isomorphic/protocolMetainfo");
39
+ var import_protocolFormatter = require("../../../utils/isomorphic/protocolFormatter");
40
40
  var import_assert = require("../../../utils/isomorphic/assert");
41
41
  var import_time = require("../../../utils/isomorphic/time");
42
42
  var import_eventsHelper = require("../../utils/eventsHelper");
@@ -560,7 +560,8 @@ function createBeforeActionTraceEvent(metadata, parentId) {
560
560
  method: metadata.method,
561
561
  params: metadata.params,
562
562
  stepId: metadata.stepId,
563
- pageId: metadata.pageId
563
+ pageId: metadata.pageId,
564
+ visibility: (0, import_protocolFormatter.getActionGroup)(metadata) ? "hidden" : void 0
564
565
  };
565
566
  if (parentId)
566
567
  event.parentId = parentId;
@@ -599,6 +600,5 @@ function createAfterActionTraceEvent(metadata) {
599
600
  }
600
601
  // Annotate the CommonJS export names for ESM import in node:
601
602
  0 && (module.exports = {
602
- Tracing,
603
- shouldCaptureSnapshot
603
+ Tracing
604
604
  });
@@ -19,6 +19,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var protocolFormatter_exports = {};
20
20
  __export(protocolFormatter_exports, {
21
21
  formatProtocolParam: () => formatProtocolParam,
22
+ getActionGroup: () => getActionGroup,
22
23
  renderTitleForCall: () => renderTitleForCall
23
24
  });
24
25
  module.exports = __toCommonJS(protocolFormatter_exports);
@@ -66,8 +67,12 @@ function renderTitleForCall(metadata) {
66
67
  return formatProtocolParam(metadata.params, p1) ?? fullMatch;
67
68
  });
68
69
  }
70
+ function getActionGroup(metadata) {
71
+ return import_protocolMetainfo.methodMetainfo.get(metadata.type + "." + metadata.method)?.group;
72
+ }
69
73
  // Annotate the CommonJS export names for ESM import in node:
70
74
  0 && (module.exports = {
71
75
  formatProtocolParam,
76
+ getActionGroup,
72
77
  renderTitleForCall
73
78
  });
@@ -23,9 +23,9 @@ __export(protocolMetainfo_exports, {
23
23
  module.exports = __toCommonJS(protocolMetainfo_exports);
24
24
  const methodMetainfo = /* @__PURE__ */ new Map([
25
25
  ["APIRequestContext.fetch", { title: '{method} "{url}"' }],
26
- ["APIRequestContext.fetchResponseBody", { internal: true }],
26
+ ["APIRequestContext.fetchResponseBody", { title: "Get response body", group: "getter" }],
27
27
  ["APIRequestContext.fetchLog", { internal: true }],
28
- ["APIRequestContext.storageState", { internal: true }],
28
+ ["APIRequestContext.storageState", { title: "Get storage state" }],
29
29
  ["APIRequestContext.disposeAPIResponse", { internal: true }],
30
30
  ["APIRequestContext.dispose", { internal: true }],
31
31
  ["LocalUtils.zip", { internal: true }],
@@ -60,38 +60,38 @@ const methodMetainfo = /* @__PURE__ */ new Map([
60
60
  ["Browser.newContext", { title: "Create context" }],
61
61
  ["Browser.newContextForReuse", { internal: true }],
62
62
  ["Browser.disconnectFromReusedContext", { internal: true }],
63
- ["Browser.newBrowserCDPSession", { internal: true, title: "Create CDP session" }],
64
- ["Browser.startTracing", { internal: true }],
65
- ["Browser.stopTracing", { internal: true }],
63
+ ["Browser.newBrowserCDPSession", { title: "Create CDP session", group: "configuration" }],
64
+ ["Browser.startTracing", { title: "Start browser tracing", group: "configuration" }],
65
+ ["Browser.stopTracing", { title: "Stop browser tracing", group: "configuration" }],
66
66
  ["EventTarget.waitForEventInfo", { title: 'Wait for event "{info.event}"', snapshot: true }],
67
67
  ["BrowserContext.waitForEventInfo", { title: 'Wait for event "{info.event}"', snapshot: true }],
68
68
  ["Page.waitForEventInfo", { title: 'Wait for event "{info.event}"', snapshot: true }],
69
69
  ["WebSocket.waitForEventInfo", { title: 'Wait for event "{info.event}"', snapshot: true }],
70
70
  ["ElectronApplication.waitForEventInfo", { title: 'Wait for event "{info.event}"', snapshot: true }],
71
71
  ["AndroidDevice.waitForEventInfo", { title: 'Wait for event "{info.event}"', snapshot: true }],
72
- ["BrowserContext.addCookies", { title: "Add cookies" }],
73
- ["BrowserContext.addInitScript", { title: "Add init script" }],
74
- ["BrowserContext.clearCookies", { title: "Clear cookies" }],
75
- ["BrowserContext.clearPermissions", { title: "Clear permissions" }],
72
+ ["BrowserContext.addCookies", { title: "Add cookies", group: "configuration" }],
73
+ ["BrowserContext.addInitScript", { title: "Add init script", group: "configuration" }],
74
+ ["BrowserContext.clearCookies", { title: "Clear cookies", group: "configuration" }],
75
+ ["BrowserContext.clearPermissions", { title: "Clear permissions", group: "configuration" }],
76
76
  ["BrowserContext.close", { title: "Close context" }],
77
- ["BrowserContext.cookies", { title: "Get cookies" }],
78
- ["BrowserContext.exposeBinding", { title: "Expose binding" }],
79
- ["BrowserContext.grantPermissions", { title: "Grant permissions" }],
77
+ ["BrowserContext.cookies", { title: "Get cookies", group: "getter" }],
78
+ ["BrowserContext.exposeBinding", { title: "Expose binding", group: "configuration" }],
79
+ ["BrowserContext.grantPermissions", { title: "Grant permissions", group: "configuration" }],
80
80
  ["BrowserContext.newPage", { title: "Create page" }],
81
81
  ["BrowserContext.registerSelectorEngine", { internal: true }],
82
82
  ["BrowserContext.setTestIdAttributeName", { internal: true }],
83
- ["BrowserContext.setExtraHTTPHeaders", { title: "Set extra HTTP headers" }],
84
- ["BrowserContext.setGeolocation", { title: "Set geolocation" }],
85
- ["BrowserContext.setHTTPCredentials", { title: "Set HTTP credentials" }],
86
- ["BrowserContext.setNetworkInterceptionPatterns", { internal: true }],
87
- ["BrowserContext.setWebSocketInterceptionPatterns", { internal: true }],
83
+ ["BrowserContext.setExtraHTTPHeaders", { title: "Set extra HTTP headers", group: "configuration" }],
84
+ ["BrowserContext.setGeolocation", { title: "Set geolocation", group: "configuration" }],
85
+ ["BrowserContext.setHTTPCredentials", { title: "Set HTTP credentials", group: "configuration" }],
86
+ ["BrowserContext.setNetworkInterceptionPatterns", { title: "Route requests", group: "route" }],
87
+ ["BrowserContext.setWebSocketInterceptionPatterns", { title: "Route WebSockets", group: "route" }],
88
88
  ["BrowserContext.setOffline", { title: "Set offline mode" }],
89
89
  ["BrowserContext.storageState", { title: "Get storage state" }],
90
- ["BrowserContext.setStorageState", { title: "Set storage state" }],
90
+ ["BrowserContext.setStorageState", { title: "Set storage state", group: "configuration" }],
91
91
  ["BrowserContext.pause", { title: "Pause" }],
92
92
  ["BrowserContext.enableRecorder", { internal: true }],
93
93
  ["BrowserContext.disableRecorder", { internal: true }],
94
- ["BrowserContext.newCDPSession", { internal: true }],
94
+ ["BrowserContext.newCDPSession", { title: "Create CDP session", group: "configuration" }],
95
95
  ["BrowserContext.harStart", { internal: true }],
96
96
  ["BrowserContext.harExport", { internal: true }],
97
97
  ["BrowserContext.createTempFiles", { internal: true }],
@@ -104,22 +104,22 @@ const methodMetainfo = /* @__PURE__ */ new Map([
104
104
  ["BrowserContext.clockSetFixedTime", { title: 'Set fixed time "{timeNumber|timeString}"' }],
105
105
  ["BrowserContext.clockSetSystemTime", { title: 'Set system time "{timeNumber|timeString}"' }],
106
106
  ["BrowserContext.clockUninstall", { title: "Uninstall clock" }],
107
- ["Page.addInitScript", {}],
107
+ ["Page.addInitScript", { title: "Add init script", group: "configuration" }],
108
108
  ["Page.close", { title: "Close page" }],
109
109
  ["Page.emulateMedia", { title: "Emulate media", snapshot: true }],
110
- ["Page.exposeBinding", { title: "Expose binding" }],
110
+ ["Page.exposeBinding", { title: "Expose binding", group: "configuration" }],
111
111
  ["Page.goBack", { title: "Go back", slowMo: true, snapshot: true }],
112
112
  ["Page.goForward", { title: "Go forward", slowMo: true, snapshot: true }],
113
- ["Page.requestGC", { title: "Request garbage collection" }],
113
+ ["Page.requestGC", { title: "Request garbage collection", group: "configuration" }],
114
114
  ["Page.registerLocatorHandler", { title: "Register locator handler" }],
115
115
  ["Page.resolveLocatorHandlerNoReply", { internal: true }],
116
116
  ["Page.unregisterLocatorHandler", { title: "Unregister locator handler" }],
117
117
  ["Page.reload", { title: "Reload", slowMo: true, snapshot: true }],
118
118
  ["Page.expectScreenshot", { title: "Expect screenshot", snapshot: true }],
119
119
  ["Page.screenshot", { title: "Screenshot", snapshot: true }],
120
- ["Page.setExtraHTTPHeaders", { title: "Set extra HTTP headers" }],
121
- ["Page.setNetworkInterceptionPatterns", { internal: true }],
122
- ["Page.setWebSocketInterceptionPatterns", { internal: true }],
120
+ ["Page.setExtraHTTPHeaders", { title: "Set extra HTTP headers", group: "configuration" }],
121
+ ["Page.setNetworkInterceptionPatterns", { title: "Route requests", group: "route" }],
122
+ ["Page.setWebSocketInterceptionPatterns", { title: "Route WebSockets", group: "route" }],
123
123
  ["Page.setViewportSize", { title: "Set viewport size", snapshot: true }],
124
124
  ["Page.keyboardDown", { title: 'Key down "{key}"', slowMo: true, snapshot: true }],
125
125
  ["Page.keyboardUp", { title: 'Key up "{key}"', slowMo: true, snapshot: true }],
@@ -132,13 +132,13 @@ const methodMetainfo = /* @__PURE__ */ new Map([
132
132
  ["Page.mouseClick", { title: "Click", slowMo: true, snapshot: true }],
133
133
  ["Page.mouseWheel", { title: "Mouse wheel", slowMo: true, snapshot: true }],
134
134
  ["Page.touchscreenTap", { title: "Tap", slowMo: true, snapshot: true }],
135
- ["Page.accessibilitySnapshot", { internal: true, snapshot: true }],
135
+ ["Page.accessibilitySnapshot", { title: "Accessibility snapshot", group: "getter" }],
136
136
  ["Page.pdf", { title: "PDF" }],
137
- ["Page.snapshotForAI", { internal: true, snapshot: true }],
138
- ["Page.startJSCoverage", { internal: true }],
139
- ["Page.stopJSCoverage", { internal: true }],
140
- ["Page.startCSSCoverage", { internal: true }],
141
- ["Page.stopCSSCoverage", { internal: true }],
137
+ ["Page.snapshotForAI", { internal: true }],
138
+ ["Page.startJSCoverage", { title: "Start JS coverage", group: "configuration" }],
139
+ ["Page.stopJSCoverage", { title: "Stop JS coverage", group: "configuration" }],
140
+ ["Page.startCSSCoverage", { title: "Start CSS coverage", group: "configuration" }],
141
+ ["Page.stopCSSCoverage", { title: "Stop CSS coverage", group: "configuration" }],
142
142
  ["Page.bringToFront", { title: "Bring to front" }],
143
143
  ["Page.updateSubscription", { internal: true }],
144
144
  ["Frame.evalOnSelector", { title: "Evaluate", snapshot: true }],
@@ -157,21 +157,21 @@ const methodMetainfo = /* @__PURE__ */ new Map([
157
157
  ["Frame.evaluateExpressionHandle", { title: "Evaluate", snapshot: true }],
158
158
  ["Frame.fill", { title: 'Fill "{value}"', slowMo: true, snapshot: true, pausesBeforeInput: true }],
159
159
  ["Frame.focus", { title: "Focus", slowMo: true, snapshot: true }],
160
- ["Frame.frameElement", { internal: true }],
160
+ ["Frame.frameElement", { title: "Get frame element", group: "getter" }],
161
161
  ["Frame.resolveSelector", { internal: true }],
162
- ["Frame.highlight", { internal: true }],
163
- ["Frame.getAttribute", { internal: true, snapshot: true }],
162
+ ["Frame.highlight", { title: "Highlight element", group: "configuration" }],
163
+ ["Frame.getAttribute", { title: 'Get attribute "{name}"', snapshot: true, group: "getter" }],
164
164
  ["Frame.goto", { title: 'Navigate to "{url}"', slowMo: true, snapshot: true }],
165
165
  ["Frame.hover", { title: "Hover", slowMo: true, snapshot: true, pausesBeforeInput: true }],
166
- ["Frame.innerHTML", { title: "Get HTML", snapshot: true }],
167
- ["Frame.innerText", { title: "Get inner text", snapshot: true }],
168
- ["Frame.inputValue", { title: "Get input value", snapshot: true }],
169
- ["Frame.isChecked", { title: "Is checked", snapshot: true }],
170
- ["Frame.isDisabled", { title: "Is disabled", snapshot: true }],
171
- ["Frame.isEnabled", { title: "Is enabled", snapshot: true }],
172
- ["Frame.isHidden", { title: "Is hidden", snapshot: true }],
173
- ["Frame.isVisible", { title: "Is visible", snapshot: true }],
174
- ["Frame.isEditable", { title: "Is editable", snapshot: true }],
166
+ ["Frame.innerHTML", { title: "Get HTML", snapshot: true, group: "getter" }],
167
+ ["Frame.innerText", { title: "Get inner text", snapshot: true, group: "getter" }],
168
+ ["Frame.inputValue", { title: "Get input value", snapshot: true, group: "getter" }],
169
+ ["Frame.isChecked", { title: "Is checked", snapshot: true, group: "getter" }],
170
+ ["Frame.isDisabled", { title: "Is disabled", snapshot: true, group: "getter" }],
171
+ ["Frame.isEnabled", { title: "Is enabled", snapshot: true, group: "getter" }],
172
+ ["Frame.isHidden", { title: "Is hidden", snapshot: true, group: "getter" }],
173
+ ["Frame.isVisible", { title: "Is visible", snapshot: true, group: "getter" }],
174
+ ["Frame.isEditable", { title: "Is editable", snapshot: true, group: "getter" }],
175
175
  ["Frame.press", { title: 'Press "{key}"', slowMo: true, snapshot: true, pausesBeforeInput: true }],
176
176
  ["Frame.querySelector", { title: "Query selector", snapshot: true }],
177
177
  ["Frame.querySelectorAll", { title: "Query selector all", snapshot: true }],
@@ -180,9 +180,9 @@ const methodMetainfo = /* @__PURE__ */ new Map([
180
180
  ["Frame.setContent", { title: "Set content", snapshot: true }],
181
181
  ["Frame.setInputFiles", { title: "Set input files", slowMo: true, snapshot: true, pausesBeforeInput: true }],
182
182
  ["Frame.tap", { title: "Tap", slowMo: true, snapshot: true, pausesBeforeInput: true }],
183
- ["Frame.textContent", { title: "Get text content", snapshot: true }],
184
- ["Frame.title", { internal: true }],
185
- ["Frame.type", { title: "Type", slowMo: true, snapshot: true, pausesBeforeInput: true }],
183
+ ["Frame.textContent", { title: "Get text content", snapshot: true, group: "getter" }],
184
+ ["Frame.title", { title: "Get page title", group: "getter" }],
185
+ ["Frame.type", { title: 'Type "{text}"', slowMo: true, snapshot: true, pausesBeforeInput: true }],
186
186
  ["Frame.uncheck", { title: "Uncheck", slowMo: true, snapshot: true, pausesBeforeInput: true }],
187
187
  ["Frame.waitForTimeout", { title: "Wait for timeout", snapshot: true }],
188
188
  ["Frame.waitForFunction", { title: "Wait for function", snapshot: true }],
@@ -190,40 +190,40 @@ const methodMetainfo = /* @__PURE__ */ new Map([
190
190
  ["Frame.expect", { title: 'Expect "{expression}"', snapshot: true }],
191
191
  ["Worker.evaluateExpression", { title: "Evaluate" }],
192
192
  ["Worker.evaluateExpressionHandle", { title: "Evaluate" }],
193
- ["JSHandle.dispose", {}],
194
- ["ElementHandle.dispose", {}],
193
+ ["JSHandle.dispose", { internal: true }],
194
+ ["ElementHandle.dispose", { internal: true }],
195
195
  ["JSHandle.evaluateExpression", { title: "Evaluate", snapshot: true }],
196
196
  ["ElementHandle.evaluateExpression", { title: "Evaluate", snapshot: true }],
197
197
  ["JSHandle.evaluateExpressionHandle", { title: "Evaluate", snapshot: true }],
198
198
  ["ElementHandle.evaluateExpressionHandle", { title: "Evaluate", snapshot: true }],
199
- ["JSHandle.getPropertyList", { internal: true }],
200
- ["ElementHandle.getPropertyList", { internal: true }],
201
- ["JSHandle.getProperty", { internal: true }],
202
- ["ElementHandle.getProperty", { internal: true }],
203
- ["JSHandle.jsonValue", { internal: true }],
204
- ["ElementHandle.jsonValue", { internal: true }],
199
+ ["JSHandle.getPropertyList", { title: "Get property list", group: "getter" }],
200
+ ["ElementHandle.getPropertyList", { title: "Get property list", group: "getter" }],
201
+ ["JSHandle.getProperty", { title: "Get JS property", group: "getter" }],
202
+ ["ElementHandle.getProperty", { title: "Get JS property", group: "getter" }],
203
+ ["JSHandle.jsonValue", { title: "Get JSON value", group: "getter" }],
204
+ ["ElementHandle.jsonValue", { title: "Get JSON value", group: "getter" }],
205
205
  ["ElementHandle.evalOnSelector", { title: "Evaluate", snapshot: true }],
206
206
  ["ElementHandle.evalOnSelectorAll", { title: "Evaluate", snapshot: true }],
207
207
  ["ElementHandle.boundingBox", { title: "Get bounding box", snapshot: true }],
208
208
  ["ElementHandle.check", { title: "Check", slowMo: true, snapshot: true, pausesBeforeInput: true }],
209
209
  ["ElementHandle.click", { title: "Click", slowMo: true, snapshot: true, pausesBeforeInput: true }],
210
- ["ElementHandle.contentFrame", { internal: true, snapshot: true }],
210
+ ["ElementHandle.contentFrame", { title: "Get content frame", snapshot: true, group: "getter" }],
211
211
  ["ElementHandle.dblclick", { title: "Double click", slowMo: true, snapshot: true, pausesBeforeInput: true }],
212
212
  ["ElementHandle.dispatchEvent", { title: "Dispatch event", slowMo: true, snapshot: true }],
213
213
  ["ElementHandle.fill", { title: 'Fill "{value}"', slowMo: true, snapshot: true, pausesBeforeInput: true }],
214
214
  ["ElementHandle.focus", { title: "Focus", slowMo: true, snapshot: true }],
215
- ["ElementHandle.getAttribute", { internal: true }],
215
+ ["ElementHandle.getAttribute", { title: "Get attribute", group: "getter" }],
216
216
  ["ElementHandle.hover", { title: "Hover", slowMo: true, snapshot: true, pausesBeforeInput: true }],
217
- ["ElementHandle.innerHTML", { title: "Get HTML", snapshot: true }],
218
- ["ElementHandle.innerText", { title: "Get inner text", snapshot: true }],
219
- ["ElementHandle.inputValue", { title: "Get input value", snapshot: true }],
220
- ["ElementHandle.isChecked", { title: "Is checked", snapshot: true }],
221
- ["ElementHandle.isDisabled", { title: "Is disabled", snapshot: true }],
222
- ["ElementHandle.isEditable", { title: "Is editable", snapshot: true }],
223
- ["ElementHandle.isEnabled", { title: "Is enabled", snapshot: true }],
224
- ["ElementHandle.isHidden", { title: "Is hidden", snapshot: true }],
225
- ["ElementHandle.isVisible", { title: "Is visible", snapshot: true }],
226
- ["ElementHandle.ownerFrame", { title: "Get owner frame" }],
217
+ ["ElementHandle.innerHTML", { title: "Get HTML", snapshot: true, group: "getter" }],
218
+ ["ElementHandle.innerText", { title: "Get inner text", snapshot: true, group: "getter" }],
219
+ ["ElementHandle.inputValue", { title: "Get input value", snapshot: true, group: "getter" }],
220
+ ["ElementHandle.isChecked", { title: "Is checked", snapshot: true, group: "getter" }],
221
+ ["ElementHandle.isDisabled", { title: "Is disabled", snapshot: true, group: "getter" }],
222
+ ["ElementHandle.isEditable", { title: "Is editable", snapshot: true, group: "getter" }],
223
+ ["ElementHandle.isEnabled", { title: "Is enabled", snapshot: true, group: "getter" }],
224
+ ["ElementHandle.isHidden", { title: "Is hidden", snapshot: true, group: "getter" }],
225
+ ["ElementHandle.isVisible", { title: "Is visible", snapshot: true, group: "getter" }],
226
+ ["ElementHandle.ownerFrame", { title: "Get owner frame", group: "getter" }],
227
227
  ["ElementHandle.press", { title: 'Press "{key}"', slowMo: true, snapshot: true, pausesBeforeInput: true }],
228
228
  ["ElementHandle.querySelector", { title: "Query selector", snapshot: true }],
229
229
  ["ElementHandle.querySelectorAll", { title: "Query selector all", snapshot: true }],
@@ -233,7 +233,7 @@ const methodMetainfo = /* @__PURE__ */ new Map([
233
233
  ["ElementHandle.selectText", { title: "Select text", slowMo: true, snapshot: true }],
234
234
  ["ElementHandle.setInputFiles", { title: "Set input files", slowMo: true, snapshot: true, pausesBeforeInput: true }],
235
235
  ["ElementHandle.tap", { title: "Tap", slowMo: true, snapshot: true, pausesBeforeInput: true }],
236
- ["ElementHandle.textContent", { title: "Get text content", snapshot: true }],
236
+ ["ElementHandle.textContent", { title: "Get text content", snapshot: true, group: "getter" }],
237
237
  ["ElementHandle.type", { title: "Type", slowMo: true, snapshot: true, pausesBeforeInput: true }],
238
238
  ["ElementHandle.uncheck", { title: "Uncheck", slowMo: true, snapshot: true, pausesBeforeInput: true }],
239
239
  ["ElementHandle.waitForElementState", { title: "Wait for state", snapshot: true }],
@@ -241,16 +241,16 @@ const methodMetainfo = /* @__PURE__ */ new Map([
241
241
  ["Request.response", { internal: true }],
242
242
  ["Request.rawRequestHeaders", { internal: true }],
243
243
  ["Route.redirectNavigationRequest", { internal: true }],
244
- ["Route.abort", {}],
245
- ["Route.continue", { internal: true }],
246
- ["Route.fulfill", { internal: true }],
247
- ["WebSocketRoute.connect", { internal: true }],
244
+ ["Route.abort", { title: "Abort request", group: "route" }],
245
+ ["Route.continue", { title: "Continue request", group: "route" }],
246
+ ["Route.fulfill", { title: "Fulfill request", group: "route" }],
247
+ ["WebSocketRoute.connect", { title: "Connect WebSocket to server", group: "route" }],
248
248
  ["WebSocketRoute.ensureOpened", { internal: true }],
249
- ["WebSocketRoute.sendToPage", { internal: true }],
250
- ["WebSocketRoute.sendToServer", { internal: true }],
249
+ ["WebSocketRoute.sendToPage", { title: "Send WebSocket message", group: "route" }],
250
+ ["WebSocketRoute.sendToServer", { title: "Send WebSocket message", group: "route" }],
251
251
  ["WebSocketRoute.closePage", { internal: true }],
252
252
  ["WebSocketRoute.closeServer", { internal: true }],
253
- ["Response.body", { internal: true }],
253
+ ["Response.body", { title: "Get response body", group: "getter" }],
254
254
  ["Response.securityDetails", { internal: true }],
255
255
  ["Response.serverAddr", { internal: true }],
256
256
  ["Response.rawResponseHeaders", { internal: true }],
@@ -259,12 +259,12 @@ const methodMetainfo = /* @__PURE__ */ new Map([
259
259
  ["BindingCall.resolve", { internal: true }],
260
260
  ["Dialog.accept", { title: "Accept dialog" }],
261
261
  ["Dialog.dismiss", { title: "Dismiss dialog" }],
262
- ["Tracing.tracingStart", { internal: true }],
263
- ["Tracing.tracingStartChunk", { internal: true }],
262
+ ["Tracing.tracingStart", { title: "Start tracing", group: "configuration" }],
263
+ ["Tracing.tracingStartChunk", { title: "Start tracing", group: "configuration" }],
264
264
  ["Tracing.tracingGroup", { title: 'Trace "{name}"' }],
265
265
  ["Tracing.tracingGroupEnd", { title: "Group end" }],
266
- ["Tracing.tracingStopChunk", { internal: true }],
267
- ["Tracing.tracingStop", { internal: true }],
266
+ ["Tracing.tracingStopChunk", { title: "Stop tracing", group: "configuration" }],
267
+ ["Tracing.tracingStop", { title: "Stop tracing", group: "configuration" }],
268
268
  ["Artifact.pathAfterFinished", { internal: true }],
269
269
  ["Artifact.saveAs", { internal: true }],
270
270
  ["Artifact.saveAsStream", { internal: true }],
@@ -276,8 +276,8 @@ const methodMetainfo = /* @__PURE__ */ new Map([
276
276
  ["Stream.close", { internal: true }],
277
277
  ["WritableStream.write", { internal: true }],
278
278
  ["WritableStream.close", { internal: true }],
279
- ["CDPSession.send", { internal: true }],
280
- ["CDPSession.detach", { internal: true }],
279
+ ["CDPSession.send", { title: "Send CDP command", group: "configuration" }],
280
+ ["CDPSession.detach", { title: "Detach CDP session", group: "configuration" }],
281
281
  ["Electron.launch", { title: "Launch electron" }],
282
282
  ["ElectronApplication.browserWindow", { internal: true }],
283
283
  ["ElectronApplication.evaluateExpression", { title: "Evaluate" }],
@@ -286,7 +286,7 @@ const methodMetainfo = /* @__PURE__ */ new Map([
286
286
  ["Android.devices", { internal: true }],
287
287
  ["AndroidSocket.write", { internal: true }],
288
288
  ["AndroidSocket.close", { internal: true }],
289
- ["AndroidDevice.wait", {}],
289
+ ["AndroidDevice.wait", { title: "Wait" }],
290
290
  ["AndroidDevice.fill", { title: 'Fill "{text}"' }],
291
291
  ["AndroidDevice.tap", { title: "Tap" }],
292
292
  ["AndroidDevice.drag", { title: "Drag" }],
@@ -305,10 +305,10 @@ const methodMetainfo = /* @__PURE__ */ new Map([
305
305
  ["AndroidDevice.inputDrag", { title: "Drag" }],
306
306
  ["AndroidDevice.launchBrowser", { title: "Launch browser" }],
307
307
  ["AndroidDevice.open", { title: "Open app" }],
308
- ["AndroidDevice.shell", { internal: true }],
308
+ ["AndroidDevice.shell", { title: "Execute shell command", group: "configuration" }],
309
309
  ["AndroidDevice.installApk", { title: "Install apk" }],
310
310
  ["AndroidDevice.push", { title: "Push" }],
311
- ["AndroidDevice.connectToWebView", { internal: true }],
311
+ ["AndroidDevice.connectToWebView", { title: "Connect to Web View" }],
312
312
  ["AndroidDevice.close", { internal: true }],
313
313
  ["JsonPipe.send", { internal: true }],
314
314
  ["JsonPipe.close", { internal: true }]