chrome-devtools-mcp 0.20.0 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -228,10 +228,18 @@ Configure the following fields and press `CTRL+S` to save the configuration:
228
228
  Follow the MCP install <a href="https://code.visualstudio.com/docs/copilot/chat/mcp-servers#_add-an-mcp-server">guide</a>,
229
229
  with the standard config from above. You can also install the Chrome DevTools MCP server using the VS Code CLI:
230
230
 
231
+ For macOS and Linux:
232
+
231
233
  ```bash
232
234
  code --add-mcp '{"name":"io.github.ChromeDevTools/chrome-devtools-mcp","command":"npx","args":["-y","chrome-devtools-mcp"],"env":{}}'
233
235
  ```
234
236
 
237
+ For Windows (PowerShell):
238
+
239
+ ```powershell
240
+ code --add-mcp '{"""name""":"""io.github.ChromeDevTools/chrome-devtools-mcp""","""command""":"""npx""","""args""":["""-y""","""chrome-devtools-mcp"""]}'
241
+ ```
242
+
235
243
  </details>
236
244
 
237
245
  <details>
@@ -6,52 +6,6 @@
6
6
  import { PuppeteerDevToolsConnection } from './DevToolsConnectionAdapter.js';
7
7
  import { Mutex } from './Mutex.js';
8
8
  import { DevTools } from './third_party/index.js';
9
- export function extractUrlLikeFromDevToolsTitle(title) {
10
- const match = title.match(new RegExp(`DevTools - (.*)`));
11
- return match?.[1] ?? undefined;
12
- }
13
- export function urlsEqual(url1, url2) {
14
- const normalizedUrl1 = normalizeUrl(url1);
15
- const normalizedUrl2 = normalizeUrl(url2);
16
- return normalizedUrl1 === normalizedUrl2;
17
- }
18
- /**
19
- * For the sake of the MCP server, when we determine if two URLs are equal we
20
- * remove some parts:
21
- *
22
- * 1. We do not care about the protocol.
23
- * 2. We do not care about trailing slashes.
24
- * 3. We do not care about "www".
25
- * 4. We ignore the hash parts.
26
- *
27
- * For example, if the user types "record a trace on foo.com", we would want to
28
- * match a tab in the connected Chrome instance that is showing "www.foo.com/"
29
- */
30
- function normalizeUrl(url) {
31
- let result = url.trim();
32
- // Remove protocols
33
- if (result.startsWith('https://')) {
34
- result = result.slice(8);
35
- }
36
- else if (result.startsWith('http://')) {
37
- result = result.slice(7);
38
- }
39
- // Remove 'www.'. This ensures that we find the right URL regardless of if the user adds `www` or not.
40
- if (result.startsWith('www.')) {
41
- result = result.slice(4);
42
- }
43
- // We use target URLs to locate DevTools but those often do
44
- // no include hash.
45
- const hashIdx = result.lastIndexOf('#');
46
- if (hashIdx !== -1) {
47
- result = result.slice(0, hashIdx);
48
- }
49
- // Remove trailing slash
50
- if (result.endsWith('/')) {
51
- result = result.slice(0, -1);
52
- }
53
- return result;
54
- }
55
9
  /**
56
10
  * A mock implementation of an issues manager that only implements the methods
57
11
  * that are actually used by the IssuesAggregator
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import fs from 'node:fs/promises';
7
7
  import path from 'node:path';
8
- import { extractUrlLikeFromDevToolsTitle, UniverseManager, urlsEqual, } from './DevtoolsUtils.js';
8
+ import { UniverseManager } from './DevtoolsUtils.js';
9
9
  import { McpPage } from './McpPage.js';
10
10
  import { NetworkCollector, ConsoleCollector } from './PageCollector.js';
11
11
  import { Locator } from './third_party/index.js';
@@ -467,38 +467,18 @@ export class McpContext {
467
467
  async detectOpenDevToolsWindows() {
468
468
  this.logger('Detecting open DevTools windows');
469
469
  const { pages } = await this.#getAllPages();
470
- // Clear all devToolsPage references before re-detecting.
471
- for (const mcpPage of this.#mcpPages.values()) {
472
- mcpPage.devToolsPage = undefined;
473
- }
474
- for (const devToolsPage of pages) {
475
- if (devToolsPage.url().startsWith('devtools://')) {
476
- try {
477
- this.logger('Calling getTargetInfo for ' + devToolsPage.url());
478
- const data = await devToolsPage
479
- // @ts-expect-error no types for _client().
480
- ._client()
481
- .send('Target.getTargetInfo');
482
- const devtoolsPageTitle = data.targetInfo.title;
483
- const urlLike = extractUrlLikeFromDevToolsTitle(devtoolsPageTitle);
484
- if (!urlLike) {
485
- continue;
486
- }
487
- // TODO: lookup without a loop.
488
- for (const page of this.#pages) {
489
- if (urlsEqual(page.url(), urlLike)) {
490
- const mcpPage = this.#mcpPages.get(page);
491
- if (mcpPage) {
492
- mcpPage.devToolsPage = devToolsPage;
493
- }
494
- }
495
- }
496
- }
497
- catch (error) {
498
- this.logger('Issue occurred while trying to find DevTools', error);
499
- }
470
+ await Promise.all(pages.map(async (page) => {
471
+ const mcpPage = this.#mcpPages.get(page);
472
+ if (!mcpPage) {
473
+ return;
500
474
  }
501
- }
475
+ if (await page.hasDevTools()) {
476
+ mcpPage.devToolsPage = await page.openDevTools();
477
+ }
478
+ else {
479
+ mcpPage.devToolsPage = undefined;
480
+ }
481
+ }));
502
482
  }
503
483
  getExtensionServiceWorkers() {
504
484
  return this.#extensionServiceWorkers;
@@ -768,7 +768,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
768
768
 
769
769
  Name: puppeteer-core
770
770
  URL: https://github.com/puppeteer/puppeteer/tree/main/packages/puppeteer-core
771
- Version: 24.39.0
771
+ Version: 24.39.1
772
772
  License: Apache-2.0
773
773
 
774
774
  -------------------- DEPENDENCY DIVIDER --------------------
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "@modelcontextprotocol/sdk": "1.27.1",
3
- "chrome-devtools-frontend": "1.0.1595090",
3
+ "chrome-devtools-frontend": "1.0.1596260",
4
4
  "core-js": "3.48.0",
5
5
  "debug": "4.4.3",
6
6
  "lighthouse": "13.0.3",
7
7
  "yargs": "18.0.0",
8
- "puppeteer-core": "24.39.0"
8
+ "puppeteer-core": "24.39.1"
9
9
  }
@@ -3126,7 +3126,6 @@ var ExperimentName;
3126
3126
  ExperimentName["AUTHORED_DEPLOYED_GROUPING"] = "authored-deployed-grouping";
3127
3127
  ExperimentName["JUST_MY_CODE"] = "just-my-code";
3128
3128
  ExperimentName["USE_SOURCE_MAP_SCOPES"] = "use-source-map-scopes";
3129
- ExperimentName["TIMELINE_SHOW_POST_MESSAGE_EVENTS"] = "timeline-show-postmessage-events";
3130
3129
  ExperimentName["TIMELINE_DEBUG_MODE"] = "timeline-debug-mode";
3131
3130
  ExperimentName["DURABLE_MESSAGES"] = "durable-messages";
3132
3131
  ExperimentName["JPEG_XL"] = "jpeg-xl";
@@ -41893,7 +41893,7 @@ function mergeUint8Arrays(items) {
41893
41893
  * Copyright 2025 Google Inc.
41894
41894
  * SPDX-License-Identifier: Apache-2.0
41895
41895
  */
41896
- const packageVersion = '24.39.0';
41896
+ const packageVersion = '24.39.1';
41897
41897
 
