chrome-devtools-mcp 0.23.0 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/src/DevToolsConnectionAdapter.js +1 -0
- package/build/src/DevtoolsUtils.js +1 -0
- package/build/src/HeapSnapshotManager.js +16 -0
- package/build/src/McpContext.js +57 -4
- package/build/src/McpPage.js +6 -0
- package/build/src/McpResponse.js +38 -4
- package/build/src/Mutex.js +1 -0
- package/build/src/PageCollector.js +1 -0
- package/build/src/SlimMcpResponse.js +1 -0
- package/build/src/TextSnapshot.js +11 -5
- package/build/src/WaitForHelper.js +6 -0
- package/build/src/bin/check-latest-version.js +1 -0
- package/build/src/bin/chrome-devtools-cli-options.js +206 -46
- package/build/src/bin/chrome-devtools-mcp-cli-options.js +3 -1
- package/build/src/bin/chrome-devtools-mcp-main.js +1 -0
- package/build/src/bin/chrome-devtools-mcp.js +1 -0
- package/build/src/bin/chrome-devtools.js +5 -13
- package/build/src/browser.js +1 -0
- package/build/src/daemon/client.js +4 -2
- package/build/src/daemon/daemon.js +1 -0
- package/build/src/daemon/types.js +1 -0
- package/build/src/daemon/utils.js +1 -0
- package/build/src/formatters/ConsoleFormatter.js +48 -1
- package/build/src/formatters/HeapSnapshotFormatter.js +18 -2
- package/build/src/formatters/IssueFormatter.js +1 -0
- package/build/src/formatters/NetworkFormatter.js +1 -0
- package/build/src/formatters/SnapshotFormatter.js +2 -1
- package/build/src/index.js +114 -51
- package/build/src/issue-descriptions.js +1 -0
- package/build/src/logger.js +1 -0
- package/build/src/polyfill.js +1 -0
- package/build/src/telemetry/ClearcutLogger.js +13 -1
- package/build/src/telemetry/WatchdogClient.js +1 -0
- package/build/src/telemetry/flagUtils.js +1 -0
- package/build/src/telemetry/metricUtils.js +1 -0
- package/build/src/telemetry/persistence.js +1 -0
- package/build/src/telemetry/toolMetricsUtils.js +2 -1
- package/build/src/telemetry/types.js +1 -0
- package/build/src/telemetry/watchdog/ClearcutSender.js +1 -0
- package/build/src/telemetry/watchdog/main.js +1 -0
- package/build/src/third_party/THIRD_PARTY_NOTICES +5 -5
- package/build/src/third_party/bundled-packages.json +2 -2
- package/build/src/third_party/devtools-formatter-worker.js +2451 -2933
- package/build/src/third_party/devtools-heap-snapshot-worker.js +32 -26
- package/build/src/third_party/index.js +535 -135
- package/build/src/third_party/lighthouse-devtools-mcp-bundle.js +21717 -20261
- package/build/src/tools/ToolDefinition.js +1 -0
- package/build/src/tools/categories.js +6 -2
- package/build/src/tools/console.js +3 -0
- package/build/src/tools/emulation.js +2 -0
- package/build/src/tools/extensions.js +6 -0
- package/build/src/tools/inPage.js +3 -2
- package/build/src/tools/input.js +13 -2
- package/build/src/tools/lighthouse.js +17 -9
- package/build/src/tools/memory.js +34 -1
- package/build/src/tools/network.js +5 -0
- package/build/src/tools/pages.js +9 -0
- package/build/src/tools/performance.js +6 -0
- package/build/src/tools/screencast.js +6 -2
- package/build/src/tools/screenshot.js +3 -0
- package/build/src/tools/script.js +2 -0
- package/build/src/tools/slim/tools.js +4 -0
- package/build/src/tools/snapshot.js +5 -1
- package/build/src/tools/tools.js +1 -0
- package/build/src/tools/webmcp.js +3 -0
- package/build/src/trace-processing/parse.js +1 -0
- package/build/src/types.js +1 -0
- package/build/src/utils/check-for-updates.js +1 -0
- package/build/src/utils/files.js +5 -10
- package/build/src/utils/id.js +1 -0
- package/build/src/utils/keyboard.js +1 -0
- package/build/src/utils/pagination.js +1 -0
- package/build/src/utils/string.js +1 -0
- package/build/src/utils/types.js +1 -0
- package/build/src/version.js +2 -1
- package/package.json +9 -9
- package/build/src/bin/cliDefinitions.js +0 -621
|
@@ -67,8 +67,8 @@ const EmptyUrlString = '';
|
|
|
67
67
|
|
|
68
68
|
// Copyright 2025 The Chromium Authors
|
|
69
69
|
class WebWorkerScope {
|
|
70
|
-
postMessage(message) {
|
|
71
|
-
self.postMessage(message);
|
|
70
|
+
postMessage(message, transfer) {
|
|
71
|
+
self.postMessage(message, transfer);
|
|
72
72
|
}
|
|
73
73
|
set onmessage(listener) {
|
|
74
74
|
self.addEventListener('message', listener);
|
|
@@ -141,8 +141,8 @@ var browser = /*#__PURE__*/Object.freeze({
|
|
|
141
141
|
|
|
142
142
|
// Copyright 2025 The Chromium Authors
|
|
143
143
|
class NodeWorkerScope {
|
|
144
|
-
postMessage(message) {
|
|
145
|
-
WorkerThreads.parentPort?.postMessage(message);
|
|
144
|
+
postMessage(message, transfer) {
|
|
145
|
+
WorkerThreads.parentPort?.postMessage(message, transfer);
|
|
146
146
|
}
|
|
147
147
|
set onmessage(listener) {
|
|
148
148
|
WorkerThreads.parentPort?.addEventListener('message', msg => {
|
|
@@ -778,9 +778,7 @@ var ExperimentName;
|
|
|
778
778
|
ExperimentName["CAPTURE_NODE_CREATION_STACKS"] = "capture-node-creation-stacks";
|
|
779
779
|
ExperimentName["LIVE_HEAP_PROFILE"] = "live-heap-profile";
|
|
780
780
|
ExperimentName["PROTOCOL_MONITOR"] = "protocol-monitor";
|
|
781
|
-
ExperimentName["SAMPLING_HEAP_PROFILER_TIMELINE"] = "sampling-heap-profiler-timeline";
|
|
782
781
|
ExperimentName["TIMELINE_INVALIDATION_TRACKING"] = "timeline-invalidation-tracking";
|
|
783
|
-
ExperimentName["APCA"] = "apca";
|
|
784
782
|
ExperimentName["FONT_EDITOR"] = "font-editor";
|
|
785
783
|
ExperimentName["INSTRUMENTATION_BREAKPOINTS"] = "instrumentation-breakpoints";
|
|
786
784
|
ExperimentName["USE_SOURCE_MAP_SCOPES"] = "use-source-map-scopes";
|
|
@@ -6803,7 +6801,7 @@ class SecondaryInitManager {
|
|
|
6803
6801
|
this.argsStep2 = argsStep2;
|
|
6804
6802
|
const { promise: argsStep3, resolve: resolveArgsStep3 } = Promise.withResolvers();
|
|
6805
6803
|
this.argsStep3 = argsStep3;
|
|
6806
|
-
|
|
6804
|
+
const listener = (e) => {
|
|
6807
6805
|
const data = e.data;
|
|
6808
6806
|
switch (data.step) {
|
|
6809
6807
|
case 1:
|
|
@@ -6814,9 +6812,12 @@ class SecondaryInitManager {
|
|
|
6814
6812
|
break;
|
|
6815
6813
|
case 3:
|
|
6816
6814
|
resolveArgsStep3(data.args);
|
|
6815
|
+
port.removeEventListener('message', listener);
|
|
6817
6816
|
break;
|
|
6818
6817
|
}
|
|
6819
6818
|
};
|
|
6819
|
+
port.addEventListener('message', listener);
|
|
6820
|
+
port.start();
|
|
6820
6821
|
void this.initialize(port);
|
|
6821
6822
|
}
|
|
6822
6823
|
async getNodeSelfSizes() {
|
|
@@ -6837,22 +6838,20 @@ class SecondaryInitManager {
|
|
|
6837
6838
|
};
|
|
6838
6839
|
const dominatorsAndRetainedSizes = await HeapSnapshot.calculateDominatorsAndRetainedSizes(args);
|
|
6839
6840
|
const dominatedNodesOutputs = HeapSnapshot.buildDominatedNodes({ ...args, ...dominatorsAndRetainedSizes });
|
|
6840
|
-
const
|
|
6841
|
+
const resultsFromSecondWorker = {
|
|
6841
6842
|
...retainers,
|
|
6842
6843
|
...dominatorsAndRetainedSizes,
|
|
6843
6844
|
...dominatedNodesOutputs,
|
|
6844
6845
|
};
|
|
6845
|
-
port.postMessage({ resultsFromSecondWorker
|
|
6846
|
-
|
|
6847
|
-
|
|
6848
|
-
|
|
6849
|
-
|
|
6850
|
-
|
|
6851
|
-
|
|
6852
|
-
|
|
6853
|
-
|
|
6854
|
-
]
|
|
6855
|
-
});
|
|
6846
|
+
port.postMessage({ resultsFromSecondWorker }, [
|
|
6847
|
+
resultsFromSecondWorker.dominatorsTree.buffer,
|
|
6848
|
+
resultsFromSecondWorker.retainedSizes.buffer,
|
|
6849
|
+
resultsFromSecondWorker.firstRetainerIndex.buffer,
|
|
6850
|
+
resultsFromSecondWorker.retainingNodes.buffer,
|
|
6851
|
+
resultsFromSecondWorker.retainingEdges.buffer,
|
|
6852
|
+
resultsFromSecondWorker.firstDominatedNodeIndex.buffer,
|
|
6853
|
+
resultsFromSecondWorker.dominatedNodes.buffer,
|
|
6854
|
+
]);
|
|
6856
6855
|
}
|
|
6857
6856
|
catch (e) {
|
|
6858
6857
|
port.postMessage({ error: e + '\n' + e?.stack });
|
|
@@ -7048,20 +7047,23 @@ class HeapSnapshot {
|
|
|
7048
7047
|
}
|
|
7049
7048
|
startInitStep1InSecondThread(secondWorker) {
|
|
7050
7049
|
const resultsFromSecondWorker = new Promise((resolve, reject) => {
|
|
7051
|
-
|
|
7052
|
-
const data =
|
|
7050
|
+
const listener = (e) => {
|
|
7051
|
+
const data = e.data;
|
|
7053
7052
|
if (data?.problemReport) {
|
|
7054
7053
|
const problemReport = data.problemReport;
|
|
7055
7054
|
console.warn(formatProblemReport(this, problemReport));
|
|
7056
7055
|
}
|
|
7057
7056
|
else if (data?.resultsFromSecondWorker) {
|
|
7058
|
-
|
|
7059
|
-
resolve(resultsFromSecondWorker);
|
|
7057
|
+
secondWorker.removeEventListener('message', listener);
|
|
7058
|
+
resolve(data.resultsFromSecondWorker);
|
|
7060
7059
|
}
|
|
7061
7060
|
else if (data?.error) {
|
|
7061
|
+
secondWorker.removeEventListener('message', listener);
|
|
7062
7062
|
reject(data.error);
|
|
7063
7063
|
}
|
|
7064
7064
|
};
|
|
7065
|
+
secondWorker.addEventListener('message', listener);
|
|
7066
|
+
secondWorker.start();
|
|
7065
7067
|
});
|
|
7066
7068
|
const edgeCount = this.#edgeCount;
|
|
7067
7069
|
const { containmentEdges, edgeToNodeOffset, edgeFieldsCount, nodeFieldCount } = this;
|
|
@@ -9332,6 +9334,11 @@ var HeapSnapshot$1 = /*#__PURE__*/Object.freeze({
|
|
|
9332
9334
|
createJSHeapSnapshotForTesting: createJSHeapSnapshotForTesting
|
|
9333
9335
|
});
|
|
9334
9336
|
|
|
9337
|
+
// Copyright 2023 The Chromium Authors
|
|
9338
|
+
new FinalizationRegistry(url => {
|
|
9339
|
+
URL.revokeObjectURL(url);
|
|
9340
|
+
});
|
|
9341
|
+
|
|
9335
9342
|
// Copyright 2013 The Chromium Authors
|
|
9336
9343
|
class BalancedJSONTokenizer {
|
|
9337
9344
|
callback;
|
|
@@ -9608,16 +9615,15 @@ var HeapSnapshotLoader$1 = /*#__PURE__*/Object.freeze({
|
|
|
9608
9615
|
|
|
9609
9616
|
// Copyright 2011 The Chromium Authors
|
|
9610
9617
|
class HeapSnapshotWorkerDispatcher {
|
|
9611
|
-
#objects;
|
|
9618
|
+
#objects = [];
|
|
9612
9619
|
#postMessage;
|
|
9613
9620
|
constructor(postMessage) {
|
|
9614
|
-
this.#objects = [];
|
|
9615
9621
|
this.#postMessage = postMessage;
|
|
9616
9622
|
}
|
|
9617
9623
|
sendEvent(name, data) {
|
|
9618
9624
|
this.#postMessage({ eventName: name, data });
|
|
9619
9625
|
}
|
|
9620
|
-
async dispatchMessage({ data, ports }) {
|
|
9626
|
+
async dispatchMessage({ data, ports, }) {
|
|
9621
9627
|
const response = {
|
|
9622
9628
|
callId: data.callId,
|
|
9623
9629
|
result: null,
|