chrome-devtools-frontend 1.0.1543472 → 1.0.1545096
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/AUTHORS +1 -0
- package/config/typescript/tsconfig.eslint.json +1 -0
- package/front_end/core/common/ParsedURL.ts +1 -1
- package/front_end/core/common/common.ts +0 -2
- package/front_end/core/host/AidaClient.ts +10 -7
- package/front_end/core/host/DispatchHttpRequestClient.ts +18 -3
- package/front_end/core/protocol_client/CDPConnection.ts +3 -3
- package/front_end/core/protocol_client/DevToolsCDPConnection.ts +2 -1
- package/front_end/core/root/Runtime.ts +8 -7
- package/front_end/core/sdk/CPUThrottlingManager.ts +0 -4
- package/front_end/core/sdk/CSSMatchedStyles.ts +7 -9
- package/front_end/core/sdk/CSSMetadata.ts +17 -5
- package/front_end/core/sdk/CSSModel.ts +1 -1
- package/front_end/core/sdk/CSSRule.ts +18 -6
- package/front_end/core/sdk/ChildTargetManager.ts +2 -2
- package/front_end/core/sdk/NetworkManager.ts +6 -8
- package/front_end/core/sdk/NetworkRequest.ts +4 -0
- package/front_end/core/sdk/SDKModel.ts +4 -2
- package/front_end/core/sdk/TargetManager.ts +14 -15
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotLoader.ts +2 -0
- package/front_end/entrypoints/main/MainImpl.ts +0 -16
- package/front_end/foundation/Universe.ts +12 -1
- package/front_end/generated/Deprecation.ts +4 -0
- package/front_end/generated/InspectorBackendCommands.ts +2 -5
- package/front_end/generated/SupportedCSSProperties.js +0 -23
- package/front_end/generated/protocol-mapping.d.ts +0 -15
- package/front_end/generated/protocol-proxy-api.d.ts +0 -11
- package/front_end/generated/protocol.ts +2 -34
- package/front_end/models/ai_assistance/agents/AiAgent.ts +10 -8
- package/front_end/models/ai_assistance/agents/PatchAgent.ts +7 -1
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +0 -5
- package/front_end/models/ai_assistance/agents/StylingAgent.ts +4 -8
- package/front_end/models/ai_code_completion/AiCodeCompletion.ts +1 -1
- package/front_end/models/ai_code_generation/AiCodeGeneration.ts +5 -3
- package/front_end/models/bindings/CSSWorkspaceBinding.ts +8 -7
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +9 -8
- package/front_end/models/bindings/ResourceMapping.ts +57 -15
- package/front_end/models/live-metrics/LiveMetrics.ts +12 -20
- package/front_end/panels/accessibility/AccessibilityNodeView.ts +6 -2
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +3 -2
- package/front_end/panels/ai_assistance/components/ChatView.ts +2 -4
- package/front_end/panels/ai_assistance/components/PerformanceAgentMarkdownRenderer.ts +2 -1
- package/front_end/panels/ai_assistance/components/UserActionRow.ts +2 -1
- package/front_end/panels/animation/AnimationTimeline.ts +6 -6
- package/front_end/panels/application/ApplicationPanelSidebar.ts +6 -7
- package/front_end/panels/application/{components/FrameDetailsView.ts → FrameDetailsView.ts} +134 -165
- package/front_end/panels/application/{components/OriginTrialTreeView.ts → OriginTrialTreeView.ts} +9 -9
- package/front_end/panels/application/application.ts +4 -0
- package/front_end/panels/application/components/ReportsGrid.ts +7 -2
- package/front_end/panels/application/components/SharedStorageAccessGrid.ts +5 -3
- package/front_end/panels/application/components/StackTrace.ts +5 -3
- package/front_end/panels/application/components/TrustTokensView.ts +7 -1
- package/front_end/panels/application/components/components.ts +2 -4
- package/front_end/panels/application/{components/frameDetailsReportView.css → frameDetailsReportView.css} +5 -1
- package/front_end/panels/application/preloading/PreloadingView.ts +10 -4
- package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +7 -11
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +15 -3
- package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +12 -13
- package/front_end/panels/common/BadgeNotification.ts +2 -1
- package/front_end/panels/{elements → common}/DOMLinkifier.ts +13 -8
- package/front_end/panels/common/GdpSignUpDialog.ts +2 -1
- package/front_end/panels/common/common.ts +1 -0
- package/front_end/panels/console/ConsoleViewMessage.ts +4 -4
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +2 -1
- package/front_end/panels/elements/ElementStatePaneWidget.ts +2 -1
- package/front_end/panels/elements/ElementsTreeElement.ts +3 -1
- package/front_end/panels/elements/StylePropertiesSection.ts +52 -15
- package/front_end/panels/elements/StylePropertyTreeElement.ts +8 -3
- package/front_end/panels/elements/StylesSidebarPane.ts +24 -14
- package/front_end/panels/elements/elements-meta.ts +0 -13
- package/front_end/panels/elements/elements.ts +0 -3
- package/front_end/panels/explain/components/ConsoleInsight.ts +31 -20
- package/front_end/panels/issues/AffectedResourcesView.ts +2 -1
- package/front_end/panels/lighthouse/LighthouseProtocolService.ts +3 -6
- package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +2 -1
- package/front_end/panels/network/NetworkLogView.ts +1 -1
- package/front_end/panels/recorder/RecorderController.ts +7 -1
- package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +2 -1
- package/front_end/panels/settings/SettingsScreen.ts +3 -2
- package/front_end/panels/sources/AiCodeCompletionPlugin.ts +42 -294
- package/front_end/panels/sources/DebuggerPausedMessage.ts +3 -3
- package/front_end/panels/sources/SourcesPanel.ts +5 -1
- package/front_end/panels/timeline/TimelineUIUtils.ts +3 -2
- package/front_end/panels/timeline/components/LiveMetricsView.ts +18 -6
- package/front_end/panels/timeline/components/MetricCard.ts +2 -2
- package/front_end/panels/timeline/components/insights/NodeLink.ts +4 -4
- package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +2 -1
- package/front_end/panels/timeline/timeline-meta.ts +0 -10
- package/front_end/panels/timeline/timeline.ts +0 -2
- package/front_end/panels/whats_new/ReleaseNoteView.ts +2 -1
- package/front_end/panels/whats_new/WhatsNewImpl.ts +3 -2
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js +4 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkEventManager.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkEventManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkEventManager.js +8 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkEventManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.js +22 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +34 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js +4 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkEventManager.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkEventManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkEventManager.js +8 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkEventManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.js +22 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/package.json +2 -2
- package/front_end/third_party/puppeteer/package/src/cdp/HTTPRequest.ts +5 -1
- package/front_end/third_party/puppeteer/package/src/cdp/NetworkEventManager.ts +16 -1
- package/front_end/third_party/puppeteer/package/src/cdp/NetworkManager.ts +28 -0
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
- package/front_end/tsconfig.json +1 -0
- package/front_end/ui/components/buttons/Button.docs.ts +6 -5
- package/front_end/ui/components/snackbars/Snackbars.docs.ts +1 -1
- package/front_end/ui/components/spinners/Spinners.docs.ts +1 -1
- package/front_end/ui/components/survey_link/SurveyLink.docs.ts +2 -1
- package/front_end/ui/components/switch/Switch.docs.ts +1 -1
- package/front_end/ui/components/text_editor/AiCodeCompletionProvider.ts +8 -5
- package/front_end/ui/components/tooltips/Tooltip.docs.ts +3 -3
- package/front_end/ui/helpers/OpenInNewTab.ts +87 -0
- package/front_end/ui/helpers/helpers.ts +5 -0
- package/front_end/ui/i18n/i18n.ts +16 -0
- package/front_end/ui/legacy/ContextMenu.docs.ts +12 -11
- package/front_end/ui/legacy/RadioButton.docs.ts +1 -1
- package/front_end/ui/legacy/SelectMenu.docs.ts +1 -1
- package/front_end/ui/legacy/Slider.docs.ts +1 -1
- package/front_end/ui/legacy/UIUtils.ts +1 -34
- package/front_end/ui/legacy/Widget.ts +56 -25
- package/front_end/ui/legacy/XLink.ts +4 -6
- package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +2 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +3 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +294 -336
- package/front_end/ui/legacy/components/utils/Linkifier.ts +2 -1
- package/front_end/ui/legacy/inspectorCommon.css +0 -4
- package/mcp/mcp.ts +1 -0
- package/mcp/tsconfig.json +16 -0
- package/package.json +2 -2
- package/front_end/core/common/Linkifier.ts +0 -55
- package/front_end/panels/timeline/CLSLinkifier.ts +0 -58
- package/front_end/ui/components/expandable_list/ExpandableList.docs.ts +0 -30
- /package/front_end/panels/application/{components/originTrialTokenRows.css → originTrialTokenRows.css} +0 -0
- /package/front_end/panels/application/{components/originTrialTreeView.css → originTrialTreeView.css} +0 -0
- /package/front_end/panels/{elements → common}/domLinkifier.css +0 -0
|
@@ -1,39 +1,32 @@
|
|
|
1
1
|
// Copyright 2021 The Chromium Authors
|
|
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
|
-
/* eslint-disable @devtools/no-lit-render-outside-of-view */
|
|
5
|
-
|
|
6
|
-
import '../../../ui/components/expandable_list/expandable_list.js';
|
|
7
|
-
import '../../../ui/components/report_view/report_view.js';
|
|
8
|
-
import './StackTrace.js';
|
|
9
|
-
|
|
10
|
-
import * as Common from '../../../core/common/common.js';
|
|
11
|
-
import * as i18n from '../../../core/i18n/i18n.js';
|
|
12
|
-
import type * as Platform from '../../../core/platform/platform.js';
|
|
13
|
-
import * as Root from '../../../core/root/root.js';
|
|
14
|
-
import * as SDK from '../../../core/sdk/sdk.js';
|
|
15
|
-
import * as Protocol from '../../../generated/protocol.js';
|
|
16
|
-
import * as Bindings from '../../../models/bindings/bindings.js';
|
|
17
|
-
import * as Workspace from '../../../models/workspace/workspace.js';
|
|
18
|
-
import * as NetworkForward from '../../../panels/network/forward/forward.js';
|
|
19
|
-
import * as CspEvaluator from '../../../third_party/csp_evaluator/csp_evaluator.js';
|
|
20
|
-
import * as Buttons from '../../../ui/components/buttons/buttons.js';
|
|
21
|
-
import type * as ExpandableList from '../../../ui/components/expandable_list/expandable_list.js';
|
|
22
|
-
import * as LegacyWrapper from '../../../ui/components/legacy_wrapper/legacy_wrapper.js';
|
|
23
|
-
import * as RenderCoordinator from '../../../ui/components/render_coordinator/render_coordinator.js';
|
|
24
|
-
import type * as ReportView from '../../../ui/components/report_view/report_view.js';
|
|
25
|
-
import * as Components from '../../../ui/legacy/components/utils/utils.js';
|
|
26
|
-
import * as UI from '../../../ui/legacy/legacy.js';
|
|
27
|
-
import {Directives, html, type LitTemplate, nothing, render} from '../../../ui/lit/lit.js';
|
|
28
|
-
import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
|
|
29
4
|
|
|
5
|
+
import '../../ui/components/expandable_list/expandable_list.js';
|
|
6
|
+
import '../../ui/components/report_view/report_view.js';
|
|
7
|
+
|
|
8
|
+
import * as Common from '../../core/common/common.js';
|
|
9
|
+
import * as i18n from '../../core/i18n/i18n.js';
|
|
10
|
+
import type * as Platform from '../../core/platform/platform.js';
|
|
11
|
+
import * as Root from '../../core/root/root.js';
|
|
12
|
+
import * as SDK from '../../core/sdk/sdk.js';
|
|
13
|
+
import * as Protocol from '../../generated/protocol.js';
|
|
14
|
+
import * as Bindings from '../../models/bindings/bindings.js';
|
|
15
|
+
import * as Workspace from '../../models/workspace/workspace.js';
|
|
16
|
+
import * as PanelCommon from '../../panels/common/common.js';
|
|
17
|
+
import * as NetworkForward from '../../panels/network/forward/forward.js';
|
|
18
|
+
import * as CspEvaluator from '../../third_party/csp_evaluator/csp_evaluator.js';
|
|
19
|
+
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
20
|
+
import type * as ExpandableList from '../../ui/components/expandable_list/expandable_list.js';
|
|
21
|
+
import type * as ReportView from '../../ui/components/report_view/report_view.js';
|
|
22
|
+
import * as Components from '../../ui/legacy/components/utils/utils.js';
|
|
23
|
+
import * as UI from '../../ui/legacy/legacy.js';
|
|
24
|
+
import {Directives, html, type LitTemplate, nothing, render} from '../../ui/lit/lit.js';
|
|
25
|
+
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
26
|
+
|
|
27
|
+
import * as ApplicationComponents from './components/components.js';
|
|
30
28
|
import frameDetailsReportViewStyles from './frameDetailsReportView.css.js';
|
|
31
29
|
import {OriginTrialTreeView} from './OriginTrialTreeView.js';
|
|
32
|
-
import {
|
|
33
|
-
type PermissionsPolicySectionData,
|
|
34
|
-
renderIconLink,
|
|
35
|
-
} from './PermissionsPolicySection.js';
|
|
36
|
-
import type {StackTraceData} from './StackTrace.js';
|
|
37
30
|
|
|
38
31
|
const {until} = Directives;
|
|
39
32
|
const {widgetConfig} = UI.Widget;
|
|
@@ -87,10 +80,6 @@ const UIStrings = {
|
|
|
87
80
|
* @description Related node label in Timeline UIUtils of the Performance panel
|
|
88
81
|
*/
|
|
89
82
|
ownerElement: 'Owner Element',
|
|
90
|
-
/**
|
|
91
|
-
* @description Title for a link to the Elements panel
|
|
92
|
-
*/
|
|
93
|
-
clickToOpenInElementsPanel: 'Click to open in Elements panel',
|
|
94
83
|
/**
|
|
95
84
|
* @description Title for ad frame type field
|
|
96
85
|
*/
|
|
@@ -269,7 +258,7 @@ const UIStrings = {
|
|
|
269
258
|
*/
|
|
270
259
|
originTrialsExplanation: 'Origin trials give you access to a new or experimental feature.',
|
|
271
260
|
} as const;
|
|
272
|
-
const str_ = i18n.i18n.registerUIStrings('panels/application/
|
|
261
|
+
const str_ = i18n.i18n.registerUIStrings('panels/application/FrameDetailsView.ts', UIStrings);
|
|
273
262
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
274
263
|
|
|
275
264
|
export interface FrameDetailsReportViewData {
|
|
@@ -287,10 +276,13 @@ interface FrameDetailsViewInput {
|
|
|
287
276
|
protocolMonitorExperimentEnabled: boolean;
|
|
288
277
|
trials: Protocol.Page.OriginTrial[]|null;
|
|
289
278
|
securityIsolationInfo?: Promise<Protocol.Network.SecurityIsolationStatus|null>;
|
|
279
|
+
onRevealInNetwork?: () => void;
|
|
290
280
|
onRevealInSources: () => void;
|
|
291
281
|
}
|
|
292
282
|
|
|
293
|
-
|
|
283
|
+
type View = (input: FrameDetailsViewInput, output: undefined, target: HTMLElement) => void;
|
|
284
|
+
|
|
285
|
+
const DEFAULT_VIEW: View = (input, _output, target) => {
|
|
294
286
|
if (!input.frame) {
|
|
295
287
|
return;
|
|
296
288
|
}
|
|
@@ -305,14 +297,14 @@ function renderFrameDetailsView(input: FrameDetailsViewInput, target: ShadowRoot
|
|
|
305
297
|
${renderOriginTrial(input.trials)}
|
|
306
298
|
${until(input.permissionsPolicies?.then?.(policies =>
|
|
307
299
|
html`
|
|
308
|
-
<devtools-resources-permissions-policy-section .data=${{policies, showDetails: false} as PermissionsPolicySectionData}>
|
|
300
|
+
<devtools-resources-permissions-policy-section .data=${{policies, showDetails: false} as ApplicationComponents.PermissionsPolicySection.PermissionsPolicySectionData}>
|
|
309
301
|
</devtools-resources-permissions-policy-section>
|
|
310
302
|
`), nothing)}
|
|
311
303
|
${input.protocolMonitorExperimentEnabled ? renderAdditionalInfoSection(input.frame) : nothing}
|
|
312
304
|
</devtools-report>
|
|
313
305
|
`, target);
|
|
314
306
|
// clang-format on
|
|
315
|
-
}
|
|
307
|
+
};
|
|
316
308
|
|
|
317
309
|
function renderOriginTrial(trials: Protocol.Page.OriginTrial[]|null): LitTemplate {
|
|
318
310
|
if (!trials) {
|
|
@@ -350,27 +342,23 @@ function renderDocumentSection(input: FrameDetailsViewInput): LitTemplate {
|
|
|
350
342
|
<devtools-report-key>${i18nString(UIStrings.url)}</devtools-report-key>
|
|
351
343
|
<devtools-report-value>
|
|
352
344
|
<div class="inline-items">
|
|
353
|
-
${
|
|
354
|
-
${
|
|
345
|
+
${!input.frame?.unreachableUrl() ? renderSourcesLinkForURL(input.onRevealInSources) : nothing}
|
|
346
|
+
${input.onRevealInNetwork ? renderNetworkLinkForURL(input.onRevealInNetwork) : nothing}
|
|
355
347
|
<div class="text-ellipsis" title=${input.frame.url}>${input.frame.url}</div>
|
|
356
348
|
</div>
|
|
357
349
|
</devtools-report-value>
|
|
358
|
-
${maybeRenderUnreachableURL(input.frame)}
|
|
359
|
-
${maybeRenderOrigin(input.frame)}
|
|
360
|
-
${until(input.linkTargetDOMNode?.then?.(value => renderOwnerElement(
|
|
361
|
-
${maybeRenderCreationStacktrace(input.frame)}
|
|
362
|
-
${maybeRenderAdStatus(input.frame)}
|
|
363
|
-
${maybeRenderCreatorAdScriptAncestry(input.frame, input.target, input.adScriptAncestry)}
|
|
350
|
+
${maybeRenderUnreachableURL(input.frame?.unreachableUrl())}
|
|
351
|
+
${maybeRenderOrigin(input.frame?.securityOrigin)}
|
|
352
|
+
${until(input.linkTargetDOMNode?.then?.(value => renderOwnerElement(value)), nothing)}
|
|
353
|
+
${maybeRenderCreationStacktrace(input.frame.getCreationStackTraceData())}
|
|
354
|
+
${maybeRenderAdStatus(input.frame?.adFrameType(), input.frame?.adFrameStatus())}
|
|
355
|
+
${maybeRenderCreatorAdScriptAncestry(input.frame?.adFrameType(), input.target, input.adScriptAncestry)}
|
|
364
356
|
<devtools-report-divider></devtools-report-divider>
|
|
365
357
|
`;
|
|
366
358
|
}
|
|
367
359
|
|
|
368
|
-
function
|
|
369
|
-
|
|
370
|
-
if (!frame || frame.unreachableUrl()) {
|
|
371
|
-
return nothing;
|
|
372
|
-
}
|
|
373
|
-
return renderIconLink(
|
|
360
|
+
function renderSourcesLinkForURL(onRevealInSources: () => void): LitTemplate {
|
|
361
|
+
return ApplicationComponents.PermissionsPolicySection.renderIconLink(
|
|
374
362
|
'label',
|
|
375
363
|
i18nString(UIStrings.clickToOpenInSourcesPanel),
|
|
376
364
|
onRevealInSources,
|
|
@@ -378,77 +366,64 @@ function maybeRenderSourcesLinkForURL(
|
|
|
378
366
|
);
|
|
379
367
|
}
|
|
380
368
|
|
|
381
|
-
function
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
if (resource?.request) {
|
|
385
|
-
const request = resource.request;
|
|
386
|
-
return renderIconLink('arrow-up-down-circle', i18nString(UIStrings.clickToOpenInNetworkPanel), () => {
|
|
387
|
-
const requestLocation = NetworkForward.UIRequestLocation.UIRequestLocation.tab(
|
|
388
|
-
request, NetworkForward.UIRequestLocation.UIRequestTabs.HEADERS_COMPONENT);
|
|
389
|
-
return Common.Revealer.reveal(requestLocation);
|
|
390
|
-
}, 'reveal-in-network');
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
return nothing;
|
|
369
|
+
function renderNetworkLinkForURL(onRevealInNetwork: () => void): LitTemplate {
|
|
370
|
+
return ApplicationComponents.PermissionsPolicySection.renderIconLink(
|
|
371
|
+
'arrow-up-down-circle', i18nString(UIStrings.clickToOpenInNetworkPanel), onRevealInNetwork, 'reveal-in-network');
|
|
394
372
|
}
|
|
395
373
|
|
|
396
|
-
function maybeRenderUnreachableURL(
|
|
397
|
-
if (!
|
|
374
|
+
function maybeRenderUnreachableURL(unreachableUrl: Platform.DevToolsPath.UrlString): LitTemplate {
|
|
375
|
+
if (!unreachableUrl) {
|
|
398
376
|
return nothing;
|
|
399
377
|
}
|
|
400
378
|
return html`
|
|
401
379
|
<devtools-report-key>${i18nString(UIStrings.unreachableUrl)}</devtools-report-key>
|
|
402
380
|
<devtools-report-value>
|
|
403
381
|
<div class="inline-items">
|
|
404
|
-
${renderNetworkLinkForUnreachableURL(
|
|
405
|
-
<div class="text-ellipsis" title=${
|
|
382
|
+
${renderNetworkLinkForUnreachableURL(unreachableUrl)}
|
|
383
|
+
<div class="text-ellipsis" title=${unreachableUrl}>${unreachableUrl}</div>
|
|
406
384
|
</div>
|
|
407
385
|
</devtools-report-value>
|
|
408
386
|
`;
|
|
409
387
|
}
|
|
410
388
|
|
|
411
|
-
function renderNetworkLinkForUnreachableURL(
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
void
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
);
|
|
433
|
-
}
|
|
389
|
+
function renderNetworkLinkForUnreachableURL(unreachableUrlString: Platform.DevToolsPath.UrlString): LitTemplate {
|
|
390
|
+
const unreachableUrl = Common.ParsedURL.ParsedURL.fromString(unreachableUrlString);
|
|
391
|
+
if (unreachableUrl) {
|
|
392
|
+
return ApplicationComponents.PermissionsPolicySection.renderIconLink(
|
|
393
|
+
'arrow-up-down-circle',
|
|
394
|
+
i18nString(UIStrings.clickToOpenInNetworkPanelMight),
|
|
395
|
+
():
|
|
396
|
+
void => {
|
|
397
|
+
void Common.Revealer.reveal(NetworkForward.UIFilter.UIRequestFilter.filters([
|
|
398
|
+
{
|
|
399
|
+
filterType: NetworkForward.UIFilter.FilterType.Domain,
|
|
400
|
+
filterValue: unreachableUrl.domain(),
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
filterType: null,
|
|
404
|
+
filterValue: unreachableUrl.path,
|
|
405
|
+
},
|
|
406
|
+
]));
|
|
407
|
+
},
|
|
408
|
+
'unreachable-url.reveal-in-network',
|
|
409
|
+
);
|
|
434
410
|
}
|
|
435
411
|
return nothing;
|
|
436
412
|
}
|
|
437
413
|
|
|
438
|
-
function maybeRenderOrigin(
|
|
439
|
-
if (
|
|
414
|
+
function maybeRenderOrigin(securityOrigin: string|null): LitTemplate {
|
|
415
|
+
if (securityOrigin && securityOrigin !== '://') {
|
|
440
416
|
return html`
|
|
441
417
|
<devtools-report-key>${i18nString(UIStrings.origin)}</devtools-report-key>
|
|
442
418
|
<devtools-report-value>
|
|
443
|
-
<div class="text-ellipsis" title=${
|
|
419
|
+
<div class="text-ellipsis" title=${securityOrigin}>${securityOrigin}</div>
|
|
444
420
|
</devtools-report-value>
|
|
445
421
|
`;
|
|
446
422
|
}
|
|
447
423
|
return nothing;
|
|
448
424
|
}
|
|
449
425
|
|
|
450
|
-
function renderOwnerElement(
|
|
451
|
-
frame: SDK.ResourceTreeModel.ResourceTreeFrame|null, linkTargetDOMNode: SDK.DOMModel.DOMNode|null): LitTemplate {
|
|
426
|
+
function renderOwnerElement(linkTargetDOMNode: SDK.DOMModel.DOMNode|null): LitTemplate {
|
|
452
427
|
if (linkTargetDOMNode) {
|
|
453
428
|
// Disabled until https://crbug.com/1079231 is fixed.
|
|
454
429
|
// clang-format off
|
|
@@ -456,14 +431,10 @@ function renderOwnerElement(
|
|
|
456
431
|
<devtools-report-key>${i18nString(UIStrings.ownerElement)}</devtools-report-key>
|
|
457
432
|
<devtools-report-value class="without-min-width">
|
|
458
433
|
<div class="inline-items">
|
|
459
|
-
<
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
jslog=${VisualLogging.action('reveal-in-elements').track({click: true})}
|
|
464
|
-
>
|
|
465
|
-
<${linkTargetDOMNode.nodeName().toLocaleLowerCase()}>
|
|
466
|
-
</button>
|
|
434
|
+
<devtools-widget .widgetConfig=${widgetConfig(PanelCommon.DOMLinkifier.DOMNodeLink, {
|
|
435
|
+
node: linkTargetDOMNode
|
|
436
|
+
})}>
|
|
437
|
+
</devtools-widget>
|
|
467
438
|
</div>
|
|
468
439
|
</devtools-report-value>
|
|
469
440
|
`;
|
|
@@ -472,8 +443,10 @@ function renderOwnerElement(
|
|
|
472
443
|
return nothing;
|
|
473
444
|
}
|
|
474
445
|
|
|
475
|
-
function maybeRenderCreationStacktrace(
|
|
476
|
-
|
|
446
|
+
function maybeRenderCreationStacktrace(
|
|
447
|
+
creationStackTraceData:
|
|
448
|
+
{creationStackTrace: Protocol.Runtime.StackTrace|null, creationStackTraceTarget: SDK.Target.Target}|
|
|
449
|
+
null): LitTemplate {
|
|
477
450
|
if (creationStackTraceData?.creationStackTrace) {
|
|
478
451
|
// Disabled until https://crbug.com/1079231 is fixed.
|
|
479
452
|
// clang-format off
|
|
@@ -484,9 +457,9 @@ function maybeRenderCreationStacktrace(frame: SDK.ResourceTreeModel.ResourceTree
|
|
|
484
457
|
jslog=${VisualLogging.section('frame-creation-stack-trace')}
|
|
485
458
|
>
|
|
486
459
|
<devtools-resources-stack-trace .data=${{
|
|
487
|
-
|
|
460
|
+
creationStackTraceData,
|
|
488
461
|
buildStackTraceRows: Components.JSPresentationUtils.buildStackTraceRowsForLegacyRuntimeStackTrace,
|
|
489
|
-
} as StackTraceData}>
|
|
462
|
+
} as ApplicationComponents.StackTrace.StackTraceData}>
|
|
490
463
|
</devtools-resources-stack-trace>
|
|
491
464
|
</devtools-report-value>
|
|
492
465
|
`;
|
|
@@ -516,17 +489,15 @@ function getAdFrameExplanationString(explanation: Protocol.Page.AdFrameExplanati
|
|
|
516
489
|
}
|
|
517
490
|
}
|
|
518
491
|
|
|
519
|
-
function maybeRenderAdStatus(
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
const adFrameType = frame.adFrameType();
|
|
524
|
-
if (adFrameType === Protocol.Page.AdFrameType.None) {
|
|
492
|
+
function maybeRenderAdStatus(
|
|
493
|
+
adFrameType: Protocol.Page.AdFrameType|undefined,
|
|
494
|
+
adFrameStatus: Protocol.Page.AdFrameStatus|undefined): LitTemplate {
|
|
495
|
+
if (adFrameType === undefined || adFrameType === Protocol.Page.AdFrameType.None) {
|
|
525
496
|
return nothing;
|
|
526
497
|
}
|
|
527
498
|
const typeStrings = getAdFrameTypeStrings(adFrameType);
|
|
528
499
|
const rows = [html`<div title=${typeStrings.description}>${typeStrings.value}</div>`];
|
|
529
|
-
for (const explanation of
|
|
500
|
+
for (const explanation of adFrameStatus?.explanations || []) {
|
|
530
501
|
rows.push(html`<div>${getAdFrameExplanationString(explanation)}</div>`);
|
|
531
502
|
}
|
|
532
503
|
|
|
@@ -543,12 +514,8 @@ function maybeRenderAdStatus(frame: SDK.ResourceTreeModel.ResourceTreeFrame|null
|
|
|
543
514
|
}
|
|
544
515
|
|
|
545
516
|
function maybeRenderCreatorAdScriptAncestry(
|
|
546
|
-
|
|
517
|
+
adFrameType: Protocol.Page.AdFrameType|null, target: SDK.Target.Target|null,
|
|
547
518
|
adScriptAncestry: Protocol.Page.AdScriptAncestry|null): LitTemplate {
|
|
548
|
-
if (!frame) {
|
|
549
|
-
return nothing;
|
|
550
|
-
}
|
|
551
|
-
const adFrameType = frame.adFrameType();
|
|
552
519
|
if (adFrameType === Protocol.Page.AdFrameType.None) {
|
|
553
520
|
return nothing;
|
|
554
521
|
}
|
|
@@ -875,27 +842,31 @@ function renderAdditionalInfoSection(frame: SDK.ResourceTreeModel.ResourceTreeFr
|
|
|
875
842
|
`;
|
|
876
843
|
}
|
|
877
844
|
|
|
878
|
-
export class FrameDetailsReportView extends
|
|
879
|
-
readonly #shadow = this.attachShadow({mode: 'open'});
|
|
845
|
+
export class FrameDetailsReportView extends UI.Widget.Widget {
|
|
880
846
|
#frame?: SDK.ResourceTreeModel.ResourceTreeFrame;
|
|
881
847
|
#target: SDK.Target.Target|null = null;
|
|
882
848
|
#protocolMonitorExperimentEnabled = false;
|
|
883
849
|
#permissionsPolicies: Promise<Protocol.Page.PermissionsPolicyFeatureState[]|null>|null = null;
|
|
884
850
|
#linkifier = new Components.Linkifier.Linkifier();
|
|
885
851
|
#adScriptAncestry: Protocol.Page.AdScriptAncestry|null = null;
|
|
852
|
+
#view: View;
|
|
886
853
|
|
|
887
|
-
constructor(
|
|
888
|
-
super();
|
|
854
|
+
constructor(element?: HTMLElement, view = DEFAULT_VIEW) {
|
|
855
|
+
super(element, {useShadowDom: true});
|
|
856
|
+
this.#protocolMonitorExperimentEnabled = Root.Runtime.experiments.isEnabled('protocol-monitor');
|
|
857
|
+
this.#view = view;
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
set frame(frame: SDK.ResourceTreeModel.ResourceTreeFrame) {
|
|
889
861
|
this.#frame = frame;
|
|
890
|
-
|
|
862
|
+
this.requestUpdate();
|
|
891
863
|
}
|
|
892
864
|
|
|
893
|
-
|
|
894
|
-
this
|
|
895
|
-
this.#protocolMonitorExperimentEnabled = Root.Runtime.experiments.isEnabled('protocol-monitor');
|
|
865
|
+
get frame(): SDK.ResourceTreeModel.ResourceTreeFrame|undefined {
|
|
866
|
+
return this.#frame;
|
|
896
867
|
}
|
|
897
868
|
|
|
898
|
-
override async
|
|
869
|
+
override async performUpdate(): Promise<void> {
|
|
899
870
|
const result = await this.#frame?.parentFrame()?.getAdScriptAncestry(this.#frame?.id);
|
|
900
871
|
if (result && result.ancestryChain.length > 0) {
|
|
901
872
|
this.#adScriptAncestry = result;
|
|
@@ -914,33 +885,39 @@ export class FrameDetailsReportView extends LegacyWrapper.LegacyWrapper.Wrappabl
|
|
|
914
885
|
if (!this.#permissionsPolicies && this.#frame) {
|
|
915
886
|
this.#permissionsPolicies = this.#frame.getPermissionsPolicyState();
|
|
916
887
|
}
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
888
|
+
const frame = this.#frame;
|
|
889
|
+
if (!frame) {
|
|
890
|
+
return;
|
|
891
|
+
}
|
|
892
|
+
const networkManager = frame.resourceTreeModel().target().model(SDK.NetworkManager.NetworkManager);
|
|
893
|
+
const securityIsolationInfo = networkManager?.getSecurityIsolationStatus(frame.id);
|
|
894
|
+
const linkTargetDOMNode = frame.getOwnerDOMNodeOrDocument();
|
|
895
|
+
const frameRequest = frame.resourceForURL(frame.url)?.request;
|
|
896
|
+
const input = {
|
|
897
|
+
frame,
|
|
898
|
+
target: this.#target,
|
|
899
|
+
protocolMonitorExperimentEnabled: this.#protocolMonitorExperimentEnabled,
|
|
900
|
+
permissionsPolicies: this.#permissionsPolicies,
|
|
901
|
+
adScriptAncestry: this.#adScriptAncestry,
|
|
902
|
+
linkifier: this.#linkifier,
|
|
903
|
+
linkTargetDOMNode,
|
|
904
|
+
trials: await frame.getOriginTrials(),
|
|
905
|
+
securityIsolationInfo,
|
|
906
|
+
onRevealInNetwork: frameRequest ?
|
|
907
|
+
() => {
|
|
908
|
+
const requestLocation = NetworkForward.UIRequestLocation.UIRequestLocation.tab(
|
|
909
|
+
frameRequest, NetworkForward.UIRequestLocation.UIRequestTabs.HEADERS_COMPONENT);
|
|
910
|
+
return Common.Revealer.reveal(requestLocation);
|
|
911
|
+
} :
|
|
912
|
+
undefined,
|
|
913
|
+
onRevealInSources: async () => {
|
|
914
|
+
const sourceCode = this.#uiSourceCodeForFrame(frame);
|
|
915
|
+
if (sourceCode) {
|
|
916
|
+
await Common.Revealer.reveal(sourceCode);
|
|
917
|
+
}
|
|
918
|
+
},
|
|
919
|
+
};
|
|
920
|
+
this.#view(input, undefined, this.contentElement);
|
|
944
921
|
}
|
|
945
922
|
|
|
946
923
|
#uiSourceCodeForFrame(frame: SDK.ResourceTreeModel.ResourceTreeFrame): Workspace.UISourceCode.UISourceCode|null {
|
|
@@ -956,11 +933,3 @@ export class FrameDetailsReportView extends LegacyWrapper.LegacyWrapper.Wrappabl
|
|
|
956
933
|
return null;
|
|
957
934
|
}
|
|
958
935
|
}
|
|
959
|
-
|
|
960
|
-
customElements.define('devtools-resources-frame-details-view', FrameDetailsReportView);
|
|
961
|
-
|
|
962
|
-
declare global {
|
|
963
|
-
interface HTMLElementTagNameMap {
|
|
964
|
-
'devtools-resources-frame-details-view': FrameDetailsReportView;
|
|
965
|
-
}
|
|
966
|
-
}
|
package/front_end/panels/application/{components/OriginTrialTreeView.ts → OriginTrialTreeView.ts}
RENAMED
|
@@ -2,15 +2,15 @@
|
|
|
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 '
|
|
6
|
-
import '
|
|
7
|
-
import '
|
|
5
|
+
import '../../ui/components/icon_button/icon_button.js';
|
|
6
|
+
import '../../ui/legacy/legacy.js';
|
|
7
|
+
import '../../ui/components/adorners/adorners.js';
|
|
8
8
|
|
|
9
|
-
import * as i18n from '
|
|
10
|
-
import * as Protocol from '
|
|
11
|
-
import type * as TreeOutline from '
|
|
12
|
-
import * as UI from '
|
|
13
|
-
import {Directives, html, type LitTemplate, nothing, render, type TemplateResult} from '
|
|
9
|
+
import * as i18n from '../../core/i18n/i18n.js';
|
|
10
|
+
import * as Protocol from '../../generated/protocol.js';
|
|
11
|
+
import type * as TreeOutline from '../../ui/components/tree_outline/tree_outline.js';
|
|
12
|
+
import * as UI from '../../ui/legacy/legacy.js';
|
|
13
|
+
import {Directives, html, type LitTemplate, nothing, render, type TemplateResult} from '../../ui/lit/lit.js';
|
|
14
14
|
|
|
15
15
|
import originTrialTokenRowsStyles from './originTrialTokenRows.css.js';
|
|
16
16
|
import originTrialTreeViewStyles from './originTrialTreeView.css.js';
|
|
@@ -70,7 +70,7 @@ const UIStrings = {
|
|
|
70
70
|
*/
|
|
71
71
|
noTrialTokens: 'No trial tokens',
|
|
72
72
|
} as const;
|
|
73
|
-
const str_ = i18n.i18n.registerUIStrings('panels/application/
|
|
73
|
+
const str_ = i18n.i18n.registerUIStrings('panels/application/OriginTrialTreeView.ts', UIStrings);
|
|
74
74
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
75
75
|
|
|
76
76
|
type TreeNode<DataType> = TreeOutline.TreeOutlineUtils.TreeNode<DataType>;
|
|
@@ -12,6 +12,7 @@ import * as DOMStorageItemsView from './DOMStorageItemsView.js';
|
|
|
12
12
|
import * as DOMStorageModel from './DOMStorageModel.js';
|
|
13
13
|
import * as ExtensionStorageItemsView from './ExtensionStorageItemsView.js';
|
|
14
14
|
import * as ExtensionStorageModel from './ExtensionStorageModel.js';
|
|
15
|
+
import * as FrameDetailsView from './FrameDetailsView.js';
|
|
15
16
|
import * as IndexedDBModel from './IndexedDBModel.js';
|
|
16
17
|
import * as IndexedDBViews from './IndexedDBViews.js';
|
|
17
18
|
import * as InterestGroupStorageModel from './InterestGroupStorageModel.js';
|
|
@@ -19,6 +20,7 @@ import * as InterestGroupStorageView from './InterestGroupStorageView.js';
|
|
|
19
20
|
import * as InterestGroupTreeElement from './InterestGroupTreeElement.js';
|
|
20
21
|
import * as KeyValueStorageItemsView from './KeyValueStorageItemsView.js';
|
|
21
22
|
import * as OpenedWindowDetailsView from './OpenedWindowDetailsView.js';
|
|
23
|
+
import * as OriginTrialTreeView from './OriginTrialTreeView.js';
|
|
22
24
|
import * as PreloadingView from './preloading/PreloadingView.js';
|
|
23
25
|
import * as PreloadingTreeElement from './PreloadingTreeElement.js';
|
|
24
26
|
import * as ReportingApiView from './ReportingApiView.js';
|
|
@@ -47,6 +49,7 @@ export {
|
|
|
47
49
|
DOMStorageModel,
|
|
48
50
|
ExtensionStorageItemsView,
|
|
49
51
|
ExtensionStorageModel,
|
|
52
|
+
FrameDetailsView,
|
|
50
53
|
IndexedDBModel,
|
|
51
54
|
IndexedDBViews,
|
|
52
55
|
InterestGroupStorageModel,
|
|
@@ -54,6 +57,7 @@ export {
|
|
|
54
57
|
InterestGroupTreeElement,
|
|
55
58
|
KeyValueStorageItemsView,
|
|
56
59
|
OpenedWindowDetailsView,
|
|
60
|
+
OriginTrialTreeView,
|
|
57
61
|
PreloadingTreeElement,
|
|
58
62
|
PreloadingView,
|
|
59
63
|
ReportingApiView,
|
|
@@ -108,8 +108,13 @@ export const DEFAULT_VIEW = (input: ViewInput, output: undefined, target: HTMLEl
|
|
|
108
108
|
<span class="empty-state-header">${i18nString(UIStrings.noReportsToDisplay)}</span>
|
|
109
109
|
<div class="empty-state-description">
|
|
110
110
|
<span>${i18nString(UIStrings.reportingApiDescription)}</span>
|
|
111
|
-
|
|
112
|
-
|
|
111
|
+
<x-link
|
|
112
|
+
class="devtools-link"
|
|
113
|
+
href=${REPORTING_API_EXPLANATION_URL}
|
|
114
|
+
jslog=${VisualLogging.link()
|
|
115
|
+
.track({ click: true, keydown: 'Enter|Space' })
|
|
116
|
+
.context('learn-more')}
|
|
117
|
+
>${i18nString(UIStrings.learnMore)}</x-link>
|
|
113
118
|
</div>
|
|
114
119
|
</div>
|
|
115
120
|
`}
|
|
@@ -97,9 +97,11 @@ export const DEFAULT_VIEW: View = (input, _output, target) => {
|
|
|
97
97
|
<div class="empty-state-header">${i18nString(UIStrings.noEvents)}</div>
|
|
98
98
|
<div class="empty-state-description">
|
|
99
99
|
<span>${i18nString(UIStrings.sharedStorageDescription)}</span>
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
SHARED_STORAGE_EXPLANATION_URL
|
|
100
|
+
<x-link
|
|
101
|
+
class="x-link devtools-link"
|
|
102
|
+
href=${SHARED_STORAGE_EXPLANATION_URL}
|
|
103
|
+
jslog=${VisualLogging.link().track({click: true, keydown: 'Enter|Space'}).context('learn-more')}
|
|
104
|
+
>${i18nString(UIStrings.learnMore)}</x-link>
|
|
103
105
|
</div>
|
|
104
106
|
</div>`
|
|
105
107
|
: html`
|
|
@@ -40,7 +40,10 @@ const str_ = i18n.i18n.registerUIStrings('panels/application/components/StackTra
|
|
|
40
40
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
41
41
|
|
|
42
42
|
export interface StackTraceData {
|
|
43
|
-
|
|
43
|
+
creationStackTraceData: {
|
|
44
|
+
creationStackTrace: Protocol.Runtime.StackTrace|null,
|
|
45
|
+
creationStackTraceTarget: SDK.Target.Target|null,
|
|
46
|
+
};
|
|
44
47
|
buildStackTraceRows: (
|
|
45
48
|
stackTrace: Protocol.Runtime.StackTrace,
|
|
46
49
|
target: SDK.Target.Target|null,
|
|
@@ -135,8 +138,7 @@ export class StackTrace extends HTMLElement {
|
|
|
135
138
|
#showHidden = false;
|
|
136
139
|
|
|
137
140
|
set data(data: StackTraceData) {
|
|
138
|
-
const
|
|
139
|
-
const {creationStackTrace, creationStackTraceTarget} = frame.getCreationStackTraceData();
|
|
141
|
+
const {creationStackTrace, creationStackTraceTarget} = data.creationStackTraceData;
|
|
140
142
|
if (creationStackTrace) {
|
|
141
143
|
this.#stackTraceRows = data.buildStackTraceRows(
|
|
142
144
|
creationStackTrace, creationStackTraceTarget, this.#linkifier, true,
|
|
@@ -115,7 +115,13 @@ export class TrustTokensView extends LegacyWrapper.LegacyWrapper.WrappableCompon
|
|
|
115
115
|
<div class="empty-state-header">${i18nString(UIStrings.noTrustTokens)}</div>
|
|
116
116
|
<div class="empty-state-description">
|
|
117
117
|
<span>${i18nString(UIStrings.trustTokensDescription)}</span>
|
|
118
|
-
|
|
118
|
+
<x-link
|
|
119
|
+
class="x-link devtools-link"
|
|
120
|
+
href=${PRIVATE_STATE_TOKENS_EXPLANATION_URL}
|
|
121
|
+
jslog=${VisualLogging.link()
|
|
122
|
+
.track({ click: true, keydown: 'Enter|Space' })
|
|
123
|
+
.context('learn-more')}
|
|
124
|
+
>${i18nString(UIStrings.learnMore)}</x-link>
|
|
119
125
|
</div>
|
|
120
126
|
</div>
|
|
121
127
|
`;
|
|
@@ -5,9 +5,8 @@
|
|
|
5
5
|
import * as BackForwardCacheView from './BackForwardCacheView.js';
|
|
6
6
|
import * as BounceTrackingMitigationsView from './BounceTrackingMitigationsView.js';
|
|
7
7
|
import * as EndpointsGrid from './EndpointsGrid.js';
|
|
8
|
-
import * as FrameDetailsView from './FrameDetailsView.js';
|
|
9
8
|
import * as InterestGroupAccessGrid from './InterestGroupAccessGrid.js';
|
|
10
|
-
import * as
|
|
9
|
+
import * as PermissionsPolicySection from './PermissionsPolicySection.js';
|
|
11
10
|
import * as ProtocolHandlersView from './ProtocolHandlersView.js';
|
|
12
11
|
import * as ReportsGrid from './ReportsGrid.js';
|
|
13
12
|
import * as ServiceWorkerRouterView from './ServiceWorkerRouterView.js';
|
|
@@ -21,9 +20,8 @@ export {
|
|
|
21
20
|
BackForwardCacheView,
|
|
22
21
|
BounceTrackingMitigationsView,
|
|
23
22
|
EndpointsGrid,
|
|
24
|
-
FrameDetailsView,
|
|
25
23
|
InterestGroupAccessGrid,
|
|
26
|
-
|
|
24
|
+
PermissionsPolicySection,
|
|
27
25
|
ProtocolHandlersView,
|
|
28
26
|
ReportsGrid,
|
|
29
27
|
ServiceWorkerRouterView,
|
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
* found in the LICENSE file.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
:host {
|
|
8
|
+
overflow: auto;
|
|
9
|
+
}
|
|
10
|
+
|
|
7
11
|
.text-ellipsis {
|
|
8
12
|
overflow: hidden;
|
|
9
13
|
text-overflow: ellipsis;
|
|
@@ -111,4 +115,4 @@ button.text-link {
|
|
|
111
115
|
color: linktext;
|
|
112
116
|
text-decoration-color: linktext;
|
|
113
117
|
}
|
|
114
|
-
}
|
|
118
|
+
}
|