41898
41898
  /**
41899
41899
  * @license
@@ -56846,9 +56846,9 @@ class Puppeteer {
56846
56846
  * SPDX-License-Identifier: Apache-2.0
56847
56847
  */
56848
56848
  const PUPPETEER_REVISIONS = Object.freeze({
56849
- chrome: '146.0.7680.66',
56850
- 'chrome-headless-shell': '146.0.7680.66',
56851
- firefox: 'stable_148.0',
56849
+ chrome: '146.0.7680.76',
56850
+ 'chrome-headless-shell': '146.0.7680.76',
56851
+ firefox: 'stable_148.0.2',
56852
56852
  });
56853
56853
 
56854
56854
  /**
@@ -91604,7 +91604,6 @@ var ExperimentName;
91604
91604
  ExperimentName["AUTHORED_DEPLOYED_GROUPING"] = "authored-deployed-grouping";
91605
91605
  ExperimentName["JUST_MY_CODE"] = "just-my-code";
91606
91606
  ExperimentName["USE_SOURCE_MAP_SCOPES"] = "use-source-map-scopes";
91607
- ExperimentName["TIMELINE_SHOW_POST_MESSAGE_EVENTS"] = "timeline-show-postmessage-events";
91608
91607
  ExperimentName["TIMELINE_DEBUG_MODE"] = "timeline-debug-mode";
91609
91608
  ExperimentName["DURABLE_MESSAGES"] = "durable-messages";
91610
91609
  ExperimentName["JPEG_XL"] = "jpeg-xl";
@@ -102393,13 +102392,12 @@ function registerCommands(inspectorBackend) {
102393
102392
  inspectorBackend.registerEnum("Audits.PropertyRuleIssueReason", { InvalidSyntax: "InvalidSyntax", InvalidInitialValue: "InvalidInitialValue", InvalidInherits: "InvalidInherits", InvalidName: "InvalidName" });
102394
102393
  inspectorBackend.registerEnum("Audits.UserReidentificationIssueType", { BlockedFrameNavigation: "BlockedFrameNavigation", BlockedSubresource: "BlockedSubresource", NoisedCanvasReadback: "NoisedCanvasReadback" });
102395
102394
  inspectorBackend.registerEnum("Audits.PermissionElementIssueType", { InvalidType: "InvalidType", FencedFrameDisallowed: "FencedFrameDisallowed", CspFrameAncestorsMissing: "CspFrameAncestorsMissing", PermissionsPolicyBlocked: "PermissionsPolicyBlocked", PaddingRightUnsupported: "PaddingRightUnsupported", PaddingBottomUnsupported: "PaddingBottomUnsupported", InsetBoxShadowUnsupported: "InsetBoxShadowUnsupported", RequestInProgress: "RequestInProgress", UntrustedEvent: "UntrustedEvent", RegistrationFailed: "RegistrationFailed", TypeNotSupported: "TypeNotSupported", InvalidTypeActivation: "InvalidTypeActivation", SecurityChecksFailed: "SecurityChecksFailed", ActivationDisabled: "ActivationDisabled", GeolocationDeprecated: "GeolocationDeprecated", InvalidDisplayStyle: "InvalidDisplayStyle", NonOpaqueColor: "NonOpaqueColor", LowContrast: "LowContrast", FontSizeTooSmall: "FontSizeTooSmall", FontSizeTooLarge: "FontSizeTooLarge", InvalidSizeValue: "InvalidSizeValue" });
102396
- inspectorBackend.registerEnum("Audits.InspectorIssueCode", { CookieIssue: "CookieIssue", MixedContentIssue: "MixedContentIssue", BlockedByResponseIssue: "BlockedByResponseIssue", HeavyAdIssue: "HeavyAdIssue", ContentSecurityPolicyIssue: "ContentSecurityPolicyIssue", SharedArrayBufferIssue: "SharedArrayBufferIssue", LowTextContrastIssue: "LowTextContrastIssue", CorsIssue: "CorsIssue", AttributionReportingIssue: "AttributionReportingIssue", QuirksModeIssue: "QuirksModeIssue", PartitioningBlobURLIssue: "PartitioningBlobURLIssue", NavigatorUserAgentIssue: "NavigatorUserAgentIssue", GenericIssue: "GenericIssue", DeprecationIssue: "DeprecationIssue", ClientHintIssue: "ClientHintIssue", FederatedAuthRequestIssue: "FederatedAuthRequestIssue", BounceTrackingIssue: "BounceTrackingIssue", CookieDeprecationMetadataIssue: "CookieDeprecationMetadataIssue", StylesheetLoadingIssue: "StylesheetLoadingIssue", FederatedAuthUserInfoRequestIssue: "FederatedAuthUserInfoRequestIssue", PropertyRuleIssue: "PropertyRuleIssue", SharedDictionaryIssue: "SharedDictionaryIssue", ElementAccessibilityIssue: "ElementAccessibilityIssue", SRIMessageSignatureIssue: "SRIMessageSignatureIssue", UnencodedDigestIssue: "UnencodedDigestIssue", ConnectionAllowlistIssue: "ConnectionAllowlistIssue", UserReidentificationIssue: "UserReidentificationIssue", PermissionElementIssue: "PermissionElementIssue", PerformanceIssue: "PerformanceIssue", SelectivePermissionsInterventionIssue: "SelectivePermissionsInterventionIssue" });
102395
+ inspectorBackend.registerEnum("Audits.InspectorIssueCode", { CookieIssue: "CookieIssue", MixedContentIssue: "MixedContentIssue", BlockedByResponseIssue: "BlockedByResponseIssue", HeavyAdIssue: "HeavyAdIssue", ContentSecurityPolicyIssue: "ContentSecurityPolicyIssue", SharedArrayBufferIssue: "SharedArrayBufferIssue", CorsIssue: "CorsIssue", AttributionReportingIssue: "AttributionReportingIssue", QuirksModeIssue: "QuirksModeIssue", PartitioningBlobURLIssue: "PartitioningBlobURLIssue", NavigatorUserAgentIssue: "NavigatorUserAgentIssue", GenericIssue: "GenericIssue", DeprecationIssue: "DeprecationIssue", ClientHintIssue: "ClientHintIssue", FederatedAuthRequestIssue: "FederatedAuthRequestIssue", BounceTrackingIssue: "BounceTrackingIssue", CookieDeprecationMetadataIssue: "CookieDeprecationMetadataIssue", StylesheetLoadingIssue: "StylesheetLoadingIssue", FederatedAuthUserInfoRequestIssue: "FederatedAuthUserInfoRequestIssue", PropertyRuleIssue: "PropertyRuleIssue", SharedDictionaryIssue: "SharedDictionaryIssue", ElementAccessibilityIssue: "ElementAccessibilityIssue", SRIMessageSignatureIssue: "SRIMessageSignatureIssue", UnencodedDigestIssue: "UnencodedDigestIssue", ConnectionAllowlistIssue: "ConnectionAllowlistIssue", UserReidentificationIssue: "UserReidentificationIssue", PermissionElementIssue: "PermissionElementIssue", PerformanceIssue: "PerformanceIssue", SelectivePermissionsInterventionIssue: "SelectivePermissionsInterventionIssue" });
102397
102396
  inspectorBackend.registerEvent("Audits.issueAdded", ["issue"]);
102398
102397
  inspectorBackend.registerEnum("Audits.GetEncodedResponseRequestEncoding", { Webp: "webp", Jpeg: "jpeg", Png: "png" });
102399
102398
  inspectorBackend.registerCommand("Audits.getEncodedResponse", [{ "name": "requestId", "type": "string", "optional": false, "description": "Identifier of the network request to get content for.", "typeRef": "Network.RequestId" }, { "name": "encoding", "type": "string", "optional": false, "description": "The encoding to use.", "typeRef": "Audits.GetEncodedResponseRequestEncoding" }, { "name": "quality", "type": "number", "optional": true, "description": "The quality of the encoding (0-1). (defaults to 1)", "typeRef": null }, { "name": "sizeOnly", "type": "boolean", "optional": true, "description": "Whether to only return the size information (defaults to false).", "typeRef": null }], ["body", "originalSize", "encodedSize"], "Returns the response body and size if it were re-encoded with the specified settings. Only applies to images.");
102400
102399
  inspectorBackend.registerCommand("Audits.disable", [], [], "Disables issues domain, prevents further issues from being reported to the client.");
102401
102400
  inspectorBackend.registerCommand("Audits.enable", [], [], "Enables issues domain, sends the issues collected so far to the client by means of the `issueAdded` event.");
102402
- inspectorBackend.registerCommand("Audits.checkContrast", [{ "name": "reportAAA", "type": "boolean", "optional": true, "description": "Whether to report WCAG AAA level issues. Default is false.", "typeRef": null }], [], "Runs the contrast check for the target page. Found issues are reported using Audits.issueAdded event.");
102403
102401
  inspectorBackend.registerCommand("Audits.checkFormsIssues", [], ["formIssues"], "Runs the form issues check for the target page. Found issues are reported using Audits.issueAdded event.");
102404
102402
  inspectorBackend.registerType("Audits.AffectedCookie", [{ "name": "name", "type": "string", "optional": false, "description": "The following three properties uniquely identify a cookie", "typeRef": null }, { "name": "path", "type": "string", "optional": false, "description": "", "typeRef": null }, { "name": "domain", "type": "string", "optional": false, "description": "", "typeRef": null }]);
102405
102403
  inspectorBackend.registerType("Audits.AffectedRequest", [{ "name": "requestId", "type": "string", "optional": true, "description": "The unique request id.", "typeRef": "Network.RequestId" }, { "name": "url", "type": "string", "optional": false, "description": "", "typeRef": null }]);
@@ -102413,7 +102411,6 @@ function registerCommands(inspectorBackend) {
102413
102411
  inspectorBackend.registerType("Audits.SourceCodeLocation", [{ "name": "scriptId", "type": "string", "optional": true, "description": "", "typeRef": "Runtime.ScriptId" }, { "name": "url", "type": "string", "optional": false, "description": "", "typeRef": null }, { "name": "lineNumber", "type": "number", "optional": false, "description": "", "typeRef": null }, { "name": "columnNumber", "type": "number", "optional": false, "description": "", "typeRef": null }]);
102414
102412
  inspectorBackend.registerType("Audits.ContentSecurityPolicyIssueDetails", [{ "name": "blockedURL", "type": "string", "optional": true, "description": "The url not included in allowed sources.", "typeRef": null }, { "name": "violatedDirective", "type": "string", "optional": false, "description": "Specific directive that is violated, causing the CSP issue.", "typeRef": null }, { "name": "isReportOnly", "type": "boolean", "optional": false, "description": "", "typeRef": null }, { "name": "contentSecurityPolicyViolationType", "type": "string", "optional": false, "description": "", "typeRef": "Audits.ContentSecurityPolicyViolationType" }, { "name": "frameAncestor", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AffectedFrame" }, { "name": "sourceCodeLocation", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SourceCodeLocation" }, { "name": "violatingNodeId", "type": "number", "optional": true, "description": "", "typeRef": "DOM.BackendNodeId" }]);
102415
102413
  inspectorBackend.registerType("Audits.SharedArrayBufferIssueDetails", [{ "name": "sourceCodeLocation", "type": "object", "optional": false, "description": "", "typeRef": "Audits.SourceCodeLocation" }, { "name": "isWarning", "type": "boolean", "optional": false, "description": "", "typeRef": null }, { "name": "type", "type": "string", "optional": false, "description": "", "typeRef": "Audits.SharedArrayBufferIssueType" }]);
102416
- inspectorBackend.registerType("Audits.LowTextContrastIssueDetails", [{ "name": "violatingNodeId", "type": "number", "optional": false, "description": "", "typeRef": "DOM.BackendNodeId" }, { "name": "violatingNodeSelector", "type": "string", "optional": false, "description": "", "typeRef": null }, { "name": "contrastRatio", "type": "number", "optional": false, "description": "", "typeRef": null }, { "name": "thresholdAA", "type": "number", "optional": false, "description": "", "typeRef": null }, { "name": "thresholdAAA", "type": "number", "optional": false, "description": "", "typeRef": null }, { "name": "fontSize", "type": "string", "optional": false, "description": "", "typeRef": null }, { "name": "fontWeight", "type": "string", "optional": false, "description": "", "typeRef": null }]);
102417
102414
  inspectorBackend.registerType("Audits.CorsIssueDetails", [{ "name": "corsErrorStatus", "type": "object", "optional": false, "description": "", "typeRef": "Network.CorsErrorStatus" }, { "name": "isWarning", "type": "boolean", "optional": false, "description": "", "typeRef": null }, { "name": "request", "type": "object", "optional": false, "description": "", "typeRef": "Audits.AffectedRequest" }, { "name": "location", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SourceCodeLocation" }, { "name": "initiatorOrigin", "type": "string", "optional": true, "description": "", "typeRef": null }, { "name": "resourceIPAddressSpace", "type": "string", "optional": true, "description": "", "typeRef": "Network.IPAddressSpace" }, { "name": "clientSecurityState", "type": "object", "optional": true, "description": "", "typeRef": "Network.ClientSecurityState" }]);
102418
102415
  inspectorBackend.registerType("Audits.AttributionReportingIssueDetails", [{ "name": "violationType", "type": "string", "optional": false, "description": "", "typeRef": "Audits.AttributionReportingIssueType" }, { "name": "request", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AffectedRequest" }, { "name": "violatingNodeId", "type": "number", "optional": true, "description": "", "typeRef": "DOM.BackendNodeId" }, { "name": "invalidParameter", "type": "string", "optional": true, "description": "", "typeRef": null }]);
102419
102416
  inspectorBackend.registerType("Audits.QuirksModeIssueDetails", [{ "name": "isLimitedQuirksMode", "type": "boolean", "optional": false, "description": "If false, it means the document's mode is \\\"quirks\\\" instead of \\\"limited-quirks\\\".", "typeRef": null }, { "name": "documentNodeId", "type": "number", "optional": false, "description": "", "typeRef": "DOM.BackendNodeId" }, { "name": "url", "type": "string", "optional": false, "description": "", "typeRef": null }, { "name": "frameId", "type": "string", "optional": false, "description": "", "typeRef": "Page.FrameId" }, { "name": "loaderId", "type": "string", "optional": false, "description": "", "typeRef": "Network.LoaderId" }]);
@@ -102439,7 +102436,7 @@ function registerCommands(inspectorBackend) {
102439
102436
  inspectorBackend.registerType("Audits.AdScriptIdentifier", [{ "name": "scriptId", "type": "string", "optional": false, "description": "The script's v8 identifier.", "typeRef": "Runtime.ScriptId" }, { "name": "debuggerId", "type": "string", "optional": false, "description": "v8's debugging id for the v8::Context.", "typeRef": "Runtime.UniqueDebuggerId" }, { "name": "name", "type": "string", "optional": false, "description": "The script's url (or generated name based on id if inline script).", "typeRef": null }]);
102440
102437
  inspectorBackend.registerType("Audits.AdAncestry", [{ "name": "adAncestryChain", "type": "array", "optional": false, "description": "The ad-script in the stack when the offending script was loaded. This is recursive down to the root script that was tagged due to the filterlist rule.", "typeRef": "Audits.AdScriptIdentifier" }, { "name": "rootScriptFilterlistRule", "type": "string", "optional": true, "description": "The filterlist rule that caused the root (last) script in `adAncestry` to be ad-tagged.", "typeRef": null }]);
102441
102438
  inspectorBackend.registerType("Audits.SelectivePermissionsInterventionIssueDetails", [{ "name": "apiName", "type": "string", "optional": false, "description": "Which API was intervened on.", "typeRef": null }, { "name": "adAncestry", "type": "object", "optional": false, "description": "Why the ad script using the API is considered an ad.", "typeRef": "Audits.AdAncestry" }, { "name": "stackTrace", "type": "object", "optional": true, "description": "The stack trace at the time of the intervention.", "typeRef": "Runtime.StackTrace" }]);
102442
- inspectorBackend.registerType("Audits.InspectorIssueDetails", [{ "name": "cookieIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieIssueDetails" }, { "name": "mixedContentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.MixedContentIssueDetails" }, { "name": "blockedByResponseIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BlockedByResponseIssueDetails" }, { "name": "heavyAdIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.HeavyAdIssueDetails" }, { "name": "contentSecurityPolicyIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ContentSecurityPolicyIssueDetails" }, { "name": "sharedArrayBufferIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedArrayBufferIssueDetails" }, { "name": "lowTextContrastIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.LowTextContrastIssueDetails" }, { "name": "corsIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CorsIssueDetails" }, { "name": "attributionReportingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AttributionReportingIssueDetails" }, { "name": "quirksModeIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.QuirksModeIssueDetails" }, { "name": "partitioningBlobURLIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PartitioningBlobURLIssueDetails" }, { "name": "navigatorUserAgentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.NavigatorUserAgentIssueDetails" }, { "name": "genericIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.GenericIssueDetails" }, { "name": "deprecationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.DeprecationIssueDetails" }, { "name": "clientHintIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ClientHintIssueDetails" }, { "name": "federatedAuthRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthRequestIssueDetails" }, { "name": "bounceTrackingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BounceTrackingIssueDetails" }, { "name": "cookieDeprecationMetadataIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieDeprecationMetadataIssueDetails" }, { "name": "stylesheetLoadingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.StylesheetLoadingIssueDetails" }, { "name": "propertyRuleIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PropertyRuleIssueDetails" }, { "name": "federatedAuthUserInfoRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthUserInfoRequestIssueDetails" }, { "name": "sharedDictionaryIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedDictionaryIssueDetails" }, { "name": "elementAccessibilityIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ElementAccessibilityIssueDetails" }, { "name": "sriMessageSignatureIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SRIMessageSignatureIssueDetails" }, { "name": "unencodedDigestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UnencodedDigestIssueDetails" }, { "name": "connectionAllowlistIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ConnectionAllowlistIssueDetails" }, { "name": "userReidentificationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UserReidentificationIssueDetails" }, { "name": "permissionElementIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PermissionElementIssueDetails" }, { "name": "performanceIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PerformanceIssueDetails" }, { "name": "selectivePermissionsInterventionIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SelectivePermissionsInterventionIssueDetails" }]);
102439
+ inspectorBackend.registerType("Audits.InspectorIssueDetails", [{ "name": "cookieIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieIssueDetails" }, { "name": "mixedContentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.MixedContentIssueDetails" }, { "name": "blockedByResponseIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BlockedByResponseIssueDetails" }, { "name": "heavyAdIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.HeavyAdIssueDetails" }, { "name": "contentSecurityPolicyIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ContentSecurityPolicyIssueDetails" }, { "name": "sharedArrayBufferIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedArrayBufferIssueDetails" }, { "name": "corsIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CorsIssueDetails" }, { "name": "attributionReportingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AttributionReportingIssueDetails" }, { "name": "quirksModeIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.QuirksModeIssueDetails" }, { "name": "partitioningBlobURLIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PartitioningBlobURLIssueDetails" }, { "name": "navigatorUserAgentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.NavigatorUserAgentIssueDetails" }, { "name": "genericIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.GenericIssueDetails" }, { "name": "deprecationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.DeprecationIssueDetails" }, { "name": "clientHintIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ClientHintIssueDetails" }, { "name": "federatedAuthRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthRequestIssueDetails" }, { "name": "bounceTrackingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BounceTrackingIssueDetails" }, { "name": "cookieDeprecationMetadataIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieDeprecationMetadataIssueDetails" }, { "name": "stylesheetLoadingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.StylesheetLoadingIssueDetails" }, { "name": "propertyRuleIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PropertyRuleIssueDetails" }, { "name": "federatedAuthUserInfoRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthUserInfoRequestIssueDetails" }, { "name": "sharedDictionaryIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedDictionaryIssueDetails" }, { "name": "elementAccessibilityIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ElementAccessibilityIssueDetails" }, { "name": "sriMessageSignatureIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SRIMessageSignatureIssueDetails" }, { "name": "unencodedDigestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UnencodedDigestIssueDetails" }, { "name": "connectionAllowlistIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ConnectionAllowlistIssueDetails" }, { "name": "userReidentificationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UserReidentificationIssueDetails" }, { "name": "permissionElementIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PermissionElementIssueDetails" }, { "name": "performanceIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PerformanceIssueDetails" }, { "name": "selectivePermissionsInterventionIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SelectivePermissionsInterventionIssueDetails" }]);
102443
102440
  inspectorBackend.registerType("Audits.InspectorIssue", [{ "name": "code", "type": "string", "optional": false, "description": "", "typeRef": "Audits.InspectorIssueCode" }, { "name": "details", "type": "object", "optional": false, "description": "", "typeRef": "Audits.InspectorIssueDetails" }, { "name": "issueId", "type": "string", "optional": true, "description": "A unique id for this issue. May be omitted if no other entity (e.g. exception, CDP message, etc.) is referencing this issue.", "typeRef": "Audits.IssueId" }]);
102444
102441
  inspectorBackend.registerEnum("Autofill.FillingStrategy", { AutocompleteAttribute: "autocompleteAttribute", AutofillInferred: "autofillInferred" });
102445
102442
  inspectorBackend.registerEvent("Autofill.addressFormFilled", ["filledFields", "addressUi"]);
@@ -103275,7 +103272,7 @@ function registerCommands(inspectorBackend) {
103275
103272
  inspectorBackend.registerEnum("Page.ClientNavigationDisposition", { CurrentTab: "currentTab", NewTab: "newTab", NewWindow: "newWindow", Download: "download" });
103276
103273
  inspectorBackend.registerEnum("Page.ReferrerPolicy", { NoReferrer: "noReferrer", NoReferrerWhenDowngrade: "noReferrerWhenDowngrade", Origin: "origin", OriginWhenCrossOrigin: "originWhenCrossOrigin", SameOrigin: "sameOrigin", StrictOrigin: "strictOrigin", StrictOriginWhenCrossOrigin: "strictOriginWhenCrossOrigin", UnsafeUrl: "unsafeUrl" });
103277
103274
  inspectorBackend.registerEnum("Page.NavigationType", { Navigation: "Navigation", BackForwardCacheRestore: "BackForwardCacheRestore" });
103278
- inspectorBackend.registerEnum("Page.BackForwardCacheNotRestoredReason", { NotPrimaryMainFrame: "NotPrimaryMainFrame", BackForwardCacheDisabled: "BackForwardCacheDisabled", RelatedActiveContentsExist: "RelatedActiveContentsExist", HTTPStatusNotOK: "HTTPStatusNotOK", SchemeNotHTTPOrHTTPS: "SchemeNotHTTPOrHTTPS", Loading: "Loading", WasGrantedMediaAccess: "WasGrantedMediaAccess", DisableForRenderFrameHostCalled: "DisableForRenderFrameHostCalled", DomainNotAllowed: "DomainNotAllowed", HTTPMethodNotGET: "HTTPMethodNotGET", SubframeIsNavigating: "SubframeIsNavigating", Timeout: "Timeout", CacheLimit: "CacheLimit", JavaScriptExecution: "JavaScriptExecution", RendererProcessKilled: "RendererProcessKilled", RendererProcessCrashed: "RendererProcessCrashed", SchedulerTrackedFeatureUsed: "SchedulerTrackedFeatureUsed", ConflictingBrowsingInstance: "ConflictingBrowsingInstance", CacheFlushed: "CacheFlushed", ServiceWorkerVersionActivation: "ServiceWorkerVersionActivation", SessionRestored: "SessionRestored", ServiceWorkerPostMessage: "ServiceWorkerPostMessage", EnteredBackForwardCacheBeforeServiceWorkerHostAdded: "EnteredBackForwardCacheBeforeServiceWorkerHostAdded", RenderFrameHostReused_SameSite: "RenderFrameHostReused_SameSite", RenderFrameHostReused_CrossSite: "RenderFrameHostReused_CrossSite", ServiceWorkerClaim: "ServiceWorkerClaim", IgnoreEventAndEvict: "IgnoreEventAndEvict", HaveInnerContents: "HaveInnerContents", TimeoutPuttingInCache: "TimeoutPuttingInCache", BackForwardCacheDisabledByLowMemory: "BackForwardCacheDisabledByLowMemory", BackForwardCacheDisabledByCommandLine: "BackForwardCacheDisabledByCommandLine", NetworkRequestDatAPIpeDrainedAsBytesConsumer: "NetworkRequestDatapipeDrainedAsBytesConsumer", NetworkRequestRedirected: "NetworkRequestRedirected", NetworkRequestTimeout: "NetworkRequestTimeout", NetworkExceedsBufferLimit: "NetworkExceedsBufferLimit", NavigationCancelledWhileRestoring: "NavigationCancelledWhileRestoring", NotMostRecentNavigationEntry: "NotMostRecentNavigationEntry", BackForwardCacheDisabledForPrerender: "BackForwardCacheDisabledForPrerender", UserAgentOverrideDiffers: "UserAgentOverrideDiffers", ForegroundCacheLimit: "ForegroundCacheLimit", BrowsingInstanceNotSwapped: "BrowsingInstanceNotSwapped", BackForwardCacheDisabledForDelegate: "BackForwardCacheDisabledForDelegate", UnloadHandlerExistsInMainFrame: "UnloadHandlerExistsInMainFrame", UnloadHandlerExistsInSubFrame: "UnloadHandlerExistsInSubFrame", ServiceWorkerUnregistration: "ServiceWorkerUnregistration", CacheControlNoStore: "CacheControlNoStore", CacheControlNoStoreCookieModified: "CacheControlNoStoreCookieModified", CacheControlNoStoreHTTPOnlyCookieModified: "CacheControlNoStoreHTTPOnlyCookieModified", NoResponseHead: "NoResponseHead", Unknown: "Unknown", ActivationNavigationsDisallowedForBug1234857: "ActivationNavigationsDisallowedForBug1234857", ErrorDocument: "ErrorDocument", FencedFramesEmbedder: "FencedFramesEmbedder", CookieDisabled: "CookieDisabled", HTTPAuthRequired: "HTTPAuthRequired", CookieFlushed: "CookieFlushed", BroadcastChannelOnMessage: "BroadcastChannelOnMessage", WebViewSettingsChanged: "WebViewSettingsChanged", WebViewJavaScriptObjectChanged: "WebViewJavaScriptObjectChanged", WebViewMessageListenerInjected: "WebViewMessageListenerInjected", WebViewSafeBrowsingAllowlistChanged: "WebViewSafeBrowsingAllowlistChanged", WebViewDocumentStartJavascriptChanged: "WebViewDocumentStartJavascriptChanged", WebSocket: "WebSocket", WebTransport: "WebTransport", WebRTC: "WebRTC", MainResourceHasCacheControlNoStore: "MainResourceHasCacheControlNoStore", MainResourceHasCacheControlNoCache: "MainResourceHasCacheControlNoCache", SubresourceHasCacheControlNoStore: "SubresourceHasCacheControlNoStore", SubresourceHasCacheControlNoCache: "SubresourceHasCacheControlNoCache", ContainsPlugins: "ContainsPlugins", DocumentLoaded: "DocumentLoaded", OutstandingNetworkRequestOthers: "OutstandingNetworkRequestOthers", RequestedMIDIPermission: "RequestedMIDIPermission", RequestedAudioCapturePermission: "RequestedAudioCapturePermission", RequestedVideoCapturePermission: "RequestedVideoCapturePermission", RequestedBackForwardCacheBlockedSensors: "RequestedBackForwardCacheBlockedSensors", RequestedBackgroundWorkPermission: "RequestedBackgroundWorkPermission", BroadcastChannel: "BroadcastChannel", WebXR: "WebXR", SharedWorker: "SharedWorker", SharedWorkerMessage: "SharedWorkerMessage", SharedWorkerWithNoActiveClient: "SharedWorkerWithNoActiveClient", WebLocks: "WebLocks", WebLocksContention: "WebLocksContention", WebHID: "WebHID", WebBluetooth: "WebBluetooth", WebShare: "WebShare", RequestedStorageAccessGrant: "RequestedStorageAccessGrant", WebNfc: "WebNfc", OutstandingNetworkRequestFetch: "OutstandingNetworkRequestFetch", OutstandingNetworkRequestXHR: "OutstandingNetworkRequestXHR", AppBanner: "AppBanner", Printing: "Printing", WebDatabase: "WebDatabase", PictureInPicture: "PictureInPicture", SpeechRecognizer: "SpeechRecognizer", IdleManager: "IdleManager", PaymentManager: "PaymentManager", SpeechSynthesis: "SpeechSynthesis", KeyboardLock: "KeyboardLock", WebOTPService: "WebOTPService", OutstandingNetworkRequestDirectSocket: "OutstandingNetworkRequestDirectSocket", InjectedJavascript: "InjectedJavascript", InjectedStyleSheet: "InjectedStyleSheet", KeepaliveRequest: "KeepaliveRequest", IndexedDBEvent: "IndexedDBEvent", Dummy: "Dummy", JsNetworkRequestReceivedCacheControlNoStoreResource: "JsNetworkRequestReceivedCacheControlNoStoreResource", WebRTCUsedWithCCNS: "WebRTCUsedWithCCNS", WebTransportUsedWithCCNS: "WebTransportUsedWithCCNS", WebSocketUsedWithCCNS: "WebSocketUsedWithCCNS", SmartCard: "SmartCard", LiveMediaStreamTrack: "LiveMediaStreamTrack", UnloadHandler: "UnloadHandler", ParserAborted: "ParserAborted", ContentSecurityHandler: "ContentSecurityHandler", ContentWebAuthenticationAPI: "ContentWebAuthenticationAPI", ContentFileChooser: "ContentFileChooser", ContentSerial: "ContentSerial", ContentFileSystemAccess: "ContentFileSystemAccess", ContentMediaDevicesDispatcherHost: "ContentMediaDevicesDispatcherHost", ContentWebBluetooth: "ContentWebBluetooth", ContentWebUSB: "ContentWebUSB", ContentMediaSessionService: "ContentMediaSessionService", ContentScreenReader: "ContentScreenReader", ContentDiscarded: "ContentDiscarded", EmbedderPopupBlockerTabHelper: "EmbedderPopupBlockerTabHelper", EmbedderSafeBrowsingTriggeredPopupBlocker: "EmbedderSafeBrowsingTriggeredPopupBlocker", EmbedderSafeBrowsingThreatDetails: "EmbedderSafeBrowsingThreatDetails", EmbedderAppBannerManager: "EmbedderAppBannerManager", EmbedderDomDistillerViewerSource: "EmbedderDomDistillerViewerSource", EmbedderDomDistillerSelfDeletingRequestDelegate: "EmbedderDomDistillerSelfDeletingRequestDelegate", EmbedderOomInterventionTabHelper: "EmbedderOomInterventionTabHelper", EmbedderOfflinePage: "EmbedderOfflinePage", EmbedderChromePasswordManagerClientBindCredentialManager: "EmbedderChromePasswordManagerClientBindCredentialManager", EmbedderPermissionRequestManager: "EmbedderPermissionRequestManager", EmbedderModalDialog: "EmbedderModalDialog", EmbedderExtensions: "EmbedderExtensions", EmbedderExtensionMessaging: "EmbedderExtensionMessaging", EmbedderExtensionMessagingForOpenPort: "EmbedderExtensionMessagingForOpenPort", EmbedderExtensionSentMessageToCachedFrame: "EmbedderExtensionSentMessageToCachedFrame", RequestedByWebViewClient: "RequestedByWebViewClient", PostMessageByWebViewClient: "PostMessageByWebViewClient", CacheControlNoStoreDeviceBoundSessionTerminated: "CacheControlNoStoreDeviceBoundSessionTerminated", CacheLimitPrunedOnModerateMemoryPressure: "CacheLimitPrunedOnModerateMemoryPressure", CacheLimitPrunedOnCriticalMemoryPressure: "CacheLimitPrunedOnCriticalMemoryPressure" });
103275
+ inspectorBackend.registerEnum("Page.BackForwardCacheNotRestoredReason", { NotPrimaryMainFrame: "NotPrimaryMainFrame", BackForwardCacheDisabled: "BackForwardCacheDisabled", RelatedActiveContentsExist: "RelatedActiveContentsExist", HTTPStatusNotOK: "HTTPStatusNotOK", SchemeNotHTTPOrHTTPS: "SchemeNotHTTPOrHTTPS", Loading: "Loading", WasGrantedMediaAccess: "WasGrantedMediaAccess", DisableForRenderFrameHostCalled: "DisableForRenderFrameHostCalled", DomainNotAllowed: "DomainNotAllowed", HTTPMethodNotGET: "HTTPMethodNotGET", SubframeIsNavigating: "SubframeIsNavigating", Timeout: "Timeout", CacheLimit: "CacheLimit", JavaScriptExecution: "JavaScriptExecution", RendererProcessKilled: "RendererProcessKilled", RendererProcessCrashed: "RendererProcessCrashed", SchedulerTrackedFeatureUsed: "SchedulerTrackedFeatureUsed", ConflictingBrowsingInstance: "ConflictingBrowsingInstance", CacheFlushed: "CacheFlushed", ServiceWorkerVersionActivation: "ServiceWorkerVersionActivation", SessionRestored: "SessionRestored", ServiceWorkerPostMessage: "ServiceWorkerPostMessage", EnteredBackForwardCacheBeforeServiceWorkerHostAdded: "EnteredBackForwardCacheBeforeServiceWorkerHostAdded", RenderFrameHostReused_SameSite: "RenderFrameHostReused_SameSite", RenderFrameHostReused_CrossSite: "RenderFrameHostReused_CrossSite", ServiceWorkerClaim: "ServiceWorkerClaim", IgnoreEventAndEvict: "IgnoreEventAndEvict", HaveInnerContents: "HaveInnerContents", TimeoutPuttingInCache: "TimeoutPuttingInCache", BackForwardCacheDisabledByLowMemory: "BackForwardCacheDisabledByLowMemory", BackForwardCacheDisabledByCommandLine: "BackForwardCacheDisabledByCommandLine", NetworkRequestDatAPIpeDrainedAsBytesConsumer: "NetworkRequestDatapipeDrainedAsBytesConsumer", NetworkRequestRedirected: "NetworkRequestRedirected", NetworkRequestTimeout: "NetworkRequestTimeout", NetworkExceedsBufferLimit: "NetworkExceedsBufferLimit", NavigationCancelledWhileRestoring: "NavigationCancelledWhileRestoring", NotMostRecentNavigationEntry: "NotMostRecentNavigationEntry", BackForwardCacheDisabledForPrerender: "BackForwardCacheDisabledForPrerender", UserAgentOverrideDiffers: "UserAgentOverrideDiffers", ForegroundCacheLimit: "ForegroundCacheLimit", ForwardCacheDisabled: "ForwardCacheDisabled", BrowsingInstanceNotSwapped: "BrowsingInstanceNotSwapped", BackForwardCacheDisabledForDelegate: "BackForwardCacheDisabledForDelegate", UnloadHandlerExistsInMainFrame: "UnloadHandlerExistsInMainFrame", UnloadHandlerExistsInSubFrame: "UnloadHandlerExistsInSubFrame", ServiceWorkerUnregistration: "ServiceWorkerUnregistration", CacheControlNoStore: "CacheControlNoStore", CacheControlNoStoreCookieModified: "CacheControlNoStoreCookieModified", CacheControlNoStoreHTTPOnlyCookieModified: "CacheControlNoStoreHTTPOnlyCookieModified", NoResponseHead: "NoResponseHead", Unknown: "Unknown", ActivationNavigationsDisallowedForBug1234857: "ActivationNavigationsDisallowedForBug1234857", ErrorDocument: "ErrorDocument", FencedFramesEmbedder: "FencedFramesEmbedder", CookieDisabled: "CookieDisabled", HTTPAuthRequired: "HTTPAuthRequired", CookieFlushed: "CookieFlushed", BroadcastChannelOnMessage: "BroadcastChannelOnMessage", WebViewSettingsChanged: "WebViewSettingsChanged", WebViewJavaScriptObjectChanged: "WebViewJavaScriptObjectChanged", WebViewMessageListenerInjected: "WebViewMessageListenerInjected", WebViewSafeBrowsingAllowlistChanged: "WebViewSafeBrowsingAllowlistChanged", WebViewDocumentStartJavascriptChanged: "WebViewDocumentStartJavascriptChanged", WebSocket: "WebSocket", WebTransport: "WebTransport", WebRTC: "WebRTC", MainResourceHasCacheControlNoStore: "MainResourceHasCacheControlNoStore", MainResourceHasCacheControlNoCache: "MainResourceHasCacheControlNoCache", SubresourceHasCacheControlNoStore: "SubresourceHasCacheControlNoStore", SubresourceHasCacheControlNoCache: "SubresourceHasCacheControlNoCache", ContainsPlugins: "ContainsPlugins", DocumentLoaded: "DocumentLoaded", OutstandingNetworkRequestOthers: "OutstandingNetworkRequestOthers", RequestedMIDIPermission: "RequestedMIDIPermission", RequestedAudioCapturePermission: "RequestedAudioCapturePermission", RequestedVideoCapturePermission: "RequestedVideoCapturePermission", RequestedBackForwardCacheBlockedSensors: "RequestedBackForwardCacheBlockedSensors", RequestedBackgroundWorkPermission: "RequestedBackgroundWorkPermission", BroadcastChannel: "BroadcastChannel", WebXR: "WebXR", SharedWorker: "SharedWorker", SharedWorkerMessage: "SharedWorkerMessage", SharedWorkerWithNoActiveClient: "SharedWorkerWithNoActiveClient", WebLocks: "WebLocks", WebLocksContention: "WebLocksContention", WebHID: "WebHID", WebBluetooth: "WebBluetooth", WebShare: "WebShare", RequestedStorageAccessGrant: "RequestedStorageAccessGrant", WebNfc: "WebNfc", OutstandingNetworkRequestFetch: "OutstandingNetworkRequestFetch", OutstandingNetworkRequestXHR: "OutstandingNetworkRequestXHR", AppBanner: "AppBanner", Printing: "Printing", WebDatabase: "WebDatabase", PictureInPicture: "PictureInPicture", SpeechRecognizer: "SpeechRecognizer", IdleManager: "IdleManager", PaymentManager: "PaymentManager", SpeechSynthesis: "SpeechSynthesis", KeyboardLock: "KeyboardLock", WebOTPService: "WebOTPService", OutstandingNetworkRequestDirectSocket: "OutstandingNetworkRequestDirectSocket", InjectedJavascript: "InjectedJavascript", InjectedStyleSheet: "InjectedStyleSheet", KeepaliveRequest: "KeepaliveRequest", IndexedDBEvent: "IndexedDBEvent", Dummy: "Dummy", JsNetworkRequestReceivedCacheControlNoStoreResource: "JsNetworkRequestReceivedCacheControlNoStoreResource", WebRTCUsedWithCCNS: "WebRTCUsedWithCCNS", WebTransportUsedWithCCNS: "WebTransportUsedWithCCNS", WebSocketUsedWithCCNS: "WebSocketUsedWithCCNS", SmartCard: "SmartCard", LiveMediaStreamTrack: "LiveMediaStreamTrack", UnloadHandler: "UnloadHandler", ParserAborted: "ParserAborted", ContentSecurityHandler: "ContentSecurityHandler", ContentWebAuthenticationAPI: "ContentWebAuthenticationAPI", ContentFileChooser: "ContentFileChooser", ContentSerial: "ContentSerial", ContentFileSystemAccess: "ContentFileSystemAccess", ContentMediaDevicesDispatcherHost: "ContentMediaDevicesDispatcherHost", ContentWebBluetooth: "ContentWebBluetooth", ContentWebUSB: "ContentWebUSB", ContentMediaSessionService: "ContentMediaSessionService", ContentScreenReader: "ContentScreenReader", ContentDiscarded: "ContentDiscarded", EmbedderPopupBlockerTabHelper: "EmbedderPopupBlockerTabHelper", EmbedderSafeBrowsingTriggeredPopupBlocker: "EmbedderSafeBrowsingTriggeredPopupBlocker", EmbedderSafeBrowsingThreatDetails: "EmbedderSafeBrowsingThreatDetails", EmbedderAppBannerManager: "EmbedderAppBannerManager", EmbedderDomDistillerViewerSource: "EmbedderDomDistillerViewerSource", EmbedderDomDistillerSelfDeletingRequestDelegate: "EmbedderDomDistillerSelfDeletingRequestDelegate", EmbedderOomInterventionTabHelper: "EmbedderOomInterventionTabHelper", EmbedderOfflinePage: "EmbedderOfflinePage", EmbedderChromePasswordManagerClientBindCredentialManager: "EmbedderChromePasswordManagerClientBindCredentialManager", EmbedderPermissionRequestManager: "EmbedderPermissionRequestManager", EmbedderModalDialog: "EmbedderModalDialog", EmbedderExtensions: "EmbedderExtensions", EmbedderExtensionMessaging: "EmbedderExtensionMessaging", EmbedderExtensionMessagingForOpenPort: "EmbedderExtensionMessagingForOpenPort", EmbedderExtensionSentMessageToCachedFrame: "EmbedderExtensionSentMessageToCachedFrame", RequestedByWebViewClient: "RequestedByWebViewClient", PostMessageByWebViewClient: "PostMessageByWebViewClient", CacheControlNoStoreDeviceBoundSessionTerminated: "CacheControlNoStoreDeviceBoundSessionTerminated", CacheLimitPrunedOnModerateMemoryPressure: "CacheLimitPrunedOnModerateMemoryPressure", CacheLimitPrunedOnCriticalMemoryPressure: "CacheLimitPrunedOnCriticalMemoryPressure" });
103279
103276
  inspectorBackend.registerEnum("Page.BackForwardCacheNotRestoredReasonType", { SupportPending: "SupportPending", PageSupportNeeded: "PageSupportNeeded", Circumstantial: "Circumstantial" });
103280
103277
  inspectorBackend.registerEvent("Page.domContentEventFired", ["timestamp"]);
103281
103278
  inspectorBackend.registerEnum("Page.FileChooserOpenedEventMode", { SelectSingle: "selectSingle", SelectMultiple: "selectMultiple" });
@@ -106740,7 +106737,6 @@ var DevtoolsExperiments;
106740
106737
  DevtoolsExperiments[DevtoolsExperiments["authored-deployed-grouping"] = 63] = "authored-deployed-grouping";
106741
106738
  DevtoolsExperiments[DevtoolsExperiments["just-my-code"] = 65] = "just-my-code";
106742
106739
  DevtoolsExperiments[DevtoolsExperiments["use-source-map-scopes"] = 76] = "use-source-map-scopes";
106743
- DevtoolsExperiments[DevtoolsExperiments["timeline-show-postmessage-events"] = 86] = "timeline-show-postmessage-events";
106744
106740
  DevtoolsExperiments[DevtoolsExperiments["timeline-debug-mode"] = 93] = "timeline-debug-mode";
106745
106741
  DevtoolsExperiments[DevtoolsExperiments["durable-messages"] = 110] = "durable-messages";
106746
106742
  DevtoolsExperiments[DevtoolsExperiments["jpeg-xl"] = 111] = "jpeg-xl";
@@ -127111,7 +127107,7 @@ class SourceMapScopesInfo {
127111
127107
  return rangeChain;
127112
127108
  }
127113
127109
  findOriginalFunctionName(position) {
127114
- const originalInnerMostScope = this.findOriginalFunctionScope(position)?.scope ?? undefined;
127110
+ const originalInnerMostScope = this.findOriginalFunctionScope(position)?.scope;
127115
127111
  return this.#findFunctionNameInOriginalScopeChain(originalInnerMostScope);
127116
127112
  }
127117
127113
  findOriginalFunctionScope({ line, column }) {
@@ -131837,6 +131833,104 @@ class DOMNode extends ObjectWrapper {
131837
131833
  }
131838
131834
  return this.domModel().nodeForId(response.nodeId);
131839
131835
  }
131836
+ async takeSnapshot(ownerDocumentSnapshot) {
131837
+ const snapshot = (this instanceof DOMDocument) ? new DOMDocumentSnapshot(this.domModel(), {
131838
+ nodeId: this.id,
131839
+ backendNodeId: this.backendNodeId(),
131840
+ nodeType: this.nodeType(),
131841
+ nodeName: this.nodeName(),
131842
+ localName: this.localName(),
131843
+ nodeValue: this.nodeValueInternal,
131844
+ }) :
131845
+ new DOMNodeSnapshot(this.domModel());
131846
+ snapshot.id = this.id;
131847
+ snapshot.#backendNodeId = this.#backendNodeId;
131848
+ snapshot.#frameOwnerFrameId = this.#frameOwnerFrameId;
131849
+ snapshot.#nodeType = this.#nodeType;
131850
+ snapshot.#nodeName = this.#nodeName;
131851
+ snapshot.#localName = this.#localName;
131852
+ snapshot.nodeValueInternal = this.nodeValueInternal;
131853
+ snapshot.#pseudoType = this.#pseudoType;
131854
+ snapshot.#pseudoIdentifier = this.#pseudoIdentifier;
131855
+ snapshot.#shadowRootType = this.#shadowRootType;
131856
+ snapshot.#xmlVersion = this.#xmlVersion;
131857
+ snapshot.#isSVGNode = this.#isSVGNode;
131858
+ snapshot.#isScrollable = this.#isScrollable;
131859
+ snapshot.#affectedByStartingStyles = this.#affectedByStartingStyles;
131860
+ snapshot.ownerDocument =
131861
+ ownerDocumentSnapshot || ((snapshot instanceof DOMDocument) ? snapshot : this.ownerDocument);
131862
+ snapshot.#isInShadowTree = this.#isInShadowTree;
131863
+ snapshot.childNodeCountInternal = this.childNodeCountInternal;
131864
+ if (snapshot instanceof DOMDocument && this instanceof DOMDocument) {
131865
+ snapshot.documentURL = this.documentURL;
131866
+ snapshot.baseURL = this.baseURL;
131867
+ }
131868
+ if (!this.childrenInternal && this.childNodeCountInternal > 0) {
131869
+ await this.getSubtree(1, false);
131870
+ }
131871
+ for (const [name, attr] of this.#attributes) {
131872
+ snapshot.#attributes.set(name, { name: attr.name, value: attr.value, _node: snapshot });
131873
+ }
131874
+ if (this.childrenInternal) {
131875
+ snapshot.childrenInternal = [];
131876
+ for (const child of this.childrenInternal) {
131877
+ const childSnapshot = await child.takeSnapshot(snapshot.ownerDocument || undefined);
131878
+ childSnapshot.parentNode = snapshot;
131879
+ childSnapshot.ownerDocument = (snapshot instanceof DOMDocument) ? snapshot : snapshot.ownerDocument;
131880
+ snapshot.childrenInternal.push(childSnapshot);
131881
+ if (childSnapshot.ownerDocument instanceof DOMDocument) {
131882
+ if (childSnapshot.nodeName() === 'HTML' && !childSnapshot.ownerDocument.documentElement) {
131883
+ childSnapshot.ownerDocument.documentElement = childSnapshot;
131884
+ }
131885
+ if (childSnapshot.nodeName() === 'BODY' && !childSnapshot.ownerDocument.body) {
131886
+ childSnapshot.ownerDocument.body = childSnapshot;
131887
+ }
131888
+ }
131889
+ }
131890
+ }
131891
+ for (const root of this.shadowRootsInternal) {
131892
+ const rootSnapshot = await root.takeSnapshot(snapshot.ownerDocument || undefined);
131893
+ rootSnapshot.parentNode = snapshot;
131894
+ rootSnapshot.ownerDocument = snapshot.ownerDocument;
131895
+ snapshot.shadowRootsInternal.push(rootSnapshot);
131896
+ }
131897
+ if (this.templateContentInternal) {
131898
+ const templateSnapshot = await this.templateContentInternal.takeSnapshot(snapshot.ownerDocument || undefined);
131899
+ templateSnapshot.parentNode = snapshot;
131900
+ templateSnapshot.ownerDocument = snapshot.ownerDocument;
131901
+ snapshot.templateContentInternal = templateSnapshot;
131902
+ }
131903
+ if (this.contentDocumentInternal) {
131904
+ const contentDocSnapshot = await this.contentDocumentInternal.takeSnapshot();
131905
+ contentDocSnapshot.parentNode = snapshot;
131906
+ snapshot.contentDocumentInternal = contentDocSnapshot;
131907
+ }
131908
+ if (this.#importedDocument) {
131909
+ const importedDocSnapshot = await this.#importedDocument.takeSnapshot(snapshot.ownerDocument || undefined);
131910
+ importedDocSnapshot.parentNode = snapshot;
131911
+ importedDocSnapshot.ownerDocument = snapshot.ownerDocument;
131912
+ snapshot.#importedDocument = importedDocSnapshot;
131913
+ }
131914
+ for (const [pseudoType, nodes] of this.#pseudoElements) {
131915
+ const snapshots = [];
131916
+ for (const node of nodes) {
131917
+ const pseudoSnapshot = await node.takeSnapshot(snapshot.ownerDocument || undefined);
131918
+ pseudoSnapshot.parentNode = snapshot;
131919
+ pseudoSnapshot.ownerDocument = snapshot.ownerDocument;
131920
+ snapshots.push(pseudoSnapshot);
131921
+ }
131922
+ snapshot.#pseudoElements.set(pseudoType, snapshots);
131923
+ }
131924
+ if (this.#distributedNodes) {
131925
+ snapshot.#distributedNodes = [...this.#distributedNodes];
131926
+ }
131927
+ snapshot.assignedSlot = this.assignedSlot;
131928
+ snapshot.#retainedNodes = this.#retainedNodes;
131929
+ if (this.#adoptedStyleSheets.length) {
131930
+ snapshot.setAdoptedStyleSheets(this.#adoptedStyleSheets.map(sheet => sheet.id));
131931
+ }
131932
+ return snapshot;
131933
+ }
131840
131934
  classNames() {
131841
131935
  const classes = this.getAttribute('class');
131842
131936
  return classes ? classes.split(/\s+/) : [];
@@ -132618,6 +132712,60 @@ class DOMModelUndoStack {
132618
132712
  }
132619
132713
  }
132620
132714
  SDKModel.register(DOMModel, { capabilities: 2 , autostart: true });
132715
+ class DOMNodeSnapshot extends DOMNode {
132716
+ init(_doc, _isInShadowTree, _payload, _retainedNodes) {
132717
+ }
132718
+ setNodeName(_name, _callback) {
132719
+ }
132720
+ setNodeValue(_value, _callback) {
132721
+ }
132722
+ setAttribute(_name, _text, _callback) {
132723
+ }
132724
+ setAttributeValue(_name, _value, _callback) {
132725
+ }
132726
+ removeAttribute(_name) {
132727
+ return Promise.resolve();
132728
+ }
132729
+ setOuterHTML(_html, _callback) {
132730
+ }
132731
+ removeNode(_callback) {
132732
+ return Promise.resolve();
132733
+ }
132734
+ copyTo(_targetNode, _anchorNode, _callback) {
132735
+ }
132736
+ moveTo(_targetNode, _anchorNode, _callback) {
132737
+ }
132738
+ setAsInspectedNode() {
132739
+ return Promise.resolve();
132740
+ }
132741
+ }
132742
+ class DOMDocumentSnapshot extends DOMDocument {
132743
+ init(_doc, _isInShadowTree, _payload, _retainedNodes) {
132744
+ }
132745
+ setNodeName(_name, _callback) {
132746
+ }
132747
+ setNodeValue(_value, _callback) {
132748
+ }
132749
+ setAttribute(_name, _text, _callback) {
132750
+ }
132751
+ setAttributeValue(_name, _value, _callback) {
132752
+ }
132753
+ removeAttribute(_name) {
132754
+ return Promise.resolve();
132755
+ }
132756
+ setOuterHTML(_html, _callback) {
132757
+ }
132758
+ removeNode(_callback) {
132759
+ return Promise.resolve();
132760
+ }
132761
+ copyTo(_targetNode, _anchorNode, _callback) {
132762
+ }
132763
+ moveTo(_targetNode, _anchorNode, _callback) {
132764
+ }
132765
+ setAsInspectedNode() {
132766
+ return Promise.resolve();
132767
+ }
132768
+ }
132621
132769
 
132622
132770
  // Copyright 2021 The Chromium Authors
132623
132771
  class Resource {
@@ -5,5 +5,5 @@
5
5
  */
