chrome-devtools-frontend 1.0.1660788 → 1.0.1662289
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/.agents/skills/evaluate-ai-css-completion/SKILL.md +143 -0
- package/.agents/skills/evaluate-ai-css-completion/scripts/evaluate.js +104 -0
- package/.agents/skills/migrate-chromium-test/SKILL.md +7 -2
- package/.agents/skills/ui-eng-vision-local-lit-renderer/SKILL.md +7 -1
- package/docs/ui_engineering.md +75 -42
- package/eslint.config.mjs +7 -0
- package/extension-api/ExtensionAPI.d.ts +88 -0
- package/front_end/core/common/SettingRegistration.ts +0 -5
- package/front_end/core/host/InspectorFrontendHost.ts +1 -0
- package/front_end/core/host/InspectorFrontendHostStub.ts +2 -0
- package/front_end/core/platform/ArrayUtilities.ts +10 -0
- package/front_end/core/platform/StringUtilities.ts +20 -4
- package/front_end/core/sdk/CPUThrottlingManager.ts +2 -0
- package/front_end/core/sdk/DOMDebuggerModel.ts +2 -0
- package/front_end/core/sdk/DOMModel.ts +1 -0
- package/front_end/core/sdk/DebuggerModel.ts +4 -4
- package/front_end/core/sdk/EventBreakpointsModel.ts +2 -0
- package/front_end/core/sdk/FrameManager.ts +1 -0
- package/front_end/core/sdk/IsolateManager.ts +1 -0
- package/front_end/core/sdk/NetworkManager.ts +2 -0
- package/front_end/core/sdk/NetworkRequest.ts +1 -0
- package/front_end/core/sdk/PageResourceLoader.ts +2 -0
- package/front_end/core/sdk/SourceMap.ts +5 -5
- package/front_end/core/sdk/SourceMapManager.ts +3 -2
- package/front_end/core/sdk/TargetManager.ts +4 -0
- package/front_end/entrypoints/main/MainImpl.ts +2 -1
- package/front_end/foundation/README.md +86 -0
- package/front_end/generated/InspectorBackendCommands.ts +4 -5
- package/front_end/generated/protocol.ts +20 -38
- package/front_end/models/bindings/CompilerScriptMapping.ts +5 -5
- package/front_end/models/bindings/ContentProviderBasedProject.ts +2 -3
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +3 -3
- package/front_end/models/bindings/DefaultScriptMapping.ts +3 -3
- package/front_end/models/bindings/ResourceMapping.ts +3 -3
- package/front_end/models/bindings/ResourceScriptMapping.ts +2 -2
- package/front_end/models/bindings/SASSSourceMapping.ts +3 -3
- package/front_end/models/bindings/TempFile.ts +8 -3
- package/front_end/models/extensions/ExtensionAPI.ts +110 -46
- package/front_end/models/extensions/RecorderExtensionEndpoint.ts +7 -5
- package/front_end/models/formatter/ScriptFormatter.ts +8 -11
- package/front_end/models/heap_snapshot/HeapSnapshotProxy.ts +14 -5
- package/front_end/models/issues_manager/CheckFormsIssuesTrigger.ts +8 -9
- package/front_end/models/issues_manager/CookieIssue.ts +21 -9
- package/front_end/models/issues_manager/Issue.ts +3 -4
- package/front_end/models/issues_manager/IssueAggregator.ts +0 -9
- package/front_end/models/issues_manager/IssueResolver.ts +2 -2
- package/front_end/models/issues_manager/IssuesManager.ts +136 -137
- package/front_end/models/issues_manager/RelatedIssue.ts +10 -8
- package/front_end/models/issues_manager/issues_manager.ts +0 -2
- package/front_end/models/javascript_metadata/NativeFunctions.js +1 -1
- package/front_end/models/logs/RequestResolver.ts +2 -2
- package/front_end/models/source_map_scopes/FunctionCodeResolver.ts +12 -9
- package/front_end/models/trace/handlers/FramesHandler.ts +4 -7
- package/front_end/models/trace/handlers/ModelHandlers.ts +0 -1
- package/front_end/models/trace/handlers/RendererHandler.ts +2 -15
- package/front_end/models/trace/handlers/Threads.ts +4 -11
- package/front_end/models/trace/insights/DOMSize.ts +1 -1
- package/front_end/models/workspace_diff/WorkspaceDiff.ts +10 -4
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +2 -1
- package/front_end/panels/application/ApplicationPanelSidebar.ts +0 -44
- package/front_end/panels/application/CookieItemsView.ts +1 -1
- package/front_end/panels/application/ServiceWorkersView.ts +494 -411
- package/front_end/panels/application/WebMCPView.ts +38 -43
- package/front_end/panels/application/application.ts +0 -6
- package/front_end/panels/application/components/AdsView.ts +201 -30
- package/front_end/panels/application/components/adsView.css +25 -0
- package/front_end/panels/application/components/components.ts +0 -2
- package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +1 -1
- package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +2 -2
- package/front_end/panels/application/serviceWorkersView.css +40 -4
- package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +147 -123
- package/front_end/panels/common/ExtensionServer.ts +3 -3
- package/front_end/panels/console/ConsoleView.ts +3 -2
- package/front_end/panels/console/PromptBuilder.ts +2 -1
- package/front_end/panels/emulation/DeviceModeView.ts +164 -113
- package/front_end/panels/issues/AffectedResourcesView.ts +1 -1
- package/front_end/panels/issues/IssueView.ts +0 -2
- package/front_end/panels/issues/IssuesPane.ts +1 -8
- package/front_end/panels/js_timeline/js_timeline-meta.ts +3 -2
- package/front_end/panels/lighthouse/LighthouseProtocolService.ts +53 -12
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorController.ts +3 -3
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +5 -5
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +4 -4
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +2 -2
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +6 -6
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +3 -3
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +8 -9
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplayUtils.ts +2 -2
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +1 -1
- package/front_end/panels/linear_memory_inspector/linear_memory_inspector-meta.ts +2 -2
- package/front_end/panels/network/RequestPayloadView.ts +92 -52
- package/front_end/panels/network/RequestTimingView.ts +95 -127
- package/front_end/panels/network/components/ResponseHeaderSection.ts +5 -3
- package/front_end/panels/profiler/HeapSnapshotView.ts +3 -3
- package/front_end/panels/profiler/WritableProfileHeader.ts +2 -2
- package/front_end/panels/recorder/{components/ControlButton.ts → ControlButton.ts} +9 -10
- package/front_end/panels/recorder/{components/CreateRecordingView.ts → CreateRecordingView.ts} +48 -47
- package/front_end/panels/recorder/{components/ExtensionView.ts → ExtensionView.ts} +8 -8
- package/front_end/panels/recorder/RecorderController.ts +302 -127
- package/front_end/panels/recorder/RecorderPanel.ts +1 -1
- package/front_end/panels/recorder/{components/RecordingListView.ts → RecordingListView.ts} +19 -20
- package/front_end/panels/recorder/{components/RecordingView.ts → RecordingView.ts} +88 -88
- package/front_end/panels/recorder/{components/ReplaySection.ts → ReplaySection.ts} +11 -11
- package/front_end/panels/recorder/{components/SelectorPicker.ts → SelectorPicker.ts} +13 -13
- package/front_end/panels/recorder/{components/StepEditor.ts → StepEditor.ts} +15 -15
- package/front_end/panels/recorder/{components/StepView.ts → StepView.ts} +10 -10
- package/front_end/panels/recorder/{components/TimelineSection.ts → TimelineSection.ts} +2 -2
- package/front_end/panels/recorder/recorder.ts +23 -1
- package/front_end/panels/recorder/util/util.ts +113 -0
- package/front_end/panels/sources/SourcesView.ts +0 -17
- package/front_end/panels/sources/TabbedEditorContainer.ts +1 -1
- package/front_end/panels/sources/UISourceCodeFrame.ts +42 -0
- package/front_end/panels/sources/sources.ts +0 -2
- package/front_end/panels/timeline/CompatibilityTracksAppender.ts +0 -17
- package/front_end/panels/timeline/IsolateSelector.ts +10 -8
- package/front_end/panels/timeline/ThreadAppender.ts +0 -106
- package/front_end/panels/timeline/TimelinePanel.ts +18 -7
- package/front_end/panels/timeline/TimelineUIUtils.ts +144 -129
- package/front_end/panels/timeline/timeline-meta.ts +3 -2
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/ui/components/report_view/ReportView.ts +11 -5
- package/front_end/ui/components/report_view/report.css +4 -1
- package/front_end/ui/legacy/TextPrompt.ts +49 -1
- package/front_end/ui/legacy/Treeoutline.ts +3 -0
- package/front_end/ui/legacy/UIUtils.ts +11 -1
- package/front_end/ui/legacy/Widget.ts +14 -15
- package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +2 -2
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +11 -7
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +2 -1
- package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +10 -1
- package/front_end/ui/legacy/textPrompt.css +10 -0
- package/front_end/ui/visual_logging/KnownContextValues.ts +1 -0
- package/package.json +1 -1
- package/front_end/models/issues_manager/AttributionReportingIssue.ts +0 -247
- package/front_end/models/issues_manager/descriptions/arInsecureContext.md +0 -7
- package/front_end/models/issues_manager/descriptions/arInvalidInfoHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +0 -6
- package/front_end/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNoWebOrOsSupport.md +0 -4
- package/front_end/models/issues_manager/descriptions/arOsSourceIgnored.md +0 -18
- package/front_end/models/issues_manager/descriptions/arOsTriggerIgnored.md +0 -19
- package/front_end/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +0 -8
- package/front_end/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +0 -9
- package/front_end/models/issues_manager/descriptions/arSourceIgnored.md +0 -13
- package/front_end/models/issues_manager/descriptions/arTriggerIgnored.md +0 -12
- package/front_end/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +0 -10
- package/front_end/models/issues_manager/descriptions/arWebAndOsHeaders.md +0 -11
- package/front_end/models/trace/handlers/AuctionWorkletsHandler.ts +0 -183
- package/front_end/panels/application/InterestGroupStorageModel.ts +0 -81
- package/front_end/panels/application/InterestGroupStorageView.ts +0 -151
- package/front_end/panels/application/InterestGroupTreeElement.ts +0 -65
- package/front_end/panels/application/components/InterestGroupAccessGrid.ts +0 -135
- package/front_end/panels/application/components/interestGroupAccessGrid.css +0 -27
- package/front_end/panels/application/interestGroupStorageView.css +0 -9
- package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +0 -182
- package/front_end/panels/recorder/components/components.ts +0 -25
- package/front_end/panels/recorder/components/util.ts +0 -116
- package/front_end/panels/sources/InplaceFormatterEditorAction.ts +0 -149
- /package/front_end/panels/recorder/{components/controlButton.css → controlButton.css} +0 -0
- /package/front_end/panels/recorder/{components/createRecordingView.css → createRecordingView.css} +0 -0
- /package/front_end/panels/recorder/{components/extensionView.css → extensionView.css} +0 -0
- /package/front_end/panels/recorder/{components/recordingListView.css → recordingListView.css} +0 -0
- /package/front_end/panels/recorder/{components/recordingView.css → recordingView.css} +0 -0
- /package/front_end/panels/recorder/{components/replaySection.css → replaySection.css} +0 -0
- /package/front_end/panels/recorder/{components/selectorPicker.css → selectorPicker.css} +0 -0
- /package/front_end/panels/recorder/{components/startView.css → startView.css} +0 -0
- /package/front_end/panels/recorder/{components/stepEditor.css → stepEditor.css} +0 -0
- /package/front_end/panels/recorder/{components/stepView.css → stepView.css} +0 -0
- /package/front_end/panels/recorder/{components/timelineSection.css → timelineSection.css} +0 -0
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
5
|
import * as Common from '../../core/common/common.js';
|
|
6
|
+
import * as Root from '../../core/root/root.js';
|
|
6
7
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
7
8
|
import * as Protocol from '../../generated/protocol.js';
|
|
8
9
|
|
|
9
|
-
import {AttributionReportingIssue} from './AttributionReportingIssue.js';
|
|
10
10
|
import {BounceTrackingIssue} from './BounceTrackingIssue.js';
|
|
11
11
|
import {ClientHintIssue} from './ClientHintIssue.js';
|
|
12
12
|
import {ConnectionAllowlistIssue} from './ConnectionAllowlistIssue.js';
|
|
@@ -38,8 +38,6 @@ import {UnencodedDigestIssue} from './UnencodedDigestIssue.js';
|
|
|
38
38
|
|
|
39
39
|
export {Events} from './IssuesManagerEvents.js';
|
|
40
40
|
|
|
41
|
-
let issuesManagerInstance: IssuesManager|null = null;
|
|
42
|
-
|
|
43
41
|
function createIssuesForBlockedByResponseIssue(
|
|
44
42
|
issuesModel: SDK.IssuesModel.IssuesModel|null,
|
|
45
43
|
inspectorIssue: Protocol.Audits.InspectorIssue): CrossOriginEmbedderPolicyIssue[] {
|
|
@@ -54,111 +52,109 @@ function createIssuesForBlockedByResponseIssue(
|
|
|
54
52
|
return [];
|
|
55
53
|
}
|
|
56
54
|
|
|
57
|
-
const issueCodeHandlers =
|
|
58
|
-
Protocol.Audits.InspectorIssueCode,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
],
|
|
161
|
-
]);
|
|
55
|
+
const issueCodeHandlers =
|
|
56
|
+
new Map<Protocol.Audits.InspectorIssueCode,
|
|
57
|
+
(model: SDK.IssuesModel.IssuesModel|null, inspectorIssue: Protocol.Audits.InspectorIssue,
|
|
58
|
+
frameManager: SDK.FrameManager.FrameManager) => Issue[]>(
|
|
59
|
+
[
|
|
60
|
+
[
|
|
61
|
+
Protocol.Audits.InspectorIssueCode.CookieIssue,
|
|
62
|
+
CookieIssue.fromInspectorIssue,
|
|
63
|
+
],
|
|
64
|
+
[
|
|
65
|
+
Protocol.Audits.InspectorIssueCode.MixedContentIssue,
|
|
66
|
+
MixedContentIssue.fromInspectorIssue,
|
|
67
|
+
],
|
|
68
|
+
[
|
|
69
|
+
Protocol.Audits.InspectorIssueCode.HeavyAdIssue,
|
|
70
|
+
HeavyAdIssue.fromInspectorIssue,
|
|
71
|
+
],
|
|
72
|
+
[
|
|
73
|
+
Protocol.Audits.InspectorIssueCode.ContentSecurityPolicyIssue,
|
|
74
|
+
ContentSecurityPolicyIssue.fromInspectorIssue,
|
|
75
|
+
],
|
|
76
|
+
[Protocol.Audits.InspectorIssueCode.BlockedByResponseIssue, createIssuesForBlockedByResponseIssue],
|
|
77
|
+
[
|
|
78
|
+
Protocol.Audits.InspectorIssueCode.SharedArrayBufferIssue,
|
|
79
|
+
SharedArrayBufferIssue.fromInspectorIssue,
|
|
80
|
+
],
|
|
81
|
+
[
|
|
82
|
+
Protocol.Audits.InspectorIssueCode.SharedDictionaryIssue,
|
|
83
|
+
SharedDictionaryIssue.fromInspectorIssue,
|
|
84
|
+
],
|
|
85
|
+
[
|
|
86
|
+
Protocol.Audits.InspectorIssueCode.CorsIssue,
|
|
87
|
+
CorsIssue.fromInspectorIssue,
|
|
88
|
+
],
|
|
89
|
+
[
|
|
90
|
+
Protocol.Audits.InspectorIssueCode.QuirksModeIssue,
|
|
91
|
+
QuirksModeIssue.fromInspectorIssue,
|
|
92
|
+
],
|
|
93
|
+
[
|
|
94
|
+
Protocol.Audits.InspectorIssueCode.GenericIssue,
|
|
95
|
+
GenericIssue.fromInspectorIssue,
|
|
96
|
+
],
|
|
97
|
+
[
|
|
98
|
+
Protocol.Audits.InspectorIssueCode.DeprecationIssue,
|
|
99
|
+
DeprecationIssue.fromInspectorIssue,
|
|
100
|
+
],
|
|
101
|
+
[
|
|
102
|
+
Protocol.Audits.InspectorIssueCode.ClientHintIssue,
|
|
103
|
+
ClientHintIssue.fromInspectorIssue,
|
|
104
|
+
],
|
|
105
|
+
[
|
|
106
|
+
Protocol.Audits.InspectorIssueCode.EmailVerificationRequestIssue,
|
|
107
|
+
EmailVerificationRequestIssue.fromInspectorIssue,
|
|
108
|
+
],
|
|
109
|
+
[
|
|
110
|
+
Protocol.Audits.InspectorIssueCode.FederatedAuthRequestIssue,
|
|
111
|
+
FederatedAuthRequestIssue.fromInspectorIssue,
|
|
112
|
+
],
|
|
113
|
+
[
|
|
114
|
+
Protocol.Audits.InspectorIssueCode.BounceTrackingIssue,
|
|
115
|
+
BounceTrackingIssue.fromInspectorIssue,
|
|
116
|
+
],
|
|
117
|
+
[
|
|
118
|
+
Protocol.Audits.InspectorIssueCode.StylesheetLoadingIssue,
|
|
119
|
+
StylesheetLoadingIssue.fromInspectorIssue,
|
|
120
|
+
],
|
|
121
|
+
[
|
|
122
|
+
Protocol.Audits.InspectorIssueCode.PartitioningBlobURLIssue,
|
|
123
|
+
PartitioningBlobURLIssue.fromInspectorIssue,
|
|
124
|
+
],
|
|
125
|
+
[
|
|
126
|
+
Protocol.Audits.InspectorIssueCode.PropertyRuleIssue,
|
|
127
|
+
PropertyRuleIssue.fromInspectorIssue,
|
|
128
|
+
],
|
|
129
|
+
[
|
|
130
|
+
Protocol.Audits.InspectorIssueCode.CookieDeprecationMetadataIssue,
|
|
131
|
+
CookieDeprecationMetadataIssue.fromInspectorIssue,
|
|
132
|
+
],
|
|
133
|
+
[
|
|
134
|
+
Protocol.Audits.InspectorIssueCode.ElementAccessibilityIssue,
|
|
135
|
+
ElementAccessibilityIssue.fromInspectorIssue,
|
|
136
|
+
],
|
|
137
|
+
[
|
|
138
|
+
Protocol.Audits.InspectorIssueCode.SRIMessageSignatureIssue,
|
|
139
|
+
SRIMessageSignatureIssue.fromInspectorIssue,
|
|
140
|
+
],
|
|
141
|
+
[
|
|
142
|
+
Protocol.Audits.InspectorIssueCode.UnencodedDigestIssue,
|
|
143
|
+
UnencodedDigestIssue.fromInspectorIssue,
|
|
144
|
+
],
|
|
145
|
+
[
|
|
146
|
+
Protocol.Audits.InspectorIssueCode.ConnectionAllowlistIssue,
|
|
147
|
+
ConnectionAllowlistIssue.fromInspectorIssue,
|
|
148
|
+
],
|
|
149
|
+
[
|
|
150
|
+
Protocol.Audits.InspectorIssueCode.PermissionElementIssue,
|
|
151
|
+
PermissionElementIssue.fromInspectorIssue,
|
|
152
|
+
],
|
|
153
|
+
[
|
|
154
|
+
Protocol.Audits.InspectorIssueCode.SelectivePermissionsInterventionIssue,
|
|
155
|
+
SelectivePermissionsInterventionIssue.fromInspectorIssue,
|
|
156
|
+
],
|
|
157
|
+
]);
|
|
162
158
|
|
|
163
159
|
export function isIssueCodeSupported(code: Protocol.Audits.InspectorIssueCode): boolean {
|
|
164
160
|
return issueCodeHandlers.has(code);
|
|
@@ -169,10 +165,11 @@ export function isIssueCodeSupported(code: Protocol.Audits.InspectorIssueCode):
|
|
|
169
165
|
* Handlers are simple functions hard-coded into a map.
|
|
170
166
|
*/
|
|
171
167
|
export function createIssuesFromProtocolIssue(
|
|
172
|
-
issuesModel: SDK.IssuesModel.IssuesModel|null, inspectorIssue: Protocol.Audits.InspectorIssue
|
|
168
|
+
issuesModel: SDK.IssuesModel.IssuesModel|null, inspectorIssue: Protocol.Audits.InspectorIssue,
|
|
169
|
+
frameManager: SDK.FrameManager.FrameManager = SDK.FrameManager.FrameManager.instance()): Issue[] {
|
|
173
170
|
const handler = issueCodeHandlers.get(inspectorIssue.code);
|
|
174
171
|
if (handler) {
|
|
175
|
-
return handler(issuesModel, inspectorIssue);
|
|
172
|
+
return handler(issuesModel, inspectorIssue, frameManager);
|
|
176
173
|
}
|
|
177
174
|
console.warn(`No handler registered for issue code ${inspectorIssue.code}`);
|
|
178
175
|
return [];
|
|
@@ -199,9 +196,9 @@ export function defaultHideIssueByCodeSetting(): HideIssueMenuSetting {
|
|
|
199
196
|
return setting;
|
|
200
197
|
}
|
|
201
198
|
|
|
202
|
-
export function getHideIssueByCodeSetting(
|
|
203
|
-
|
|
204
|
-
|
|
199
|
+
export function getHideIssueByCodeSetting(settings: Common.Settings.Settings = Common.Settings.Settings.instance()):
|
|
200
|
+
Common.Settings.Setting<HideIssueMenuSetting> {
|
|
201
|
+
return settings.createSetting('hide-issue-by-code-setting-experiment-2021', defaultHideIssueByCodeSetting());
|
|
205
202
|
}
|
|
206
203
|
|
|
207
204
|
/**
|
|
@@ -226,17 +223,20 @@ export class IssuesManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
|
|
|
226
223
|
#issuesById = new Map<string, Issue>();
|
|
227
224
|
#issuesByOutermostTarget: WeakMap<SDK.Target.Target, Set<Issue>> = new Map();
|
|
228
225
|
#frameManager: SDK.FrameManager.FrameManager;
|
|
226
|
+
#targetManager: SDK.TargetManager.TargetManager;
|
|
229
227
|
|
|
230
228
|
constructor(private readonly showThirdPartyIssuesSetting?: Common.Settings.Setting<boolean>,
|
|
231
229
|
private readonly hideIssueSetting?: Common.Settings.Setting<HideIssueMenuSetting>,
|
|
232
|
-
frameManager: SDK.FrameManager.FrameManager = SDK.FrameManager.FrameManager.instance()
|
|
230
|
+
frameManager: SDK.FrameManager.FrameManager = SDK.FrameManager.FrameManager.instance(),
|
|
231
|
+
targetManager: SDK.TargetManager.TargetManager = SDK.TargetManager.TargetManager.instance()) {
|
|
233
232
|
super();
|
|
234
233
|
this.#frameManager = frameManager;
|
|
234
|
+
this.#targetManager = targetManager;
|
|
235
235
|
new SourceFrameIssuesManager(this);
|
|
236
|
-
|
|
237
|
-
SDK.
|
|
238
|
-
|
|
239
|
-
|
|
236
|
+
this.#targetManager.observeModels(SDK.IssuesModel.IssuesModel, this);
|
|
237
|
+
this.#targetManager.addModelListener(SDK.ResourceTreeModel.ResourceTreeModel,
|
|
238
|
+
SDK.ResourceTreeModel.Events.PrimaryPageChanged, this.#onPrimaryPageChanged,
|
|
239
|
+
this);
|
|
240
240
|
this.#frameManager.addEventListener(SDK.FrameManager.Events.FRAME_ADDED_TO_TARGET, this.#onFrameAddedToTarget,
|
|
241
241
|
this);
|
|
242
242
|
|
|
@@ -244,37 +244,36 @@ export class IssuesManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
|
|
|
244
244
|
// a full update when the setting changes to get an up-to-date issues list.
|
|
245
245
|
this.showThirdPartyIssuesSetting?.addChangeListener(() => this.#updateFilteredIssues());
|
|
246
246
|
this.hideIssueSetting?.addChangeListener(() => this.#updateFilteredIssues());
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
{scoped: true});
|
|
247
|
+
this.#targetManager.observeTargets({
|
|
248
|
+
targetAdded: (target: SDK.Target.Target) => {
|
|
249
|
+
if (target.outermostTarget() === target) {
|
|
250
|
+
this.#updateFilteredIssues();
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
targetRemoved: (_: SDK.Target.Target) => {},
|
|
254
|
+
},
|
|
255
|
+
{scoped: true});
|
|
257
256
|
}
|
|
258
257
|
|
|
259
258
|
static instance(opts: IssuesManagerCreationOptions = {
|
|
260
259
|
forceNew: false,
|
|
261
260
|
ensureFirst: false,
|
|
262
261
|
}): IssuesManager {
|
|
263
|
-
if (
|
|
262
|
+
if (Root.DevToolsContext.globalInstance().has(IssuesManager) && opts.ensureFirst) {
|
|
264
263
|
throw new Error(
|
|
265
264
|
'IssuesManager was already created. Either set "ensureFirst" to false or make sure that this invocation is really the first one.');
|
|
266
265
|
}
|
|
267
266
|
|
|
268
|
-
if (!
|
|
269
|
-
|
|
270
|
-
new IssuesManager(opts.showThirdPartyIssuesSetting, opts.hideIssueSetting, opts.frameManager);
|
|
267
|
+
if (!Root.DevToolsContext.globalInstance().has(IssuesManager) || opts.forceNew) {
|
|
268
|
+
Root.DevToolsContext.globalInstance().set(
|
|
269
|
+
IssuesManager, new IssuesManager(opts.showThirdPartyIssuesSetting, opts.hideIssueSetting, opts.frameManager));
|
|
271
270
|
}
|
|
272
271
|
|
|
273
|
-
return
|
|
272
|
+
return Root.DevToolsContext.globalInstance().get(IssuesManager);
|
|
274
273
|
}
|
|
275
274
|
|
|
276
275
|
static removeInstance(): void {
|
|
277
|
-
|
|
276
|
+
Root.DevToolsContext.globalInstance().delete(IssuesManager);
|
|
278
277
|
}
|
|
279
278
|
|
|
280
279
|
#onPrimaryPageChanged(
|
|
@@ -311,7 +310,7 @@ export class IssuesManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
|
|
|
311
310
|
// When DevTools is opened after navigation has completed, issues may be received
|
|
312
311
|
// before the outermost frame is available. Thus, we trigger a recalcuation of third-party-ness
|
|
313
312
|
// when we attach to the outermost frame.
|
|
314
|
-
if (frame.isOutermostFrame() &&
|
|
313
|
+
if (frame.isOutermostFrame() && this.#targetManager.isInScope(frame.resourceTreeModel())) {
|
|
315
314
|
this.#updateFilteredIssues();
|
|
316
315
|
}
|
|
317
316
|
}
|
|
@@ -331,7 +330,7 @@ export class IssuesManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
|
|
|
331
330
|
#onIssueAddedEvent(event: Common.EventTarget.EventTargetEvent<SDK.IssuesModel.IssueAddedEvent>): void {
|
|
332
331
|
const {issuesModel, inspectorIssue} = event.data;
|
|
333
332
|
|
|
334
|
-
const issues = createIssuesFromProtocolIssue(issuesModel, inspectorIssue);
|
|
333
|
+
const issues = createIssuesFromProtocolIssue(issuesModel, inspectorIssue, this.#frameManager);
|
|
335
334
|
for (const issue of issues) {
|
|
336
335
|
this.addIssue(issuesModel, issue);
|
|
337
336
|
const message = issue.maybeCreateConsoleMessage();
|
|
@@ -425,7 +424,7 @@ export class IssuesManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
|
|
|
425
424
|
}
|
|
426
425
|
|
|
427
426
|
#issueFilter(issue: Issue): boolean {
|
|
428
|
-
const scopeTarget =
|
|
427
|
+
const scopeTarget = this.#targetManager.scopeTarget();
|
|
429
428
|
if (!scopeTarget) {
|
|
430
429
|
return false;
|
|
431
430
|
}
|
|
@@ -6,7 +6,7 @@ import * as Common from '../../core/common/common.js';
|
|
|
6
6
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
7
7
|
|
|
8
8
|
import type {Issue, IssueCategory} from './Issue.js';
|
|
9
|
-
import {IssuesManager} from './IssuesManager.js';
|
|
9
|
+
import type {IssuesManager} from './IssuesManager.js';
|
|
10
10
|
|
|
11
11
|
export type IssuesAssociatable = Readonly<SDK.NetworkRequest.NetworkRequest>|SDK.Cookie.Cookie|string;
|
|
12
12
|
|
|
@@ -45,24 +45,26 @@ export function issuesAssociatedWith(issues: Issue[], obj: IssuesAssociatable):
|
|
|
45
45
|
throw new Error(`issues can not be associated with ${JSON.stringify(obj)}`);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
export function hasIssues(obj: IssuesAssociatable): boolean {
|
|
49
|
-
const issues = Array.from(
|
|
48
|
+
export function hasIssues(obj: IssuesAssociatable, issuesManager: IssuesManager): boolean {
|
|
49
|
+
const issues = Array.from(issuesManager.issues());
|
|
50
50
|
return issuesAssociatedWith(issues, obj).length > 0;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
export function hasIssueOfCategory(obj: IssuesAssociatable, category: IssueCategory
|
|
54
|
-
|
|
53
|
+
export function hasIssueOfCategory(obj: IssuesAssociatable, category: IssueCategory,
|
|
54
|
+
issuesManager: IssuesManager): boolean {
|
|
55
|
+
const issues = Array.from(issuesManager.issues());
|
|
55
56
|
return issuesAssociatedWith(issues, obj).some(issue => issue.getCategory() === category);
|
|
56
57
|
}
|
|
57
58
|
|
|
58
|
-
export async function reveal(obj: IssuesAssociatable,
|
|
59
|
+
export async function reveal(obj: IssuesAssociatable, issuesManager: IssuesManager,
|
|
60
|
+
category?: IssueCategory): Promise<void|undefined> {
|
|
59
61
|
if (typeof obj === 'string') {
|
|
60
|
-
const issue =
|
|
62
|
+
const issue = issuesManager.getIssueById(obj);
|
|
61
63
|
if (issue) {
|
|
62
64
|
return await Common.Revealer.reveal(issue);
|
|
63
65
|
}
|
|
64
66
|
}
|
|
65
|
-
const issues = Array.from(
|
|
67
|
+
const issues = Array.from(issuesManager.issues());
|
|
66
68
|
const candidates = issuesAssociatedWith(issues, obj).filter(issue => !category || issue.getCategory() === category);
|
|
67
69
|
if (candidates.length > 0) {
|
|
68
70
|
return await Common.Revealer.reveal(candidates[0]);
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
|
-
import * as AttributionReportingIssue from './AttributionReportingIssue.js';
|
|
6
5
|
import * as CheckFormsIssuesTrigger from './CheckFormsIssuesTrigger.js';
|
|
7
6
|
import * as ClientHintIssue from './ClientHintIssue.js';
|
|
8
7
|
import * as ConnectionAllowlistIssue from './ConnectionAllowlistIssue.js';
|
|
@@ -37,7 +36,6 @@ import * as StylesheetLoadingIssue from './StylesheetLoadingIssue.js';
|
|
|
37
36
|
import * as UnencodedDigestIssue from './UnencodedDigestIssue.js';
|
|
38
37
|
|
|
39
38
|
export {
|
|
40
|
-
AttributionReportingIssue,
|
|
41
39
|
CheckFormsIssuesTrigger,
|
|
42
40
|
ClientHintIssue,
|
|
43
41
|
ConnectionAllowlistIssue,
|
|
@@ -6,7 +6,7 @@ import * as Common from '../../core/common/common.js';
|
|
|
6
6
|
import type * as SDK from '../../core/sdk/sdk.js';
|
|
7
7
|
import type * as Protocol from '../../generated/protocol.js';
|
|
8
8
|
|
|
9
|
-
import {Events as NetworkLogEvents, NetworkLog} from './NetworkLog.js';
|
|
9
|
+
import {Events as NetworkLogEvents, type NetworkLog} from './NetworkLog.js';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* A class that facilitates resolving a requestId to a network request. If the requestId does not resolve, a listener
|
|
@@ -22,7 +22,7 @@ export class RequestResolver extends
|
|
|
22
22
|
private networkListener: Common.EventTarget.EventDescriptor|null = null;
|
|
23
23
|
private networkLog: NetworkLog;
|
|
24
24
|
|
|
25
|
-
constructor(networkLog: NetworkLog
|
|
25
|
+
constructor(networkLog: NetworkLog) {
|
|
26
26
|
super();
|
|
27
27
|
this.networkLog = networkLog;
|
|
28
28
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
|
+
import type * as Common from '../../core/common/common.js';
|
|
5
6
|
import type * as Platform from '../../core/platform/platform.js';
|
|
6
7
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
7
8
|
import * as Bindings from '../bindings/bindings.js';
|
|
@@ -41,8 +42,9 @@ interface InputData {
|
|
|
41
42
|
|
|
42
43
|
const inputCache = new WeakMap<Workspace.UISourceCode.UISourceCode, Promise<InputData>>();
|
|
43
44
|
|
|
44
|
-
async function prepareInput(uiSourceCode: Workspace.UISourceCode.UISourceCode, content: string
|
|
45
|
-
|
|
45
|
+
async function prepareInput(uiSourceCode: Workspace.UISourceCode.UISourceCode, content: string,
|
|
46
|
+
settings: Common.Settings.Settings): Promise<InputData> {
|
|
47
|
+
const formattedContent = await format(uiSourceCode, content, settings);
|
|
46
48
|
const text = new TextUtils.Text.Text(formattedContent ? formattedContent.formattedContent : content);
|
|
47
49
|
let performanceData = uiSourceCode.getDecorationData(Workspace.UISourceCode.DecoratorType.PERFORMANCE) as
|
|
48
50
|
Workspace.UISourceCode.LineColumnProfileMap |
|
|
@@ -59,14 +61,14 @@ async function prepareInput(uiSourceCode: Workspace.UISourceCode.UISourceCode, c
|
|
|
59
61
|
}
|
|
60
62
|
|
|
61
63
|
/** Formatting and parsing line endings for Text is expensive, so cache it. */
|
|
62
|
-
async function prepareInputAndCache(
|
|
63
|
-
|
|
64
|
+
async function prepareInputAndCache(uiSourceCode: Workspace.UISourceCode.UISourceCode, content: string,
|
|
65
|
+
settings: Common.Settings.Settings): Promise<InputData> {
|
|
64
66
|
let cachedPromise = inputCache.get(uiSourceCode);
|
|
65
67
|
if (cachedPromise) {
|
|
66
68
|
return await cachedPromise;
|
|
67
69
|
}
|
|
68
70
|
|
|
69
|
-
cachedPromise = prepareInput(uiSourceCode, content);
|
|
71
|
+
cachedPromise = prepareInput(uiSourceCode, content, settings);
|
|
70
72
|
inputCache.set(uiSourceCode, cachedPromise);
|
|
71
73
|
return await cachedPromise;
|
|
72
74
|
}
|
|
@@ -246,8 +248,8 @@ export async function getFunctionCodeFromLocation(
|
|
|
246
248
|
return await getFunctionCodeFromRawLocation(rawLocation, options);
|
|
247
249
|
}
|
|
248
250
|
|
|
249
|
-
async function format(uiSourceCode: Workspace.UISourceCode.UISourceCode, content: string
|
|
250
|
-
|
|
251
|
+
async function format(uiSourceCode: Workspace.UISourceCode.UISourceCode, content: string,
|
|
252
|
+
settings: Common.Settings.Settings): Promise<Formatter.ScriptFormatter.FormattedContent|null> {
|
|
251
253
|
const contentType = uiSourceCode.contentType();
|
|
252
254
|
const shouldFormat = !contentType.isFromSourceMap() && (contentType.isDocument() || contentType.isScript()) &&
|
|
253
255
|
TextUtils.TextUtils.isMinified(content);
|
|
@@ -255,7 +257,7 @@ async function format(uiSourceCode: Workspace.UISourceCode.UISourceCode, content
|
|
|
255
257
|
return null;
|
|
256
258
|
}
|
|
257
259
|
|
|
258
|
-
return await Formatter.ScriptFormatter.formatScriptContent(contentType.canonicalMimeType(), content, '\t');
|
|
260
|
+
return await Formatter.ScriptFormatter.formatScriptContent(settings, contentType.canonicalMimeType(), content, '\t');
|
|
259
261
|
}
|
|
260
262
|
|
|
261
263
|
/**
|
|
@@ -275,6 +277,7 @@ export async function getFunctionCodeFromRawLocation(
|
|
|
275
277
|
return null;
|
|
276
278
|
}
|
|
277
279
|
|
|
278
|
-
const
|
|
280
|
+
const settings = rawLocation.debuggerModel.target().targetManager().settings;
|
|
281
|
+
const inputData = await prepareInputAndCache(functionBounds.uiSourceCode, content, settings);
|
|
279
282
|
return createFunctionCode(inputData, functionBounds, options);
|
|
280
283
|
}
|
|
@@ -6,7 +6,6 @@ import * as Platform from '../../../core/platform/platform.js';
|
|
|
6
6
|
import * as Helpers from '../helpers/helpers.js';
|
|
7
7
|
import * as Types from '../types/types.js';
|
|
8
8
|
|
|
9
|
-
import {type AuctionWorkletsData, data as auctionWorkletsData} from './AuctionWorkletsHandler.js';
|
|
10
9
|
import {data as layerTreeHandlerData, type LayerTreeData} from './LayerTreeHandler.js';
|
|
11
10
|
import {data as metaHandlerData, type MetaHandlerData} from './MetaHandler.js';
|
|
12
11
|
import {data as rendererHandlerData, type RendererHandlerData} from './RendererHandler.js';
|
|
@@ -81,7 +80,6 @@ export async function finalize(): Promise<void> {
|
|
|
81
80
|
const modelForTrace = new TimelineFrameModel(
|
|
82
81
|
relevantFrameEvents,
|
|
83
82
|
rendererHandlerData(),
|
|
84
|
-
auctionWorkletsData(),
|
|
85
83
|
metaHandlerData(),
|
|
86
84
|
layerTreeHandlerData(),
|
|
87
85
|
);
|
|
@@ -101,7 +99,7 @@ export function data(): FramesData {
|
|
|
101
99
|
}
|
|
102
100
|
|
|
103
101
|
export function deps(): HandlerName[] {
|
|
104
|
-
return ['Meta', 'Renderer', '
|
|
102
|
+
return ['Meta', 'Renderer', 'LayerTree'];
|
|
105
103
|
}
|
|
106
104
|
|
|
107
105
|
export class TimelineFrameModel {
|
|
@@ -122,13 +120,12 @@ export class TimelineFrameModel {
|
|
|
122
120
|
#activeThreadId: Types.Events.ThreadID|null = null;
|
|
123
121
|
#layerTreeData: LayerTreeData;
|
|
124
122
|
|
|
125
|
-
constructor(
|
|
126
|
-
|
|
127
|
-
auctionWorkletsData: AuctionWorkletsData, metaData: MetaHandlerData, layerTreeData: LayerTreeData) {
|
|
123
|
+
constructor(allEvents: readonly Types.Events.Event[], rendererData: RendererHandlerData, metaData: MetaHandlerData,
|
|
124
|
+
layerTreeData: LayerTreeData) {
|
|
128
125
|
// We only care about getting threads from the Renderer, not Samples,
|
|
129
126
|
// because Frames don't exist in a CPU Profile (which won't have Renderer
|
|
130
127
|
// threads.)
|
|
131
|
-
const mainThreads = Threads.threadsInRenderer(rendererData
|
|
128
|
+
const mainThreads = Threads.threadsInRenderer(rendererData).filter(thread => {
|
|
132
129
|
return thread.type === Threads.ThreadType.MAIN_THREAD && thread.processIsOnMainFrame;
|
|
133
130
|
});
|
|
134
131
|
const threadData = mainThreads.map(thread => {
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
export * as AnimationFrames from './AnimationFramesHandler.js';
|
|
6
6
|
export * as Animations from './AnimationHandler.js';
|
|
7
7
|
export * as AsyncJSCalls from './AsyncJSCallsHandler.js';
|
|
8
|
-
export * as AuctionWorklets from './AuctionWorkletsHandler.js';
|
|
9
8
|
export * as DOMStats from './DOMStatsHandler.js';
|
|
10
9
|
export * as ExtensionTraceData from './ExtensionTraceDataHandler.js';
|
|
11
10
|
export * as Flows from './FlowsHandler.js';
|
|
@@ -6,7 +6,6 @@ import * as Platform from '../../../core/platform/platform.js';
|
|
|
6
6
|
import * as Helpers from '../helpers/helpers.js';
|
|
7
7
|
import * as Types from '../types/types.js';
|
|
8
8
|
|
|
9
|
-
import {data as auctionWorkletsData} from './AuctionWorkletsHandler.js';
|
|
10
9
|
import * as HandlerHelpers from './helpers.js';
|
|
11
10
|
import {data as metaHandlerData, type FrameProcessData} from './MetaHandler.js';
|
|
12
11
|
import {data as networkRequestHandlerData} from './NetworkRequestsHandler.js';
|
|
@@ -248,7 +247,6 @@ export function assignThreadName(
|
|
|
248
247
|
* - Deletes processes with an unknown origin.
|
|
249
248
|
*/
|
|
250
249
|
export function sanitizeProcesses(processes: Map<Types.Events.ProcessID, RendererProcess>): void {
|
|
251
|
-
const auctionWorklets = auctionWorkletsData().worklets;
|
|
252
250
|
const metaData = metaHandlerData();
|
|
253
251
|
if (metaData.traceIsGeneric) {
|
|
254
252
|
return;
|
|
@@ -258,19 +256,8 @@ export function sanitizeProcesses(processes: Map<Types.Events.ProcessID, Rendere
|
|
|
258
256
|
// parsed for some reason, or if it's an "about:" origin, delete it.
|
|
259
257
|
// This is done because we don't really care about processes for which we
|
|
260
258
|
// can't provide actionable insights to the user (e.g. about:blank pages).
|
|
261
|
-
//
|
|
262
|
-
// There is one exception; AuctionWorklet processes get parsed in a
|
|
263
|
-
// separate handler, so at this point we check to see if the process has
|
|
264
|
-
// been found by the AuctionWorkletsHandler, and if so we update the URL.
|
|
265
|
-
// This ensures that we keep this process around and do not drop it due to
|
|
266
|
-
// the lack of a URL.
|
|
267
259
|
if (process.url === null) {
|
|
268
|
-
|
|
269
|
-
if (maybeWorklet) {
|
|
270
|
-
process.url = maybeWorklet.host;
|
|
271
|
-
} else {
|
|
272
|
-
processes.delete(pid);
|
|
273
|
-
}
|
|
260
|
+
processes.delete(pid);
|
|
274
261
|
continue;
|
|
275
262
|
}
|
|
276
263
|
}
|
|
@@ -392,7 +379,7 @@ export function makeCompleteEvent(event: Types.Events.Begin|Types.Events.End): T
|
|
|
392
379
|
}
|
|
393
380
|
|
|
394
381
|
export function deps(): HandlerName[] {
|
|
395
|
-
return ['Meta', 'Samples', '
|
|
382
|
+
return ['Meta', 'Samples', 'NetworkRequests'];
|
|
396
383
|
}
|
|
397
384
|
|
|
398
385
|
export interface RendererHandlerData {
|