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
|
@@ -14,27 +14,27 @@ import linearMemoryNavigatorStyles from './linearMemoryNavigator.css.js';
|
|
|
14
14
|
|
|
15
15
|
const UIStrings = {
|
|
16
16
|
/**
|
|
17
|
-
* @description Tooltip text that appears when hovering over a valid memory address (
|
|
17
|
+
* @description Tooltip text that appears when hovering over a valid memory address (for example, 0x0) in the address line in the Memory inspector panel.
|
|
18
18
|
*/
|
|
19
19
|
enterAddress: 'Enter address',
|
|
20
20
|
/**
|
|
21
|
-
* @description Tooltip text that appears when hovering over the button to go back in history in the
|
|
21
|
+
* @description Tooltip text that appears when hovering over the button to go back in history in the Memory inspector panel.
|
|
22
22
|
*/
|
|
23
23
|
goBackInAddressHistory: 'Go back in address history',
|
|
24
24
|
/**
|
|
25
|
-
* @description Tooltip text that appears when hovering over the button to go forward in history in the
|
|
25
|
+
* @description Tooltip text that appears when hovering over the button to go forward in history in the Memory inspector panel.
|
|
26
26
|
*/
|
|
27
27
|
goForwardInAddressHistory: 'Go forward in address history',
|
|
28
28
|
/**
|
|
29
|
-
* @description Tooltip text that appears when hovering over the page back icon in the
|
|
29
|
+
* @description Tooltip text that appears when hovering over the page back icon in the Memory inspector panel.
|
|
30
30
|
*/
|
|
31
31
|
previousPage: 'Previous page',
|
|
32
32
|
/**
|
|
33
|
-
* @description Tooltip text that appears when hovering over the next page icon in the
|
|
33
|
+
* @description Tooltip text that appears when hovering over the next page icon in the Memory inspector panel.
|
|
34
34
|
*/
|
|
35
35
|
nextPage: 'Next page',
|
|
36
36
|
/**
|
|
37
|
-
* @description
|
|
37
|
+
* @description Tooltip text that appears when hovering over the refresh button in the Memory inspector panel.
|
|
38
38
|
*/
|
|
39
39
|
refresh: 'Refresh',
|
|
40
40
|
} as const;
|
|
@@ -18,14 +18,14 @@ import {ValueInterpreterSettings} from './ValueInterpreterSettings.js';
|
|
|
18
18
|
|
|
19
19
|
const UIStrings = {
|
|
20
20
|
/**
|
|
21
|
-
* @description Tooltip text that appears when hovering over the gear button to open and close settings in the
|
|
21
|
+
* @description Tooltip text that appears when hovering over the gear button to open and close settings in the Memory inspector panel. These settings
|
|
22
22
|
* allow the user to change the value type to view, such as 32-bit Integer, or 32-bit Float.
|
|
23
23
|
*/
|
|
24
24
|
toggleValueTypeSettings: 'Toggle value type settings',
|
|
25
25
|
/**
|
|
26
|
-
* @description Tooltip text that appears when hovering over the
|
|
26
|
+
* @description Tooltip text that appears when hovering over the Little Endian or Big Endian setting in the Memory inspector panel.
|
|
27
27
|
*/
|
|
28
|
-
changeEndianness: 'Change
|
|
28
|
+
changeEndianness: 'Change endianness',
|
|
29
29
|
} as const;
|
|
30
30
|
const str_ =
|
|
31
31
|
i18n.i18n.registerUIStrings('panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts', UIStrings);
|
|
@@ -26,27 +26,26 @@ import {
|
|
|
26
26
|
|
|
27
27
|
const UIStrings = {
|
|
28
28
|
/**
|
|
29
|
-
* @description Tooltip text that appears when hovering over an unsigned interpretation of the memory
|
|
29
|
+
* @description Tooltip text that appears when hovering over an unsigned interpretation of the memory in the value interpreter in the Memory inspector panel.
|
|
30
30
|
*/
|
|
31
|
-
unsignedValue: '
|
|
31
|
+
unsignedValue: 'Unsigned value',
|
|
32
32
|
/**
|
|
33
|
-
* @description Tooltip text that appears when hovering over the element to change value type modes
|
|
34
|
-
* are different ways of viewing a certain value,
|
|
33
|
+
* @description Tooltip text that appears when hovering over the element to change value type modes in the value interpreter in the Memory inspector panel. Value type modes
|
|
34
|
+
* are different ways of viewing a certain value, for example: 10 (decimal) can be 0xa in hexadecimal mode, or 12 in octal mode.
|
|
35
35
|
*/
|
|
36
36
|
changeValueTypeMode: 'Change mode',
|
|
37
37
|
/**
|
|
38
|
-
* @description Tooltip text that appears when hovering over a signed interpretation of the memory
|
|
38
|
+
* @description Tooltip text that appears when hovering over a signed interpretation of the memory in the value interpreter in the Memory inspector panel.
|
|
39
39
|
*/
|
|
40
|
-
signedValue: '
|
|
40
|
+
signedValue: 'Signed value',
|
|
41
41
|
/**
|
|
42
|
-
* @description Tooltip text that appears when hovering over a
|
|
42
|
+
* @description Tooltip text that appears when hovering over a jump-to-address button that is next to a pointer (32-bit or 64-bit) in the value interpreter in the Memory inspector panel.
|
|
43
43
|
*/
|
|
44
44
|
jumpToPointer: 'Jump to address',
|
|
45
45
|
/**
|
|
46
|
-
* @description Tooltip text that appears when hovering over a
|
|
46
|
+
* @description Tooltip text that appears when hovering over a jump-to-address button that is next to a pointer (32-bit or 64-bit) with an invalid address in the value interpreter in the Memory inspector panel.
|
|
47
47
|
*/
|
|
48
48
|
addressOutOfRange: 'Address out of memory range',
|
|
49
|
-
|
|
50
49
|
} as const;
|
|
51
50
|
const str_ =
|
|
52
51
|
i18n.i18n.registerUIStrings('panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts', UIStrings);
|
|
@@ -7,8 +7,8 @@ import * as Platform from '../../../core/platform/platform.js';
|
|
|
7
7
|
|
|
8
8
|
const UIStrings = {
|
|
9
9
|
/**
|
|
10
|
-
* @description Text that is shown in the
|
|
11
|
-
* for the requested mode (
|
|
10
|
+
* @description Text that is shown in the Memory inspector panel if a value cannot be correctly formatted
|
|
11
|
+
* for the requested mode (for example, when a float cannot be represented as a hexadecimal number).
|
|
12
12
|
* Abbreviation stands for 'not applicable'.
|
|
13
13
|
*/
|
|
14
14
|
notApplicable: 'N/A',
|
|
@@ -15,7 +15,7 @@ const {render, html} = Lit;
|
|
|
15
15
|
|
|
16
16
|
const UIStrings = {
|
|
17
17
|
/**
|
|
18
|
-
* @description Name of a group of selectable value types that do not fall under integer and floating point value types,
|
|
18
|
+
* @description Name of a group of selectable value types that do not fall under integer and floating point value types (for example, Pointer32). The group name appears in the value interpreter settings in the Memory inspector panel.
|
|
19
19
|
*/
|
|
20
20
|
otherGroup: 'Other',
|
|
21
21
|
} as const;
|
|
@@ -12,11 +12,11 @@ import type * as LinearMemoryInspector from './linear_memory_inspector.js';
|
|
|
12
12
|
|
|
13
13
|
const UIStrings = {
|
|
14
14
|
/**
|
|
15
|
-
* @description Title of the
|
|
15
|
+
* @description Title of the Memory inspector panel.
|
|
16
16
|
*/
|
|
17
17
|
memoryInspector: 'Memory inspector',
|
|
18
18
|
/**
|
|
19
|
-
* @description Command for showing the
|
|
19
|
+
* @description Command for showing the Memory inspector panel.
|
|
20
20
|
*/
|
|
21
21
|
showMemoryInspector: 'Show Memory inspector',
|
|
22
22
|
} as const;
|
|
@@ -109,8 +109,10 @@ const str_ = i18n.i18n.registerUIStrings('panels/network/RequestPayloadView.ts',
|
|
|
109
109
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
110
110
|
|
|
111
111
|
interface ViewInput {
|
|
112
|
-
|
|
113
|
-
|
|
112
|
+
decodeQueryParameters: boolean;
|
|
113
|
+
setDecodeQueryParameters(value: boolean): void;
|
|
114
|
+
decodeFormParameters: boolean;
|
|
115
|
+
setDecodeFormParameters(value: boolean): void;
|
|
114
116
|
viewQueryParamSource: boolean;
|
|
115
117
|
setViewQueryParamSource(value: boolean): void;
|
|
116
118
|
viewFormParamSource: boolean;
|
|
@@ -157,15 +159,28 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
157
159
|
</devtools-widget>
|
|
158
160
|
</li>`;
|
|
159
161
|
|
|
160
|
-
const createParsedParams = (params: SDK.NetworkRequest.NameValue[]
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
162
|
+
const createParsedParams = (params: SDK.NetworkRequest.NameValue[],
|
|
163
|
+
decodeParameters: boolean): TemplateResult[] => params.map(param => {
|
|
164
|
+
// clang-format off
|
|
165
|
+
return html`
|
|
166
|
+
<li role=treeitem
|
|
167
|
+
@contextmenu=${copyValueContextmenu(
|
|
168
|
+
i18nString(UIStrings.copyValue),
|
|
169
|
+
() => decodeURIComponent(param.value),
|
|
170
|
+
'copy-value'
|
|
171
|
+
)}>
|
|
172
|
+
${param.name !== '' ? html`
|
|
173
|
+
${RequestPayloadView.formatParameter(param.name, 'payload-name', decodeParameters)}
|
|
174
|
+
${RequestPayloadView.formatParameter(param.value, 'payload-value source-code', decodeParameters)}
|
|
175
|
+
` : RequestPayloadView.formatParameter(
|
|
176
|
+
i18nString(UIStrings.empty),
|
|
177
|
+
'empty-request-payload',
|
|
178
|
+
decodeParameters
|
|
179
|
+
)}
|
|
180
|
+
</li>
|
|
181
|
+
`;
|
|
182
|
+
// clang-format on
|
|
183
|
+
});
|
|
169
184
|
|
|
170
185
|
const parsedFormData = (() => {
|
|
171
186
|
if (input.formData && !input.formParameters) {
|
|
@@ -173,23 +188,25 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
173
188
|
return JSON.parse(input.formData);
|
|
174
189
|
} catch {
|
|
175
190
|
}
|
|
176
|
-
return undefined;
|
|
177
191
|
}
|
|
192
|
+
return undefined;
|
|
178
193
|
})();
|
|
179
194
|
|
|
180
|
-
const createPayload = (parsedFormData: unknown):
|
|
195
|
+
const createPayload = (parsedFormData: unknown): LitTemplate => {
|
|
196
|
+
if (!parsedFormData) {
|
|
197
|
+
return nothing;
|
|
198
|
+
}
|
|
181
199
|
const object = new SDK.RemoteObject.LocalJSONObject(parsedFormData);
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
.treeElement=${section}></devtools-tree-wrapper>`;
|
|
200
|
+
const objectTree = new ObjectUI.ObjectPropertiesSection.ObjectTree(object, {
|
|
201
|
+
readOnly: true,
|
|
202
|
+
propertiesMode: ObjectUI.ObjectPropertiesSection.ObjectPropertiesMode.OWN_AND_INTERNAL_AND_INHERITED,
|
|
203
|
+
});
|
|
204
|
+
return html`
|
|
205
|
+
<li role=treeitem class="source-code object-properties-section-root-element object-properties-section" open>
|
|
206
|
+
${object.description}
|
|
207
|
+
${object.hasChildren ? ObjectUI.ObjectPropertiesSection.renderObjectTree(objectTree) : nothing}
|
|
208
|
+
</li>
|
|
209
|
+
`;
|
|
193
210
|
};
|
|
194
211
|
|
|
195
212
|
const queryStringExpandedSetting =
|
|
@@ -199,24 +216,23 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
199
216
|
const requestPayloadExpandedSetting =
|
|
200
217
|
Common.Settings.Settings.instance().createSetting('request-info-request-payload-category-expanded', true);
|
|
201
218
|
|
|
202
|
-
const
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
const onContextMenu = (viewSource: boolean, callback: (value: boolean) => void, includeURLDecodingOption = true) => (
|
|
208
|
-
event: Event): void => {
|
|
219
|
+
const onContextMenu = (
|
|
220
|
+
viewSource: boolean,
|
|
221
|
+
setViewSource: (value: boolean) => void,
|
|
222
|
+
decoding?: {decode: boolean, toggleDecode: () => void},
|
|
223
|
+
) => (event: Event): void => {
|
|
209
224
|
const contextMenu = new UI.ContextMenu.ContextMenu(event);
|
|
210
225
|
const section = contextMenu.newSection();
|
|
211
226
|
if (viewSource) {
|
|
212
|
-
section.appendItem(i18nString(UIStrings.viewParsed), () =>
|
|
227
|
+
section.appendItem(i18nString(UIStrings.viewParsed), () => setViewSource(!viewSource),
|
|
228
|
+
{jslogContext: 'view-parsed'});
|
|
213
229
|
} else {
|
|
214
|
-
section.appendItem(i18nString(UIStrings.viewSource), () =>
|
|
215
|
-
|
|
230
|
+
section.appendItem(i18nString(UIStrings.viewSource), () => setViewSource(!viewSource),
|
|
231
|
+
{jslogContext: 'view-source'});
|
|
232
|
+
if (decoding) {
|
|
216
233
|
const viewURLEncodedText =
|
|
217
|
-
|
|
218
|
-
section.appendItem(
|
|
219
|
-
viewURLEncodedText, toggleURLDecoding.bind(this, event), {jslogContext: 'toggle-url-decoding'});
|
|
234
|
+
decoding.decode ? i18nString(UIStrings.viewUrlEncoded) : i18nString(UIStrings.viewDecoded);
|
|
235
|
+
section.appendItem(viewURLEncodedText, () => decoding.toggleDecode(), {jslogContext: 'toggle-url-decoding'});
|
|
220
236
|
}
|
|
221
237
|
}
|
|
222
238
|
void contextMenu.show();
|
|
@@ -233,7 +249,14 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
233
249
|
role=treeitem
|
|
234
250
|
?hidden=${!input.queryParameters}
|
|
235
251
|
jslog=${VisualLogging.section().context('query-string')}
|
|
236
|
-
@contextmenu=${onContextMenu(
|
|
252
|
+
@contextmenu=${onContextMenu(
|
|
253
|
+
input.viewQueryParamSource,
|
|
254
|
+
input.setViewQueryParamSource,
|
|
255
|
+
{
|
|
256
|
+
decode: input.decodeQueryParameters,
|
|
257
|
+
toggleDecode: () => input.setDecodeQueryParameters(!input.decodeQueryParameters),
|
|
258
|
+
}
|
|
259
|
+
)}
|
|
237
260
|
@expanded=${(e: UI.TreeOutline.TreeViewElement.ExpandEvent) =>
|
|
238
261
|
queryStringExpandedSetting.set(e.detail.expanded)}
|
|
239
262
|
?open=${queryStringExpandedSetting.get()}
|
|
@@ -246,19 +269,26 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
246
269
|
?hidden=${input.viewQueryParamSource}
|
|
247
270
|
jslog=${VisualLogging.action().track({click: true}).context('decode-encode')}
|
|
248
271
|
.variant=${Buttons.Button.Variant.OUTLINED}
|
|
249
|
-
@click=${
|
|
250
|
-
${input.
|
|
272
|
+
@click=${(e: Event) => { e.consume(); input.setDecodeQueryParameters(!input.decodeQueryParameters); }}>
|
|
273
|
+
${input.decodeQueryParameters ? i18nString(UIStrings.viewUrlEncoded) : i18nString(UIStrings.viewDecoded)}
|
|
251
274
|
</devtools-button>
|
|
252
275
|
<ul role=group>
|
|
253
276
|
${ifExpanded(input.viewQueryParamSource ? createSourceText(input.queryString ?? '')
|
|
254
|
-
: createParsedParams(input.queryParameters ?? []))}
|
|
277
|
+
: createParsedParams(input.queryParameters ?? [], input.decodeQueryParameters))}
|
|
255
278
|
</ul>
|
|
256
279
|
</li>
|
|
257
280
|
<li
|
|
258
281
|
role=treeitem
|
|
259
282
|
?hidden=${!input.formData || !input.formParameters}
|
|
260
283
|
jslog=${VisualLogging.section().context('form-data')}
|
|
261
|
-
@contextmenu=${onContextMenu(
|
|
284
|
+
@contextmenu=${onContextMenu(
|
|
285
|
+
input.viewFormParamSource,
|
|
286
|
+
input.setViewFormParamSource,
|
|
287
|
+
{
|
|
288
|
+
decode: input.decodeFormParameters,
|
|
289
|
+
toggleDecode: () => input.setDecodeFormParameters(!input.decodeFormParameters),
|
|
290
|
+
}
|
|
291
|
+
)}
|
|
262
292
|
@expanded=${(e: UI.TreeOutline.TreeViewElement.ExpandEvent) => formDataExpandedSetting.set(e.detail.expanded)}
|
|
263
293
|
?open=${formDataExpandedSetting.get()}
|
|
264
294
|
>
|
|
@@ -270,20 +300,22 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
270
300
|
?hidden=${input.viewFormParamSource}
|
|
271
301
|
jslog=${VisualLogging.action().track({click: true}).context('decode-encode')}
|
|
272
302
|
.variant=${Buttons.Button.Variant.OUTLINED}
|
|
273
|
-
@click=${
|
|
274
|
-
${input.
|
|
303
|
+
@click=${(e: Event) => { e.consume(); input.setDecodeFormParameters(!input.decodeFormParameters); }}>
|
|
304
|
+
${input.decodeFormParameters ? i18nString(UIStrings.viewUrlEncoded) : i18nString(UIStrings.viewDecoded)}
|
|
275
305
|
</devtools-button>
|
|
276
306
|
<ul role=group>
|
|
277
307
|
${ifExpanded(input.viewFormParamSource ? createSourceText(input.formData ?? '')
|
|
278
|
-
: createParsedParams(input.formParameters ?? []))}
|
|
308
|
+
: createParsedParams(input.formParameters ?? [], input.decodeFormParameters))}
|
|
279
309
|
</ul>
|
|
280
310
|
</li>
|
|
281
311
|
<li
|
|
282
312
|
role=treeitem
|
|
283
313
|
?hidden=${!input.formData || Boolean(input.formParameters) || Boolean(input.binaryPayloadContentData)}
|
|
284
314
|
jslog=${VisualLogging.section().context('request-payload')}
|
|
285
|
-
@contextmenu=${onContextMenu(
|
|
286
|
-
|
|
315
|
+
@contextmenu=${onContextMenu(
|
|
316
|
+
input.viewJSONPayloadSource,
|
|
317
|
+
input.setViewJSONPayloadSource,
|
|
318
|
+
)}
|
|
287
319
|
@expanded=${(e: UI.TreeOutline.TreeViewElement.ExpandEvent) =>
|
|
288
320
|
requestPayloadExpandedSetting.set(e.detail.expanded)}
|
|
289
321
|
?open=${requestPayloadExpandedSetting.get()}
|
|
@@ -322,7 +354,8 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
322
354
|
|
|
323
355
|
export class RequestPayloadView extends UI.Widget.VBox {
|
|
324
356
|
#request?: SDK.NetworkRequest.NetworkRequest;
|
|
325
|
-
#
|
|
357
|
+
#decodeQueryParameters = true;
|
|
358
|
+
#decodeFormParameters = true;
|
|
326
359
|
#formData?: string;
|
|
327
360
|
#formParameters?: SDK.NetworkRequest.NameValue[];
|
|
328
361
|
#binaryPayloadContentData: TextUtils.ContentData.ContentData|null = null;
|
|
@@ -343,9 +376,11 @@ export class RequestPayloadView extends UI.Widget.VBox {
|
|
|
343
376
|
}
|
|
344
377
|
this.#request = request;
|
|
345
378
|
|
|
379
|
+
this.#decodeQueryParameters = true;
|
|
380
|
+
this.#decodeFormParameters = true;
|
|
346
381
|
const contentType = request.requestContentType();
|
|
347
382
|
if (contentType) {
|
|
348
|
-
this.#
|
|
383
|
+
this.#decodeFormParameters = Boolean(contentType.match(/^application\/x-www-form-urlencoded\s*(;.*)?$/i));
|
|
349
384
|
}
|
|
350
385
|
|
|
351
386
|
if (this.isShowing()) {
|
|
@@ -400,9 +435,14 @@ export class RequestPayloadView extends UI.Widget.VBox {
|
|
|
400
435
|
queryParameters: this.request.queryParameters,
|
|
401
436
|
formData: this.#formData,
|
|
402
437
|
formParameters: this.#formParameters,
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
this.#
|
|
438
|
+
decodeQueryParameters: this.#decodeQueryParameters,
|
|
439
|
+
setDecodeQueryParameters: (value: boolean): void => {
|
|
440
|
+
this.#decodeQueryParameters = value;
|
|
441
|
+
this.requestUpdate();
|
|
442
|
+
},
|
|
443
|
+
decodeFormParameters: this.#decodeFormParameters,
|
|
444
|
+
setDecodeFormParameters: (value: boolean): void => {
|
|
445
|
+
this.#decodeFormParameters = value;
|
|
406
446
|
this.requestUpdate();
|
|
407
447
|
},
|
|
408
448
|
viewQueryParamSource: this.#viewQueryParamSource,
|