chrome-devtools-frontend 1.0.1000934 → 1.0.1002543
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/config/gni/devtools_grd_files.gni +4 -3
- package/front_end/.eslintrc.js +1 -0
- package/front_end/core/common/ParsedURL.ts +3 -3
- package/front_end/core/host/InspectorFrontendHost.ts +30 -1
- package/front_end/core/i18n/locales/en-US.json +177 -12
- package/front_end/core/i18n/locales/en-XL.json +177 -12
- package/front_end/core/protocol_client/InspectorBackend.ts +4 -0
- package/front_end/core/root/Runtime.ts +7 -3
- package/front_end/core/sdk/ServiceWorkerManager.ts +6 -5
- package/front_end/entrypoints/formatter_worker/FormatterActions.ts +14 -0
- package/front_end/entrypoints/formatter_worker/ScopeParser.ts +491 -0
- package/front_end/entrypoints/formatter_worker/Substitute.ts +4 -440
- package/front_end/entrypoints/formatter_worker/formatter_worker.ts +2 -0
- package/front_end/generated/InspectorBackendCommands.js +38 -10
- package/front_end/generated/protocol-mapping.d.ts +5 -1
- package/front_end/generated/protocol-proxy-api.d.ts +4 -1
- package/front_end/generated/protocol.ts +50 -10
- package/front_end/models/bindings/BreakpointManager.ts +12 -11
- package/front_end/models/bindings/CompilerScriptMapping.ts +1 -1
- package/front_end/models/issues_manager/AttributionReportingIssue.ts +5 -36
- package/front_end/models/issues_manager/DeprecationIssue.ts +233 -257
- package/front_end/models/issues_manager/Issue.ts +8 -4
- package/front_end/models/persistence/PersistenceImpl.ts +2 -2
- package/front_end/models/timeline_model/TimelineModel.ts +0 -48
- package/front_end/panels/application/AppManifestView.ts +3 -3
- package/front_end/panels/application/ApplicationPanelCacheSection.ts +3 -1
- package/front_end/panels/application/ApplicationPanelSidebar.ts +11 -6
- package/front_end/panels/application/ApplicationPanelTreeElement.ts +2 -2
- package/front_end/panels/application/BackgroundServiceView.ts +5 -4
- package/front_end/panels/application/ResourcesPanel.ts +1 -1
- package/front_end/panels/application/components/BackForwardCacheView.ts +4 -5
- package/front_end/panels/application/components/FrameDetailsView.ts +19 -19
- package/front_end/panels/application/components/PermissionsPolicySection.ts +2 -2
- package/front_end/panels/console/ConsoleViewMessage.ts +6 -3
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +1 -1
- package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +3 -2
- package/front_end/panels/css_overview/cssOverviewCompletedView.css +4 -0
- package/front_end/panels/elements/StylePropertyTreeElement.ts +19 -13
- package/front_end/panels/elements/StylesSidebarPane.ts +53 -0
- package/front_end/panels/elements/components/QueryContainer.ts +1 -1
- package/front_end/panels/issues/AffectedResourcesView.ts +4 -3
- package/front_end/panels/issues/AffectedSourcesView.ts +2 -1
- package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +0 -43
- package/front_end/panels/issues/IssueView.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseController.ts +5 -3
- package/front_end/panels/lighthouse/LighthouseReporterTypes.ts +2 -1
- package/front_end/panels/lighthouse/lighthousePanel.css +4 -0
- package/front_end/panels/network/components/RequestTrustTokensView.ts +7 -7
- package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +2 -2
- package/front_end/panels/profiler/HeapSnapshotView.ts +2 -1
- package/front_end/panels/profiler/ProfileDataGrid.ts +1 -1
- package/front_end/panels/security/SecurityPanel.ts +6 -5
- package/front_end/panels/settings/SettingsScreen.ts +2 -3
- package/front_end/panels/sources/DebuggerPlugin.ts +10 -9
- package/front_end/panels/sources/JavaScriptBreakpointsSidebarPane.ts +3 -3
- package/front_end/panels/timeline/PerformanceModel.ts +2 -6
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +1 -14
- package/front_end/panels/timeline/TimelineUIUtils.ts +14 -12
- package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +1036 -1088
- package/front_end/third_party/lighthouse/locales/en-US.json +241 -4
- package/front_end/third_party/lighthouse/locales/en-XL.json +241 -4
- package/front_end/third_party/lighthouse/report/bundle.d.ts +2 -0
- package/front_end/third_party/lighthouse/report/bundle.js +18 -12
- package/front_end/third_party/lighthouse/report-assets/report-generator.mjs +1 -1
- package/front_end/third_party/puppeteer/package/README.md +11 -11
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Debug.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Debug.js +26 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Debug.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js +7 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js +19 -11
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.js +6 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/compat.d.ts +3 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/compat.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/compat.js +18 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/compat.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/constants.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/constants.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/constants.js +7 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/constants.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +5 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/initialize-node.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/initialize-node.js +2 -15
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/initialize-node.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js +23 -15
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.js +17 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/install.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/install.js +1 -6
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/install.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/package.json +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.js +3 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js +7 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js +19 -11
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.js +6 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/compat.d.ts +3 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/compat.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/compat.js +17 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/compat.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/constants.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/constants.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/constants.js +4 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/constants.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.js +2 -15
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js +21 -13
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.js +17 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/install.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/install.js +1 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/install.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +6 -6
- package/front_end/third_party/puppeteer/package/package.json +33 -18
- package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +4 -1
- package/front_end/ui/components/data_grid/DataGrid.ts +1 -1
- package/front_end/ui/components/data_grid/DataGridUtils.ts +1 -1
- package/front_end/ui/components/docs/linkifier/simple-url.ts +2 -1
- package/front_end/ui/components/docs/panel_feedback/basic.ts +3 -2
- package/front_end/ui/components/docs/panel_feedback/button.ts +2 -1
- package/front_end/ui/components/linkifier/LinkifierImpl.ts +4 -3
- package/front_end/ui/components/linkifier/LinkifierUtils.ts +2 -3
- package/front_end/ui/components/panel_feedback/FeedbackButton.ts +4 -6
- package/front_end/ui/components/panel_feedback/PanelFeedback.ts +5 -4
- package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +4 -4
- package/front_end/ui/legacy/EmptyWidget.ts +2 -1
- package/front_end/ui/legacy/UIUtils.ts +4 -4
- package/front_end/ui/legacy/XLink.ts +12 -13
- package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +2 -4
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +0 -2
- package/front_end/ui/legacy/components/utils/ImagePreview.ts +3 -7
- package/front_end/ui/legacy/components/utils/Linkifier.ts +23 -23
- package/front_end/ui/legacy/toolbar.css +1 -1
- package/front_end/ui/lit-html/lit-html.ts +3 -0
- package/package.json +1 -1
- package/scripts/eslint_rules/lib/lit_template_result_or_nothing.js +4 -0
- package/scripts/eslint_rules/tests/lit_template_result_or_nothing_test.js +13 -0
- package/front_end/models/issues_manager/descriptions/arInvalidAttributionSourceEventId.md +0 -3
- package/front_end/models/issues_manager/descriptions/arInvalidAttributionSourceExpiry.md +0 -4
- package/front_end/models/issues_manager/descriptions/arInvalidAttributionSourcePriority.md +0 -4
@@ -147,6 +147,14 @@ const UIStrings = {
|
|
147
147
|
*/
|
148
148
|
automaticDarkMode: 'Automatic dark mode',
|
149
149
|
/**
|
150
|
+
*@description Tooltip text that appears when hovering over the css changes button in the Styles Sidebar Pane of the Elements panel
|
151
|
+
*/
|
152
|
+
copyAllCSSChanges: 'Copy all the CSS changes',
|
153
|
+
/**
|
154
|
+
*@description Tooltip text that appears after clicking on the copy CSS changes button
|
155
|
+
*/
|
156
|
+
copiedToClipboard: 'Copied to clipboard',
|
157
|
+
/**
|
150
158
|
*@description Text displayed on layer separators in the styles sidebar pane.
|
151
159
|
*/
|
152
160
|
layer: 'Layer',
|
@@ -207,6 +215,7 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
|
|
207
215
|
private readonly imagePreviewPopover: ImagePreviewPopover;
|
208
216
|
activeCSSAngle: InlineEditor.CSSAngle.CSSAngle|null;
|
209
217
|
#urlToChangeTracker: Map<Platform.DevToolsPath.UrlString, ChangeTracker> = new Map();
|
218
|
+
#copyChangesButton?: UI.Toolbar.ToolbarButton;
|
210
219
|
|
211
220
|
static instance(): StylesSidebarPane {
|
212
221
|
if (!stylesSidebarPaneInstance) {
|
@@ -579,6 +588,11 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
|
|
579
588
|
if (!this.initialUpdateCompleted) {
|
580
589
|
this.initialUpdateCompleted = true;
|
581
590
|
this.appendToolbarItem(this.createRenderingShortcuts());
|
591
|
+
if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.STYLES_PANE_CSS_CHANGES)) {
|
592
|
+
this.#copyChangesButton = this.createCopyAllChangesButton();
|
593
|
+
this.appendToolbarItem(this.#copyChangesButton);
|
594
|
+
this.#copyChangesButton.element.classList.add('hidden');
|
595
|
+
}
|
582
596
|
this.dispatchEventToListeners(Events.InitialUpdateCompleted);
|
583
597
|
}
|
584
598
|
|
@@ -1109,6 +1123,22 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
|
|
1109
1123
|
return changedLines.has(formattedLineNumber + 1);
|
1110
1124
|
}
|
1111
1125
|
|
1126
|
+
updateChangeStatus(): void {
|
1127
|
+
if (!this.#copyChangesButton) {
|
1128
|
+
return;
|
1129
|
+
}
|
1130
|
+
|
1131
|
+
let hasChangedStyles = false;
|
1132
|
+
for (const changeTracker of this.#urlToChangeTracker.values()) {
|
1133
|
+
if (changeTracker.changedLines.size > 0) {
|
1134
|
+
hasChangedStyles = true;
|
1135
|
+
break;
|
1136
|
+
}
|
1137
|
+
}
|
1138
|
+
|
1139
|
+
this.#copyChangesButton.element.classList.toggle('hidden', !hasChangedStyles);
|
1140
|
+
}
|
1141
|
+
|
1112
1142
|
private async refreshChangedLines(uiSourceCode: Workspace.UISourceCode.UISourceCode): Promise<void> {
|
1113
1143
|
const changeTracker = this.#urlToChangeTracker.get(uiSourceCode.url());
|
1114
1144
|
if (!changeTracker) {
|
@@ -1290,6 +1320,29 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
|
|
1290
1320
|
|
1291
1321
|
return button;
|
1292
1322
|
}
|
1323
|
+
|
1324
|
+
private createCopyAllChangesButton(): UI.Toolbar.ToolbarButton {
|
1325
|
+
const copyAllChangesButton =
|
1326
|
+
new UI.Toolbar.ToolbarButton(i18nString(UIStrings.copyAllCSSChanges), 'largeicon-copy');
|
1327
|
+
// TODO(1296947): implement a dedicated component to share between all copy buttons
|
1328
|
+
copyAllChangesButton.element.setAttribute('data-content', i18nString(UIStrings.copiedToClipboard));
|
1329
|
+
let timeout: number|undefined;
|
1330
|
+
copyAllChangesButton.addEventListener(UI.Toolbar.ToolbarButton.Events.Click, async () => {
|
1331
|
+
const allChanges = await this.getFormattedChanges();
|
1332
|
+
Host.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(allChanges);
|
1333
|
+
Host.userMetrics.styleTextCopied(Host.UserMetrics.StyleTextCopied.AllChangesViaStylesPane);
|
1334
|
+
if (timeout) {
|
1335
|
+
clearTimeout(timeout);
|
1336
|
+
timeout = undefined;
|
1337
|
+
}
|
1338
|
+
copyAllChangesButton.element.classList.add('copied-to-clipboard');
|
1339
|
+
timeout = window.setTimeout(() => {
|
1340
|
+
copyAllChangesButton.element.classList.remove('copied-to-clipboard');
|
1341
|
+
timeout = undefined;
|
1342
|
+
}, 2000);
|
1343
|
+
});
|
1344
|
+
return copyAllChangesButton;
|
1345
|
+
}
|
1293
1346
|
}
|
1294
1347
|
|
1295
1348
|
export const enum Events {
|
@@ -104,7 +104,7 @@ export class QueryContainer extends HTMLElement {
|
|
104
104
|
// clang-format on
|
105
105
|
}
|
106
106
|
|
107
|
-
#renderQueriedSizeDetails(): LitHtml.
|
107
|
+
#renderQueriedSizeDetails(): LitHtml.LitTemplate {
|
108
108
|
if (!this.#queriedSizeDetails || this.#queriedSizeDetails.queryAxis === QueryAxis.None) {
|
109
109
|
return LitHtml.nothing;
|
110
110
|
}
|
@@ -5,6 +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 type * as Platform from '../../core/platform/platform.js';
|
8
9
|
import * as SDK from '../../core/sdk/sdk.js';
|
9
10
|
import type * as IssuesManager from '../../models/issues_manager/issues_manager.js';
|
10
11
|
import * as Logs from '../../models/logs/logs.js';
|
@@ -44,7 +45,7 @@ export const enum AffectedItem {
|
|
44
45
|
Source = 'Source',
|
45
46
|
}
|
46
47
|
|
47
|
-
export const extractShortPath = (path:
|
48
|
+
export const extractShortPath = (path: Platform.DevToolsPath.UrlString): string => {
|
48
49
|
// 1st regex matches everything after last '/'
|
49
50
|
// if path ends with '/', 2nd regex returns everything between the last two '/'
|
50
51
|
return (/[^/]+$/.exec(path) || /[^/]+\/$/.exec(path) || [''])[0];
|
@@ -255,8 +256,8 @@ export abstract class AffectedResourcesView extends UI.TreeOutline.TreeElement {
|
|
255
256
|
// TODO(crbug.com/1108503): Add some mechanism to be able to add telemetry to this element.
|
256
257
|
const linkifier = new Components.Linkifier.Linkifier(maxLengthForDisplayedURLs);
|
257
258
|
const sourceAnchor = linkifier.linkifyScriptLocation(
|
258
|
-
target || null, sourceLocation.scriptId || null, sourceLocation.url
|
259
|
-
{columnNumber: sourceLocation.columnNumber, inlineFrameIndex: 0});
|
259
|
+
target || null, sourceLocation.scriptId || null, sourceLocation.url as Platform.DevToolsPath.UrlString,
|
260
|
+
sourceLocation.lineNumber, {columnNumber: sourceLocation.columnNumber, inlineFrameIndex: 0});
|
260
261
|
sourceCodeLocation.appendChild(sourceAnchor);
|
261
262
|
}
|
262
263
|
element.appendChild(sourceCodeLocation);
|
@@ -42,7 +42,8 @@ export class AffectedSourcesView extends AffectedResourcesView {
|
|
42
42
|
// Also, this element has a context menu, so we should be able to
|
43
43
|
// track when the user use the context menu too.
|
44
44
|
// TODO(crbug.com/1108503): Add some mechanism to be able to add telemetry to this element.
|
45
|
-
const anchorElement =
|
45
|
+
const anchorElement =
|
46
|
+
Components.Linkifier.Linkifier.linkifyURL(url as Platform.DevToolsPath.UrlString, linkifierURLOptions);
|
46
47
|
cellElement.appendChild(anchorElement);
|
47
48
|
const rowElement = document.createElement('tr');
|
48
49
|
rowElement.classList.add('affected-resource-source');
|
@@ -27,21 +27,6 @@ const UIStrings = {
|
|
27
27
|
* @description Noun, label for the column showing the associated network request in the issue details table.
|
28
28
|
*/
|
29
29
|
request: 'Request',
|
30
|
-
/**
|
31
|
-
* @description Label for the column showing the invalid value used as the 'attributionsourceeventid' attribute
|
32
|
-
* on an anchor HTML element ("a link").
|
33
|
-
*/
|
34
|
-
invalidSourceEventId: 'Invalid `attributionsourceeventid`',
|
35
|
-
/**
|
36
|
-
* @description Label for the column showing the invalid value used as the 'attributionexpiry' attribute
|
37
|
-
* on an anchor HTML element ("a link").
|
38
|
-
*/
|
39
|
-
invalidSourceExpiry: 'Invalid `attributionexpiry`',
|
40
|
-
/**
|
41
|
-
* @description Label for the column showing the invalid value used as the 'attributionpriority' attribute
|
42
|
-
* on an anchor HTML element ("a link").
|
43
|
-
*/
|
44
|
-
invalidSourcePriority: 'Invalid `attributionsourcepriority`',
|
45
30
|
/**
|
46
31
|
* @description Label for the column showing the invalid URL used in an HTML anchor element ("a link").
|
47
32
|
* A origin is (roughly said) the front part of a URL.
|
@@ -89,21 +74,6 @@ export class AttributionReportingIssueDetailsView extends AffectedResourcesView
|
|
89
74
|
this.appendColumnTitle(header, i18nString(UIStrings.element));
|
90
75
|
this.appendColumnTitle(header, i18nString(UIStrings.untrustworthyOrigin));
|
91
76
|
break;
|
92
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.InvalidAttributionSourceEventId:
|
93
|
-
this.appendColumnTitle(header, i18nString(UIStrings.frame));
|
94
|
-
this.appendColumnTitle(header, i18nString(UIStrings.element));
|
95
|
-
this.appendColumnTitle(header, i18nString(UIStrings.invalidSourceEventId));
|
96
|
-
break;
|
97
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.InvalidAttributionSourceExpiry:
|
98
|
-
this.appendColumnTitle(header, i18nString(UIStrings.frame));
|
99
|
-
this.appendColumnTitle(header, i18nString(UIStrings.element));
|
100
|
-
this.appendColumnTitle(header, i18nString(UIStrings.invalidSourceExpiry));
|
101
|
-
break;
|
102
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.InvalidAttributionSourcePriority:
|
103
|
-
this.appendColumnTitle(header, i18nString(UIStrings.frame));
|
104
|
-
this.appendColumnTitle(header, i18nString(UIStrings.element));
|
105
|
-
this.appendColumnTitle(header, i18nString(UIStrings.invalidSourcePriority));
|
106
|
-
break;
|
107
77
|
case IssuesManager.AttributionReportingIssue.IssueCode.PermissionPolicyDisabled:
|
108
78
|
this.appendColumnTitle(header, i18nString(UIStrings.frame));
|
109
79
|
this.appendColumnTitle(header, i18nString(UIStrings.element));
|
@@ -129,11 +99,6 @@ export class AttributionReportingIssueDetailsView extends AffectedResourcesView
|
|
129
99
|
const details = issue.issueDetails;
|
130
100
|
|
131
101
|
switch (issueCode) {
|
132
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.AttributionUntrustworthyFrameOrigin:
|
133
|
-
this.#appendFrameOrEmptyCell(element, issue);
|
134
|
-
this.#appendRequestOrEmptyCell(element, details.request);
|
135
|
-
this.appendIssueDetailCell(element, details.invalidParameter || '');
|
136
|
-
break;
|
137
102
|
case IssuesManager.AttributionReportingIssue.IssueCode.AttributionSourceUntrustworthyOrigin:
|
138
103
|
await this.#appendElementOrEmptyCell(element, issue);
|
139
104
|
this.appendIssueDetailCell(element, details.invalidParameter || '');
|
@@ -142,14 +107,6 @@ export class AttributionReportingIssueDetailsView extends AffectedResourcesView
|
|
142
107
|
this.#appendRequestOrEmptyCell(element, details.request);
|
143
108
|
this.appendIssueDetailCell(element, details.invalidParameter || '');
|
144
109
|
break;
|
145
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.AttributionSourceUntrustworthyFrameOrigin:
|
146
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.InvalidAttributionSourceEventId:
|
147
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.InvalidAttributionSourceExpiry:
|
148
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.InvalidAttributionSourcePriority:
|
149
|
-
this.#appendFrameOrEmptyCell(element, issue);
|
150
|
-
await this.#appendElementOrEmptyCell(element, issue);
|
151
|
-
this.appendIssueDetailCell(element, details.invalidParameter || '');
|
152
|
-
break;
|
153
110
|
case IssuesManager.AttributionReportingIssue.IssueCode.PermissionPolicyDisabled:
|
154
111
|
this.#appendFrameOrEmptyCell(element, issue);
|
155
112
|
await this.#appendElementOrEmptyCell(element, issue);
|
@@ -181,7 +181,7 @@ class AffectedMixedContentView extends AffectedResourcesView {
|
|
181
181
|
},
|
182
182
|
}));
|
183
183
|
} else {
|
184
|
-
const filename = extractShortPath(mixedContent.insecureURL);
|
184
|
+
const filename = extractShortPath(mixedContent.insecureURL as Platform.DevToolsPath.UrlString);
|
185
185
|
const cell = this.appendIssueDetailCell(element, filename, 'affected-resource-mixed-content-info');
|
186
186
|
cell.title = mixedContent.insecureURL;
|
187
187
|
}
|
@@ -4,6 +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 type * as Platform from '../../core/platform/platform.js';
|
7
8
|
import * as SDK from '../../core/sdk/sdk.js';
|
8
9
|
import * as Protocol from '../../generated/protocol.js';
|
9
10
|
|
@@ -508,7 +509,7 @@ export const RuntimeSettings: RuntimeSetting[] = [
|
|
508
509
|
value: 'snapshot',
|
509
510
|
},
|
510
511
|
],
|
511
|
-
learnMore: 'https://web.dev/lighthouse-user-flows/',
|
512
|
+
learnMore: 'https://web.dev/lighthouse-user-flows/' as Platform.DevToolsPath.UrlString,
|
512
513
|
},
|
513
514
|
{
|
514
515
|
// This setting is disabled, but we keep it around to show in the UI.
|
@@ -517,7 +518,8 @@ export const RuntimeSettings: RuntimeSetting[] = [
|
|
517
518
|
title: i18nLazyString(UIStrings.simulatedThrottling),
|
518
519
|
// We will disable this when we have a Lantern trace viewer within DevTools.
|
519
520
|
learnMore:
|
520
|
-
'https://github.com/GoogleChrome/lighthouse/blob/master/docs/throttling.md#devtools-lighthouse-panel-throttling'
|
521
|
+
'https://github.com/GoogleChrome/lighthouse/blob/master/docs/throttling.md#devtools-lighthouse-panel-throttling' as
|
522
|
+
Platform.DevToolsPath.UrlString,
|
521
523
|
description: i18nLazyString(UIStrings.simulateASlowerPageLoadBasedOn),
|
522
524
|
setFlags: (flags: Flags, value: string|boolean): void => {
|
523
525
|
flags.throttlingMethod = value ? 'simulate' : 'devtools';
|
@@ -600,5 +602,5 @@ export interface RuntimeSetting {
|
|
600
602
|
tooltip?: () => Common.UIString.LocalizedString,
|
601
603
|
}[];
|
602
604
|
title?: () => Common.UIString.LocalizedString;
|
603
|
-
learnMore?:
|
605
|
+
learnMore?: Platform.DevToolsPath.UrlString;
|
604
606
|
}
|
@@ -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 Platform from '../../core/platform/platform.js';
|
5
6
|
import type * as SDK from '../../core/sdk/sdk.js';
|
6
7
|
|
7
8
|
export class LighthouseReportGenerator {
|
@@ -80,7 +81,7 @@ export interface NodeDetailsJSON {
|
|
80
81
|
snippet?: string;
|
81
82
|
}
|
82
83
|
export interface SourceLocationDetailsJSON {
|
83
|
-
sourceUrl?:
|
84
|
+
sourceUrl?: Platform.DevToolsPath.UrlString;
|
84
85
|
sourceLine?: string;
|
85
86
|
sourceColumn?: string;
|
86
87
|
}
|
@@ -150,7 +150,7 @@ export class RequestTrustTokensReport extends HTMLElement {
|
|
150
150
|
// clang-format on
|
151
151
|
}
|
152
152
|
|
153
|
-
#renderParameterSection(): LitHtml.
|
153
|
+
#renderParameterSection(): LitHtml.LitTemplate {
|
154
154
|
if (!this.#trustTokenData || !this.#trustTokenData.params) {
|
155
155
|
return LitHtml.nothing;
|
156
156
|
}
|
@@ -167,14 +167,14 @@ export class RequestTrustTokensReport extends HTMLElement {
|
|
167
167
|
`;
|
168
168
|
}
|
169
169
|
|
170
|
-
#renderRefreshPolicy(params: Protocol.Network.TrustTokenParams): LitHtml.
|
170
|
+
#renderRefreshPolicy(params: Protocol.Network.TrustTokenParams): LitHtml.LitTemplate {
|
171
171
|
if (params.type !== Protocol.Network.TrustTokenOperationType.Redemption) {
|
172
172
|
return LitHtml.nothing;
|
173
173
|
}
|
174
174
|
return renderRowWithCodeValue(i18nString(UIStrings.refreshPolicy), params.refreshPolicy.toString());
|
175
175
|
}
|
176
176
|
|
177
|
-
#renderIssuers(params: Protocol.Network.TrustTokenParams): LitHtml.
|
177
|
+
#renderIssuers(params: Protocol.Network.TrustTokenParams): LitHtml.LitTemplate {
|
178
178
|
if (!params.issuers || params.issuers.length === 0) {
|
179
179
|
return LitHtml.nothing;
|
180
180
|
}
|
@@ -193,7 +193,7 @@ export class RequestTrustTokensReport extends HTMLElement {
|
|
193
193
|
// The issuer and top level origin are technically parameters but reported in the
|
194
194
|
// result structure due to the timing when they are calculated in the backend.
|
195
195
|
// Nonetheless, we show them as part of the parameter section.
|
196
|
-
#renderIssuerAndTopLevelOriginFromResult(): LitHtml.
|
196
|
+
#renderIssuerAndTopLevelOriginFromResult(): LitHtml.LitTemplate {
|
197
197
|
if (!this.#trustTokenData || !this.#trustTokenData.result) {
|
198
198
|
return LitHtml.nothing;
|
199
199
|
}
|
@@ -203,7 +203,7 @@ export class RequestTrustTokensReport extends HTMLElement {
|
|
203
203
|
${renderSimpleRowIfValuePresent(i18nString(UIStrings.issuer), this.#trustTokenData.result.issuerOrigin)}`;
|
204
204
|
}
|
205
205
|
|
206
|
-
#renderResultSection(): LitHtml.
|
206
|
+
#renderResultSection(): LitHtml.LitTemplate {
|
207
207
|
if (!this.#trustTokenData || !this.#trustTokenData.result) {
|
208
208
|
return LitHtml.nothing;
|
209
209
|
}
|
@@ -227,7 +227,7 @@ export class RequestTrustTokensReport extends HTMLElement {
|
|
227
227
|
`;
|
228
228
|
}
|
229
229
|
|
230
|
-
#renderIssuedTokenCount(result: Protocol.Network.TrustTokenOperationDoneEvent): LitHtml.
|
230
|
+
#renderIssuedTokenCount(result: Protocol.Network.TrustTokenOperationDoneEvent): LitHtml.LitTemplate {
|
231
231
|
if (result.type !== Protocol.Network.TrustTokenOperationType.Issuance) {
|
232
232
|
return LitHtml.nothing;
|
233
233
|
}
|
@@ -284,7 +284,7 @@ function getDetailedTextForStatusCode(status: Protocol.Network.TrustTokenOperati
|
|
284
284
|
}
|
285
285
|
}
|
286
286
|
|
287
|
-
function renderSimpleRowIfValuePresent<T>(key: string, value: T|undefined): LitHtml.
|
287
|
+
function renderSimpleRowIfValuePresent<T>(key: string, value: T|undefined): LitHtml.LitTemplate {
|
288
288
|
if (value === undefined) {
|
289
289
|
return LitHtml.nothing;
|
290
290
|
}
|
@@ -1299,8 +1299,8 @@ export class AllocationGridNode extends HeapSnapshotGridNode {
|
|
1299
1299
|
const linkifier = (this.dataGridInternal as AllocationDataGrid).linkifier;
|
1300
1300
|
const urlElement = linkifier.linkifyScriptLocation(
|
1301
1301
|
heapProfilerModel ? heapProfilerModel.target() : null,
|
1302
|
-
String(allocationNode.scriptId) as Protocol.Runtime.ScriptId,
|
1303
|
-
allocationNode.line - 1, {
|
1302
|
+
String(allocationNode.scriptId) as Protocol.Runtime.ScriptId,
|
1303
|
+
allocationNode.scriptName as Platform.DevToolsPath.UrlString, allocationNode.line - 1, {
|
1304
1304
|
columnNumber: allocationNode.column - 1,
|
1305
1305
|
inlineFrameIndex: 0,
|
1306
1306
|
className: 'profile-node-file',
|
@@ -1904,7 +1904,8 @@ export class HeapAllocationStackView extends UI.Widget.Widget {
|
|
1904
1904
|
const target = this.heapProfilerModel ? this.heapProfilerModel.target() : null;
|
1905
1905
|
const options = {columnNumber: frame.column - 1, inlineFrameIndex: 0};
|
1906
1906
|
const urlElement = this.linkifier.linkifyScriptLocation(
|
1907
|
-
target, String(frame.scriptId) as Protocol.Runtime.ScriptId,
|
1907
|
+
target, String(frame.scriptId) as Protocol.Runtime.ScriptId,
|
1908
|
+
frame.scriptName as Platform.DevToolsPath.UrlString, frame.line - 1, options);
|
1908
1909
|
frameDiv.appendChild(urlElement);
|
1909
1910
|
stackFrameToURLElement.set(frameDiv, urlElement);
|
1910
1911
|
frameDiv.addEventListener('contextmenu', this.onContextMenu.bind(this, urlElement));
|
@@ -65,7 +65,7 @@ export class ProfileDataGridNode extends DataGrid.DataGrid.DataGridNode<unknown>
|
|
65
65
|
total: number;
|
66
66
|
functionName: string;
|
67
67
|
readonly deoptReason: string;
|
68
|
-
url:
|
68
|
+
url: Platform.DevToolsPath.UrlString;
|
69
69
|
linkElement: Element|null;
|
70
70
|
populated: boolean;
|
71
71
|
savedSelf?: number;
|
@@ -5,6 +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 type * as Platform from '../../core/platform/platform.js';
|
8
9
|
import * as SDK from '../../core/sdk/sdk.js';
|
9
10
|
import * as Protocol from '../../generated/protocol.js';
|
10
11
|
import * as NetworkForward from '../../panels/network/forward/forward.js';
|
@@ -513,7 +514,7 @@ export class SecurityPanel extends UI.Panel.PanelWithSidebar implements
|
|
513
514
|
return certificateButton;
|
514
515
|
}
|
515
516
|
|
516
|
-
static createHighlightedUrl(url:
|
517
|
+
static createHighlightedUrl(url: Platform.DevToolsPath.UrlString, securityState: string): Element {
|
517
518
|
const schemeSeparator = '://';
|
518
519
|
const index = url.indexOf(schemeSeparator);
|
519
520
|
|
@@ -548,7 +549,7 @@ export class SecurityPanel extends UI.Panel.PanelWithSidebar implements
|
|
548
549
|
// The sidebar element will trigger displaying the main view. Rather than making a redundant call to display the main view, we rely on this.
|
549
550
|
this.sidebarMainViewElement.select(true);
|
550
551
|
}
|
551
|
-
showOrigin(origin:
|
552
|
+
showOrigin(origin: Platform.DevToolsPath.UrlString): void {
|
552
553
|
const originState = this.origins.get(origin);
|
553
554
|
if (!originState) {
|
554
555
|
return;
|
@@ -820,7 +821,7 @@ export class SecurityPanelSidebarTree extends UI.TreeOutline.TreeOutlineInShadow
|
|
820
821
|
}
|
821
822
|
}
|
822
823
|
|
823
|
-
addOrigin(origin:
|
824
|
+
addOrigin(origin: Platform.DevToolsPath.UrlString, securityState: Protocol.Security.SecurityState): void {
|
824
825
|
const originElement = new SecurityPanelSidebarTreeElement(
|
825
826
|
SecurityPanel.createHighlightedUrl(origin, securityState), this.showOriginInPanel.bind(this, origin),
|
826
827
|
'security-sidebar-tree-item', 'security-property');
|
@@ -1394,7 +1395,7 @@ export class SecurityMainView extends UI.Widget.VBox {
|
|
1394
1395
|
export class SecurityOriginView extends UI.Widget.VBox {
|
1395
1396
|
private readonly panel: SecurityPanel;
|
1396
1397
|
private readonly originLockIcon: HTMLElement;
|
1397
|
-
constructor(panel: SecurityPanel, origin:
|
1398
|
+
constructor(panel: SecurityPanel, origin: Platform.DevToolsPath.UrlString, originState: OriginState) {
|
1398
1399
|
super();
|
1399
1400
|
this.panel = panel;
|
1400
1401
|
this.setMinimumSize(200, 100);
|
@@ -1657,4 +1658,4 @@ export interface OriginState {
|
|
1657
1658
|
originView?: SecurityOriginView|null;
|
1658
1659
|
}
|
1659
1660
|
|
1660
|
-
export type Origin =
|
1661
|
+
export type Origin = Platform.DevToolsPath.UrlString;
|
@@ -511,9 +511,8 @@ export class ActionDelegate implements UI.ActionRegistration.ActionDelegate {
|
|
511
511
|
return true;
|
512
512
|
// TODO(crbug.com/1253323): Cast to UrlString will be removed when migration to branded types is complete.
|
513
513
|
case 'settings.documentation':
|
514
|
-
Host.InspectorFrontendHost.InspectorFrontendHostInstance.openInNewTab(
|
515
|
-
|
516
|
-
Platform.DevToolsPath.UrlString);
|
514
|
+
Host.InspectorFrontendHost.InspectorFrontendHostInstance.openInNewTab(UI.UIUtils.addReferrerToURL(
|
515
|
+
'https://developer.chrome.com/docs/devtools/' as Platform.DevToolsPath.UrlString));
|
517
516
|
return true;
|
518
517
|
case 'settings.shortcuts':
|
519
518
|
void SettingsScreen.showSettingsScreen({name: 'keybinds', focusTabHeader: true});
|
@@ -441,7 +441,7 @@ export class DebuggerPlugin extends Plugin {
|
|
441
441
|
} else {
|
442
442
|
const removeTitle = i18nString(UIStrings.removeBreakpoint, {n: breakpoints.length});
|
443
443
|
contextMenu.debugSection().appendItem(
|
444
|
-
removeTitle, () => breakpoints.forEach(breakpoint => breakpoint.remove(false)));
|
444
|
+
removeTitle, () => breakpoints.forEach(breakpoint => void breakpoint.remove(false)));
|
445
445
|
if (breakpoints.length === 1 && supportsConditionalBreakpoints) {
|
446
446
|
// Editing breakpoints only make sense for conditional breakpoints
|
447
447
|
// and logpoints and both are currently only available for JavaScript
|
@@ -520,7 +520,7 @@ export class DebuggerPlugin extends Plugin {
|
|
520
520
|
if (value !== this.muted) {
|
521
521
|
this.muted = value;
|
522
522
|
if (!value) {
|
523
|
-
this.restoreBreakpointsAfterEditing();
|
523
|
+
void this.restoreBreakpointsAfterEditing();
|
524
524
|
} else if (this.editor) {
|
525
525
|
this.editor.dispatch({effects: muteBreakpoints.of(null)});
|
526
526
|
}
|
@@ -1221,18 +1221,19 @@ export class DebuggerPlugin extends Plugin {
|
|
1221
1221
|
// breakpoints the breakpoint manager might have (which point into
|
1222
1222
|
// the old file) with the breakpoints we have, which had their
|
1223
1223
|
// positions tracked through the changes.
|
1224
|
-
private restoreBreakpointsAfterEditing(): void {
|
1224
|
+
private async restoreBreakpointsAfterEditing(): Promise<void> {
|
1225
1225
|
const {breakpoints} = this;
|
1226
1226
|
const editor = this.editor as TextEditor.TextEditor.TextEditor;
|
1227
1227
|
this.breakpoints = [];
|
1228
|
-
|
1228
|
+
await Promise.all(breakpoints.map(async description => {
|
1229
|
+
const {breakpoint, position} = description;
|
1229
1230
|
const condition = breakpoint.condition(), enabled = breakpoint.enabled();
|
1230
|
-
breakpoint.remove(false);
|
1231
|
+
await breakpoint.remove(false);
|
1231
1232
|
const editorLocation = editor.toLineColumn(position);
|
1232
1233
|
const uiLocation =
|
1233
1234
|
this.transformer.editorLocationToUILocation(editorLocation.lineNumber, editorLocation.columnNumber);
|
1234
|
-
|
1235
|
-
}
|
1235
|
+
await this.setBreakpoint(uiLocation.lineNumber, uiLocation.columnNumber, condition, enabled);
|
1236
|
+
}));
|
1236
1237
|
}
|
1237
1238
|
|
1238
1239
|
private async refreshBreakpoints(): Promise<void> {
|
@@ -1269,7 +1270,7 @@ export class DebuggerPlugin extends Plugin {
|
|
1269
1270
|
if (event.shiftKey) {
|
1270
1271
|
breakpoint.setEnabled(!breakpoint.enabled());
|
1271
1272
|
} else {
|
1272
|
-
breakpoint.remove(false);
|
1273
|
+
void breakpoint.remove(false);
|
1273
1274
|
}
|
1274
1275
|
} else if (this.editor) {
|
1275
1276
|
const editorLocation = this.editor.editor.posAtDOM(event.target as unknown as HTMLElement);
|
@@ -1444,7 +1445,7 @@ export class DebuggerPlugin extends Plugin {
|
|
1444
1445
|
if (onlyDisable) {
|
1445
1446
|
breakpoint.setEnabled(hasDisabled);
|
1446
1447
|
} else {
|
1447
|
-
breakpoint.remove(false);
|
1448
|
+
void breakpoint.remove(false);
|
1448
1449
|
}
|
1449
1450
|
}
|
1450
1451
|
}
|
@@ -426,7 +426,7 @@ export class JavaScriptBreakpointsSidebarPane extends UI.ThrottledWidget.Throttl
|
|
426
426
|
const removeEntryTitle = breakpoints.length > 1 ? i18nString(UIStrings.removeAllBreakpointsInLine) :
|
427
427
|
i18nString(UIStrings.removeBreakpoint);
|
428
428
|
contextMenu.defaultSection().appendItem(
|
429
|
-
removeEntryTitle, () => breakpoints.map(breakpoint => breakpoint.remove(false /* keepInStorage */)));
|
429
|
+
removeEntryTitle, () => breakpoints.map(breakpoint => void breakpoint.remove(false /* keepInStorage */)));
|
430
430
|
if (event.target instanceof Element) {
|
431
431
|
contextMenu.defaultSection().appendItem(
|
432
432
|
i18nString(UIStrings.revealLocation), this.revealLocation.bind(this, event.target));
|
@@ -487,14 +487,14 @@ export class JavaScriptBreakpointsSidebarPane extends UI.ThrottledWidget.Throttl
|
|
487
487
|
|
488
488
|
private removeAllBreakpoints(): void {
|
489
489
|
for (const breakpointLocation of this.breakpointManager.allBreakpointLocations()) {
|
490
|
-
breakpointLocation.breakpoint.remove(false /* keepInStorage */);
|
490
|
+
void breakpointLocation.breakpoint.remove(false /* keepInStorage */);
|
491
491
|
}
|
492
492
|
}
|
493
493
|
|
494
494
|
private removeOtherBreakpoints(selectedBreakpoints: Set<Bindings.BreakpointManager.Breakpoint>): void {
|
495
495
|
for (const breakpointLocation of this.breakpointManager.allBreakpointLocations()) {
|
496
496
|
if (!selectedBreakpoints.has(breakpointLocation.breakpoint)) {
|
497
|
-
breakpointLocation.breakpoint.remove(false /* keepInStorage */);
|
497
|
+
void breakpointLocation.breakpoint.remove(false /* keepInStorage */);
|
498
498
|
}
|
499
499
|
}
|
500
500
|
}
|
@@ -75,18 +75,14 @@ export class PerformanceModel extends Common.ObjectWrapper.ObjectWrapper<EventTy
|
|
75
75
|
this.tracingModelInternal = model;
|
76
76
|
this.timelineModelInternal.setEvents(model);
|
77
77
|
|
78
|
-
let inputEvents: SDK.TracingModel.AsyncEvent[]|null = null;
|
79
78
|
let animationEvents: SDK.TracingModel.AsyncEvent[]|null = null;
|
80
79
|
for (const track of this.timelineModelInternal.tracks()) {
|
81
|
-
if (track.type === TimelineModel.TimelineModel.TrackType.Input) {
|
82
|
-
inputEvents = track.asyncEvents;
|
83
|
-
}
|
84
80
|
if (track.type === TimelineModel.TimelineModel.TrackType.Animation) {
|
85
81
|
animationEvents = track.asyncEvents;
|
86
82
|
}
|
87
83
|
}
|
88
|
-
if (
|
89
|
-
this.irModel.populate(
|
84
|
+
if (animationEvents) {
|
85
|
+
this.irModel.populate([], animationEvents || []);
|
90
86
|
}
|
91
87
|
|
92
88
|
const mainTracks = this.timelineModelInternal.tracks().filter(
|
@@ -54,10 +54,6 @@ const UIStrings = {
|
|
54
54
|
*/
|
55
55
|
onIgnoreList: 'On ignore list',
|
56
56
|
/**
|
57
|
-
*@description Text in Timeline Flame Chart Data Provider of the Performance panel
|
58
|
-
*/
|
59
|
-
input: 'Input',
|
60
|
-
/**
|
61
57
|
*@description Text that refers to the animation of the web page
|
62
58
|
*/
|
63
59
|
animation: 'Animation',
|
@@ -428,10 +424,8 @@ export class TimelineFlameChartDataProvider extends Common.ObjectWrapper.ObjectW
|
|
428
424
|
|
429
425
|
const eventEntryType = EntryType.Event;
|
430
426
|
|
431
|
-
const weight = (track: TimelineModel.TimelineModel.Track):
|
427
|
+
const weight = (track: TimelineModel.TimelineModel.Track): 1|2|3|4|5|6|7|8|9|10|- 1 => {
|
432
428
|
switch (track.type) {
|
433
|
-
case TimelineModel.TimelineModel.TrackType.Input:
|
434
|
-
return 0;
|
435
429
|
case TimelineModel.TimelineModel.TrackType.Animation:
|
436
430
|
return 1;
|
437
431
|
case TimelineModel.TimelineModel.TrackType.Timings:
|
@@ -464,13 +458,6 @@ export class TimelineFlameChartDataProvider extends Common.ObjectWrapper.ObjectW
|
|
464
458
|
let rasterCount = 0;
|
465
459
|
for (const track of tracks) {
|
466
460
|
switch (track.type) {
|
467
|
-
case TimelineModel.TimelineModel.TrackType.Input: {
|
468
|
-
this.appendAsyncEventsGroup(
|
469
|
-
track, i18nString(UIStrings.input), track.asyncEvents, this.interactionsHeaderLevel2, eventEntryType,
|
470
|
-
false /* selectable */);
|
471
|
-
break;
|
472
|
-
}
|
473
|
-
|
474
461
|
case TimelineModel.TimelineModel.TrackType.Animation: {
|
475
462
|
this.appendAsyncEventsGroup(
|
476
463
|
track, i18nString(UIStrings.animation), track.asyncEvents, this.interactionsHeaderLevel2, eventEntryType,
|