chrome-devtools-frontend 1.0.1003469 → 1.0.1004171
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/front_end/core/common/ParsedURL.ts +4 -0
- package/front_end/core/host/UserMetrics.ts +1 -1
- package/front_end/core/i18n/locales/en-US.json +9 -3
- package/front_end/core/i18n/locales/en-XL.json +9 -3
- package/front_end/core/sdk/NetworkManager.ts +2 -2
- package/front_end/core/sdk/ResourceTreeModel.ts +32 -6
- package/front_end/core/sdk/WebAuthnModel.ts +1 -1
- package/front_end/entrypoints/main/MainImpl.ts +2 -2
- package/front_end/generated/InspectorBackendCommands.js +8 -2
- package/front_end/generated/SupportedCSSProperties.js +4 -0
- package/front_end/generated/protocol-mapping.d.ts +14 -2
- package/front_end/generated/protocol-proxy-api.d.ts +14 -2
- package/front_end/generated/protocol.ts +23 -1
- package/front_end/models/extensions/ExtensionServer.ts +1 -4
- package/front_end/panels/application/components/FrameDetailsView.ts +28 -0
- package/front_end/panels/console/ErrorStackParser.ts +2 -5
- package/front_end/panels/issues/AffectedDirectivesView.ts +4 -3
- package/front_end/panels/lighthouse/LighthouseController.ts +6 -6
- package/front_end/panels/lighthouse/LighthousePanel.ts +1 -3
- package/front_end/panels/lighthouse/LighthouseProtocolService.ts +2 -1
- package/front_end/panels/network/NetworkLogView.ts +7 -4
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +2 -2
- package/front_end/panels/profiler/HeapSnapshotView.ts +11 -13
- package/front_end/panels/profiler/LiveHeapProfileView.ts +0 -1
- package/front_end/panels/screencast/ScreencastView.ts +0 -1
- package/front_end/panels/settings/SettingsScreen.ts +0 -1
- package/front_end/panels/sources/NavigatorView.ts +0 -2
- package/front_end/panels/sources/SourcesSearchScope.ts +0 -2
- package/package.json +1 -1
@@ -273,6 +273,10 @@ export class ParsedURL {
|
|
273
273
|
return devToolsPath.toLowerCase() as DevToolsPathType;
|
274
274
|
}
|
275
275
|
|
276
|
+
static isValidUrlString(str: string): str is Platform.DevToolsPath.UrlString {
|
277
|
+
return new ParsedURL(str).isValid;
|
278
|
+
}
|
279
|
+
|
276
280
|
static urlWithoutHash(url: string): string {
|
277
281
|
const hashIndex = url.indexOf('#');
|
278
282
|
if (hashIndex !== -1) {
|
@@ -593,7 +593,7 @@ export enum DevtoolsExperiments {
|
|
593
593
|
'developerResourcesView' = 15,
|
594
594
|
'recordCoverageWithPerformanceTracing' = 16,
|
595
595
|
'samplingHeapProfilerTimeline' = 17,
|
596
|
-
'
|
596
|
+
'showOptionToExposeInternalsInHeapSnapshot' = 18,
|
597
597
|
'sourceOrderViewer' = 20,
|
598
598
|
'webauthnPane' = 22,
|
599
599
|
'timelineEventInitiators' = 24,
|
@@ -3068,6 +3068,12 @@
|
|
3068
3068
|
"panels/application/components/FrameDetailsView.ts | parentIsAdExplanation": {
|
3069
3069
|
"message": "This frame is considered an ad frame because its parent frame is an ad frame."
|
3070
3070
|
},
|
3071
|
+
"panels/application/components/FrameDetailsView.ts | prerendering": {
|
3072
|
+
"message": "Prerendering"
|
3073
|
+
},
|
3074
|
+
"panels/application/components/FrameDetailsView.ts | prerenderingStatus": {
|
3075
|
+
"message": "Prerendering Status"
|
3076
|
+
},
|
3071
3077
|
"panels/application/components/FrameDetailsView.ts | refresh": {
|
3072
3078
|
"message": "Refresh"
|
3073
3079
|
},
|
@@ -8072,6 +8078,9 @@
|
|
8072
8078
|
"panels/profiler/HeapSnapshotView.ts | containment": {
|
8073
8079
|
"message": "Containment"
|
8074
8080
|
},
|
8081
|
+
"panels/profiler/HeapSnapshotView.ts | exposeInternals": {
|
8082
|
+
"message": "Expose internals (includes additional implementation-specific details)"
|
8083
|
+
},
|
8075
8084
|
"panels/profiler/HeapSnapshotView.ts | filter": {
|
8076
8085
|
"message": "Filter"
|
8077
8086
|
},
|
@@ -8159,9 +8168,6 @@
|
|
8159
8168
|
"panels/profiler/HeapSnapshotView.ts | takeHeapSnapshot": {
|
8160
8169
|
"message": "Take heap snapshot"
|
8161
8170
|
},
|
8162
|
-
"panels/profiler/HeapSnapshotView.ts | treatGlobalObjectsAsRoots": {
|
8163
|
-
"message": "Treat global objects as roots (recommended, unchecking this exposes internal nodes and introduces excessive detail, but might help debugging cycles in retaining paths)"
|
8164
|
-
},
|
8165
8171
|
"panels/profiler/HeapSnapshotView.ts | typedArrays": {
|
8166
8172
|
"message": "Typed arrays"
|
8167
8173
|
},
|
@@ -3068,6 +3068,12 @@
|
|
3068
3068
|
"panels/application/components/FrameDetailsView.ts | parentIsAdExplanation": {
|
3069
3069
|
"message": "T̂h́îś f̂ŕâḿê íŝ ćôńŝíd̂ér̂éd̂ án̂ ád̂ f́r̂ám̂é b̂éĉáûśê ít̂ś p̂ár̂én̂t́ f̂ŕâḿê íŝ án̂ ád̂ f́r̂ám̂é."
|
3070
3070
|
},
|
3071
|
+
"panels/application/components/FrameDetailsView.ts | prerendering": {
|
3072
|
+
"message": "P̂ŕêŕêńd̂ér̂ín̂ǵ"
|
3073
|
+
},
|
3074
|
+
"panels/application/components/FrameDetailsView.ts | prerenderingStatus": {
|
3075
|
+
"message": "P̂ŕêŕêńd̂ér̂ín̂ǵ Ŝt́ât́ûś"
|
3076
|
+
},
|
3071
3077
|
"panels/application/components/FrameDetailsView.ts | refresh": {
|
3072
3078
|
"message": "R̂éf̂ŕêśĥ"
|
3073
3079
|
},
|
@@ -8072,6 +8078,9 @@
|
|
8072
8078
|
"panels/profiler/HeapSnapshotView.ts | containment": {
|
8073
8079
|
"message": "Ĉón̂t́âín̂ḿêńt̂"
|
8074
8080
|
},
|
8081
|
+
"panels/profiler/HeapSnapshotView.ts | exposeInternals": {
|
8082
|
+
"message": "Êx́p̂óŝé îńt̂ér̂ńâĺŝ (ín̂ćl̂úd̂éŝ ád̂d́ît́îón̂ál̂ ím̂ṕl̂ém̂én̂t́ât́îón̂-śp̂éĉíf̂íĉ d́êt́âíl̂ś)"
|
8083
|
+
},
|
8075
8084
|
"panels/profiler/HeapSnapshotView.ts | filter": {
|
8076
8085
|
"message": "F̂íl̂t́êŕ"
|
8077
8086
|
},
|
@@ -8159,9 +8168,6 @@
|
|
8159
8168
|
"panels/profiler/HeapSnapshotView.ts | takeHeapSnapshot": {
|
8160
8169
|
"message": "T̂ák̂é ĥéâṕ ŝńâṕŝh́ôt́"
|
8161
8170
|
},
|
8162
|
-
"panels/profiler/HeapSnapshotView.ts | treatGlobalObjectsAsRoots": {
|
8163
|
-
"message": "T̂ŕêát̂ ǵl̂ób̂ál̂ ób̂j́êćt̂ś âś r̂óôt́ŝ (ŕêćôḿm̂én̂d́êd́, ûńĉh́êćk̂ín̂ǵ t̂h́îś êx́p̂óŝéŝ ín̂t́êŕn̂ál̂ ńôd́êś âńd̂ ín̂t́r̂ód̂úĉéŝ éx̂ćêśŝív̂é d̂ét̂áîĺ, b̂út̂ ḿîǵĥt́ ĥél̂ṕ d̂éb̂úĝǵîńĝ ćŷćl̂éŝ ín̂ ŕêt́âín̂ín̂ǵ p̂át̂h́ŝ)"
|
8164
|
-
},
|
8165
8171
|
"panels/profiler/HeapSnapshotView.ts | typedArrays": {
|
8166
8172
|
"message": "T̂ýp̂éd̂ ár̂ŕâýŝ"
|
8167
8173
|
},
|
@@ -1101,7 +1101,7 @@ export class MultitargetNetworkManager extends Common.ObjectWrapper.ObjectWrappe
|
|
1101
1101
|
#updatingInterceptionPatternsPromise: Promise<void>|null;
|
1102
1102
|
readonly #blockingEnabledSetting: Common.Settings.Setting<boolean>;
|
1103
1103
|
readonly #blockedPatternsSetting: Common.Settings.Setting<BlockedPattern[]>;
|
1104
|
-
#effectiveBlockedURLs:
|
1104
|
+
#effectiveBlockedURLs: string[];
|
1105
1105
|
readonly #urlsForRequestInterceptor:
|
1106
1106
|
Platform.MapUtilities.Multimap<(arg0: InterceptedRequest) => Promise<void>, InterceptionPattern>;
|
1107
1107
|
#extraHeaders?: Protocol.Network.Headers;
|
@@ -1715,7 +1715,7 @@ export interface Conditions {
|
|
1715
1715
|
}
|
1716
1716
|
|
1717
1717
|
export interface BlockedPattern {
|
1718
|
-
url:
|
1718
|
+
url: string;
|
1719
1719
|
enabled: boolean;
|
1720
1720
|
}
|
1721
1721
|
|
@@ -64,6 +64,7 @@ export class ResourceTreeModel extends SDKModel<EventTypes> {
|
|
64
64
|
isInterstitialShowing: boolean;
|
65
65
|
mainFrame: ResourceTreeFrame|null;
|
66
66
|
#pendingBackForwardCacheNotUsedEvents: Set<Protocol.Page.BackForwardCacheNotUsedEvent>;
|
67
|
+
#pendingPrerenderAttemptCompletedEvents: Set<Protocol.Page.PrerenderAttemptCompletedEvent>;
|
67
68
|
|
68
69
|
constructor(target: Target) {
|
69
70
|
super(target);
|
@@ -77,6 +78,7 @@ export class ResourceTreeModel extends SDKModel<EventTypes> {
|
|
77
78
|
void this.agent.invoke_enable();
|
78
79
|
this.#securityOriginManager = (target.model(SecurityOriginManager) as SecurityOriginManager);
|
79
80
|
this.#pendingBackForwardCacheNotUsedEvents = new Set<Protocol.Page.BackForwardCacheNotUsedEvent>();
|
81
|
+
this.#pendingPrerenderAttemptCompletedEvents = new Set<Protocol.Page.PrerenderAttemptCompletedEvent>();
|
80
82
|
target.registerPageDispatcher(new PageDispatcher(this));
|
81
83
|
|
82
84
|
this.framesInternal = new Map();
|
@@ -213,7 +215,7 @@ export class ResourceTreeModel extends SDKModel<EventTypes> {
|
|
213
215
|
this.dispatchEventToListeners(Events.FrameNavigated, frame);
|
214
216
|
|
215
217
|
if (frame.isMainFrame()) {
|
216
|
-
this.
|
218
|
+
this.processPendingEvents(frame);
|
217
219
|
this.dispatchEventToListeners(Events.MainFrameNavigated, frame);
|
218
220
|
const networkManager = this.target().model(NetworkManager);
|
219
221
|
if (networkManager) {
|
@@ -539,7 +541,16 @@ export class ResourceTreeModel extends SDKModel<EventTypes> {
|
|
539
541
|
}
|
540
542
|
}
|
541
543
|
|
542
|
-
|
544
|
+
onPrerenderAttemptCompleted(event: Protocol.Page.PrerenderAttemptCompletedEvent): void {
|
545
|
+
if (this.mainFrame && this.mainFrame.id === event.initiatingFrameId) {
|
546
|
+
this.mainFrame.setPrerenderFinalStatus(event.finalStatus);
|
547
|
+
this.dispatchEventToListeners(Events.PrerenderingStatusUpdated, this.mainFrame);
|
548
|
+
} else {
|
549
|
+
this.#pendingPrerenderAttemptCompletedEvents.add(event);
|
550
|
+
}
|
551
|
+
}
|
552
|
+
|
553
|
+
processPendingEvents(frame: ResourceTreeFrame): void {
|
543
554
|
if (!frame.isMainFrame()) {
|
544
555
|
return;
|
545
556
|
}
|
@@ -547,11 +558,17 @@ export class ResourceTreeModel extends SDKModel<EventTypes> {
|
|
547
558
|
if (frame.id === event.frameId && frame.loaderId === event.loaderId) {
|
548
559
|
frame.setBackForwardCacheDetails(event);
|
549
560
|
this.#pendingBackForwardCacheNotUsedEvents.delete(event);
|
550
|
-
|
551
|
-
// as this method call is followed by a `MainFrameNavigated` event.
|
552
|
-
return;
|
561
|
+
break;
|
553
562
|
}
|
554
563
|
}
|
564
|
+
for (const event of this.#pendingPrerenderAttemptCompletedEvents) {
|
565
|
+
if (frame.id === event.initiatingFrameId) {
|
566
|
+
frame.setPrerenderFinalStatus(event.finalStatus);
|
567
|
+
this.#pendingPrerenderAttemptCompletedEvents.delete(event);
|
568
|
+
break;
|
569
|
+
}
|
570
|
+
}
|
571
|
+
// No need to dispatch events here as this method call is followed by a `MainFrameNavigated` event.
|
555
572
|
}
|
556
573
|
}
|
557
574
|
|
@@ -575,6 +592,7 @@ export enum Events {
|
|
575
592
|
InterstitialShown = 'InterstitialShown',
|
576
593
|
InterstitialHidden = 'InterstitialHidden',
|
577
594
|
BackForwardCacheDetailsUpdated = 'BackForwardCacheDetailsUpdated',
|
595
|
+
PrerenderingStatusUpdated = 'PrerenderingStatusUpdated',
|
578
596
|
}
|
579
597
|
|
580
598
|
export type EventTypes = {
|
@@ -595,6 +613,7 @@ export type EventTypes = {
|
|
595
613
|
[Events.InterstitialShown]: void,
|
596
614
|
[Events.InterstitialHidden]: void,
|
597
615
|
[Events.BackForwardCacheDetailsUpdated]: ResourceTreeFrame,
|
616
|
+
[Events.PrerenderingStatusUpdated]: ResourceTreeFrame,
|
598
617
|
};
|
599
618
|
|
600
619
|
export class ResourceTreeFrame {
|
@@ -625,6 +644,7 @@ export class ResourceTreeFrame {
|
|
625
644
|
explanations: [],
|
626
645
|
explanationsTree: undefined,
|
627
646
|
};
|
647
|
+
prerenderFinalStatus: Protocol.Page.PrerenderFinalStatus|null;
|
628
648
|
|
629
649
|
constructor(
|
630
650
|
model: ResourceTreeModel, parentFrame: ResourceTreeFrame|null, frameId: Protocol.Page.FrameId,
|
@@ -653,6 +673,7 @@ export class ResourceTreeFrame {
|
|
653
673
|
this.#childFramesInternal = new Set();
|
654
674
|
|
655
675
|
this.resourcesMap = new Map();
|
676
|
+
this.prerenderFinalStatus = null;
|
656
677
|
|
657
678
|
if (this.#sameTargetParentFrameInternal) {
|
658
679
|
this.#sameTargetParentFrameInternal.#childFramesInternal.add(this);
|
@@ -984,6 +1005,10 @@ export class ResourceTreeFrame {
|
|
984
1005
|
getResourcesMap(): Map<string, Resource> {
|
985
1006
|
return this.resourcesMap;
|
986
1007
|
}
|
1008
|
+
|
1009
|
+
setPrerenderFinalStatus(status: Protocol.Page.PrerenderFinalStatus): void {
|
1010
|
+
this.prerenderFinalStatus = status;
|
1011
|
+
}
|
987
1012
|
}
|
988
1013
|
|
989
1014
|
export class PageDispatcher implements ProtocolProxyApi.PageDispatcher {
|
@@ -1086,7 +1111,8 @@ export class PageDispatcher implements ProtocolProxyApi.PageDispatcher {
|
|
1086
1111
|
downloadProgress(): void {
|
1087
1112
|
}
|
1088
1113
|
|
1089
|
-
prerenderAttemptCompleted(
|
1114
|
+
prerenderAttemptCompleted(params: Protocol.Page.PrerenderAttemptCompletedEvent): void {
|
1115
|
+
this.#resourceTreeModel.onPrerenderAttemptCompleted(params);
|
1090
1116
|
}
|
1091
1117
|
}
|
1092
1118
|
|
@@ -18,7 +18,7 @@ export class WebAuthnModel extends SDKModel {
|
|
18
18
|
|
19
19
|
setVirtualAuthEnvEnabled(enable: boolean): Promise<Object> {
|
20
20
|
if (enable) {
|
21
|
-
return this.#agent.invoke_enable();
|
21
|
+
return this.#agent.invoke_enable({enableUI: true});
|
22
22
|
}
|
23
23
|
return this.#agent.invoke_disable();
|
24
24
|
}
|
@@ -292,8 +292,7 @@ export class MainImpl {
|
|
292
292
|
'recordCoverageWithPerformanceTracing', 'Record coverage while performance tracing');
|
293
293
|
Root.Runtime.experiments.register('samplingHeapProfilerTimeline', 'Sampling heap profiler timeline', true);
|
294
294
|
Root.Runtime.experiments.register(
|
295
|
-
'
|
296
|
-
'Show option to take heap snapshot where globals are not treated as root');
|
295
|
+
'showOptionToExposeInternalsInHeapSnapshot', 'Show option to expose internals in heap snapshots');
|
297
296
|
Root.Runtime.experiments.register(
|
298
297
|
'sourceOrderViewer', 'Source order viewer', undefined,
|
299
298
|
'https://developer.chrome.com/blog/new-in-devtools-92/#source-order');
|
@@ -420,6 +419,7 @@ export class MainImpl {
|
|
420
419
|
'backgroundServicesNotifications',
|
421
420
|
'backgroundServicesPushMessaging',
|
422
421
|
'backgroundServicesPaymentHandler',
|
422
|
+
'bfcacheDisplayTree',
|
423
423
|
'webauthnPane',
|
424
424
|
'developerResourcesView',
|
425
425
|
]);
|
@@ -2081,6 +2081,7 @@ export function registerCommands(inspectorBackend) {
|
|
2081
2081
|
AmbientLightSensor: 'ambient-light-sensor',
|
2082
2082
|
AttributionReporting: 'attribution-reporting',
|
2083
2083
|
Autoplay: 'autoplay',
|
2084
|
+
Bluetooth: 'bluetooth',
|
2084
2085
|
BrowsingTopics: 'browsing-topics',
|
2085
2086
|
Camera: 'camera',
|
2086
2087
|
ChDpr: 'ch-dpr',
|
@@ -3073,7 +3074,7 @@ export function registerCommands(inspectorBackend) {
|
|
3073
3074
|
inspectorBackend.registerEnum('WebAuthn.Ctap2Version', {Ctap2_0: 'ctap2_0', Ctap2_1: 'ctap2_1'});
|
3074
3075
|
inspectorBackend.registerEnum(
|
3075
3076
|
'WebAuthn.AuthenticatorTransport', {Usb: 'usb', Nfc: 'nfc', Ble: 'ble', Cable: 'cable', Internal: 'internal'});
|
3076
|
-
inspectorBackend.registerCommand('WebAuthn.enable', [], []);
|
3077
|
+
inspectorBackend.registerCommand('WebAuthn.enable', [{'name': 'enableUI', 'type': 'boolean', 'optional': true}], []);
|
3077
3078
|
inspectorBackend.registerCommand('WebAuthn.disable', [], []);
|
3078
3079
|
inspectorBackend.registerCommand(
|
3079
3080
|
'WebAuthn.addVirtualAuthenticator', [{'name': 'options', 'type': 'object', 'optional': false}],
|
@@ -3223,8 +3224,13 @@ export function registerCommands(inspectorBackend) {
|
|
3223
3224
|
'Debugger.pauseOnAsyncCall', [{'name': 'parentStackTraceId', 'type': 'object', 'optional': false}], []);
|
3224
3225
|
inspectorBackend.registerCommand(
|
3225
3226
|
'Debugger.removeBreakpoint', [{'name': 'breakpointId', 'type': 'string', 'optional': false}], []);
|
3227
|
+
inspectorBackend.registerEnum('Debugger.RestartFrameRequestMode', {StepInto: 'StepInto'});
|
3226
3228
|
inspectorBackend.registerCommand(
|
3227
|
-
'Debugger.restartFrame',
|
3229
|
+
'Debugger.restartFrame',
|
3230
|
+
[
|
3231
|
+
{'name': 'callFrameId', 'type': 'string', 'optional': false},
|
3232
|
+
{'name': 'mode', 'type': 'string', 'optional': true}
|
3233
|
+
],
|
3228
3234
|
['callFrames', 'asyncStackTrace', 'asyncStackTraceId']);
|
3229
3235
|
inspectorBackend.registerCommand(
|
3230
3236
|
'Debugger.resume', [{'name': 'terminateOnResume', 'type': 'boolean', 'optional': true}], []);
|
@@ -98,6 +98,7 @@ export const generatedProperties = [
|
|
98
98
|
]
|
99
99
|
},
|
100
100
|
{'name': 'all'},
|
101
|
+
{'name': 'anchor-name', 'keywords': ['none']},
|
101
102
|
{
|
102
103
|
'longhands': [
|
103
104
|
'animation-duration', 'animation-timing-function', 'animation-delay', 'animation-iteration-count',
|
@@ -660,6 +661,7 @@ export const generatedProperties = [
|
|
660
661
|
]
|
661
662
|
},
|
662
663
|
{'name': 'position', 'keywords': ['static', 'relative', 'absolute', 'fixed', 'sticky']},
|
664
|
+
{'name': 'position-fallback', 'keywords': ['none']},
|
663
665
|
{'name': 'prefix'},
|
664
666
|
{'name': 'quotes', 'inherited': true, 'keywords': ['auto', 'none']},
|
665
667
|
{'name': 'r'},
|
@@ -866,6 +868,7 @@ export const generatedPropertyValues = {
|
|
866
868
|
'text-before-edge', 'after-edge', 'text-after-edge', 'hanging'
|
867
869
|
]
|
868
870
|
},
|
871
|
+
'anchor-name': {'values': ['none']},
|
869
872
|
'animation-direction': {'values': ['normal', 'reverse', 'alternate', 'alternate-reverse']},
|
870
873
|
'animation-fill-mode': {'values': ['none', 'forwards', 'backwards', 'both']},
|
871
874
|
'animation-iteration-count': {'values': ['infinite']},
|
@@ -1127,6 +1130,7 @@ export const generatedPropertyValues = {
|
|
1127
1130
|
]
|
1128
1131
|
},
|
1129
1132
|
'position': {'values': ['static', 'relative', 'absolute', 'fixed', 'sticky']},
|
1133
|
+
'position-fallback': {'values': ['none']},
|
1130
1134
|
'quotes': {'values': ['auto', 'none']},
|
1131
1135
|
'resize': {'values': ['none', 'both', 'horizontal', 'vertical', 'block', 'inline']},
|
1132
1136
|
'right': {'values': ['auto']},
|
@@ -2752,7 +2752,7 @@ export namespace ProtocolMapping {
|
|
2752
2752
|
* Enable the WebAuthn domain and start intercepting credential storage and
|
2753
2753
|
* retrieval with a virtual authenticator.
|
2754
2754
|
*/
|
2755
|
-
'WebAuthn.enable': {paramsType: []; returnType: void;};
|
2755
|
+
'WebAuthn.enable': {paramsType: [Protocol.WebAuthn.EnableRequest?]; returnType: void;};
|
2756
2756
|
/**
|
2757
2757
|
* Disable the WebAuthn domain.
|
2758
2758
|
*/
|
@@ -2866,7 +2866,19 @@ export namespace ProtocolMapping {
|
|
2866
2866
|
*/
|
2867
2867
|
'Debugger.removeBreakpoint': {paramsType: [Protocol.Debugger.RemoveBreakpointRequest]; returnType: void;};
|
2868
2868
|
/**
|
2869
|
-
* Restarts particular call frame from the beginning.
|
2869
|
+
* Restarts particular call frame from the beginning. The old, deprecated
|
2870
|
+
* behavior of `restartFrame` is to stay paused and allow further CDP commands
|
2871
|
+
* after a restart was scheduled. This can cause problems with restarting, so
|
2872
|
+
* we now continue execution immediatly after it has been scheduled until we
|
2873
|
+
* reach the beginning of the restarted frame.
|
2874
|
+
*
|
2875
|
+
* To stay back-wards compatible, `restartFrame` now expects a `mode`
|
2876
|
+
* parameter to be present. If the `mode` parameter is missing, `restartFrame`
|
2877
|
+
* errors out.
|
2878
|
+
*
|
2879
|
+
* The various return values are deprecated and `callFrames` is always empty.
|
2880
|
+
* Use the call frames from the `Debugger#paused` events instead, that fires
|
2881
|
+
* once V8 pauses at the beginning of the restarted function.
|
2870
2882
|
*/
|
2871
2883
|
'Debugger.restartFrame':
|
2872
2884
|
{paramsType: [Protocol.Debugger.RestartFrameRequest]; returnType: Protocol.Debugger.RestartFrameResponse;};
|
@@ -3508,7 +3508,7 @@ declare namespace ProtocolProxyApi {
|
|
3508
3508
|
* Enable the WebAuthn domain and start intercepting credential storage and
|
3509
3509
|
* retrieval with a virtual authenticator.
|
3510
3510
|
*/
|
3511
|
-
invoke_enable(): Promise<Protocol.ProtocolResponseWithError>;
|
3511
|
+
invoke_enable(params: Protocol.WebAuthn.EnableRequest): Promise<Protocol.ProtocolResponseWithError>;
|
3512
3512
|
|
3513
3513
|
/**
|
3514
3514
|
* Disable the WebAuthn domain.
|
@@ -3680,7 +3680,19 @@ declare namespace ProtocolProxyApi {
|
|
3680
3680
|
Promise<Protocol.ProtocolResponseWithError>;
|
3681
3681
|
|
3682
3682
|
/**
|
3683
|
-
* Restarts particular call frame from the beginning.
|
3683
|
+
* Restarts particular call frame from the beginning. The old, deprecated
|
3684
|
+
* behavior of `restartFrame` is to stay paused and allow further CDP commands
|
3685
|
+
* after a restart was scheduled. This can cause problems with restarting, so
|
3686
|
+
* we now continue execution immediatly after it has been scheduled until we
|
3687
|
+
* reach the beginning of the restarted frame.
|
3688
|
+
*
|
3689
|
+
* To stay back-wards compatible, `restartFrame` now expects a `mode`
|
3690
|
+
* parameter to be present. If the `mode` parameter is missing, `restartFrame`
|
3691
|
+
* errors out.
|
3692
|
+
*
|
3693
|
+
* The various return values are deprecated and `callFrames` is always empty.
|
3694
|
+
* Use the call frames from the `Debugger#paused` events instead, that fires
|
3695
|
+
* once V8 pauses at the beginning of the restarted function.
|
3684
3696
|
*/
|
3685
3697
|
invoke_restartFrame(params: Protocol.Debugger.RestartFrameRequest): Promise<Protocol.Debugger.RestartFrameResponse>;
|
3686
3698
|
|
@@ -10177,6 +10177,7 @@ export namespace Page {
|
|
10177
10177
|
AmbientLightSensor = 'ambient-light-sensor',
|
10178
10178
|
AttributionReporting = 'attribution-reporting',
|
10179
10179
|
Autoplay = 'autoplay',
|
10180
|
+
Bluetooth = 'bluetooth',
|
10180
10181
|
BrowsingTopics = 'browsing-topics',
|
10181
10182
|
Camera = 'camera',
|
10182
10183
|
ChDpr = 'ch-dpr',
|
@@ -11296,7 +11297,8 @@ export namespace Page {
|
|
11296
11297
|
*/
|
11297
11298
|
frameId: FrameId;
|
11298
11299
|
/**
|
11299
|
-
* Loader identifier.
|
11300
|
+
* Loader identifier. This is omitted in case of same-document navigation,
|
11301
|
+
* as the previously committed loaderId would not change.
|
11300
11302
|
*/
|
11301
11303
|
loaderId?: Network.LoaderId;
|
11302
11304
|
/**
|
@@ -14480,6 +14482,17 @@ export namespace WebAuthn {
|
|
14480
14482
|
largeBlob?: binary;
|
14481
14483
|
}
|
14482
14484
|
|
14485
|
+
export interface EnableRequest {
|
14486
|
+
/**
|
14487
|
+
* Whether to enable the WebAuthn user interface. Enabling the UI is
|
14488
|
+
* recommended for debugging and demo purposes, as it is closer to the real
|
14489
|
+
* experience. Disabling the UI is recommended for automated testing.
|
14490
|
+
* Supported at the embedder's discretion if UI is available.
|
14491
|
+
* Defaults to false.
|
14492
|
+
*/
|
14493
|
+
enableUI?: boolean;
|
14494
|
+
}
|
14495
|
+
|
14483
14496
|
export interface AddVirtualAuthenticatorRequest {
|
14484
14497
|
options: VirtualAuthenticatorOptions;
|
14485
14498
|
}
|
@@ -15023,11 +15036,20 @@ export namespace Debugger {
|
|
15023
15036
|
breakpointId: BreakpointId;
|
15024
15037
|
}
|
15025
15038
|
|
15039
|
+
export const enum RestartFrameRequestMode {
|
15040
|
+
StepInto = 'StepInto',
|
15041
|
+
}
|
15042
|
+
|
15026
15043
|
export interface RestartFrameRequest {
|
15027
15044
|
/**
|
15028
15045
|
* Call frame identifier to evaluate on.
|
15029
15046
|
*/
|
15030
15047
|
callFrameId: CallFrameId;
|
15048
|
+
/**
|
15049
|
+
* The `mode` parameter must be present and set to 'StepInto', otherwise
|
15050
|
+
* `restartFrame` will error out.
|
15051
|
+
*/
|
15052
|
+
mode?: RestartFrameRequestMode;
|
15031
15053
|
}
|
15032
15054
|
|
15033
15055
|
export interface RestartFrameResponse extends ProtocolResponseWithError {
|
@@ -31,8 +31,6 @@
|
|
31
31
|
// TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration
|
32
32
|
/* eslint-disable @typescript-eslint/naming-convention */
|
33
33
|
|
34
|
-
// TODO(crbug.com/1253323): Casts to UrlString will be removed from this file when migration to branded types is complete.
|
35
|
-
|
36
34
|
import * as Common from '../../core/common/common.js';
|
37
35
|
import * as Host from '../../core/host/host.js';
|
38
36
|
import * as i18n from '../../core/i18n/i18n.js';
|
@@ -503,8 +501,7 @@ export class ExtensionServer extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
503
501
|
if (message.command !== PrivateAPI.Commands.OpenResource) {
|
504
502
|
return this.status.E_BADARG('command', `expected ${PrivateAPI.Commands.OpenResource}`);
|
505
503
|
}
|
506
|
-
const uiSourceCode =
|
507
|
-
Workspace.Workspace.WorkspaceImpl.instance().uiSourceCodeForURL(message.url as Platform.DevToolsPath.UrlString);
|
504
|
+
const uiSourceCode = Workspace.Workspace.WorkspaceImpl.instance().uiSourceCodeForURL(message.url);
|
508
505
|
if (uiSourceCode) {
|
509
506
|
void Common.Revealer.reveal(uiSourceCode.uiLocation(message.lineNumber, message.columnNumber));
|
510
507
|
return this.status.OK();
|
@@ -240,6 +240,14 @@ const UIStrings = {
|
|
240
240
|
*@description Label for a button which when clicked causes some information to be refreshed/updated.
|
241
241
|
*/
|
242
242
|
refresh: 'Refresh',
|
243
|
+
/**
|
244
|
+
*@description Label for section of frame details view
|
245
|
+
*/
|
246
|
+
prerendering: 'Prerendering',
|
247
|
+
/**
|
248
|
+
*@description Label for subtitle of frame details view
|
249
|
+
*/
|
250
|
+
prerenderingStatus: 'Prerendering Status',
|
243
251
|
};
|
244
252
|
const str_ = i18n.i18n.registerUIStrings('panels/application/components/FrameDetailsView.ts', UIStrings);
|
245
253
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
@@ -253,6 +261,8 @@ export class FrameDetailsView extends UI.ThrottledWidget.ThrottledWidget {
|
|
253
261
|
this.contentElement.classList.add('overflow-auto');
|
254
262
|
this.contentElement.appendChild(this.#reportView);
|
255
263
|
this.update();
|
264
|
+
frame.resourceTreeModel().addEventListener(
|
265
|
+
SDK.ResourceTreeModel.Events.PrerenderingStatusUpdated, this.update, this);
|
256
266
|
}
|
257
267
|
|
258
268
|
async doUpdate(): Promise<void> {
|
@@ -311,6 +321,7 @@ export class FrameDetailsReportView extends HTMLElement {
|
|
311
321
|
</${PermissionsPolicySection.litTagName}>
|
312
322
|
`;
|
313
323
|
}), LitHtml.nothing)}
|
324
|
+
${this.#renderPrerenderingSection()}
|
314
325
|
${this.#protocolMonitorExperimentEnabled ? this.#renderAdditionalInfoSection() : LitHtml.nothing}
|
315
326
|
</${ReportView.ReportView.Report.litTagName}>
|
316
327
|
`, this.#shadow, {host: this});
|
@@ -750,6 +761,23 @@ export class FrameDetailsReportView extends HTMLElement {
|
|
750
761
|
return LitHtml.nothing;
|
751
762
|
}
|
752
763
|
|
764
|
+
#renderPrerenderingSection(): LitHtml.LitTemplate {
|
765
|
+
if (!this.#frame || !this.#frame.prerenderFinalStatus) {
|
766
|
+
return LitHtml.nothing;
|
767
|
+
}
|
768
|
+
|
769
|
+
return LitHtml.html`
|
770
|
+
<${ReportView.ReportView.ReportSectionHeader.litTagName}>
|
771
|
+
${i18nString(UIStrings.prerendering)}</${ReportView.ReportView.ReportSectionHeader.litTagName}>
|
772
|
+
<${ReportView.ReportView.ReportKey.litTagName}>${i18nString(UIStrings.prerenderingStatus)}</${
|
773
|
+
ReportView.ReportView.ReportKey.litTagName}>
|
774
|
+
<${ReportView.ReportView.ReportValue.litTagName}>
|
775
|
+
<div class="text-ellipsis" title=${this.#frame.prerenderFinalStatus}>${this.#frame.prerenderFinalStatus}</div>
|
776
|
+
</${ReportView.ReportView.ReportValue.litTagName}>
|
777
|
+
<${ReportView.ReportView.ReportSectionDivider.litTagName}></${
|
778
|
+
ReportView.ReportView.ReportSectionDivider.litTagName}>`;
|
779
|
+
}
|
780
|
+
|
753
781
|
#renderAdditionalInfoSection(): LitHtml.LitTemplate {
|
754
782
|
if (!this.#frame) {
|
755
783
|
return LitHtml.nothing;
|
@@ -7,8 +7,6 @@ import type * as Platform from '../../core/platform/platform.js';
|
|
7
7
|
import type * as SDK from '../../core/sdk/sdk.js';
|
8
8
|
import type * as Protocol from '../../generated/protocol.js';
|
9
9
|
|
10
|
-
// TODO(crbug.com/1253323): Casts to UrlString will be removed from this file when migration to branded types is complete.
|
11
|
-
|
12
10
|
export interface ParsedErrorFrame {
|
13
11
|
line: string;
|
14
12
|
link?: {
|
@@ -109,9 +107,8 @@ function parseOrScriptMatch(debuggerModel: SDK.DebuggerModel.DebuggerModel, url:
|
|
109
107
|
if (!url) {
|
110
108
|
return null;
|
111
109
|
}
|
112
|
-
|
113
|
-
|
114
|
-
return parsedURL.url as Platform.DevToolsPath.UrlString;
|
110
|
+
if (Common.ParsedURL.ParsedURL.isValidUrlString(url)) {
|
111
|
+
return url;
|
115
112
|
}
|
116
113
|
if (debuggerModel.scriptsForSourceURL(url).length) {
|
117
114
|
return url;
|
@@ -5,7 +5,7 @@
|
|
5
5
|
import * as Common from '../../core/common/common.js';
|
6
6
|
import * as Host from '../../core/host/host.js';
|
7
7
|
import * as i18n from '../../core/i18n/i18n.js';
|
8
|
-
import
|
8
|
+
import * as Platform from '../../core/platform/platform.js';
|
9
9
|
import type * as Protocol from '../../generated/protocol.js';
|
10
10
|
import * as SDK from '../../core/sdk/sdk.js';
|
11
11
|
import * as IssuesManager from '../../models/issues_manager/issues_manager.js';
|
@@ -79,7 +79,7 @@ export class AffectedDirectivesView extends AffectedResourcesView {
|
|
79
79
|
element.appendChild(violatedDirective);
|
80
80
|
}
|
81
81
|
|
82
|
-
#appendBlockedURL(element: Element, url:
|
82
|
+
#appendBlockedURL(element: Element, url: Platform.DevToolsPath.UrlString): void {
|
83
83
|
const info = document.createElement('td');
|
84
84
|
info.classList.add('affected-resource-directive-info');
|
85
85
|
info.textContent = url;
|
@@ -178,7 +178,8 @@ export class AffectedDirectivesView extends AffectedResourcesView {
|
|
178
178
|
this.appendSourceLocation(element, location, maybeTarget);
|
179
179
|
this.#appendStatus(element, cspIssueDetails.isReportOnly);
|
180
180
|
} else if (this.issue.code() === IssuesManager.ContentSecurityPolicyIssue.urlViolationCode) {
|
181
|
-
const url = cspIssueDetails.blockedURL ? cspIssueDetails.blockedURL :
|
181
|
+
const url = cspIssueDetails.blockedURL ? cspIssueDetails.blockedURL as Platform.DevToolsPath.UrlString :
|
182
|
+
Platform.DevToolsPath.EmptyUrlString;
|
182
183
|
this.#appendBlockedURL(element, url);
|
183
184
|
this.#appendStatus(element, cspIssueDetails.isReportOnly);
|
184
185
|
this.#appendViolatedDirective(element, cspIssueDetails.violatedDirective);
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
import * as Common from '../../core/common/common.js';
|
6
6
|
import * as i18n from '../../core/i18n/i18n.js';
|
7
|
-
import
|
7
|
+
import * as Platform from '../../core/platform/platform.js';
|
8
8
|
import * as SDK from '../../core/sdk/sdk.js';
|
9
9
|
import * as Protocol from '../../generated/protocol.js';
|
10
10
|
|
@@ -186,7 +186,7 @@ export class LighthouseController extends Common.ObjectWrapper.ObjectWrapper<Eve
|
|
186
186
|
SDK.TargetManager.SDKModelObserver<SDK.ServiceWorkerManager.ServiceWorkerManager> {
|
187
187
|
private manager?: SDK.ServiceWorkerManager.ServiceWorkerManager|null;
|
188
188
|
private serviceWorkerListeners?: Common.EventTarget.EventDescriptor[];
|
189
|
-
private inspectedURL?:
|
189
|
+
private inspectedURL?: Platform.DevToolsPath.UrlString;
|
190
190
|
|
191
191
|
constructor(protocolService: ProtocolService) {
|
192
192
|
super();
|
@@ -314,9 +314,9 @@ export class LighthouseController extends Common.ObjectWrapper.ObjectWrapper<Eve
|
|
314
314
|
return '';
|
315
315
|
}
|
316
316
|
|
317
|
-
private async evaluateInspectedURL(): Promise<
|
317
|
+
private async evaluateInspectedURL(): Promise<Platform.DevToolsPath.UrlString> {
|
318
318
|
if (!this.manager) {
|
319
|
-
return
|
319
|
+
return Platform.DevToolsPath.EmptyUrlString;
|
320
320
|
}
|
321
321
|
const mainTarget = this.manager.target();
|
322
322
|
// target.inspectedURL is reliably populated, however it lacks any url #hash
|
@@ -331,7 +331,7 @@ export class LighthouseController extends Common.ObjectWrapper.ObjectWrapper<Eve
|
|
331
331
|
|
332
332
|
const {currentIndex, entries} = navHistory;
|
333
333
|
const navigationEntry = entries[currentIndex];
|
334
|
-
return navigationEntry.url;
|
334
|
+
return navigationEntry.url as Platform.DevToolsPath.UrlString;
|
335
335
|
}
|
336
336
|
|
337
337
|
getFlags(): {
|
@@ -365,7 +365,7 @@ export class LighthouseController extends Common.ObjectWrapper.ObjectWrapper<Eve
|
|
365
365
|
return categoryIDs;
|
366
366
|
}
|
367
367
|
|
368
|
-
async getInspectedURL(options?: {force: boolean}): Promise<
|
368
|
+
async getInspectedURL(options?: {force: boolean}): Promise<Platform.DevToolsPath.UrlString> {
|
369
369
|
if (options && options.force || !this.inspectedURL) {
|
370
370
|
this.inspectedURL = await this.evaluateInspectedURL();
|
371
371
|
}
|
@@ -5,7 +5,6 @@
|
|
5
5
|
import * as Common from '../../core/common/common.js';
|
6
6
|
import * as Host from '../../core/host/host.js';
|
7
7
|
import * as i18n from '../../core/i18n/i18n.js';
|
8
|
-
import type * as Platform from '../../core/platform/platform.js';
|
9
8
|
import * as Root from '../../core/root/root.js';
|
10
9
|
import * as SDK from '../../core/sdk/sdk.js';
|
11
10
|
import * as EmulationModel from '../../models/emulation/emulation.js';
|
@@ -503,8 +502,7 @@ export class LighthousePanel extends UI.Panel.Panel {
|
|
503
502
|
}
|
504
503
|
// reload to reset the page state
|
505
504
|
const inspectedURL = await this.controller.getInspectedURL();
|
506
|
-
|
507
|
-
await resourceTreeModel.navigate(inspectedURL as Platform.DevToolsPath.UrlString);
|
505
|
+
await resourceTreeModel.navigate(inspectedURL);
|
508
506
|
}
|
509
507
|
|
510
508
|
wasShown(): void {
|
@@ -4,6 +4,7 @@
|
|
4
4
|
|
5
5
|
import * as i18n from '../../core/i18n/i18n.js';
|
6
6
|
import type * as ProtocolClient from '../../core/protocol_client/protocol_client.js';
|
7
|
+
import type * as Platform from '../../core/platform/platform.js';
|
7
8
|
import * as SDK from '../../core/sdk/sdk.js';
|
8
9
|
|
9
10
|
import type * as ReportRenderer from './LighthouseReporterTypes.js';
|
@@ -45,7 +46,7 @@ LighthouseWorkerService ││ Either ConnectionProxy or LegacyPort
|
|
45
46
|
let lastId = 1;
|
46
47
|
|
47
48
|
export interface LighthouseRun {
|
48
|
-
inspectedURL:
|
49
|
+
inspectedURL: Platform.DevToolsPath.UrlString;
|
49
50
|
categoryIDs: string[];
|
50
51
|
flags: Record<string, Object|undefined>;
|
51
52
|
}
|
@@ -36,6 +36,7 @@ import * as Common from '../../core/common/common.js';
|
|
36
36
|
import * as Host from '../../core/host/host.js';
|
37
37
|
import * as i18n from '../../core/i18n/i18n.js';
|
38
38
|
import * as Platform from '../../core/platform/platform.js';
|
39
|
+
import * as Root from '../../core/root/root.js';
|
39
40
|
import * as SDK from '../../core/sdk/sdk.js';
|
40
41
|
import * as Protocol from '../../generated/protocol.js';
|
41
42
|
import * as Bindings from '../../models/bindings/bindings.js';
|
@@ -1583,10 +1584,12 @@ export class NetworkLogView extends Common.ObjectWrapper.eventMixin<EventTypes,
|
|
1583
1584
|
|
1584
1585
|
contextMenu.saveSection().appendItem(i18nString(UIStrings.saveAllAsHarWithContent), this.exportAll.bind(this));
|
1585
1586
|
|
1586
|
-
|
1587
|
-
|
1588
|
-
|
1589
|
-
|
1587
|
+
if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.HEADER_OVERRIDES)) {
|
1588
|
+
contextMenu.editSection().appendItem(
|
1589
|
+
i18nString(UIStrings.createResponseHeaderOverride),
|
1590
|
+
this.#handleCreateResponseHeaderOverrideClick.bind(this, request));
|
1591
|
+
contextMenu.editSection().appendSeparator();
|
1592
|
+
}
|
1590
1593
|
contextMenu.editSection().appendItem(i18nString(UIStrings.clearBrowserCache), this.clearBrowserCache.bind(this));
|
1591
1594
|
contextMenu.editSection().appendItem(
|
1592
1595
|
i18nString(UIStrings.clearBrowserCookies), this.clearBrowserCookies.bind(this));
|
@@ -388,13 +388,13 @@ export const _filterTypes: UI.FilterBar.Item[] = [
|
|
388
388
|
];
|
389
389
|
|
390
390
|
export class ResourceWebSocketFrameNode extends DataGrid.SortableDataGrid.SortableDataGridNode<unknown> {
|
391
|
-
private readonly url:
|
391
|
+
private readonly url: Platform.DevToolsPath.UrlString;
|
392
392
|
readonly frame: SDK.NetworkRequest.WebSocketFrame;
|
393
393
|
private readonly isTextFrame: boolean;
|
394
394
|
private dataTextInternal: string;
|
395
395
|
private binaryViewInternal: BinaryResourceView|null;
|
396
396
|
|
397
|
-
constructor(url:
|
397
|
+
constructor(url: Platform.DevToolsPath.UrlString, frame: SDK.NetworkRequest.WebSocketFrame) {
|
398
398
|
let length = String(frame.text.length);
|
399
399
|
const time = new Date(frame.time * 1000);
|
400
400
|
const timeText = ('0' + time.getHours()).substr(-2) + ':' + ('0' + time.getMinutes()).substr(-2) + ':' +
|
@@ -183,8 +183,7 @@ const UIStrings = {
|
|
183
183
|
/**
|
184
184
|
*@description Text in Heap Snapshot View of a profiler tool
|
185
185
|
*/
|
186
|
-
|
187
|
-
'Treat global objects as roots (recommended, unchecking this exposes internal nodes and introduces excessive detail, but might help debugging cycles in retaining paths)',
|
186
|
+
exposeInternals: 'Expose internals (includes additional implementation-specific details)',
|
188
187
|
/**
|
189
188
|
*@description Text in Heap Snapshot View of a profiler tool
|
190
189
|
* This option turns on inclusion of numerical values in the heap snapshot.
|
@@ -1182,7 +1181,7 @@ export class StatisticsPerspective extends Perspective {
|
|
1182
1181
|
export class HeapSnapshotProfileType extends
|
1183
1182
|
Common.ObjectWrapper.eventMixin<HeapSnapshotProfileTypeEventTypes, typeof ProfileType>(ProfileType)
|
1184
1183
|
implements SDK.TargetManager.SDKModelObserver<SDK.HeapProfilerModel.HeapProfilerModel> {
|
1185
|
-
readonly
|
1184
|
+
readonly exposeInternals: Common.Settings.Setting<boolean>;
|
1186
1185
|
readonly captureNumericValue: Common.Settings.Setting<boolean>;
|
1187
1186
|
customContentInternal: HTMLElement|null;
|
1188
1187
|
constructor(id?: string, title?: string) {
|
@@ -1196,8 +1195,7 @@ export class HeapSnapshotProfileType extends
|
|
1196
1195
|
SDK.TargetManager.TargetManager.instance().addModelListener(
|
1197
1196
|
SDK.HeapProfilerModel.HeapProfilerModel, SDK.HeapProfilerModel.Events.ReportHeapSnapshotProgress,
|
1198
1197
|
this.reportHeapSnapshotProgress, this);
|
1199
|
-
this.
|
1200
|
-
Common.Settings.Settings.instance().createSetting('treatGlobalObjectsAsRoots', true);
|
1198
|
+
this.exposeInternals = Common.Settings.Settings.instance().createSetting('exposeInternals', false);
|
1201
1199
|
this.captureNumericValue = Common.Settings.Settings.instance().createSetting('captureNumericValue', false);
|
1202
1200
|
this.customContentInternal = null;
|
1203
1201
|
}
|
@@ -1241,13 +1239,13 @@ export class HeapSnapshotProfileType extends
|
|
1241
1239
|
|
1242
1240
|
customContent(): Element|null {
|
1243
1241
|
const optionsContainer = document.createElement('div');
|
1244
|
-
const
|
1245
|
-
Root.Runtime.experiments.isEnabled('
|
1246
|
-
const omitParagraphElement = !
|
1247
|
-
if (
|
1248
|
-
const
|
1249
|
-
i18nString(UIStrings.
|
1250
|
-
optionsContainer.appendChild(
|
1242
|
+
const showOptionToExposeInternalsInHeapSnapshot =
|
1243
|
+
Root.Runtime.experiments.isEnabled('showOptionToExposeInternalsInHeapSnapshot');
|
1244
|
+
const omitParagraphElement = !showOptionToExposeInternalsInHeapSnapshot;
|
1245
|
+
if (showOptionToExposeInternalsInHeapSnapshot) {
|
1246
|
+
const exposeInternalsInHeapSnapshotCheckbox = UI.SettingsUI.createSettingCheckbox(
|
1247
|
+
i18nString(UIStrings.exposeInternals), this.exposeInternals, omitParagraphElement);
|
1248
|
+
optionsContainer.appendChild(exposeInternalsInHeapSnapshotCheckbox);
|
1251
1249
|
}
|
1252
1250
|
const captureNumericValueCheckbox = UI.SettingsUI.createSettingCheckbox(
|
1253
1251
|
UIStrings.captureNumericValue, this.captureNumericValue, omitParagraphElement);
|
@@ -1284,8 +1282,8 @@ export class HeapSnapshotProfileType extends
|
|
1284
1282
|
|
1285
1283
|
await heapProfilerModel.takeHeapSnapshot({
|
1286
1284
|
reportProgress: true,
|
1287
|
-
treatGlobalObjectsAsRoots: this.treatGlobalObjectsAsRoots.get(),
|
1288
1285
|
captureNumericValue: this.captureNumericValue.get(),
|
1286
|
+
exposeInternals: this.exposeInternals.get(),
|
1289
1287
|
});
|
1290
1288
|
profile = this.profileBeingRecorded() as HeapProfileHeader;
|
1291
1289
|
if (!profile) {
|
@@ -292,7 +292,6 @@ export class LiveHeapProfileView extends UI.Widget.VBox {
|
|
292
292
|
if (!node || !node.url) {
|
293
293
|
return;
|
294
294
|
}
|
295
|
-
// TODO(crbug.com/1253323): Cast to UrlString will be removed when migration to branded types is complete.
|
296
295
|
const sourceCode =
|
297
296
|
Workspace.Workspace.WorkspaceImpl.instance().uiSourceCodeForURL(node.url as Platform.DevToolsPath.UrlString);
|
298
297
|
if (sourceCode) {
|
@@ -744,7 +744,6 @@ export class ScreencastView extends UI.Widget.VBox implements SDK.OverlayModel.H
|
|
744
744
|
if (match) {
|
745
745
|
url = match[1];
|
746
746
|
}
|
747
|
-
// TODO(crbug.com/1253323): Cast to UrlString will be removed when migration to branded types is complete.
|
748
747
|
Host.InspectorFrontendHost.InspectorFrontendHostInstance.inspectedURLChanged(
|
749
748
|
url as Platform.DevToolsPath.UrlString);
|
750
749
|
this.navigationUrl.value = decodeURI(url);
|
@@ -509,7 +509,6 @@ export class ActionDelegate implements UI.ActionRegistration.ActionDelegate {
|
|
509
509
|
case 'settings.show':
|
510
510
|
void SettingsScreen.showSettingsScreen({focusTabHeader: true} as ShowSettingsScreenOptions);
|
511
511
|
return true;
|
512
|
-
// TODO(crbug.com/1253323): Cast to UrlString will be removed when migration to branded types is complete.
|
513
512
|
case 'settings.documentation':
|
514
513
|
Host.InspectorFrontendHost.InspectorFrontendHostInstance.openInNewTab(UI.UIUtils.addReferrerToURL(
|
515
514
|
'https://developer.chrome.com/docs/devtools/' as Platform.DevToolsPath.UrlString));
|
@@ -28,8 +28,6 @@
|
|
28
28
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
29
29
|
*/
|
30
30
|
|
31
|
-
// TODO(crbug.com/1253323): Casts to Branded Types will be removed from this file when migration to branded types is complete.
|
32
|
-
|
33
31
|
import * as Common from '../../core/common/common.js';
|
34
32
|
import * as Host from '../../core/host/host.js';
|
35
33
|
import * as i18n from '../../core/i18n/i18n.js';
|
@@ -28,8 +28,6 @@
|
|
28
28
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
29
29
|
*/
|
30
30
|
|
31
|
-
// TODO(crbug.com/1253323): Casts to Branded Types will be removed from this file when migration to branded types is complete.
|
32
|
-
|
33
31
|
import * as Common from '../../core/common/common.js';
|
34
32
|
import * as Platform from '../../core/platform/platform.js';
|
35
33
|
import * as Bindings from '../../models/bindings/bindings.js';
|
package/package.json
CHANGED