chrome-devtools-frontend 1.0.1535712 → 1.0.1537268
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/docs/contributing/images/issues-nearestslo.png +0 -0
- package/docs/contributing/issues.md +17 -21
- package/front_end/core/common/Console.ts +1 -8
- package/front_end/core/common/ParsedURL.ts +10 -20
- package/front_end/core/common/SegmentedRange.ts +1 -2
- package/front_end/core/common/StringOutputStream.ts +1 -4
- package/front_end/core/host/AidaClient.ts +64 -5
- package/front_end/core/host/DispatchHttpRequestClient.ts +62 -0
- package/front_end/core/host/GdpClient.ts +8 -57
- package/front_end/core/host/host.ts +2 -0
- package/front_end/core/i18n/i18nImpl.ts +0 -24
- package/front_end/core/protocol_client/CDPConnection.ts +10 -8
- package/front_end/core/protocol_client/InspectorBackend.ts +36 -42
- package/front_end/core/sdk/AnimationModel.ts +1 -2
- package/front_end/core/sdk/CSSMatchedStyles.ts +2 -2
- package/front_end/core/sdk/CSSModel.ts +1 -1
- package/front_end/core/sdk/CSSProperty.ts +3 -6
- package/front_end/core/sdk/CSSStyleDeclaration.ts +4 -4
- package/front_end/core/sdk/DebuggerModel.ts +1 -2
- package/front_end/core/sdk/EnhancedTracesParser.ts +24 -5
- package/front_end/core/sdk/RehydratingConnection.ts +112 -4
- package/front_end/core/sdk/RehydratingObject.ts +8 -0
- package/front_end/core/sdk/SourceMap.ts +2 -3
- package/front_end/core/sdk/TraceObject.ts +5 -1
- package/front_end/entrypoints/node_app/NodeConnectionsPanel.ts +2 -1
- package/front_end/generated/InspectorBackendCommands.js +1 -2
- package/front_end/generated/SupportedCSSProperties.js +19 -0
- package/front_end/generated/protocol.ts +0 -27
- package/front_end/models/javascript_metadata/NativeFunctions.js +1 -1
- package/front_end/models/trace/types/File.ts +9 -0
- package/front_end/panels/accessibility/AccessibilityNodeView.ts +18 -17
- package/front_end/panels/accessibility/AccessibilitySidebarView.ts +9 -12
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +5 -9
- package/front_end/panels/ai_assistance/components/ChatView.ts +63 -74
- package/front_end/panels/application/AppManifestView.ts +7 -6
- package/front_end/panels/application/ApplicationPanelSidebar.ts +4 -4
- package/front_end/panels/application/BackForwardCacheTreeElement.ts +2 -6
- package/front_end/panels/application/OpenedWindowDetailsView.ts +6 -6
- package/front_end/panels/application/StorageView.ts +9 -8
- package/front_end/panels/application/components/BackForwardCacheView.ts +366 -342
- package/front_end/panels/application/components/FrameDetailsView.ts +8 -11
- package/front_end/panels/application/components/OriginTrialTreeView.ts +65 -69
- package/front_end/panels/application/components/ProtocolHandlersView.ts +3 -2
- package/front_end/panels/application/components/backForwardCacheView.css +4 -0
- package/front_end/panels/application/components/badge.css +1 -1
- package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +2 -1
- package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +44 -53
- package/front_end/panels/browser_debugger/ObjectEventListenersSidebarPane.ts +8 -8
- package/front_end/panels/common/BadgeNotification.ts +2 -1
- package/front_end/panels/common/GdpSignUpDialog.ts +2 -1
- package/front_end/panels/console/ConsoleInsightTeaser.ts +8 -2
- package/front_end/panels/console/ConsolePinPane.ts +12 -7
- package/front_end/panels/developer_resources/DeveloperResourcesView.ts +9 -9
- package/front_end/panels/elements/ComputedStyleWidget.ts +7 -7
- package/front_end/panels/elements/EventListenersWidget.ts +9 -9
- package/front_end/panels/elements/NodeStackTraceWidget.ts +6 -6
- package/front_end/panels/elements/PlatformFontsWidget.ts +5 -5
- package/front_end/panels/elements/PropertiesWidget.ts +8 -8
- package/front_end/panels/layer_viewer/Layers3DView.ts +2 -1
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +3 -3
- package/front_end/panels/network/RequestCookiesView.ts +2 -1
- package/front_end/panels/network/RequestTimingView.ts +2 -1
- package/front_end/panels/recorder/RecorderController.ts +33 -23
- package/front_end/panels/recorder/components/CreateRecordingView.ts +259 -226
- package/front_end/panels/security/CookieControlsView.ts +2 -1
- package/front_end/panels/security/CookieReportView.ts +3 -2
- package/front_end/panels/settings/AISettingsTab.ts +164 -172
- package/front_end/panels/settings/KeybindsSettingsTab.ts +6 -0
- package/front_end/panels/settings/SettingsScreen.ts +3 -7
- package/front_end/panels/settings/aiSettingsTab.css +151 -148
- package/front_end/panels/settings/components/SyncSection.ts +2 -1
- package/front_end/panels/settings/settings-meta.ts +1 -2
- package/front_end/panels/sources/AddSourceMapURLDialog.ts +23 -26
- package/front_end/panels/sources/DebuggerPausedMessage.ts +4 -3
- package/front_end/panels/sources/ResourceOriginPlugin.ts +3 -2
- package/front_end/panels/sources/SourcesNavigator.ts +2 -1
- package/front_end/panels/sources/TabbedEditorContainer.ts +3 -2
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +9 -9
- package/front_end/panels/timeline/TimelinePanel.ts +60 -11
- package/front_end/panels/timeline/TimelineUIUtils.ts +3 -2
- package/front_end/panels/timeline/components/DetailsView.ts +5 -4
- package/front_end/panels/timeline/components/ExportTraceOptions.ts +33 -34
- package/front_end/panels/timeline/components/FieldSettingsDialog.ts +2 -1
- package/front_end/panels/timeline/components/LiveMetricsView.ts +5 -4
- package/front_end/panels/timeline/components/MetricCompareStrings.ts +25 -24
- package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +2 -1
- package/front_end/third_party/chromium/README.chromium +2 -2
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +9 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +13 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js +5 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +3 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts +1 -12
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts +6 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js +6 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +3 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.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/disposable.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/disposable.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/disposable.js +3 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/disposable.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/util.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/util.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/util.js.map +1 -1
- 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.d.ts +28 -3
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +21 -10
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +9 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +13 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js +5 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +3 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.d.ts +1 -12
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts +6 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js +6 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +3 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.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/disposable.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/disposable.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/disposable.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/disposable.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/util.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/util.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/util.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/lib/types.d.ts +28 -3
- package/front_end/third_party/puppeteer/package/package.json +2 -2
- package/front_end/third_party/puppeteer/package/src/api/Browser.ts +13 -1
- package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +7 -2
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +14 -1
- package/front_end/third_party/puppeteer/package/src/bidi/BrowserContext.ts +8 -5
- package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +5 -2
- package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +8 -0
- package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +11 -2
- package/front_end/third_party/puppeteer/package/src/cdp/BrowserContext.ts +3 -2
- package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +5 -5
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/disposable.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/util/util.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
- package/front_end/ui/components/docs/tooltip/basic.ts +1 -1
- package/front_end/ui/components/text_editor/AiCodeCompletionProvider.ts +280 -0
- package/front_end/ui/components/text_editor/text_editor.ts +1 -0
- package/front_end/ui/components/tooltips/Tooltip.ts +33 -18
- package/front_end/ui/i18n/i18n.ts +31 -0
- package/front_end/ui/legacy/Dialog.ts +0 -1
- package/front_end/ui/legacy/SettingsUI.ts +0 -14
- package/front_end/ui/legacy/SoftDropDown.ts +1 -12
- package/front_end/ui/legacy/ViewManager.ts +2 -4
- package/front_end/ui/legacy/Widget.ts +33 -17
- package/front_end/ui/legacy/XLink.ts +0 -3
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +9 -0
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +2 -1
- package/front_end/ui/legacy/components/utils/Linkifier.ts +9 -3
- package/front_end/ui/legacy/legacy.ts +0 -2
- package/front_end/ui/visual_logging/KnownContextValues.ts +4 -1
- package/mcp/mcp.ts +6 -0
- package/package.json +1 -1
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatterBounds.snapshot.txt +0 -4
- package/front_end/ui/components/docs/breadcrumbs_perf/initial-breadcrumb-perf.html +0 -20
- package/front_end/ui/components/docs/breadcrumbs_perf/initial-breadcrumb-perf.ts +0 -25
- package/front_end/ui/components/docs/breadcrumbs_perf/nested-breadcrumbs-perf.html +0 -20
- package/front_end/ui/components/docs/breadcrumbs_perf/nested-breadcrumbs-perf.ts +0 -36
- package/front_end/ui/components/docs/recorder_create_recording_view/basic.html +0 -20
- package/front_end/ui/components/docs/recorder_create_recording_view/basic.ts +0 -27
- package/front_end/ui/legacy/ThrottledWidget.ts +0 -48
|
@@ -23,6 +23,7 @@ import * as LegacyWrapper from '../../../ui/components/legacy_wrapper/legacy_wra
|
|
|
23
23
|
import * as RenderCoordinator from '../../../ui/components/render_coordinator/render_coordinator.js';
|
|
24
24
|
import type * as ReportView from '../../../ui/components/report_view/report_view.js';
|
|
25
25
|
import * as Components from '../../../ui/legacy/components/utils/utils.js';
|
|
26
|
+
import * as UI from '../../../ui/legacy/legacy.js';
|
|
26
27
|
import * as Lit from '../../../ui/lit/lit.js';
|
|
27
28
|
import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
|
|
28
29
|
|
|
@@ -35,6 +36,7 @@ import {
|
|
|
35
36
|
import type {StackTraceData} from './StackTrace.js';
|
|
36
37
|
|
|
37
38
|
const {html} = Lit;
|
|
39
|
+
const {widgetConfig} = UI.Widget;
|
|
38
40
|
|
|
39
41
|
const UIStrings = {
|
|
40
42
|
/**
|
|
@@ -283,7 +285,6 @@ export class FrameDetailsReportView extends LegacyWrapper.LegacyWrapper.Wrappabl
|
|
|
283
285
|
#protocolMonitorExperimentEnabled = false;
|
|
284
286
|
#permissionsPolicies: Promise<Protocol.Page.PermissionsPolicyFeatureState[]|null>|null = null;
|
|
285
287
|
#permissionsPolicySectionData: PermissionsPolicySectionData = {policies: [], showDetails: false};
|
|
286
|
-
#originTrialTreeView: OriginTrialTreeView = new OriginTrialTreeView();
|
|
287
288
|
#linkifier = new Components.Linkifier.Linkifier();
|
|
288
289
|
#adScriptAncestry: Protocol.Page.AdScriptAncestry|null = null;
|
|
289
290
|
|
|
@@ -317,7 +318,7 @@ export class FrameDetailsReportView extends LegacyWrapper.LegacyWrapper.Wrappabl
|
|
|
317
318
|
if (!this.#permissionsPolicies && this.#frame) {
|
|
318
319
|
this.#permissionsPolicies = this.#frame.getPermissionsPolicyState();
|
|
319
320
|
}
|
|
320
|
-
await RenderCoordinator.write('FrameDetailsView render', () => {
|
|
321
|
+
await RenderCoordinator.write('FrameDetailsView render', async () => {
|
|
321
322
|
if (!this.#frame) {
|
|
322
323
|
return;
|
|
323
324
|
}
|
|
@@ -331,7 +332,7 @@ export class FrameDetailsReportView extends LegacyWrapper.LegacyWrapper.Wrappabl
|
|
|
331
332
|
${this.#renderDocumentSection()}
|
|
332
333
|
${this.#renderIsolationSection()}
|
|
333
334
|
${this.#renderApiAvailabilitySection()}
|
|
334
|
-
${this.#renderOriginTrial()}
|
|
335
|
+
${await this.#renderOriginTrial()}
|
|
335
336
|
${Lit.Directives.until(this.#permissionsPolicies?.then(policies => {
|
|
336
337
|
this.#permissionsPolicySectionData.policies = policies || [];
|
|
337
338
|
return html`
|
|
@@ -348,17 +349,12 @@ export class FrameDetailsReportView extends LegacyWrapper.LegacyWrapper.Wrappabl
|
|
|
348
349
|
});
|
|
349
350
|
}
|
|
350
351
|
|
|
351
|
-
#renderOriginTrial(): Lit.LitTemplate {
|
|
352
|
+
async #renderOriginTrial(): Promise<Lit.LitTemplate> {
|
|
352
353
|
if (!this.#frame) {
|
|
353
354
|
return Lit.nothing;
|
|
354
355
|
}
|
|
355
356
|
|
|
356
|
-
this.#
|
|
357
|
-
|
|
358
|
-
void this.#frame.getOriginTrials().then(trials => {
|
|
359
|
-
this.#originTrialTreeView.data = {trials};
|
|
360
|
-
});
|
|
361
|
-
|
|
357
|
+
const data = {trials: await this.#frame.getOriginTrials()};
|
|
362
358
|
// clang-format off
|
|
363
359
|
return html`
|
|
364
360
|
<devtools-report-section-header>
|
|
@@ -373,7 +369,8 @@ export class FrameDetailsReportView extends LegacyWrapper.LegacyWrapper.Wrappabl
|
|
|
373
369
|
</x-link>
|
|
374
370
|
</span>
|
|
375
371
|
</devtools-report-section>
|
|
376
|
-
|
|
372
|
+
<devtools-widget class="span-cols" .widgetConfig=${widgetConfig(OriginTrialTreeView, {data})}>
|
|
373
|
+
</devtools-widget>
|
|
377
374
|
<devtools-report-divider></devtools-report-divider>`;
|
|
378
375
|
// clang-format on
|
|
379
376
|
}
|
|
@@ -11,6 +11,7 @@ import * as i18n from '../../../core/i18n/i18n.js';
|
|
|
11
11
|
import * as Protocol from '../../../generated/protocol.js';
|
|
12
12
|
import * as Adorners from '../../../ui/components/adorners/adorners.js';
|
|
13
13
|
import type * as TreeOutline from '../../../ui/components/tree_outline/tree_outline.js';
|
|
14
|
+
import * as UI from '../../../ui/legacy/legacy.js';
|
|
14
15
|
import * as Lit from '../../../ui/lit/lit.js';
|
|
15
16
|
|
|
16
17
|
import badgeStyles from './badge.css.js';
|
|
@@ -79,34 +80,18 @@ export interface BadgeData {
|
|
|
79
80
|
style: 'error'|'success'|'secondary';
|
|
80
81
|
}
|
|
81
82
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
adornerContent.textContent = data.badgeContent;
|
|
93
|
-
this.#adorner.data = {
|
|
94
|
-
name: 'badge',
|
|
95
|
-
content: adornerContent,
|
|
96
|
-
};
|
|
97
|
-
this.#adorner.classList.add(`badge-${data.style}`);
|
|
98
|
-
|
|
99
|
-
Lit.render(
|
|
100
|
-
html`
|
|
101
|
-
<style>${badgeStyles}</style>
|
|
102
|
-
${this.#adorner}
|
|
103
|
-
`,
|
|
104
|
-
this.#shadow, {host: this});
|
|
105
|
-
}
|
|
83
|
+
function createBadge(data: BadgeData): Adorners.Adorner.Adorner {
|
|
84
|
+
const adorner = new Adorners.Adorner.Adorner();
|
|
85
|
+
const adornerContent = document.createElement('span');
|
|
86
|
+
adornerContent.textContent = data.badgeContent;
|
|
87
|
+
adorner.data = {
|
|
88
|
+
name: 'badge',
|
|
89
|
+
content: adornerContent,
|
|
90
|
+
};
|
|
91
|
+
adorner.classList.add(`badge-${data.style}`);
|
|
92
|
+
return adorner;
|
|
106
93
|
}
|
|
107
94
|
|
|
108
|
-
customElements.define('devtools-resources-origin-trial-tree-view-badge', Badge);
|
|
109
|
-
|
|
110
95
|
type TreeNode<DataType> = TreeOutline.TreeOutlineUtils.TreeNode<DataType>;
|
|
111
96
|
|
|
112
97
|
/**
|
|
@@ -127,19 +112,18 @@ function constructOriginTrialTree(originTrial: Protocol.Page.OriginTrial): TreeN
|
|
|
127
112
|
constructTokenDetailsNodes(originTrial.tokensWithStatus[0]),
|
|
128
113
|
renderer: (node: TreeNode<OriginTrialTreeNodeData>) => {
|
|
129
114
|
const trial = node.treeNodeData as Protocol.Page.OriginTrial;
|
|
130
|
-
const tokenCountBadge =
|
|
131
|
-
<devtools-resources-origin-trial-tree-view-badge .data=${{
|
|
115
|
+
const tokenCountBadge = createBadge({
|
|
132
116
|
badgeContent: i18nString(UIStrings.tokens, {PH1: trial.tokensWithStatus.length}),
|
|
133
117
|
style: 'secondary',
|
|
134
|
-
}
|
|
135
|
-
`;
|
|
118
|
+
});
|
|
136
119
|
|
|
137
120
|
return html`
|
|
138
121
|
${trial.trialName}
|
|
139
|
-
<
|
|
122
|
+
<style>${badgeStyles}</style>
|
|
123
|
+
${createBadge({
|
|
140
124
|
badgeContent: trial.status,
|
|
141
125
|
style: trial.status === Protocol.Page.OriginTrialStatus.Enabled ? 'success' : 'error',
|
|
142
|
-
}
|
|
126
|
+
})}
|
|
143
127
|
${trial.tokensWithStatus.length > 1 ? tokenCountBadge : Lit.nothing}
|
|
144
128
|
`;
|
|
145
129
|
},
|
|
@@ -153,12 +137,10 @@ function constructTokenNode(token: Protocol.Page.OriginTrialTokenWithStatus): Tr
|
|
|
153
137
|
children: async () => constructTokenDetailsNodes(token),
|
|
154
138
|
renderer: (node: TreeNode<OriginTrialTreeNodeData>, state: {isExpanded: boolean}) => {
|
|
155
139
|
const tokenStatus = node.treeNodeData as string;
|
|
156
|
-
const statusBadge =
|
|
157
|
-
<devtools-resources-origin-trial-tree-view-badge .data=${{
|
|
140
|
+
const statusBadge = createBadge({
|
|
158
141
|
badgeContent: tokenStatus,
|
|
159
142
|
style: tokenStatus === Protocol.Page.OriginTrialTokenStatus.Success ? 'success' : 'error',
|
|
160
|
-
}
|
|
161
|
-
`;
|
|
143
|
+
});
|
|
162
144
|
// Only display token status for convenience when the node is not expanded.
|
|
163
145
|
return html`${i18nString(UIStrings.token)} ${state.isExpanded ? Lit.nothing : statusBadge}`;
|
|
164
146
|
},
|
|
@@ -290,10 +272,11 @@ export class OriginTrialTokenRows extends HTMLElement {
|
|
|
290
272
|
{
|
|
291
273
|
name: i18nString(UIStrings.status),
|
|
292
274
|
value: html`
|
|
293
|
-
<
|
|
275
|
+
<style>${badgeStyles}</style>
|
|
276
|
+
${createBadge({
|
|
294
277
|
badgeContent: this.#tokenWithStatus.status,
|
|
295
278
|
style: this.#tokenWithStatus.status === Protocol.Page.OriginTrialTokenStatus.Success ? 'success' : 'error',
|
|
296
|
-
}
|
|
279
|
+
})}`,
|
|
297
280
|
},
|
|
298
281
|
...this.#parsedTokenDetails,
|
|
299
282
|
];
|
|
@@ -307,7 +290,9 @@ export class OriginTrialTokenRows extends HTMLElement {
|
|
|
307
290
|
|
|
308
291
|
Lit.render(
|
|
309
292
|
html`
|
|
310
|
-
<style
|
|
293
|
+
<style>
|
|
294
|
+
${originTrialTokenRowsStyles}
|
|
295
|
+
</style>
|
|
311
296
|
<div class="content">
|
|
312
297
|
${tokenDetailRows}
|
|
313
298
|
</div>
|
|
@@ -322,45 +307,56 @@ export interface OriginTrialTreeViewData {
|
|
|
322
307
|
trials: Protocol.Page.OriginTrial[];
|
|
323
308
|
}
|
|
324
309
|
|
|
325
|
-
|
|
326
|
-
readonly #shadow = this.attachShadow({mode: 'open'});
|
|
310
|
+
type View = (input: OriginTrialTreeViewData, output: undefined, target: HTMLElement) => void;
|
|
327
311
|
|
|
328
|
-
|
|
329
|
-
|
|
312
|
+
const DEFAULT_VIEW: View = (input, _output, target) => {
|
|
313
|
+
if (!input.trials.length) {
|
|
314
|
+
// clang-format off
|
|
315
|
+
Lit.render(html`
|
|
316
|
+
<style>${originTrialTreeViewStyles}</style>
|
|
317
|
+
<span class="status-badge">
|
|
318
|
+
<devtools-icon class="medium" name="clear"></devtools-icon>
|
|
319
|
+
<span>${i18nString(UIStrings.noTrialTokens)}</span>
|
|
320
|
+
</span>`, target);
|
|
321
|
+
// clang-format on
|
|
322
|
+
return;
|
|
330
323
|
}
|
|
331
324
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
<
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
325
|
+
// clang-format off
|
|
326
|
+
Lit.render(html`
|
|
327
|
+
<style>
|
|
328
|
+
${originTrialTreeViewStyles}
|
|
329
|
+
</style>
|
|
330
|
+
<devtools-tree-outline .data=${{
|
|
331
|
+
tree: input.trials.map(constructOriginTrialTree),
|
|
332
|
+
defaultRenderer,
|
|
333
|
+
} as TreeOutline.TreeOutline.TreeOutlineData < OriginTrialTreeNodeData >}>
|
|
334
|
+
</devtools-tree-outline>
|
|
335
|
+
`, target);
|
|
336
|
+
// clang-format on
|
|
337
|
+
};
|
|
338
|
+
|
|
339
|
+
export class OriginTrialTreeView extends UI.Widget.Widget {
|
|
340
|
+
#data: OriginTrialTreeViewData = {trials: []};
|
|
341
|
+
#view: View;
|
|
342
|
+
|
|
343
|
+
constructor(element?: HTMLElement, view: View = DEFAULT_VIEW) {
|
|
344
|
+
super(element, {useShadowDom: true});
|
|
345
|
+
this.#view = view;
|
|
346
|
+
}
|
|
344
347
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
<devtools-tree-outline .data=${{
|
|
349
|
-
tree: trials.map(constructOriginTrialTree),
|
|
350
|
-
defaultRenderer,
|
|
351
|
-
} as TreeOutline.TreeOutline.TreeOutlineData < OriginTrialTreeNodeData >}>
|
|
352
|
-
</devtools-tree-outline>
|
|
353
|
-
`,
|
|
354
|
-
this.#shadow, {host: this});
|
|
348
|
+
set data(data: OriginTrialTreeViewData) {
|
|
349
|
+
this.#data = data;
|
|
350
|
+
this.requestUpdate();
|
|
355
351
|
}
|
|
356
|
-
}
|
|
357
352
|
|
|
358
|
-
|
|
353
|
+
override performUpdate(): void {
|
|
354
|
+
this.#view(this.#data, undefined, this.contentElement);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
359
357
|
|
|
360
358
|
declare global {
|
|
361
359
|
interface HTMLElementTagNameMap {
|
|
362
|
-
'devtools-resources-origin-trial-tree-view': OriginTrialTreeView;
|
|
363
360
|
'devtools-resources-origin-trial-token-rows': OriginTrialTokenRows;
|
|
364
|
-
'devtools-resources-origin-trial-tree-view-badge': Badge;
|
|
365
361
|
}
|
|
366
362
|
}
|
|
@@ -10,6 +10,7 @@ import * as i18n from '../../../core/i18n/i18n.js';
|
|
|
10
10
|
import * as Platform from '../../../core/platform/platform.js';
|
|
11
11
|
import * as Buttons from '../../../ui/components/buttons/buttons.js';
|
|
12
12
|
import * as Input from '../../../ui/components/input/input.js';
|
|
13
|
+
import * as uiI18n from '../../../ui/i18n/i18n.js';
|
|
13
14
|
import * as UI from '../../../ui/legacy/legacy.js';
|
|
14
15
|
import * as Lit from '../../../ui/lit/lit.js';
|
|
15
16
|
import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
|
|
@@ -116,7 +117,7 @@ export class ProtocolHandlersView extends HTMLElement {
|
|
|
116
117
|
<devtools-icon class="inline-icon"
|
|
117
118
|
name=${this.#protocolHandlers.length > 0 ? 'check-circle' : 'info'}>
|
|
118
119
|
</devtools-icon>
|
|
119
|
-
${
|
|
120
|
+
${uiI18n.getFormatLocalizedString(str_, statusString, {
|
|
120
121
|
PH1: manifestInTextLink,
|
|
121
122
|
})}
|
|
122
123
|
</div>
|
|
@@ -175,7 +176,7 @@ export class ProtocolHandlersView extends HTMLElement {
|
|
|
175
176
|
<style>${Input.textInputStyles}</style>
|
|
176
177
|
${this.#renderStatusMessage()}
|
|
177
178
|
<div class="protocol-handlers-row">
|
|
178
|
-
${
|
|
179
|
+
${uiI18n.getFormatLocalizedString(str_, UIStrings.needHelpReadOur, {PH1: protocolDocLink})}
|
|
179
180
|
</div>
|
|
180
181
|
${this.#renderProtocolTest()}
|
|
181
182
|
`, this.#shadow, {host: this});
|
|
@@ -13,6 +13,7 @@ import * as ChromeLink from '../../../../ui/components/chrome_link/chrome_link.j
|
|
|
13
13
|
import * as Dialogs from '../../../../ui/components/dialogs/dialogs.js';
|
|
14
14
|
import * as LegacyWrapper from '../../../../ui/components/legacy_wrapper/legacy_wrapper.js';
|
|
15
15
|
import * as RenderCoordinator from '../../../../ui/components/render_coordinator/render_coordinator.js';
|
|
16
|
+
import * as uiI18n from '../../../../ui/i18n/i18n.js';
|
|
16
17
|
import * as UI from '../../../../ui/legacy/legacy.js';
|
|
17
18
|
import * as Lit from '../../../../ui/lit/lit.js';
|
|
18
19
|
import * as VisualLogging from '../../../../ui/visual_logging/visual_logging.js';
|
|
@@ -214,7 +215,7 @@ export class PreloadingDisabledInfobar extends LegacyWrapper.LegacyWrapper.Wrapp
|
|
|
214
215
|
const extensionsSettingLink = new ChromeLink.ChromeLink.ChromeLink();
|
|
215
216
|
extensionsSettingLink.href = 'chrome://extensions' as Platform.DevToolsPath.UrlString;
|
|
216
217
|
extensionsSettingLink.textContent = i18nString(UIStrings.extensionsSettings);
|
|
217
|
-
const description =
|
|
218
|
+
const description = uiI18n.getFormatLocalizedString(
|
|
218
219
|
str_, UIStrings.descriptionDisabledByPreference, {PH1: preloadingSettingLink, PH2: extensionsSettingLink});
|
|
219
220
|
return this.#maybeKeyValue(
|
|
220
221
|
this.#data.disabledByPreference, i18nString(UIStrings.headerDisabledByPreference), description);
|
|
@@ -126,10 +126,9 @@ const str_ = i18n.i18n.registerUIStrings('panels/browser_debugger/CategorizedBre
|
|
|
126
126
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
127
127
|
const i18nLazyString = i18n.i18n.getLazilyComputedLocalizedString.bind(undefined, str_);
|
|
128
128
|
|
|
129
|
-
const {html, render
|
|
129
|
+
const {html, render} = Lit;
|
|
130
130
|
|
|
131
131
|
interface ViewOutput {
|
|
132
|
-
defaultFocus: Element|undefined;
|
|
133
132
|
userExpandedCategories: Set<SDK.CategorizedBreakpoint.Category>;
|
|
134
133
|
}
|
|
135
134
|
interface ViewInput {
|
|
@@ -211,53 +210,49 @@ export const DEFAULT_VIEW = (input: ViewInput, output: ViewOutput, target: HTMLE
|
|
|
211
210
|
style="flex: 1;"
|
|
212
211
|
></devtools-toolbar-input>
|
|
213
212
|
</devtools-toolbar>
|
|
214
|
-
<devtools-tree
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
`}>
|
|
258
|
-
</devtools-tree>`,
|
|
259
|
-
// clang-format on
|
|
260
|
-
target);
|
|
213
|
+
<devtools-tree autofocus .template=${html`
|
|
214
|
+
<ul role="tree">
|
|
215
|
+
${filteredCategories.map(([category, breakpoints]) => html`
|
|
216
|
+
<li @expand=${(e: UI.TreeOutline.TreeViewElement.ExpandEvent) => onExpand(category, e)}
|
|
217
|
+
role="treeitem"
|
|
218
|
+
jslog-context=${category}
|
|
219
|
+
aria-checked=${breakpoints.some(breakpoint => breakpoint.enabled())
|
|
220
|
+
? breakpoints.some(breakpoint => !breakpoint.enabled()) ? 'mixed' : true
|
|
221
|
+
: false}>
|
|
222
|
+
<style>${categorizedBreakpointsSidebarPaneStyles}</style>
|
|
223
|
+
<devtools-checkbox
|
|
224
|
+
class="small"
|
|
225
|
+
tabIndex=-1
|
|
226
|
+
title=${getLocalizedCategory(category)}
|
|
227
|
+
?indeterminate=${breakpoints.some(breakpoint => !breakpoint.enabled()) &&
|
|
228
|
+
breakpoints.some(breakpoint => breakpoint.enabled())}
|
|
229
|
+
?checked=${!breakpoints.some(breakpoint => !breakpoint.enabled())}
|
|
230
|
+
@change=${(e: Event) => onCheckboxClicked(e, category)}
|
|
231
|
+
>${getLocalizedCategory(category)}</devtools-checkbox>
|
|
232
|
+
<ul
|
|
233
|
+
role="group"
|
|
234
|
+
?hidden=${!shouldExpandCategory(breakpoints) && !input.userExpandedCategories.has(category)}>
|
|
235
|
+
${breakpoints.map(breakpoint => html`
|
|
236
|
+
<li
|
|
237
|
+
role="treeitem"
|
|
238
|
+
aria-checked=${breakpoint.enabled()}
|
|
239
|
+
jslog-context=${Platform.StringUtilities.toKebabCase(breakpoint.name)}>
|
|
240
|
+
<div ?hidden=${breakpoint !== input.highlightedItem} class="breakpoint-hit-marker"></div>
|
|
241
|
+
<devtools-checkbox
|
|
242
|
+
class=${classes(breakpoint)}
|
|
243
|
+
tabIndex=-1
|
|
244
|
+
title=${Sources.CategorizedBreakpointL10n.getLocalizedBreakpointName(breakpoint.name)}
|
|
245
|
+
?checked=${breakpoint.enabled()}
|
|
246
|
+
aria-description=${breakpoint === input.highlightedItem ? i18nString(UIStrings.breakpointHit)
|
|
247
|
+
: Lit.nothing}
|
|
248
|
+
@change=${(e: Event) => onCheckboxClicked(e, breakpoint)}
|
|
249
|
+
>${Sources.CategorizedBreakpointL10n.getLocalizedBreakpointName(breakpoint.name)}</devtools-checkbox>
|
|
250
|
+
</li>`)}
|
|
251
|
+
</ul>
|
|
252
|
+
</li>`)}
|
|
253
|
+
</ul>`}>
|
|
254
|
+
</devtools-tree>`, target);
|
|
255
|
+
// clang-format on
|
|
261
256
|
};
|
|
262
257
|
|
|
263
258
|
export abstract class CategorizedBreakpointsSidebarPane extends UI.Widget.VBox {
|
|
@@ -341,11 +336,7 @@ export abstract class CategorizedBreakpointsSidebarPane extends UI.Widget.VBox {
|
|
|
341
336
|
highlightedItem: this.#highlightedItem,
|
|
342
337
|
userExpandedCategories: this.#userExpandedCategories,
|
|
343
338
|
};
|
|
344
|
-
const that = this;
|
|
345
339
|
const output: ViewOutput = {
|
|
346
|
-
set defaultFocus(e: Element|undefined) {
|
|
347
|
-
that.setDefaultFocusedElement(e ?? null);
|
|
348
|
-
},
|
|
349
340
|
userExpandedCategories: this.#userExpandedCategories,
|
|
350
341
|
};
|
|
351
342
|
this.#view(input, output, this.contentElement);
|
|
@@ -9,8 +9,7 @@ import * as UI from '../../ui/legacy/legacy.js';
|
|
|
9
9
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
10
10
|
import * as EventListeners from '../event_listeners/event_listeners.js';
|
|
11
11
|
|
|
12
|
-
export class ObjectEventListenersSidebarPane extends UI.
|
|
13
|
-
UI.Toolbar.ItemsProvider {
|
|
12
|
+
export class ObjectEventListenersSidebarPane extends UI.Widget.VBox implements UI.Toolbar.ItemsProvider {
|
|
14
13
|
#lastRequestedContext?: SDK.RuntimeModel.ExecutionContext;
|
|
15
14
|
|
|
16
15
|
// TODO(bmeurer): This is only public for web tests.
|
|
@@ -21,11 +20,11 @@ export class ObjectEventListenersSidebarPane extends UI.ThrottledWidget.Throttle
|
|
|
21
20
|
this.contentElement.setAttribute('jslog', `${VisualLogging.section('sources.global-listeners')}`);
|
|
22
21
|
|
|
23
22
|
this.eventListenersView = new EventListeners.EventListenersView.EventListenersView();
|
|
24
|
-
this.eventListenersView.changeCallback = this.
|
|
23
|
+
this.eventListenersView.changeCallback = this.requestUpdate.bind(this);
|
|
25
24
|
this.eventListenersView.enableDefaultTreeFocus = true;
|
|
26
25
|
this.eventListenersView.show(this.element);
|
|
27
26
|
this.setDefaultFocusedChild(this.eventListenersView);
|
|
28
|
-
this.
|
|
27
|
+
this.requestUpdate();
|
|
29
28
|
}
|
|
30
29
|
|
|
31
30
|
toolbarItems(): UI.Toolbar.ToolbarItem[] {
|
|
@@ -34,7 +33,7 @@ export class ObjectEventListenersSidebarPane extends UI.ThrottledWidget.Throttle
|
|
|
34
33
|
return [refreshButton];
|
|
35
34
|
}
|
|
36
35
|
|
|
37
|
-
|
|
36
|
+
override async performUpdate(): Promise<void> {
|
|
38
37
|
if (this.#lastRequestedContext) {
|
|
39
38
|
this.#lastRequestedContext.runtimeModel.releaseObjectGroup(objectGroupName);
|
|
40
39
|
this.#lastRequestedContext = undefined;
|
|
@@ -64,13 +63,14 @@ export class ObjectEventListenersSidebarPane extends UI.ThrottledWidget.Throttle
|
|
|
64
63
|
|
|
65
64
|
override wasShown(): void {
|
|
66
65
|
super.wasShown();
|
|
67
|
-
UI.Context.Context.instance().addFlavorChangeListener(SDK.RuntimeModel.ExecutionContext, this.
|
|
66
|
+
UI.Context.Context.instance().addFlavorChangeListener(SDK.RuntimeModel.ExecutionContext, this.requestUpdate, this);
|
|
68
67
|
UI.Context.Context.instance().setFlavor(ObjectEventListenersSidebarPane, this);
|
|
69
68
|
}
|
|
70
69
|
|
|
71
70
|
override willHide(): void {
|
|
72
71
|
UI.Context.Context.instance().setFlavor(ObjectEventListenersSidebarPane, null);
|
|
73
|
-
UI.Context.Context.instance().removeFlavorChangeListener(
|
|
72
|
+
UI.Context.Context.instance().removeFlavorChangeListener(
|
|
73
|
+
SDK.RuntimeModel.ExecutionContext, this.requestUpdate, this);
|
|
74
74
|
super.willHide();
|
|
75
75
|
if (this.#lastRequestedContext) {
|
|
76
76
|
this.#lastRequestedContext.runtimeModel.releaseObjectGroup(objectGroupName);
|
|
@@ -85,7 +85,7 @@ export class ActionDelegate implements UI.ActionRegistration.ActionDelegate {
|
|
|
85
85
|
case 'browser-debugger.refresh-global-event-listeners': {
|
|
86
86
|
const eventListenersSidebarPane = context.flavor(ObjectEventListenersSidebarPane);
|
|
87
87
|
if (eventListenersSidebarPane) {
|
|
88
|
-
eventListenersSidebarPane.
|
|
88
|
+
eventListenersSidebarPane.requestUpdate();
|
|
89
89
|
return true;
|
|
90
90
|
}
|
|
91
91
|
return false;
|
|
@@ -7,6 +7,7 @@ import * as Host from '../../core/host/host.js';
|
|
|
7
7
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
8
8
|
import * as Badges from '../../models/badges/badges.js';
|
|
9
9
|
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
10
|
+
import * as uiI18n from '../../ui/i18n/i18n.js';
|
|
10
11
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
11
12
|
import * as Lit from '../../ui/lit/lit.js';
|
|
12
13
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
@@ -63,7 +64,7 @@ const UIStrings = {
|
|
|
63
64
|
|
|
64
65
|
const str_ = i18n.i18n.registerUIStrings('panels/common/BadgeNotification.ts', UIStrings);
|
|
65
66
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
66
|
-
const i18nFormatString =
|
|
67
|
+
const i18nFormatString = uiI18n.getFormatLocalizedString.bind(undefined, str_);
|
|
67
68
|
const lockedString = i18n.i18n.lockedString;
|
|
68
69
|
|
|
69
70
|
const LEFT_OFFSET = 5;
|
|
@@ -12,6 +12,7 @@ import * as Geometry from '../../models/geometry/geometry.js';
|
|
|
12
12
|
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
13
13
|
import * as Snackbars from '../../ui/components/snackbars/snackbars.js';
|
|
14
14
|
import type * as Switch from '../../ui/components/switch/switch.js';
|
|
15
|
+
import * as uiI18n from '../../ui/i18n/i18n.js';
|
|
15
16
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
16
17
|
import {html, render} from '../../ui/lit/lit.js';
|
|
17
18
|
|
|
@@ -150,7 +151,7 @@ export const DEFAULT_VIEW: View = (input, _output, target): void => {
|
|
|
150
151
|
<h2 class="section-title">${i18nString(UIStrings.tailorProfile)}</h2>
|
|
151
152
|
<div class="section-text">
|
|
152
153
|
<div>${i18nString(UIStrings.tailorProfileBody)}</div><br/>
|
|
153
|
-
<div>${
|
|
154
|
+
<div>${uiI18n.getFormatLocalizedString(str_, UIStrings.tailorProfileBodyDisclaimer, {
|
|
154
155
|
PH1: UI.XLink.XLink.create(CONTENT_POLICY_URL, i18nString(UIStrings.contentPolicy), 'link', undefined, 'content-policy'),
|
|
155
156
|
PH2: UI.XLink.XLink.create(TERMS_OF_SERVICE_URL, i18nString(UIStrings.termsOfService), 'link',
|
|
156
157
|
undefined, 'terms-of-service'),
|
|
@@ -164,7 +164,7 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: undefined, target: HTMLE
|
|
|
164
164
|
${input.hasTellMeMoreButton ? html`
|
|
165
165
|
<devtools-button
|
|
166
166
|
title=${lockedString(UIStringsNotTranslate.tellMeMore)}
|
|
167
|
-
.jslogContext=${'insights-teaser-tell-me-more'}
|
|
167
|
+
.jslogContext=${'insights-teaser-tell-me-more'}
|
|
168
168
|
.variant=${Buttons.Button.Variant.PRIMARY}
|
|
169
169
|
@click=${input.onTellMeMoreClick}
|
|
170
170
|
>
|
|
@@ -178,7 +178,13 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: undefined, target: HTMLE
|
|
|
178
178
|
aria-details=${'teaser-info-tooltip-' + input.uuid}
|
|
179
179
|
.accessibleLabel=${lockedString(UIStringsNotTranslate.learnDataUsage)}
|
|
180
180
|
></devtools-button>
|
|
181
|
-
<devtools-tooltip
|
|
181
|
+
<devtools-tooltip
|
|
182
|
+
id=${'teaser-info-tooltip-' + input.uuid}
|
|
183
|
+
variant="rich"
|
|
184
|
+
jslogContext="teaser-info-tooltip"
|
|
185
|
+
trigger="both"
|
|
186
|
+
hover-delay=500
|
|
187
|
+
>
|
|
182
188
|
<div class="info-tooltip-text">${lockedString(UIStringsNotTranslate.infoTooltipText)}</div>
|
|
183
189
|
<div class="learn-more">
|
|
184
190
|
<x-link
|
|
@@ -58,11 +58,13 @@ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
|
58
58
|
|
|
59
59
|
const elementToConsolePin = new WeakMap<Element, ConsolePin>();
|
|
60
60
|
|
|
61
|
-
export class ConsolePinPane extends UI.
|
|
61
|
+
export class ConsolePinPane extends UI.Widget.VBox {
|
|
62
62
|
private pins: Set<ConsolePin>;
|
|
63
63
|
private readonly pinsSetting: Common.Settings.Setting<string[]>;
|
|
64
|
+
private readonly throttler: Common.Throttler.Throttler;
|
|
64
65
|
constructor(private readonly liveExpressionButton: UI.Toolbar.ToolbarButton, private readonly focusOut: () => void) {
|
|
65
|
-
super(true
|
|
66
|
+
super({useShadowDom: true});
|
|
67
|
+
this.throttler = new Common.Throttler.Throttler(250);
|
|
66
68
|
this.registerRequiredCSS(consolePinPaneStyles, objectValueStyles);
|
|
67
69
|
this.contentElement.classList.add('console-pins', 'monospace');
|
|
68
70
|
this.contentElement.addEventListener('contextmenu', this.contextMenuEventFired.bind(this), false);
|
|
@@ -134,7 +136,7 @@ export class ConsolePinPane extends UI.ThrottledWidget.ThrottledWidget {
|
|
|
134
136
|
if (userGesture) {
|
|
135
137
|
void pin.focus();
|
|
136
138
|
}
|
|
137
|
-
this.
|
|
139
|
+
this.requestUpdate();
|
|
138
140
|
}
|
|
139
141
|
|
|
140
142
|
private focusedPinAfterDeletion(deletedPin: ConsolePin): ConsolePin|null {
|
|
@@ -153,16 +155,19 @@ export class ConsolePinPane extends UI.ThrottledWidget.ThrottledWidget {
|
|
|
153
155
|
return null;
|
|
154
156
|
}
|
|
155
157
|
|
|
156
|
-
override
|
|
158
|
+
override wasShown(): void {
|
|
159
|
+
super.wasShown();
|
|
160
|
+
void this.throttler.schedule(this.requestUpdate.bind(this));
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
override async performUpdate(): Promise<void> {
|
|
157
164
|
if (!this.pins.size || !this.isShowing()) {
|
|
158
165
|
return;
|
|
159
166
|
}
|
|
160
|
-
if (this.isShowing()) {
|
|
161
|
-
this.update();
|
|
162
|
-
}
|
|
163
167
|
const updatePromises = Array.from(this.pins, pin => pin.updatePreview());
|
|
164
168
|
await Promise.all(updatePromises);
|
|
165
169
|
this.updatedForTest();
|
|
170
|
+
void this.throttler.schedule(this.requestUpdate.bind(this));
|
|
166
171
|
}
|
|
167
172
|
|
|
168
173
|
private updatedForTest(): void {
|