@chrome-devtools/integration-test-runner 1.20260419.0 → 1.20260426.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/{chunk-xap325ss.js → chunk-ndf7y3tr.js} +4586 -4495
- package/integration_test_runner.html +1 -1
- package/locales/en-US.json +1 -1
- package/locales/generated/collected-ui-strings.d +1 -1
- package/locales/generated/en-US.json +12 -0
- package/package.json +1 -1
- package/web-vitals-injected/web-vitals-injected.generated.js +70 -73
|
@@ -4592,6 +4592,9 @@
|
|
|
4592
4592
|
"panels/application/CrashReportContextView.ts | unknownFrame": {
|
|
4593
4593
|
"message": "Unknown Frame"
|
|
4594
4594
|
},
|
|
4595
|
+
"panels/application/DeviceBoundSessionsTreeElement.ts | clear": {
|
|
4596
|
+
"message": "Clear"
|
|
4597
|
+
},
|
|
4595
4598
|
"panels/application/DeviceBoundSessionsTreeElement.ts | deviceBoundSessions": {
|
|
4596
4599
|
"message": "Device bound sessions"
|
|
4597
4600
|
},
|
|
@@ -6332,6 +6335,9 @@
|
|
|
6332
6335
|
"panels/application/WebMCPView.ts | pending": {
|
|
6333
6336
|
"message": "In Progress"
|
|
6334
6337
|
},
|
|
6338
|
+
"panels/application/WebMCPView.ts | runTool": {
|
|
6339
|
+
"message": "Run Tool"
|
|
6340
|
+
},
|
|
6335
6341
|
"panels/application/WebMCPView.ts | status": {
|
|
6336
6342
|
"message": "Status"
|
|
6337
6343
|
},
|
|
@@ -11771,6 +11777,9 @@
|
|
|
11771
11777
|
"panels/profiler/HeapProfileView.ts | recordMemoryAllocations": {
|
|
11772
11778
|
"message": "Approximate memory allocations by sampling long operations with minimal overhead and get a breakdown by JavaScript execution stack"
|
|
11773
11779
|
},
|
|
11780
|
+
"panels/profiler/HeapProfileView.ts | samplingHeapProfilerTimeline": {
|
|
11781
|
+
"message": "Sampling heap profiler timeline"
|
|
11782
|
+
},
|
|
11774
11783
|
"panels/profiler/HeapProfileView.ts | samplingProfiles": {
|
|
11775
11784
|
"message": "Sampling profiles"
|
|
11776
11785
|
},
|
|
@@ -18038,6 +18047,9 @@
|
|
|
18038
18047
|
"ui/legacy/components/utils/Linkifier.ts | unknown": {
|
|
18039
18048
|
"message": "(unknown)"
|
|
18040
18049
|
},
|
|
18050
|
+
"ui/legacy/Dialog.ts | close": {
|
|
18051
|
+
"message": "Close"
|
|
18052
|
+
},
|
|
18041
18053
|
"ui/legacy/DockController.ts | close": {
|
|
18042
18054
|
"message": "Close"
|
|
18043
18055
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chrome-devtools/integration-test-runner",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.20260426.0",
|
|
4
4
|
"description": "chrome-devtools-frontend built version",
|
|
5
5
|
"repository": "https://github.com/iam-medvedev/chrome-devtools.git",
|
|
6
6
|
"author": "Ilya Medvedev <ilya@medvedev.im>",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
|
|
50
50
|
// gen/front_end/third_party/web-vitals/package/dist/modules/lib/doubleRAF.js
|
|
51
51
|
var doubleRAF = (cb) => {
|
|
52
|
-
requestAnimationFrame(() => requestAnimationFrame(
|
|
52
|
+
requestAnimationFrame(() => requestAnimationFrame(cb));
|
|
53
53
|
};
|
|
54
54
|
|
|
55
55
|
// gen/front_end/third_party/web-vitals/package/dist/modules/lib/generateUniqueID.js
|
|
@@ -67,8 +67,7 @@
|
|
|
67
67
|
|
|
68
68
|
// gen/front_end/third_party/web-vitals/package/dist/modules/lib/getActivationStart.js
|
|
69
69
|
var getActivationStart = () => {
|
|
70
|
-
|
|
71
|
-
return navEntry?.activationStart ?? 0;
|
|
70
|
+
return getNavigationEntry()?.activationStart ?? 0;
|
|
72
71
|
};
|
|
73
72
|
|
|
74
73
|
// gen/front_end/third_party/web-vitals/package/dist/modules/lib/initMetric.js
|
|
@@ -134,7 +133,7 @@
|
|
|
134
133
|
try {
|
|
135
134
|
if (PerformanceObserver.supportedEntryTypes.includes(type)) {
|
|
136
135
|
const po2 = new PerformanceObserver((list) => {
|
|
137
|
-
|
|
136
|
+
queueMicrotask(() => {
|
|
138
137
|
callback(list.getEntries());
|
|
139
138
|
});
|
|
140
139
|
});
|
|
@@ -179,7 +178,7 @@
|
|
|
179
178
|
var getVisibilityWatcher = () => {
|
|
180
179
|
if (firstHiddenTime < 0) {
|
|
181
180
|
const activationStart = getActivationStart();
|
|
182
|
-
const firstVisibilityStateHiddenTime = !document.prerendering ? globalThis.performance.getEntriesByType("visibility-state").
|
|
181
|
+
const firstVisibilityStateHiddenTime = !document.prerendering ? globalThis.performance.getEntriesByType("visibility-state").find((e) => e.name === "hidden" && e.startTime >= activationStart)?.startTime : void 0;
|
|
183
182
|
firstHiddenTime = firstVisibilityStateHiddenTime ?? initHiddenTime();
|
|
184
183
|
addEventListener("visibilitychange", onVisibilityUpdate, true);
|
|
185
184
|
addEventListener("prerenderingchange", onVisibilityUpdate, true);
|
|
@@ -202,7 +201,7 @@
|
|
|
202
201
|
// gen/front_end/third_party/web-vitals/package/dist/modules/lib/whenActivated.js
|
|
203
202
|
var whenActivated = (callback) => {
|
|
204
203
|
if (document.prerendering) {
|
|
205
|
-
addEventListener("prerenderingchange",
|
|
204
|
+
addEventListener("prerenderingchange", callback, true);
|
|
206
205
|
} else {
|
|
207
206
|
callback();
|
|
208
207
|
}
|
|
@@ -271,7 +270,7 @@
|
|
|
271
270
|
layoutShiftManager._sessionValue = 0;
|
|
272
271
|
metric = initMetric("CLS", 0);
|
|
273
272
|
report = bindReporter(onReport, metric, CLSThresholds, opts.reportAllChanges);
|
|
274
|
-
doubleRAF(
|
|
273
|
+
doubleRAF(report);
|
|
275
274
|
});
|
|
276
275
|
setTimeout(report);
|
|
277
276
|
}
|
|
@@ -299,8 +298,6 @@
|
|
|
299
298
|
if ("interactionCount" in performance || po)
|
|
300
299
|
return;
|
|
301
300
|
po = observe("event", updateEstimate, {
|
|
302
|
-
type: "event",
|
|
303
|
-
buffered: true,
|
|
304
301
|
durationThreshold: 0
|
|
305
302
|
});
|
|
306
303
|
};
|
|
@@ -383,14 +380,20 @@
|
|
|
383
380
|
// gen/front_end/third_party/web-vitals/package/dist/modules/lib/whenIdleOrHidden.js
|
|
384
381
|
var whenIdleOrHidden = (cb) => {
|
|
385
382
|
const rIC = globalThis.requestIdleCallback || setTimeout;
|
|
383
|
+
const cIC = globalThis.cancelIdleCallback || clearTimeout;
|
|
386
384
|
if (document.visibilityState === "hidden") {
|
|
387
385
|
cb();
|
|
388
386
|
} else {
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
387
|
+
const wrappedCb = runOnce(cb);
|
|
388
|
+
let idleHandle = -1;
|
|
389
|
+
const onHidden = () => {
|
|
390
|
+
cIC(idleHandle);
|
|
391
|
+
wrappedCb();
|
|
392
|
+
};
|
|
393
|
+
addEventListener("visibilitychange", onHidden, { once: true, capture: true });
|
|
394
|
+
idleHandle = rIC(() => {
|
|
395
|
+
removeEventListener("visibilitychange", onHidden, { capture: true });
|
|
396
|
+
wrappedCb();
|
|
394
397
|
});
|
|
395
398
|
}
|
|
396
399
|
};
|
|
@@ -556,16 +559,17 @@
|
|
|
556
559
|
var getLoadState = (timestamp) => {
|
|
557
560
|
if (document.readyState === "loading") {
|
|
558
561
|
return "loading";
|
|
559
|
-
}
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
562
|
+
}
|
|
563
|
+
const navigationEntry = getNavigationEntry();
|
|
564
|
+
if (navigationEntry) {
|
|
565
|
+
if (timestamp < navigationEntry.domInteractive) {
|
|
566
|
+
return "loading";
|
|
567
|
+
}
|
|
568
|
+
if (navigationEntry.domContentLoadedEventStart === 0 || timestamp < navigationEntry.domContentLoadedEventStart) {
|
|
569
|
+
return "dom-interactive";
|
|
570
|
+
}
|
|
571
|
+
if (navigationEntry.domComplete === 0 || timestamp < navigationEntry.domComplete) {
|
|
572
|
+
return "dom-content-loaded";
|
|
569
573
|
}
|
|
570
574
|
}
|
|
571
575
|
return "complete";
|
|
@@ -636,12 +640,10 @@
|
|
|
636
640
|
}
|
|
637
641
|
}
|
|
638
642
|
}
|
|
639
|
-
|
|
640
|
-
return metricWithAttribution;
|
|
643
|
+
return Object.assign(metric, { attribution });
|
|
641
644
|
};
|
|
642
645
|
onCLS$1((metric) => {
|
|
643
|
-
|
|
644
|
-
onReport(metricWithAttribution);
|
|
646
|
+
onReport(attributeCLS(metric));
|
|
645
647
|
}, opts);
|
|
646
648
|
};
|
|
647
649
|
|
|
@@ -672,13 +674,12 @@
|
|
|
672
674
|
};
|
|
673
675
|
var onFCP2 = (onReport, opts = {}) => {
|
|
674
676
|
onFCP((metric) => {
|
|
675
|
-
|
|
676
|
-
onReport(metricWithAttribution);
|
|
677
|
+
onReport(attributeFCP(metric));
|
|
677
678
|
}, opts);
|
|
678
679
|
};
|
|
679
680
|
|
|
680
681
|
// gen/front_end/third_party/web-vitals/package/dist/modules/attribution/onINP.js
|
|
681
|
-
var
|
|
682
|
+
var MAX_PENDING_FRAMES = 10;
|
|
682
683
|
var onINP2 = (onReport, opts = {}) => {
|
|
683
684
|
opts = Object.assign({}, opts);
|
|
684
685
|
const interactionManager = initUnique(opts, InteractionManager);
|
|
@@ -712,6 +713,9 @@
|
|
|
712
713
|
group.startTime = Math.min(entry.startTime, group.startTime);
|
|
713
714
|
group.processingStart = Math.min(entry.processingStart, group.processingStart);
|
|
714
715
|
group.processingEnd = Math.max(entry.processingEnd, group.processingEnd);
|
|
716
|
+
if (opts.includeProcessedEventEntries !== false) {
|
|
717
|
+
group.entries.push(entry);
|
|
718
|
+
}
|
|
715
719
|
break;
|
|
716
720
|
}
|
|
717
721
|
}
|
|
@@ -721,12 +725,9 @@
|
|
|
721
725
|
processingStart: entry.processingStart,
|
|
722
726
|
processingEnd: entry.processingEnd,
|
|
723
727
|
renderTime,
|
|
724
|
-
//
|
|
725
|
-
//
|
|
726
|
-
|
|
727
|
-
// See https://crbug.com/484342204
|
|
728
|
-
// entries: [entry],
|
|
729
|
-
entries: []
|
|
728
|
+
// processedEventEntries can be quite large, so only include them if
|
|
729
|
+
// the user explicitly requests them (default is to include).
|
|
730
|
+
entries: opts.includeProcessedEventEntries !== false ? [entry] : []
|
|
730
731
|
};
|
|
731
732
|
pendingEntriesGroups.push(group);
|
|
732
733
|
}
|
|
@@ -742,28 +743,25 @@
|
|
|
742
743
|
}
|
|
743
744
|
};
|
|
744
745
|
const cleanupEntries = () => {
|
|
745
|
-
const longestInteractionGroups = interactionManager._longestInteractionList.map((i) => {
|
|
746
|
+
const longestInteractionGroups = new Set(interactionManager._longestInteractionList.map((i) => {
|
|
746
747
|
return entryToEntriesGroupMap.get(i.entries[0]);
|
|
748
|
+
}));
|
|
749
|
+
const minIndexToKeep = pendingEntriesGroups.length - MAX_PENDING_FRAMES;
|
|
750
|
+
pendingEntriesGroups = pendingEntriesGroups.filter((group, i) => {
|
|
751
|
+
return i >= minIndexToKeep || longestInteractionGroups.has(group);
|
|
747
752
|
});
|
|
748
|
-
const
|
|
749
|
-
pendingEntriesGroups = pendingEntriesGroups.filter((group, index) => {
|
|
750
|
-
if (index >= minIndex)
|
|
751
|
-
return true;
|
|
752
|
-
return longestInteractionGroups.includes(group);
|
|
753
|
-
});
|
|
754
|
-
const loafsToKeep = /* @__PURE__ */ new Set();
|
|
753
|
+
const intersectingLoAFs = /* @__PURE__ */ new Set();
|
|
755
754
|
for (const group of pendingEntriesGroups) {
|
|
756
755
|
const loafs = getIntersectingLoAFs(group.startTime, group.processingEnd);
|
|
757
756
|
for (const loaf of loafs) {
|
|
758
|
-
|
|
757
|
+
intersectingLoAFs.add(loaf);
|
|
759
758
|
}
|
|
760
759
|
}
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
return loafsToKeep.has(loaf);
|
|
760
|
+
pendingLoAFs = pendingLoAFs.filter((loaf) => {
|
|
761
|
+
return (
|
|
762
|
+
// Compare times first because it's faster.
|
|
763
|
+
loaf.startTime > latestProcessingEnd || intersectingLoAFs.has(loaf)
|
|
764
|
+
);
|
|
767
765
|
});
|
|
768
766
|
cleanupPending = false;
|
|
769
767
|
};
|
|
@@ -884,13 +882,11 @@
|
|
|
884
882
|
totalUnattributedDuration: void 0
|
|
885
883
|
};
|
|
886
884
|
attributeLoAFDetails(attribution);
|
|
887
|
-
|
|
888
|
-
return metricWithAttribution;
|
|
885
|
+
return Object.assign(metric, { attribution });
|
|
889
886
|
};
|
|
890
887
|
observe("long-animation-frame", handleLoAFEntries);
|
|
891
888
|
onINP$1((metric) => {
|
|
892
|
-
|
|
893
|
-
onReport(metricWithAttribution);
|
|
889
|
+
onReport(attributeINP(metric));
|
|
894
890
|
}, opts);
|
|
895
891
|
};
|
|
896
892
|
|
|
@@ -904,6 +900,8 @@
|
|
|
904
900
|
if (node) {
|
|
905
901
|
const customTarget = opts.generateTarget?.(node) ?? getSelector(node);
|
|
906
902
|
lcpTargetMap.set(entry, customTarget);
|
|
903
|
+
} else if (entry.id) {
|
|
904
|
+
lcpTargetMap.set(entry, `#${entry.id}`);
|
|
907
905
|
}
|
|
908
906
|
};
|
|
909
907
|
const attributeLCP = (metric) => {
|
|
@@ -914,11 +912,19 @@
|
|
|
914
912
|
elementRenderDelay: metric.value
|
|
915
913
|
};
|
|
916
914
|
if (metric.entries.length) {
|
|
915
|
+
const lcpEntry = metric.entries.at(-1);
|
|
916
|
+
const lcpResourceEntry = lcpEntry.url && performance.getEntriesByType("resource").find((e) => e.name === lcpEntry.url);
|
|
917
|
+
attribution.target = lcpTargetMap.get(lcpEntry);
|
|
918
|
+
attribution.lcpEntry = lcpEntry;
|
|
919
|
+
if (lcpEntry.url) {
|
|
920
|
+
attribution.url = lcpEntry.url;
|
|
921
|
+
}
|
|
922
|
+
if (lcpResourceEntry) {
|
|
923
|
+
attribution.lcpResourceEntry = lcpResourceEntry;
|
|
924
|
+
}
|
|
917
925
|
const navigationEntry = getNavigationEntry();
|
|
918
926
|
if (navigationEntry) {
|
|
919
927
|
const activationStart = navigationEntry.activationStart || 0;
|
|
920
|
-
const lcpEntry = metric.entries.at(-1);
|
|
921
|
-
const lcpResourceEntry = lcpEntry.url && performance.getEntriesByType("resource").filter((e) => e.name === lcpEntry.url)[0];
|
|
922
928
|
const ttfb = Math.max(0, navigationEntry.responseStart - activationStart);
|
|
923
929
|
const lcpRequestStart = Math.max(
|
|
924
930
|
ttfb,
|
|
@@ -931,28 +937,19 @@
|
|
|
931
937
|
Math.max(lcpRequestStart, lcpResourceEntry ? lcpResourceEntry.responseEnd - activationStart : 0)
|
|
932
938
|
);
|
|
933
939
|
attribution = {
|
|
934
|
-
|
|
940
|
+
...attribution,
|
|
935
941
|
timeToFirstByte: ttfb,
|
|
936
942
|
resourceLoadDelay: lcpRequestStart - ttfb,
|
|
937
943
|
resourceLoadDuration: lcpResponseEnd - lcpRequestStart,
|
|
938
944
|
elementRenderDelay: metric.value - lcpResponseEnd,
|
|
939
|
-
navigationEntry
|
|
940
|
-
lcpEntry
|
|
945
|
+
navigationEntry
|
|
941
946
|
};
|
|
942
|
-
if (lcpEntry.url) {
|
|
943
|
-
attribution.url = lcpEntry.url;
|
|
944
|
-
}
|
|
945
|
-
if (lcpResourceEntry) {
|
|
946
|
-
attribution.lcpResourceEntry = lcpResourceEntry;
|
|
947
|
-
}
|
|
948
947
|
}
|
|
949
948
|
}
|
|
950
|
-
|
|
951
|
-
return metricWithAttribution;
|
|
949
|
+
return Object.assign(metric, { attribution });
|
|
952
950
|
};
|
|
953
951
|
onLCP$1((metric) => {
|
|
954
|
-
|
|
955
|
-
onReport(metricWithAttribution);
|
|
952
|
+
onReport(attributeLCP(metric));
|
|
956
953
|
}, opts);
|
|
957
954
|
};
|
|
958
955
|
|
|
@@ -992,8 +989,7 @@
|
|
|
992
989
|
};
|
|
993
990
|
var onTTFB2 = (onReport, opts = {}) => {
|
|
994
991
|
onTTFB((metric) => {
|
|
995
|
-
|
|
996
|
-
onReport(metricWithAttribution);
|
|
992
|
+
onReport(attributeTTFB(metric));
|
|
997
993
|
}, opts);
|
|
998
994
|
};
|
|
999
995
|
|
|
@@ -1242,6 +1238,7 @@
|
|
|
1242
1238
|
}, {
|
|
1243
1239
|
reportAllChanges: true,
|
|
1244
1240
|
durationThreshold: 0,
|
|
1241
|
+
includeProcessedEventEntries: false,
|
|
1245
1242
|
onEachInteraction,
|
|
1246
1243
|
generateTarget(el) {
|
|
1247
1244
|
if (el) {
|