6
6
  // If moved update release-please config
7
7
  // x-release-please-start-version
8
- export const VERSION = '0.20.0';
8
+ export const VERSION = '0.20.1';
9
9
  // x-release-please-end
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chrome-devtools-mcp",
3
- "version": "0.20.0",
3
+ "version": "0.20.1",
4
4
  "description": "MCP server for Chrome DevTools",
5
5
  "type": "module",
6
6
  "bin": {
@@ -59,7 +59,7 @@
59
59
  "@types/yargs": "^17.0.33",
60
60
  "@typescript-eslint/eslint-plugin": "^8.43.0",
61
61
  "@typescript-eslint/parser": "^8.43.0",
62
- "chrome-devtools-frontend": "1.0.1595090",
62
+ "chrome-devtools-frontend": "1.0.1596260",
63
63
  "core-js": "3.48.0",
64
64
  "debug": "4.4.3",
65
65
  "eslint": "^9.35.0",
@@ -68,7 +68,7 @@
68
68
  "globals": "^17.0.0",
69
69
  "lighthouse": "13.0.3",
70
70
  "prettier": "^3.6.2",
71
- "puppeteer": "24.39.0",
71
+ "puppeteer": "24.39.1",
72
72
  "rollup": "4.59.0",
73
73
  "rollup-plugin-cleanup": "^3.2.1",
74
74
  "rollup-plugin-license": "^3.6.0",