opera-devtools-mcp 0.6.1 → 0.7.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/McpContext.js +78 -41
- package/build/src/McpPage.js +5 -1
- package/build/src/ToolHandler.js +45 -74
- package/build/src/bin/chrome-devtools-mcp-main.js +4 -4
- package/build/src/bin/chrome-devtools.js +29 -30
- package/build/src/bin/opera-devtools-cli-options.js +1 -1
- package/build/src/bin/opera-devtools-mcp-cli-options.js +1 -1
- package/build/src/browser.js +5 -16
- package/build/src/config/browser-options.js +126 -0
- package/build/src/config/category-options.js +81 -0
- package/build/src/{bin/chrome-devtools-cli-options.js → config/cli-options.js} +368 -26
- package/build/src/{bin/chrome-devtools-mcp-cli-options.js → config/mcp-options.js} +143 -164
- package/build/src/daemon/client.js +9 -0
- package/build/src/daemon/utils.js +6 -0
- package/build/src/devtools/DevtoolsUtils.js +27 -21
- package/build/src/formatters/NetworkFormatter.js +5 -2
- package/build/src/index.js +166 -100
- package/build/src/processors/HeapSnapshotManager.js +12 -0
- package/build/src/telemetry/ClearcutLogger.js +19 -6
- package/build/src/telemetry/transformation.js +4 -0
- package/build/src/telemetry/types.js +4 -0
- package/build/src/third_party/THIRD_PARTY_NOTICES +5 -5
- package/build/src/third_party/bundled-packages.json +3 -3
- package/build/src/third_party/devtools-formatter-worker.js +22 -0
- package/build/src/third_party/devtools-heap-snapshot-worker.js +100 -20
- package/build/src/third_party/index.js +15459 -14256
- package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsBlockedByConnectionAllowlist.md +1 -0
- package/build/src/third_party/issue-descriptions/federatedAuthRequestConfigBlockedByConnectionAllowlist.md +1 -0
- package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenBlockedByConnectionAllowlist.md +1 -0
- package/build/src/third_party/issue-descriptions/federatedAuthRequestWellKnownBlockedByConnectionAllowlist.md +1 -0
- package/build/src/tools/ToolDefinition.js +15 -0
- package/build/src/tools/categories.js +0 -6
- package/build/src/tools/comments.js +90 -0
- package/build/src/tools/console.js +1 -1
- package/build/src/tools/emulation.js +1 -1
- package/build/src/tools/extensions.js +1 -1
- package/build/src/tools/memory.js +60 -6
- package/build/src/tools/network.js +2 -2
- package/build/src/tools/pages.js +26 -15
- package/build/src/tools/performance.js +4 -3
- package/build/src/tools/screencast.js +3 -2
- package/build/src/tools/screenshot.js +39 -8
- package/build/src/tools/script.js +17 -4
- package/build/src/tools/slim/tools.js +41 -33
- package/build/src/tools/snapshot.js +1 -1
- package/build/src/tools/tools.js +2 -0
- package/build/src/utils/WaitForHelper.js +12 -1
- package/build/src/utils/bytes.js +105 -0
- package/build/src/utils/url.js +73 -0
- package/build/src/version.js +1 -1
- package/package.json +23 -4
|
@@ -1001,6 +1001,16 @@ class ColorConverter {
|
|
|
1001
1001
|
const rgbOutput = NAMED_GAMUTS.displayP3_INVERSE.multiply(xyzInput);
|
|
1002
1002
|
return applyTransferFns(NAMED_TRANSFER_FN.sRGB_INVERSE, rgbOutput.values[0], rgbOutput.values[1], rgbOutput.values[2]);
|
|
1003
1003
|
}
|
|
1004
|
+
static displayP3LinearToXyzd50(r, g, b) {
|
|
1005
|
+
const rgbInput = new Vector3([r, g, b]);
|
|
1006
|
+
const xyzOutput = NAMED_GAMUTS.displayP3.multiply(rgbInput);
|
|
1007
|
+
return xyzOutput.values;
|
|
1008
|
+
}
|
|
1009
|
+
static xyzd50ToDisplayP3Linear(x, y, z) {
|
|
1010
|
+
const xyzInput = new Vector3([x, y, z]);
|
|
1011
|
+
const rgbResult = NAMED_GAMUTS.displayP3_INVERSE.multiply(xyzInput);
|
|
1012
|
+
return rgbResult.values;
|
|
1013
|
+
}
|
|
1004
1014
|
static proPhotoToXyzd50(r, g, b) {
|
|
1005
1015
|
const [mappedR, mappedG, mappedB] = applyTransferFns(NAMED_TRANSFER_FN.proPhotoRGB, r, g, b);
|
|
1006
1016
|
const rgbInput = new Vector3([mappedR, mappedG, mappedB]);
|
|
@@ -1200,6 +1210,8 @@ function getColorSpace(colorSpaceText) {
|
|
|
1200
1210
|
return "srgb-linear" ;
|
|
1201
1211
|
case "display-p3" :
|
|
1202
1212
|
return "display-p3" ;
|
|
1213
|
+
case "display-p3-linear" :
|
|
1214
|
+
return "display-p3-linear" ;
|
|
1203
1215
|
case "a98-rgb" :
|
|
1204
1216
|
return "a98-rgb" ;
|
|
1205
1217
|
case "prophoto-rgb" :
|
|
@@ -1418,6 +1430,7 @@ class Lab {
|
|
|
1418
1430
|
["srgb" ]: (self) => new ColorFunction("srgb" , ...ColorConverter.xyzd50ToSrgb(...self.#toXyzd50()), self.alpha),
|
|
1419
1431
|
["srgb-linear" ]: (self) => new ColorFunction("srgb-linear" , ...ColorConverter.xyzd50TosRGBLinear(...self.#toXyzd50()), self.alpha),
|
|
1420
1432
|
["display-p3" ]: (self) => new ColorFunction("display-p3" , ...ColorConverter.xyzd50ToDisplayP3(...self.#toXyzd50()), self.alpha),
|
|
1433
|
+
["display-p3-linear" ]: (self) => new ColorFunction("display-p3-linear" , ...ColorConverter.xyzd50ToDisplayP3Linear(...self.#toXyzd50()), self.alpha),
|
|
1421
1434
|
["a98-rgb" ]: (self) => new ColorFunction("a98-rgb" , ...ColorConverter.xyzd50ToAdobeRGB(...self.#toXyzd50()), self.alpha),
|
|
1422
1435
|
["prophoto-rgb" ]: (self) => new ColorFunction("prophoto-rgb" , ...ColorConverter.xyzd50ToProPhoto(...self.#toXyzd50()), self.alpha),
|
|
1423
1436
|
["rec2020" ]: (self) => new ColorFunction("rec2020" , ...ColorConverter.xyzd50ToRec2020(...self.#toXyzd50()), self.alpha),
|
|
@@ -1534,6 +1547,7 @@ class LCH {
|
|
|
1534
1547
|
["srgb" ]: (self) => new ColorFunction("srgb" , ...ColorConverter.xyzd50ToSrgb(...self.#toXyzd50()), self.alpha),
|
|
1535
1548
|
["srgb-linear" ]: (self) => new ColorFunction("srgb-linear" , ...ColorConverter.xyzd50TosRGBLinear(...self.#toXyzd50()), self.alpha),
|
|
1536
1549
|
["display-p3" ]: (self) => new ColorFunction("display-p3" , ...ColorConverter.xyzd50ToDisplayP3(...self.#toXyzd50()), self.alpha),
|
|
1550
|
+
["display-p3-linear" ]: (self) => new ColorFunction("display-p3-linear" , ...ColorConverter.xyzd50ToDisplayP3Linear(...self.#toXyzd50()), self.alpha),
|
|
1537
1551
|
["a98-rgb" ]: (self) => new ColorFunction("a98-rgb" , ...ColorConverter.xyzd50ToAdobeRGB(...self.#toXyzd50()), self.alpha),
|
|
1538
1552
|
["prophoto-rgb" ]: (self) => new ColorFunction("prophoto-rgb" , ...ColorConverter.xyzd50ToProPhoto(...self.#toXyzd50()), self.alpha),
|
|
1539
1553
|
["rec2020" ]: (self) => new ColorFunction("rec2020" , ...ColorConverter.xyzd50ToRec2020(...self.#toXyzd50()), self.alpha),
|
|
@@ -1652,6 +1666,7 @@ class Oklab {
|
|
|
1652
1666
|
["srgb" ]: (self) => new ColorFunction("srgb" , ...ColorConverter.xyzd50ToSrgb(...self.#toXyzd50()), self.alpha),
|
|
1653
1667
|
["srgb-linear" ]: (self) => new ColorFunction("srgb-linear" , ...ColorConverter.xyzd50TosRGBLinear(...self.#toXyzd50()), self.alpha),
|
|
1654
1668
|
["display-p3" ]: (self) => new ColorFunction("display-p3" , ...ColorConverter.xyzd50ToDisplayP3(...self.#toXyzd50()), self.alpha),
|
|
1669
|
+
["display-p3-linear" ]: (self) => new ColorFunction("display-p3-linear" , ...ColorConverter.xyzd50ToDisplayP3Linear(...self.#toXyzd50()), self.alpha),
|
|
1655
1670
|
["a98-rgb" ]: (self) => new ColorFunction("a98-rgb" , ...ColorConverter.xyzd50ToAdobeRGB(...self.#toXyzd50()), self.alpha),
|
|
1656
1671
|
["prophoto-rgb" ]: (self) => new ColorFunction("prophoto-rgb" , ...ColorConverter.xyzd50ToProPhoto(...self.#toXyzd50()), self.alpha),
|
|
1657
1672
|
["rec2020" ]: (self) => new ColorFunction("rec2020" , ...ColorConverter.xyzd50ToRec2020(...self.#toXyzd50()), self.alpha),
|
|
@@ -1768,6 +1783,7 @@ class Oklch {
|
|
|
1768
1783
|
["srgb" ]: (self) => new ColorFunction("srgb" , ...ColorConverter.xyzd50ToSrgb(...self.#toXyzd50()), self.alpha),
|
|
1769
1784
|
["srgb-linear" ]: (self) => new ColorFunction("srgb-linear" , ...ColorConverter.xyzd50TosRGBLinear(...self.#toXyzd50()), self.alpha),
|
|
1770
1785
|
["display-p3" ]: (self) => new ColorFunction("display-p3" , ...ColorConverter.xyzd50ToDisplayP3(...self.#toXyzd50()), self.alpha),
|
|
1786
|
+
["display-p3-linear" ]: (self) => new ColorFunction("display-p3-linear" , ...ColorConverter.xyzd50ToDisplayP3Linear(...self.#toXyzd50()), self.alpha),
|
|
1771
1787
|
["a98-rgb" ]: (self) => new ColorFunction("a98-rgb" , ...ColorConverter.xyzd50ToAdobeRGB(...self.#toXyzd50()), self.alpha),
|
|
1772
1788
|
["prophoto-rgb" ]: (self) => new ColorFunction("prophoto-rgb" , ...ColorConverter.xyzd50ToProPhoto(...self.#toXyzd50()), self.alpha),
|
|
1773
1789
|
["rec2020" ]: (self) => new ColorFunction("rec2020" , ...ColorConverter.xyzd50ToRec2020(...self.#toXyzd50()), self.alpha),
|
|
@@ -1887,6 +1903,7 @@ class ColorFunction {
|
|
|
1887
1903
|
["srgb" ]: (self) => new ColorFunction("srgb" , ...ColorConverter.xyzd50ToSrgb(...self.#toXyzd50()), self.alpha),
|
|
1888
1904
|
["srgb-linear" ]: (self) => new ColorFunction("srgb-linear" , ...ColorConverter.xyzd50TosRGBLinear(...self.#toXyzd50()), self.alpha),
|
|
1889
1905
|
["display-p3" ]: (self) => new ColorFunction("display-p3" , ...ColorConverter.xyzd50ToDisplayP3(...self.#toXyzd50()), self.alpha),
|
|
1906
|
+
["display-p3-linear" ]: (self) => new ColorFunction("display-p3-linear" , ...ColorConverter.xyzd50ToDisplayP3Linear(...self.#toXyzd50()), self.alpha),
|
|
1890
1907
|
["a98-rgb" ]: (self) => new ColorFunction("a98-rgb" , ...ColorConverter.xyzd50ToAdobeRGB(...self.#toXyzd50()), self.alpha),
|
|
1891
1908
|
["prophoto-rgb" ]: (self) => new ColorFunction("prophoto-rgb" , ...ColorConverter.xyzd50ToProPhoto(...self.#toXyzd50()), self.alpha),
|
|
1892
1909
|
["rec2020" ]: (self) => new ColorFunction("rec2020" , ...ColorConverter.xyzd50ToRec2020(...self.#toXyzd50()), self.alpha),
|
|
@@ -1903,6 +1920,8 @@ class ColorFunction {
|
|
|
1903
1920
|
return ColorConverter.srgbLinearToXyzd50(p0, p1, p2);
|
|
1904
1921
|
case "display-p3" :
|
|
1905
1922
|
return ColorConverter.displayP3ToXyzd50(p0, p1, p2);
|
|
1923
|
+
case "display-p3-linear" :
|
|
1924
|
+
return ColorConverter.displayP3LinearToXyzd50(p0, p1, p2);
|
|
1906
1925
|
case "a98-rgb" :
|
|
1907
1926
|
return ColorConverter.adobeRGBToXyzd50(p0, p1, p2);
|
|
1908
1927
|
case "prophoto-rgb" :
|
|
@@ -2058,6 +2077,7 @@ class HSL {
|
|
|
2058
2077
|
["srgb" ]: (self) => new ColorFunction("srgb" , ...ColorConverter.xyzd50ToSrgb(...self.#toXyzd50()), self.alpha),
|
|
2059
2078
|
["srgb-linear" ]: (self) => new ColorFunction("srgb-linear" , ...ColorConverter.xyzd50TosRGBLinear(...self.#toXyzd50()), self.alpha),
|
|
2060
2079
|
["display-p3" ]: (self) => new ColorFunction("display-p3" , ...ColorConverter.xyzd50ToDisplayP3(...self.#toXyzd50()), self.alpha),
|
|
2080
|
+
["display-p3-linear" ]: (self) => new ColorFunction("display-p3-linear" , ...ColorConverter.xyzd50ToDisplayP3Linear(...self.#toXyzd50()), self.alpha),
|
|
2061
2081
|
["a98-rgb" ]: (self) => new ColorFunction("a98-rgb" , ...ColorConverter.xyzd50ToAdobeRGB(...self.#toXyzd50()), self.alpha),
|
|
2062
2082
|
["prophoto-rgb" ]: (self) => new ColorFunction("prophoto-rgb" , ...ColorConverter.xyzd50ToProPhoto(...self.#toXyzd50()), self.alpha),
|
|
2063
2083
|
["rec2020" ]: (self) => new ColorFunction("rec2020" , ...ColorConverter.xyzd50ToRec2020(...self.#toXyzd50()), self.alpha),
|
|
@@ -2185,6 +2205,7 @@ class HWB {
|
|
|
2185
2205
|
["srgb" ]: (self) => new ColorFunction("srgb" , ...ColorConverter.xyzd50ToSrgb(...self.#toXyzd50()), self.alpha),
|
|
2186
2206
|
["srgb-linear" ]: (self) => new ColorFunction("srgb-linear" , ...ColorConverter.xyzd50TosRGBLinear(...self.#toXyzd50()), self.alpha),
|
|
2187
2207
|
["display-p3" ]: (self) => new ColorFunction("display-p3" , ...ColorConverter.xyzd50ToDisplayP3(...self.#toXyzd50()), self.alpha),
|
|
2208
|
+
["display-p3-linear" ]: (self) => new ColorFunction("display-p3-linear" , ...ColorConverter.xyzd50ToDisplayP3Linear(...self.#toXyzd50()), self.alpha),
|
|
2188
2209
|
["a98-rgb" ]: (self) => new ColorFunction("a98-rgb" , ...ColorConverter.xyzd50ToAdobeRGB(...self.#toXyzd50()), self.alpha),
|
|
2189
2210
|
["prophoto-rgb" ]: (self) => new ColorFunction("prophoto-rgb" , ...ColorConverter.xyzd50ToProPhoto(...self.#toXyzd50()), self.alpha),
|
|
2190
2211
|
["rec2020" ]: (self) => new ColorFunction("rec2020" , ...ColorConverter.xyzd50ToRec2020(...self.#toXyzd50()), self.alpha),
|
|
@@ -2413,6 +2434,7 @@ class Legacy {
|
|
|
2413
2434
|
["srgb" ]: (self) => new ColorFunction("srgb" , ...ColorConverter.xyzd50ToSrgb(...self.#toXyzd50()), self.alpha),
|
|
2414
2435
|
["srgb-linear" ]: (self) => new ColorFunction("srgb-linear" , ...ColorConverter.xyzd50TosRGBLinear(...self.#toXyzd50()), self.alpha),
|
|
2415
2436
|
["display-p3" ]: (self) => new ColorFunction("display-p3" , ...ColorConverter.xyzd50ToDisplayP3(...self.#toXyzd50()), self.alpha),
|
|
2437
|
+
["display-p3-linear" ]: (self) => new ColorFunction("display-p3-linear" , ...ColorConverter.xyzd50ToDisplayP3Linear(...self.#toXyzd50()), self.alpha),
|
|
2416
2438
|
["a98-rgb" ]: (self) => new ColorFunction("a98-rgb" , ...ColorConverter.xyzd50ToAdobeRGB(...self.#toXyzd50()), self.alpha),
|
|
2417
2439
|
["prophoto-rgb" ]: (self) => new ColorFunction("prophoto-rgb" , ...ColorConverter.xyzd50ToProPhoto(...self.#toXyzd50()), self.alpha),
|
|
2418
2440
|
["rec2020" ]: (self) => new ColorFunction("rec2020" , ...ColorConverter.xyzd50ToRec2020(...self.#toXyzd50()), self.alpha),
|
|
@@ -5661,15 +5683,21 @@ class HeapSnapshotWorkerProxy extends ObjectWrapper {
|
|
|
5661
5683
|
}
|
|
5662
5684
|
evaluateForTest(script, callback) {
|
|
5663
5685
|
const callId = this.nextCallId++;
|
|
5664
|
-
this.callbacks.set(callId,
|
|
5686
|
+
this.callbacks.set(callId, (error, result) => {
|
|
5687
|
+
callback(error, result);
|
|
5688
|
+
});
|
|
5665
5689
|
this.postMessage({ callId, disposition: 'evaluateForTest', source: script });
|
|
5666
5690
|
}
|
|
5667
5691
|
callFactoryMethod(callback, objectId, methodName, proxyConstructor, transfer, ...methodArguments) {
|
|
5668
5692
|
const callId = this.nextCallId++;
|
|
5669
5693
|
const newObjectId = this.nextObjectId++;
|
|
5670
5694
|
if (callback) {
|
|
5671
|
-
this.callbacks.set(callId, remoteResult => {
|
|
5672
|
-
|
|
5695
|
+
this.callbacks.set(callId, (error, remoteResult) => {
|
|
5696
|
+
if (error) {
|
|
5697
|
+
callback(error);
|
|
5698
|
+
return;
|
|
5699
|
+
}
|
|
5700
|
+
callback(undefined, remoteResult ? new proxyConstructor(this, newObjectId) : undefined);
|
|
5673
5701
|
});
|
|
5674
5702
|
this.postMessage({
|
|
5675
5703
|
callId,
|
|
@@ -5694,7 +5722,9 @@ class HeapSnapshotWorkerProxy extends ObjectWrapper {
|
|
|
5694
5722
|
callMethod(callback, objectId, methodName, ...methodArguments) {
|
|
5695
5723
|
const callId = this.nextCallId++;
|
|
5696
5724
|
if (callback) {
|
|
5697
|
-
this.callbacks.set(callId,
|
|
5725
|
+
this.callbacks.set(callId, (error, result) => {
|
|
5726
|
+
callback(error, result);
|
|
5727
|
+
});
|
|
5698
5728
|
}
|
|
5699
5729
|
this.postMessage({
|
|
5700
5730
|
callId,
|
|
@@ -5725,8 +5755,15 @@ class HeapSnapshotWorkerProxy extends ObjectWrapper {
|
|
|
5725
5755
|
}
|
|
5726
5756
|
setupForSecondaryInit(port) {
|
|
5727
5757
|
const callId = this.nextCallId++;
|
|
5728
|
-
const done = new Promise(resolve => {
|
|
5729
|
-
this.callbacks.set(callId,
|
|
5758
|
+
const done = new Promise((resolve, reject) => {
|
|
5759
|
+
this.callbacks.set(callId, error => {
|
|
5760
|
+
if (error) {
|
|
5761
|
+
reject(new Error(error));
|
|
5762
|
+
}
|
|
5763
|
+
else {
|
|
5764
|
+
resolve();
|
|
5765
|
+
}
|
|
5766
|
+
});
|
|
5730
5767
|
});
|
|
5731
5768
|
this.postMessage({
|
|
5732
5769
|
callId,
|
|
@@ -5746,15 +5783,17 @@ class HeapSnapshotWorkerProxy extends ObjectWrapper {
|
|
|
5746
5783
|
if (data.error) {
|
|
5747
5784
|
this.#console.error(`An error occurred when a call to method '${data.errorMethodName}' was requested`);
|
|
5748
5785
|
this.#console.error(data['errorCallStack']);
|
|
5749
|
-
this.callbacks.delete(data.callId);
|
|
5750
|
-
return;
|
|
5751
5786
|
}
|
|
5752
5787
|
const callback = this.callbacks.get(data.callId);
|
|
5753
5788
|
if (!callback) {
|
|
5754
5789
|
return;
|
|
5755
5790
|
}
|
|
5756
5791
|
this.callbacks.delete(data.callId);
|
|
5757
|
-
|
|
5792
|
+
if (data.error) {
|
|
5793
|
+
callback(data.error);
|
|
5794
|
+
return;
|
|
5795
|
+
}
|
|
5796
|
+
callback(undefined, data.result);
|
|
5758
5797
|
}
|
|
5759
5798
|
postMessage(message, transfer) {
|
|
5760
5799
|
this.worker.postMessage(message, transfer);
|
|
@@ -5774,10 +5813,27 @@ class HeapSnapshotProxyObject {
|
|
|
5774
5813
|
return this.worker.callFactoryMethod(null, String(this.objectId), methodName, proxyConstructor, [], ...args);
|
|
5775
5814
|
}
|
|
5776
5815
|
callFactoryMethodPromise(methodName, proxyConstructor, transfer, ...args) {
|
|
5777
|
-
return new Promise(resolve => this.worker.callFactoryMethod(
|
|
5816
|
+
return new Promise((resolve, reject) => this.worker.callFactoryMethod((error, result) => {
|
|
5817
|
+
if (error) {
|
|
5818
|
+
reject(new Error(error));
|
|
5819
|
+
}
|
|
5820
|
+
else if (result) {
|
|
5821
|
+
resolve(result);
|
|
5822
|
+
}
|
|
5823
|
+
else {
|
|
5824
|
+
reject(new Error(`Failed to create ${proxyConstructor.name}`));
|
|
5825
|
+
}
|
|
5826
|
+
}, String(this.objectId), methodName, proxyConstructor, transfer, ...args));
|
|
5778
5827
|
}
|
|
5779
5828
|
callMethodPromise(methodName, ...args) {
|
|
5780
|
-
return new Promise(resolve => this.worker.callMethod(
|
|
5829
|
+
return new Promise((resolve, reject) => this.worker.callMethod((error, result) => {
|
|
5830
|
+
if (error) {
|
|
5831
|
+
reject(new Error(error));
|
|
5832
|
+
}
|
|
5833
|
+
else {
|
|
5834
|
+
resolve(result);
|
|
5835
|
+
}
|
|
5836
|
+
}, String(this.objectId), methodName, ...args));
|
|
5781
5837
|
}
|
|
5782
5838
|
}
|
|
5783
5839
|
class HeapSnapshotLoaderProxy extends HeapSnapshotProxyObject {
|
|
@@ -5796,12 +5852,16 @@ class HeapSnapshotLoaderProxy extends HeapSnapshotProxyObject {
|
|
|
5796
5852
|
const secondWorker = new HeapSnapshotWorkerProxy(() => { }, this.worker.console, this.worker.workerUrl);
|
|
5797
5853
|
const channel = new MessageChannel();
|
|
5798
5854
|
await secondWorker.setupForSecondaryInit(channel.port2);
|
|
5799
|
-
|
|
5800
|
-
|
|
5801
|
-
|
|
5802
|
-
|
|
5803
|
-
|
|
5804
|
-
|
|
5855
|
+
try {
|
|
5856
|
+
const snapshotProxy = await this.callFactoryMethodPromise('buildSnapshot', HeapSnapshotProxy, [channel.port1]);
|
|
5857
|
+
snapshotProxy.setProfileUid(this.profileUid);
|
|
5858
|
+
await snapshotProxy.updateStaticData();
|
|
5859
|
+
this.snapshotReceivedCallback(snapshotProxy);
|
|
5860
|
+
}
|
|
5861
|
+
finally {
|
|
5862
|
+
secondWorker.dispose();
|
|
5863
|
+
this.dispose();
|
|
5864
|
+
}
|
|
5805
5865
|
}
|
|
5806
5866
|
}
|
|
5807
5867
|
class HeapSnapshotProxy extends HeapSnapshotProxyObject {
|
|
@@ -10069,6 +10129,7 @@ class HeapSnapshotLoader {
|
|
|
10069
10129
|
this.#dataCallback = null;
|
|
10070
10130
|
this.#done = false;
|
|
10071
10131
|
this.parsingComplete = this.#parseInput();
|
|
10132
|
+
this.parsingComplete.catch(() => { });
|
|
10072
10133
|
}
|
|
10073
10134
|
dispose() {
|
|
10074
10135
|
this.#reset();
|
|
@@ -10081,6 +10142,7 @@ class HeapSnapshotLoader {
|
|
|
10081
10142
|
this.#done = true;
|
|
10082
10143
|
if (this.#dataCallback) {
|
|
10083
10144
|
this.#dataCallback('');
|
|
10145
|
+
this.#dataCallback = null;
|
|
10084
10146
|
}
|
|
10085
10147
|
}
|
|
10086
10148
|
async buildSnapshot(secondWorker) {
|
|
@@ -10148,6 +10210,9 @@ class HeapSnapshotLoader {
|
|
|
10148
10210
|
this.#snapshot.strings = JSON.parse(this.#json);
|
|
10149
10211
|
}
|
|
10150
10212
|
write(chunk) {
|
|
10213
|
+
if (!chunk) {
|
|
10214
|
+
return;
|
|
10215
|
+
}
|
|
10151
10216
|
this.#buffer.push(chunk);
|
|
10152
10217
|
if (!this.#dataCallback) {
|
|
10153
10218
|
return;
|
|
@@ -10159,6 +10224,9 @@ class HeapSnapshotLoader {
|
|
|
10159
10224
|
if (this.#buffer.length > 0) {
|
|
10160
10225
|
return Promise.resolve(this.#buffer.shift());
|
|
10161
10226
|
}
|
|
10227
|
+
if (this.#done) {
|
|
10228
|
+
return Promise.resolve('');
|
|
10229
|
+
}
|
|
10162
10230
|
const { promise, resolve } = Promise.withResolvers();
|
|
10163
10231
|
this.#dataCallback = resolve;
|
|
10164
10232
|
return promise;
|
|
@@ -10170,7 +10238,11 @@ class HeapSnapshotLoader {
|
|
|
10170
10238
|
return pos;
|
|
10171
10239
|
}
|
|
10172
10240
|
startIndex = this.#json.length - token.length + 1;
|
|
10173
|
-
|
|
10241
|
+
const chunk = await this.#fetchChunk();
|
|
10242
|
+
if (!chunk) {
|
|
10243
|
+
throw new Error(`Token ${token} not found (unexpected end of input)`);
|
|
10244
|
+
}
|
|
10245
|
+
this.#json += chunk;
|
|
10174
10246
|
}
|
|
10175
10247
|
}
|
|
10176
10248
|
async #parseArray(name, title, length) {
|
|
@@ -10187,7 +10259,11 @@ class HeapSnapshotLoader {
|
|
|
10187
10259
|
else {
|
|
10188
10260
|
this.#progress.updateStatus(title);
|
|
10189
10261
|
}
|
|
10190
|
-
|
|
10262
|
+
const chunk = await this.#fetchChunk();
|
|
10263
|
+
if (!chunk) {
|
|
10264
|
+
throw new Error(`Unexpected end of input while ${title}`);
|
|
10265
|
+
}
|
|
10266
|
+
this.#json += chunk;
|
|
10191
10267
|
}
|
|
10192
10268
|
const result = this.#array;
|
|
10193
10269
|
this.#array = null;
|
|
@@ -10210,7 +10286,11 @@ class HeapSnapshotLoader {
|
|
|
10210
10286
|
});
|
|
10211
10287
|
jsonTokenizer.write(json);
|
|
10212
10288
|
while (!jsonTokenizerDone) {
|
|
10213
|
-
|
|
10289
|
+
const chunk = await this.#fetchChunk();
|
|
10290
|
+
if (!chunk) {
|
|
10291
|
+
throw new Error('Unexpected end of input while loading snapshot info');
|
|
10292
|
+
}
|
|
10293
|
+
jsonTokenizer.write(chunk);
|
|
10214
10294
|
}
|
|
10215
10295
|
this.#snapshot = this.#snapshot || {};
|
|
10216
10296
|
const nodes = await this.#parseArray('"nodes"', 'Loading nodes… {PH1}%', this.#snapshot.snapshot.meta.node_fields.length * this.#snapshot.snapshot.node_count);
|