chrome-devtools-frontend 1.0.1571007 → 1.0.1572937
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agents/prompts/README.md +18 -0
- package/agents/prompts/devtools-imports.md +47 -0
- package/agents/prompts/verification.md +27 -0
- package/front_end/Images/geminiInDevTools.png +0 -0
- package/front_end/Images/geminiInDevTools_2x.png +0 -0
- package/front_end/Images/src/database-off.svg +1 -0
- package/front_end/Images/src/lock-person.svg +1 -1
- package/front_end/core/common/Debouncer.ts +10 -1
- package/front_end/core/common/SettingRegistration.ts +1 -1
- package/front_end/core/host/AidaClient.ts +8 -0
- package/front_end/core/host/InspectorFrontendHostAPI.ts +0 -6
- package/front_end/core/host/UserMetrics.ts +1 -31
- package/front_end/core/root/ExperimentNames.ts +30 -0
- package/front_end/core/root/Runtime.ts +47 -48
- package/front_end/core/root/root.ts +2 -0
- package/front_end/core/sdk/CSSModel.ts +36 -13
- package/front_end/core/sdk/CSSProperty.ts +1 -1
- package/front_end/core/sdk/CSSPropertyParserMatchers.ts +9 -0
- package/front_end/core/sdk/CookieModel.ts +2 -1
- package/front_end/core/sdk/DOMModel.ts +1 -1
- package/front_end/core/sdk/DebuggerModel.ts +1 -1
- package/front_end/core/sdk/OverlayModel.ts +3 -2
- package/front_end/core/sdk/SourceMap.ts +1 -1
- package/front_end/devtools_compatibility.js +0 -6
- package/front_end/entrypoints/main/MainImpl.ts +44 -24
- package/front_end/entrypoints/main/main-meta.ts +1 -1
- package/front_end/generated/SupportedCSSProperties.js +6 -14
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +0 -180
- package/front_end/models/ai_assistance/ai_assistance.ts +0 -2
- package/front_end/models/breakpoints/BreakpointManager.ts +3 -3
- package/front_end/models/issues_manager/ContrastCheckTrigger.ts +2 -2
- package/front_end/models/javascript_metadata/NativeFunctions.js +8 -0
- package/front_end/models/source_map_scopes/NamesResolver.ts +1 -1
- package/front_end/models/trace/EventsSerializer.ts +5 -1
- package/front_end/models/trace/ModelImpl.ts +0 -4
- package/front_end/models/trace/types/TraceEvents.ts +4 -0
- package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +1 -1
- package/front_end/panels/accessibility/AccessibilitySidebarView.ts +1 -1
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +8 -63
- package/front_end/panels/ai_assistance/PatchWidget.ts +10 -15
- package/front_end/panels/ai_assistance/SelectWorkspaceDialog.ts +5 -4
- package/front_end/panels/ai_assistance/aiAssistancePanel.css +0 -16
- package/front_end/panels/ai_assistance/ai_assistance.ts +0 -1
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +3 -2
- package/front_end/panels/ai_assistance/components/ChatView.ts +123 -108
- package/front_end/panels/ai_assistance/components/PerformanceAgentMarkdownRenderer.ts +1 -145
- package/front_end/panels/application/DeviceBoundSessionsModel.ts +23 -1
- package/front_end/panels/application/DeviceBoundSessionsTreeElement.ts +23 -0
- package/front_end/panels/application/FrameDetailsView.ts +12 -10
- package/front_end/panels/application/components/BackForwardCacheView.ts +6 -8
- package/front_end/panels/application/components/BounceTrackingMitigationsView.ts +4 -3
- package/front_end/panels/application/components/ProtocolHandlersView.ts +5 -6
- package/front_end/panels/application/components/ReportsGrid.ts +9 -9
- package/front_end/panels/application/components/SharedStorageAccessGrid.ts +5 -4
- package/front_end/panels/application/components/TrustTokensView.ts +4 -6
- package/front_end/panels/application/preloading/PreloadingView.ts +9 -8
- package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +237 -230
- package/front_end/panels/application/preloading/components/PreloadingGrid.ts +3 -2
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +6 -10
- package/front_end/panels/application/resourcesSidebar.css +8 -0
- package/front_end/panels/autofill/AutofillView.ts +4 -3
- package/front_end/panels/common/AiCodeCompletionSummaryToolbar.ts +3 -5
- package/front_end/panels/common/AiCodeCompletionTeaser.ts +5 -5
- package/front_end/panels/common/AiCodeGenerationTeaser.ts +35 -4
- package/front_end/panels/common/BadgeNotification.ts +17 -14
- package/front_end/panels/common/GdpSignUpDialog.ts +5 -6
- package/front_end/panels/common/GeminiRebrandPromoDialog.ts +192 -0
- package/front_end/panels/common/aiCodeGenerationTeaser.css +16 -1
- package/front_end/panels/common/common.ts +1 -0
- package/front_end/panels/common/geminiRebrandPromoDialog.css +47 -0
- package/front_end/panels/console/ConsoleInsightTeaser.ts +10 -11
- package/front_end/panels/console/ErrorStackParser.ts +11 -16
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +2 -2
- package/front_end/panels/css_overview/CSSOverviewModel.ts +1 -1
- package/front_end/panels/elements/ComputedStyleModel.ts +16 -65
- package/front_end/panels/elements/ComputedStyleWidget.ts +3 -3
- package/front_end/panels/elements/ElementsPanel.ts +35 -5
- package/front_end/panels/elements/ElementsSidebarPane.ts +1 -1
- package/front_end/panels/elements/ElementsTreeOutline.ts +1 -1
- package/front_end/panels/elements/PlatformFontsWidget.ts +1 -1
- package/front_end/panels/elements/StylePropertiesSection.ts +16 -8
- package/front_end/panels/elements/StylePropertyTreeElement.ts +67 -32
- package/front_end/panels/elements/StylesSidebarPane.ts +28 -11
- package/front_end/panels/elements/components/CSSHintDetailsView.ts +3 -2
- package/front_end/panels/elements/components/CSSPropertyDocsView.ts +3 -2
- package/front_end/panels/elements/elements-meta.ts +1 -1
- package/front_end/panels/emulation/DeviceModeWrapper.ts +101 -62
- package/front_end/panels/explain/components/ConsoleInsight.ts +27 -23
- package/front_end/panels/explain/components/consoleInsight.css +1 -1
- package/front_end/panels/issues/IssueView.ts +6 -6
- package/front_end/panels/network/RequestConditionsDrawer.ts +4 -3
- package/front_end/panels/network/RequestCookiesView.ts +3 -4
- package/front_end/panels/network/RequestTimingView.ts +6 -10
- package/front_end/panels/network/components/HeaderSectionRow.ts +3 -2
- package/front_end/panels/network/components/RequestHeaderSection.ts +3 -1
- package/front_end/panels/network/components/RequestHeadersView.css +2 -2
- package/front_end/panels/network/components/RequestHeadersView.ts +7 -6
- package/front_end/panels/profiler/HeapProfileView.ts +3 -3
- package/front_end/panels/profiler/HeapSnapshotView.ts +2 -2
- package/front_end/panels/profiler/profiler-meta.ts +3 -3
- package/front_end/panels/protocol_monitor/protocol_monitor-meta.ts +1 -1
- package/front_end/panels/recorder/RecorderController.ts +7 -13
- package/front_end/panels/recorder/components/CreateRecordingView.ts +6 -6
- package/front_end/panels/recorder/components/RecordingView.ts +0 -38
- package/front_end/panels/recorder/components/ReplaySection.ts +0 -14
- package/front_end/panels/recorder/components/StepEditor.ts +2 -40
- package/front_end/panels/recorder/recorderController.css +4 -4
- package/front_end/panels/security/CookieControlsView.ts +2 -2
- package/front_end/panels/security/CookieReportView.ts +21 -21
- package/front_end/panels/security/cookieControlsView.css +1 -1
- package/front_end/panels/security/cookieReportView.css +1 -1
- package/front_end/panels/settings/AISettingsTab.ts +13 -15
- package/front_end/panels/settings/components/SyncSection.ts +4 -3
- package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +4 -12
- package/front_end/panels/settings/settings-meta.ts +1 -1
- package/front_end/panels/sources/BreakpointEditDialog.ts +4 -3
- package/front_end/panels/sources/CallStackSidebarPane.ts +4 -1
- package/front_end/panels/sources/FilteredUISourceCodeListProvider.ts +1 -1
- package/front_end/panels/sources/NavigatorView.ts +4 -4
- package/front_end/panels/sources/SourcesPanel.ts +7 -4
- package/front_end/panels/sources/components/HeadersView.ts +2 -2
- package/front_end/panels/timeline/CompatibilityTracksAppender.ts +3 -2
- package/front_end/panels/timeline/ThreadAppender.ts +2 -1
- package/front_end/panels/timeline/TimelineController.ts +4 -3
- package/front_end/panels/timeline/TimelinePanel.ts +7 -4
- package/front_end/panels/timeline/TimelineUIUtils.ts +2 -2
- package/front_end/panels/timeline/components/ExportTraceOptions.ts +4 -4
- package/front_end/panels/timeline/components/FieldSettingsDialog.ts +13 -6
- package/front_end/panels/timeline/components/LiveMetricsView.ts +13 -9
- package/front_end/panels/timeline/components/exportTraceOptions.css +1 -1
- package/front_end/panels/timeline/components/fieldSettingsDialog.css +1 -1
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +2 -19
- package/front_end/panels/timeline/components/insights/InsightRenderer.ts +3 -4
- package/front_end/panels/timeline/components/insights/baseInsightComponent.css +0 -5
- package/front_end/panels/timeline/components/liveMetricsView.css +1 -1
- package/front_end/panels/whats_new/ReleaseNoteView.ts +4 -3
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/ui/components/buttons/button.css +4 -0
- package/front_end/ui/components/markdown_view/CodeBlock.ts +3 -6
- package/front_end/ui/components/markdown_view/MarkdownLink.ts +3 -4
- package/front_end/ui/components/panel_feedback/PanelFeedback.ts +3 -4
- package/front_end/ui/components/panel_feedback/PreviewToggle.ts +10 -7
- package/front_end/ui/components/panel_feedback/panelFeedback.css +2 -2
- package/front_end/ui/components/panel_feedback/previewToggle.css +2 -2
- package/front_end/ui/components/text_editor/AiCodeGenerationParser.ts +27 -8
- package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +36 -6
- package/front_end/ui/kit/link/Link.ts +1 -14
- package/front_end/ui/legacy/ActionRegistration.ts +1 -1
- package/front_end/ui/legacy/ContextMenu.ts +2 -2
- package/front_end/ui/legacy/EmptyWidget.ts +3 -3
- package/front_end/ui/legacy/LinkContextMenuProvider.ts +42 -0
- package/front_end/ui/legacy/ViewRegistration.ts +1 -1
- package/front_end/ui/legacy/XLink.ts +0 -27
- package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +1 -1
- package/front_end/ui/legacy/components/color_picker/ContrastOverlay.ts +5 -4
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +2 -2
- package/front_end/ui/legacy/components/perf_ui/perf_ui-meta.ts +1 -1
- package/front_end/ui/legacy/inspectorCommon.css +2 -1
- package/front_end/ui/legacy/legacy.ts +3 -1
- package/front_end/ui/visual_logging/KnownContextValues.ts +4 -1
- package/front_end/ui/visual_logging/LoggingDriver.ts +3 -0
- package/package.json +1 -1
- package/front_end/models/ai_assistance/ArtifactsManager.ts +0 -67
- package/front_end/panels/ai_assistance/components/ArtifactsViewer.ts +0 -183
- package/front_end/panels/ai_assistance/components/CollapsibleAssistanceContentWidget.ts +0 -89
- package/front_end/panels/ai_assistance/components/PerformanceAgentFlameChart.ts +0 -133
- package/front_end/panels/ai_assistance/components/artifactsViewer.css +0 -15
- package/front_end/panels/ai_assistance/components/collapsibleAssistanceContentWidget.css +0 -32
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
5
|
import '../../../ui/components/spinners/spinners.js';
|
|
6
|
+
import '../../../ui/kit/kit.js';
|
|
6
7
|
|
|
7
8
|
import * as Common from '../../../core/common/common.js';
|
|
8
9
|
import * as Host from '../../../core/host/host.js';
|
|
@@ -299,9 +300,9 @@ function renderSearchButton(onSearch: ViewInput['callbacks']['onSearch']): Lit.T
|
|
|
299
300
|
|
|
300
301
|
function renderLearnMoreAboutInsights(): Lit.TemplateResult {
|
|
301
302
|
// clang-format off
|
|
302
|
-
return html`<
|
|
303
|
+
return html`<devtools-link href=${LEARN_MORE_URL} class="link" .jslogContext=${'learn-more'}>
|
|
303
304
|
${i18nString(UIStrings.learnMore)}
|
|
304
|
-
</
|
|
305
|
+
</devtools-link>`;
|
|
305
306
|
// clang-format on
|
|
306
307
|
}
|
|
307
308
|
|
|
@@ -317,15 +318,15 @@ function maybeRenderSources(
|
|
|
317
318
|
<ol class="sources-list">
|
|
318
319
|
${directCitationUrls.map((url, index) => html`
|
|
319
320
|
<li>
|
|
320
|
-
<
|
|
321
|
+
<devtools-link
|
|
321
322
|
href=${url}
|
|
322
323
|
class=${Directives.classMap({link: true, highlighted: index === highlightedCitationIndex})}
|
|
323
|
-
|
|
324
|
+
.jslogContext=${'references.console-insights'}
|
|
324
325
|
${Directives.ref(e => { output.citationLinks[index] = e as HTMLElement; })}
|
|
325
326
|
@animationend=${onCitationAnimationEnd}
|
|
326
327
|
>
|
|
327
328
|
${url}
|
|
328
|
-
</
|
|
329
|
+
</devtools-link>
|
|
329
330
|
</li>
|
|
330
331
|
`)}
|
|
331
332
|
</ol>
|
|
@@ -343,13 +344,13 @@ function maybeRenderRelatedContent(relatedUrls: string[], directCitationUrls: st
|
|
|
343
344
|
<ul class="references-list">
|
|
344
345
|
${relatedUrls.map(relatedUrl => html`
|
|
345
346
|
<li>
|
|
346
|
-
<
|
|
347
|
+
<devtools-link
|
|
347
348
|
href=${relatedUrl}
|
|
348
349
|
class="link"
|
|
349
|
-
|
|
350
|
+
.jslogContext=${'references.console-insights'}
|
|
350
351
|
>
|
|
351
352
|
${relatedUrl}
|
|
352
|
-
</
|
|
353
|
+
</devtools-link>
|
|
353
354
|
</li>
|
|
354
355
|
`)}
|
|
355
356
|
</ul>
|
|
@@ -379,10 +380,10 @@ function renderInsightSourcesList(
|
|
|
379
380
|
<div class="insight-sources">
|
|
380
381
|
<ul>
|
|
381
382
|
${Directives.repeat(sources, item => item.value, item => {
|
|
382
|
-
return html`<li><
|
|
383
|
+
return html`<li><devtools-link class="link" title="${localizeType(item.type)} ${i18nString(UIStrings.opensInNewTab)}" href="data:text/plain;charset=utf-8,${encodeURIComponent(item.value)}" .jslogContext=${'source-' + item.type}>
|
|
383
384
|
<devtools-icon name="open-externally"></devtools-icon>
|
|
384
385
|
${localizeType(item.type)}
|
|
385
|
-
</
|
|
386
|
+
</devtools-link></li>`;
|
|
386
387
|
})}
|
|
387
388
|
${isPageReloadRecommended ? html`<li class="source-disclaimer">
|
|
388
389
|
<devtools-icon name="warning"></devtools-icon>
|
|
@@ -450,28 +451,28 @@ function renderConsentReminder(noLogging: boolean): Lit.TemplateResult {
|
|
|
450
451
|
<devtools-icon name="policy" class="medium">
|
|
451
452
|
</devtools-icon>
|
|
452
453
|
</div>
|
|
453
|
-
<div>Use of this feature is subject to the <
|
|
454
|
+
<div>Use of this feature is subject to the <devtools-link
|
|
454
455
|
href=${TERMS_OF_SERVICE_URL}
|
|
455
456
|
class="link"
|
|
456
|
-
|
|
457
|
+
.jslogContext=${'terms-of-service.console-insights'}>
|
|
457
458
|
Google Terms of Service
|
|
458
|
-
</
|
|
459
|
+
</devtools-link> and <devtools-link
|
|
459
460
|
href=${PRIVACY_POLICY_URL}
|
|
460
461
|
class="link"
|
|
461
|
-
|
|
462
|
+
.jslogContext=${'privacy-policy.console-insights'}>
|
|
462
463
|
Google Privacy Policy
|
|
463
|
-
</
|
|
464
|
+
</devtools-link>
|
|
464
465
|
</div>
|
|
465
466
|
<div>
|
|
466
467
|
<devtools-icon name="warning" class="medium">
|
|
467
468
|
</devtools-icon>
|
|
468
469
|
</div>
|
|
469
470
|
<div>
|
|
470
|
-
<
|
|
471
|
+
<devtools-link
|
|
471
472
|
href=${CODE_SNIPPET_WARNING_URL}
|
|
472
473
|
class="link"
|
|
473
|
-
|
|
474
|
-
>Use generated code snippets with caution</
|
|
474
|
+
.jslogContext=${'code-snippets-explainer.console-insights'}
|
|
475
|
+
>Use generated code snippets with caution</devtools-link>
|
|
475
476
|
</div>
|
|
476
477
|
</div>`;
|
|
477
478
|
// clang-format on
|
|
@@ -513,10 +514,10 @@ function renderDisclaimer(noLogging: boolean, onDisclaimerSettingsLink: () => vo
|
|
|
513
514
|
} <button class="link" role="link" @click=${onDisclaimerSettingsLink}
|
|
514
515
|
jslog=${VisualLogging.action('open-ai-settings').track({click: true})}>
|
|
515
516
|
Open settings
|
|
516
|
-
</button> or <
|
|
517
|
-
class="link"
|
|
517
|
+
</button> or <devtools-link href=${LEARN_MORE_URL}
|
|
518
|
+
class="link" .jslogContext=${'learn-more'}>
|
|
518
519
|
learn more
|
|
519
|
-
</
|
|
520
|
+
</devtools-link>
|
|
520
521
|
</span>`;
|
|
521
522
|
// clang-format on
|
|
522
523
|
}
|
|
@@ -549,7 +550,8 @@ function renderSignInFooter(onGoToSignIn: () => void): Lit.LitTemplate {
|
|
|
549
550
|
// clang-format on
|
|
550
551
|
}
|
|
551
552
|
|
|
552
|
-
function renderConsentReminderFooter(
|
|
553
|
+
function renderConsentReminderFooter(
|
|
554
|
+
onReminderSettingsLink: () => void, onConsentReminderConfirmed: () => void): Lit.LitTemplate {
|
|
553
555
|
// clang-format off
|
|
554
556
|
return html`
|
|
555
557
|
<div class="filler"></div>
|
|
@@ -575,7 +577,9 @@ function renderConsentReminderFooter(onReminderSettingsLink: () => void, onConse
|
|
|
575
577
|
// clang-format on
|
|
576
578
|
}
|
|
577
579
|
|
|
578
|
-
function renderInsightFooter(
|
|
580
|
+
function renderInsightFooter(
|
|
581
|
+
noLogging: ViewInput['noLogging'], selectedRating: ViewInput['selectedRating'],
|
|
582
|
+
callbacks: ViewInput['callbacks']): Lit.LitTemplate {
|
|
579
583
|
// clang-format off
|
|
580
584
|
return html`
|
|
581
585
|
<div class="disclaimer">
|
|
@@ -16,7 +16,7 @@ import * as IssueCounter from '../../ui/components/issue_counter/issue_counter.j
|
|
|
16
16
|
import * as MarkdownView from '../../ui/components/markdown_view/markdown_view.js';
|
|
17
17
|
import {Icon} from '../../ui/kit/kit.js';
|
|
18
18
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
19
|
-
import
|
|
19
|
+
import {html, render} from '../../ui/lit/lit.js';
|
|
20
20
|
|
|
21
21
|
import {AffectedBlockedByResponseView} from './AffectedBlockedByResponseView.js';
|
|
22
22
|
import {AffectedCookiesView, AffectedRawCookieLinesView} from './AffectedCookiesView.js';
|
|
@@ -452,12 +452,12 @@ export class IssueView extends UI.TreeOutline.TreeElement {
|
|
|
452
452
|
|
|
453
453
|
const linkList = linkWrapper.listItemElement.createChild('ul', 'link-list');
|
|
454
454
|
for (const description of this.#description.links) {
|
|
455
|
-
const link = UI.Fragment.html`<x-link class="link devtools-link" tabindex="0" href=${description.link}>${
|
|
456
|
-
i18nString(UIStrings.learnMoreS, {PH1: description.linkTitle})}</x-link>` as UI.XLink.XLink;
|
|
457
|
-
link.setAttribute('jslog', `${VisualLogging.link('learn-more').track({click: true})}`);
|
|
458
|
-
|
|
459
455
|
const linkListItem = linkList.createChild('li');
|
|
460
|
-
|
|
456
|
+
// eslint-disable-next-line @devtools/no-lit-render-outside-of-view
|
|
457
|
+
render(
|
|
458
|
+
html`<devtools-link class="link devtools-link" href=${description.link} .jslogContext=${'learn-more'}>${
|
|
459
|
+
i18nString(UIStrings.learnMoreS, {PH1: description.linkTitle})}</devtools-link>`,
|
|
460
|
+
linkListItem);
|
|
461
461
|
}
|
|
462
462
|
this.appendChild(linkWrapper);
|
|
463
463
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
/* eslint-disable @devtools/no-lit-render-outside-of-view */
|
|
5
5
|
/* eslint-disable @devtools/no-imperative-dom-api */
|
|
6
6
|
|
|
7
|
+
import '../../ui/kit/kit.js';
|
|
7
8
|
import '../../ui/legacy/legacy.js';
|
|
8
9
|
import '../../ui/components/tooltips/tooltips.js';
|
|
9
10
|
|
|
@@ -325,13 +326,13 @@ export class AffectedCountWidget extends UI.Widget.Widget {
|
|
|
325
326
|
}
|
|
326
327
|
|
|
327
328
|
function learnMore(): LitTemplate {
|
|
328
|
-
return html`<
|
|
329
|
+
return html`<devtools-link
|
|
329
330
|
href=${NETWORK_REQUEST_BLOCKING_EXPLANATION_URL}
|
|
330
331
|
tabindex=0
|
|
331
332
|
class=devtools-link
|
|
332
|
-
|
|
333
|
+
.jslogContext=${'learn-more'}>
|
|
333
334
|
${i18nString(UIStrings.learnMore)}
|
|
334
|
-
</
|
|
335
|
+
</devtools-link>`;
|
|
335
336
|
}
|
|
336
337
|
|
|
337
338
|
export class RequestConditionsDrawer extends UI.Widget.VBox implements
|
|
@@ -121,10 +121,9 @@ export const DEFAULT_VIEW: ViewFunction = (input, _output, target) => {
|
|
|
121
121
|
` : Lit.nothing}
|
|
122
122
|
|
|
123
123
|
<div class="cookies-panel-item site-has-cookies-in-other-partition ${input.siteHasCookieInOtherPartition ? '' : 'hidden'}">
|
|
124
|
-
${uiI18n.
|
|
125
|
-
PH1:
|
|
126
|
-
|
|
127
|
-
undefined, 'learn-more'),})}
|
|
124
|
+
${uiI18n.getFormatLocalizedStringTemplate(str_, UIStrings.siteHasCookieInOtherPartition, {
|
|
125
|
+
PH1: html`<devtools-link href="https://developer.chrome.com/en/docs/privacy-sandbox/chips/" .jslogContext=${'learn-more'}>${i18nString(UIStrings.learnMore)}</devtools-link>`
|
|
126
|
+
})}
|
|
128
127
|
</div>
|
|
129
128
|
|
|
130
129
|
<div class="request-cookies-title ${input.responseCookies.cookies.length ? '' : 'hidden'}"
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
5
|
/* eslint-disable @devtools/no-imperative-dom-api */
|
|
6
|
+
import '../../ui/kit/kit.js';
|
|
6
7
|
|
|
7
8
|
import * as Common from '../../core/common/common.js';
|
|
8
9
|
import * as Host from '../../core/host/host.js';
|
|
@@ -500,12 +501,12 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
500
501
|
</tr>` : nothing}
|
|
501
502
|
<tr class=network-timing-footer>
|
|
502
503
|
<td colspan=1>
|
|
503
|
-
<
|
|
504
|
+
<devtools-link
|
|
504
505
|
href="https://developer.chrome.com/docs/devtools/network/reference/#timing-explanation"
|
|
505
506
|
class=devtools-link
|
|
506
|
-
|
|
507
|
+
.jslogContext=${'explanation'}>
|
|
507
508
|
${i18nString(UIStrings.explanation)}
|
|
508
|
-
</
|
|
509
|
+
</devtools-link>
|
|
509
510
|
<td></td>
|
|
510
511
|
<td class=${input.wasThrottled ? 'throttled' : ''} title=${ifDefined(throttledRequestTitle)}>
|
|
511
512
|
${input.wasThrottled ? html` <devtools-icon name=watch @click=${revealThrottled}></devtools-icon>` : nothing}
|
|
@@ -527,13 +528,8 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
527
528
|
${input.serverTimings.length === 0 ? html`
|
|
528
529
|
<tr>
|
|
529
530
|
<td colspan=3>
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
'https://web.dev/custom-metrics/#server-timing-api',
|
|
533
|
-
i18nString(UIStrings.theServerTimingApi),
|
|
534
|
-
undefined,
|
|
535
|
-
undefined,
|
|
536
|
-
'server-timing-api')})}
|
|
531
|
+
${uiI18n.getFormatLocalizedStringTemplate(str_, UIStrings.duringDevelopmentYouCanUseSToAdd, {PH1:
|
|
532
|
+
html`<devtools-link href="https://web.dev/custom-metrics/#server-timing-api" .jslogContext=${'server-timing-api'}>${i18nString(UIStrings.theServerTimingApi)}</devtools-link>`})}
|
|
537
533
|
</td>
|
|
538
534
|
</tr>` : nothing}
|
|
539
535
|
</table>`,
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
/* eslint-disable @devtools/no-lit-render-outside-of-view */
|
|
5
5
|
|
|
6
|
+
import '../../../ui/kit/kit.js';
|
|
6
7
|
import '../../../ui/legacy/legacy.js';
|
|
7
8
|
|
|
8
9
|
import * as Host from '../../../core/host/host.js';
|
|
@@ -339,11 +340,11 @@ export class HeaderSectionRow extends HTMLElement {
|
|
|
339
340
|
// Disabled until https://crbug.com/1079231 is fixed.
|
|
340
341
|
// clang-format off
|
|
341
342
|
return html`
|
|
342
|
-
<
|
|
343
|
+
<devtools-link href=${blockedDetails.link.url} class="link">
|
|
343
344
|
<devtools-icon name="open-externally" class="inline-icon extra-large" style="color: var(--icon-link);">
|
|
344
345
|
</devtools-icon
|
|
345
346
|
>${i18nString(UIStrings.learnMore)}
|
|
346
|
-
</
|
|
347
|
+
</devtools-link>
|
|
347
348
|
`;
|
|
348
349
|
// clang-format on
|
|
349
350
|
}
|
|
@@ -2,6 +2,8 @@
|
|
|
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 '../../../ui/kit/kit.js';
|
|
6
|
+
|
|
5
7
|
import * as i18n from '../../../core/i18n/i18n.js';
|
|
6
8
|
import * as Platform from '../../../core/platform/platform.js';
|
|
7
9
|
import type * as SDK from '../../../core/sdk/sdk.js';
|
|
@@ -81,7 +83,7 @@ function renderProvisionalHeadersWarning(isRequestCached: boolean): Lit.LitTempl
|
|
|
81
83
|
<div class="explanation" title=${cautionTitle}>
|
|
82
84
|
<devtools-icon class="inline-icon medium" name='warning-filled'>
|
|
83
85
|
</devtools-icon>
|
|
84
|
-
${cautionText} <
|
|
86
|
+
${cautionText} <devtools-link href="https://developer.chrome.com/docs/devtools/network/reference/#provisional-headers" class="link">${i18nString(UIStrings.learnMore)}</devtools-link>
|
|
85
87
|
</div>
|
|
86
88
|
</div>
|
|
87
89
|
</div>
|
|
@@ -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
|
/* eslint-disable @devtools/no-lit-render-outside-of-view */
|
|
5
|
+
import '../../../ui/kit/kit.js';
|
|
5
6
|
|
|
6
7
|
import * as Common from '../../../core/common/common.js';
|
|
7
8
|
import * as Host from '../../../core/host/host.js';
|
|
@@ -306,22 +307,22 @@ export class RequestHeadersView extends LegacyWrapper.LegacyWrapper.WrappableCom
|
|
|
306
307
|
// Disabled until https://crbug.com/1079231 is fixed.
|
|
307
308
|
// clang-format off
|
|
308
309
|
return html`
|
|
309
|
-
<
|
|
310
|
+
<devtools-link
|
|
310
311
|
href="https://goo.gle/devtools-override"
|
|
311
312
|
class="link devtools-link"
|
|
312
|
-
|
|
313
|
+
.jslogContext=${'devtools-override'}
|
|
313
314
|
>
|
|
314
315
|
<devtools-icon name="help" class="inline-icon medium">
|
|
315
316
|
</devtools-icon>
|
|
316
|
-
</
|
|
317
|
-
<
|
|
317
|
+
</devtools-link>
|
|
318
|
+
<devtools-link
|
|
318
319
|
@click=${revealHeadersFile}
|
|
319
320
|
class="link devtools-link"
|
|
320
321
|
title=${UIStrings.revealHeaderOverrides}
|
|
321
|
-
|
|
322
|
+
.jslogContext=${'reveal-header-overrides'}
|
|
322
323
|
>
|
|
323
324
|
${fileIcon}${Persistence.NetworkPersistenceManager.HEADERS_FILENAME}
|
|
324
|
-
</
|
|
325
|
+
</devtools-link>
|
|
325
326
|
`;
|
|
326
327
|
// clang-format on
|
|
327
328
|
}
|
|
@@ -144,7 +144,7 @@ export class HeapProfileView extends ProfileView implements UI.SearchableView.Se
|
|
|
144
144
|
|
|
145
145
|
this.timelineOverview = new HeapTimelineOverview();
|
|
146
146
|
|
|
147
|
-
if (Root.Runtime.experiments.isEnabled(
|
|
147
|
+
if (Root.Runtime.experiments.isEnabled(Root.ExperimentNames.ExperimentName.SAMPLING_HEAP_PROFILER_TIMELINE)) {
|
|
148
148
|
this.timelineOverview.addEventListener(Events.IDS_RANGE_CHANGED, this.onIdsRangeChanged.bind(this));
|
|
149
149
|
this.timelineOverview.show(this.element, this.element.firstChild);
|
|
150
150
|
this.timelineOverview.start();
|
|
@@ -368,7 +368,7 @@ export class SamplingHeapProfileType extends SamplingHeapProfileTypeBase {
|
|
|
368
368
|
}
|
|
369
369
|
|
|
370
370
|
override hasTemporaryView(): boolean {
|
|
371
|
-
return Root.Runtime.experiments.isEnabled(
|
|
371
|
+
return Root.Runtime.experiments.isEnabled(Root.ExperimentNames.ExperimentName.SAMPLING_HEAP_PROFILER_TIMELINE);
|
|
372
372
|
}
|
|
373
373
|
|
|
374
374
|
override startSampling(): void {
|
|
@@ -378,7 +378,7 @@ export class SamplingHeapProfileType extends SamplingHeapProfileTypeBase {
|
|
|
378
378
|
}
|
|
379
379
|
|
|
380
380
|
void heapProfilerModel.startSampling();
|
|
381
|
-
if (Root.Runtime.experiments.isEnabled(
|
|
381
|
+
if (Root.Runtime.experiments.isEnabled(Root.ExperimentNames.ExperimentName.SAMPLING_HEAP_PROFILER_TIMELINE)) {
|
|
382
382
|
this.updateTimer = window.setTimeout(() => {
|
|
383
383
|
void this.updateStats();
|
|
384
384
|
}, this.updateIntervalMs);
|
|
@@ -1337,8 +1337,8 @@ export class HeapSnapshotProfileType extends
|
|
|
1337
1337
|
}
|
|
1338
1338
|
|
|
1339
1339
|
override customContent(): Element|null {
|
|
1340
|
-
const showOptionToExposeInternalsInHeapSnapshot =
|
|
1341
|
-
Root.
|
|
1340
|
+
const showOptionToExposeInternalsInHeapSnapshot = Root.Runtime.experiments.isEnabled(
|
|
1341
|
+
Root.ExperimentNames.ExperimentName.SHOW_OPTION_TO_EXPOSE_INTERNALS_IN_HEAP_SNAPSHOT);
|
|
1342
1342
|
const exposeInternalsInHeapSnapshotCheckbox =
|
|
1343
1343
|
SettingsUI.SettingsUI.createSettingCheckbox(i18nString(UIStrings.exposeInternals), this.exposeInternals);
|
|
1344
1344
|
this.customContentInternal = exposeInternalsInHeapSnapshotCheckbox;
|
|
@@ -101,7 +101,7 @@ UI.ViewManager.registerViewExtension({
|
|
|
101
101
|
const Profiler = await loadProfilerModule();
|
|
102
102
|
return Profiler.LiveHeapProfileView.LiveHeapProfileView.instance();
|
|
103
103
|
},
|
|
104
|
-
experiment: Root.
|
|
104
|
+
experiment: Root.ExperimentNames.ExperimentName.LIVE_HEAP_PROFILE,
|
|
105
105
|
});
|
|
106
106
|
|
|
107
107
|
UI.ActionRegistration.registerActionExtension({
|
|
@@ -115,7 +115,7 @@ UI.ActionRegistration.registerActionExtension({
|
|
|
115
115
|
return new Profiler.LiveHeapProfileView.ActionDelegate();
|
|
116
116
|
},
|
|
117
117
|
category: UI.ActionRegistration.ActionCategory.MEMORY,
|
|
118
|
-
experiment: Root.
|
|
118
|
+
experiment: Root.ExperimentNames.ExperimentName.LIVE_HEAP_PROFILE,
|
|
119
119
|
options: [
|
|
120
120
|
{
|
|
121
121
|
value: true,
|
|
@@ -136,7 +136,7 @@ UI.ActionRegistration.registerActionExtension({
|
|
|
136
136
|
return new Profiler.LiveHeapProfileView.ActionDelegate();
|
|
137
137
|
},
|
|
138
138
|
category: UI.ActionRegistration.ActionCategory.MEMORY,
|
|
139
|
-
experiment: Root.
|
|
139
|
+
experiment: Root.ExperimentNames.ExperimentName.LIVE_HEAP_PROFILE,
|
|
140
140
|
title: i18nLazyString(UIStrings.startRecordingHeapAllocationsAndReload),
|
|
141
141
|
});
|
|
142
142
|
|
|
@@ -44,5 +44,5 @@ UI.ViewManager.registerViewExtension({
|
|
|
44
44
|
const ProtocolMonitor = await loadProtocolMonitorModule();
|
|
45
45
|
return new ProtocolMonitor.ProtocolMonitor.ProtocolMonitorImpl();
|
|
46
46
|
},
|
|
47
|
-
experiment: Root.
|
|
47
|
+
experiment: Root.ExperimentNames.ExperimentName.PROTOCOL_MONITOR,
|
|
48
48
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Copyright 2023 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
|
+
import '../../ui/kit/kit.js';
|
|
4
5
|
|
|
5
6
|
import * as Common from '../../core/common/common.js';
|
|
6
7
|
import * as Host from '../../core/host/host.js';
|
|
@@ -691,7 +692,6 @@ export class RecorderController extends LitElement {
|
|
|
691
692
|
const indexToInsertAt = currentIndex + (position === Components.StepView.AddStepPosition.BEFORE ? 0 : 1);
|
|
692
693
|
steps.splice(indexToInsertAt, 0, {type: Models.Schema.StepType.WaitForElement, selectors: ['body']});
|
|
693
694
|
const recording = {...this.currentRecording, flow: {...this.currentRecording.flow, steps}};
|
|
694
|
-
Host.userMetrics.recordingEdited(Host.UserMetrics.RecordingEdited.STEP_ADDED);
|
|
695
695
|
this.#stepBreakpointIndexes = new Set([...this.#stepBreakpointIndexes.values()].map(breakpointIndex => {
|
|
696
696
|
if (indexToInsertAt > breakpointIndex) {
|
|
697
697
|
return breakpointIndex;
|
|
@@ -722,7 +722,6 @@ export class RecorderController extends LitElement {
|
|
|
722
722
|
const currentIndex = steps.indexOf(event.step);
|
|
723
723
|
steps.splice(currentIndex, 1);
|
|
724
724
|
const flow = {...this.currentRecording.flow, steps};
|
|
725
|
-
Host.userMetrics.recordingEdited(Host.UserMetrics.RecordingEdited.STEP_REMOVED);
|
|
726
725
|
this.#stepBreakpointIndexes = new Set([...this.#stepBreakpointIndexes.values()]
|
|
727
726
|
.map(breakpointIndex => {
|
|
728
727
|
if (currentIndex > breakpointIndex) {
|
|
@@ -957,10 +956,8 @@ export class RecorderController extends LitElement {
|
|
|
957
956
|
await this.#exportContent(converter.getFilename(this.currentRecording.flow), content);
|
|
958
957
|
const builtInMetric = CONVERTER_ID_TO_METRIC[converter.getId()];
|
|
959
958
|
if (builtInMetric) {
|
|
960
|
-
Host.userMetrics.recordingExported(builtInMetric);
|
|
961
959
|
UI.ARIAUtils.LiveAnnouncer.alert(i18nString(UIStrings.recordingExported));
|
|
962
960
|
} else if (converter.getId().startsWith(Converters.ExtensionConverter.EXTENSION_PREFIX)) {
|
|
963
|
-
Host.userMetrics.recordingExported(Host.UserMetrics.RecordingExported.TO_EXTENSION);
|
|
964
961
|
UI.ARIAUtils.LiveAnnouncer.alert(i18nString(UIStrings.recordingExported));
|
|
965
962
|
} else {
|
|
966
963
|
throw new Error('Could not find a metric for the export option with id = ' + id);
|
|
@@ -992,7 +989,6 @@ export class RecorderController extends LitElement {
|
|
|
992
989
|
this.#setCurrentRecording(
|
|
993
990
|
await this.#storage.updateRecording(this.currentRecording.storageName, flow),
|
|
994
991
|
{keepBreakpoints: true, updateSession: true});
|
|
995
|
-
Host.userMetrics.recordingAssertion(Host.UserMetrics.RecordingAssertion.ASSERTION_ADDED);
|
|
996
992
|
await this.updateComplete;
|
|
997
993
|
// FIXME: call a method on the recording view widget.
|
|
998
994
|
await this.#recordingView?.updateComplete;
|
|
@@ -1193,13 +1189,11 @@ export class RecorderController extends LitElement {
|
|
|
1193
1189
|
<div class="empty-state-header">${i18nString(UIStrings.header)}</div>
|
|
1194
1190
|
<div class="empty-state-description">
|
|
1195
1191
|
<span>${i18nString(UIStrings.recordingDescription)}</span>
|
|
1196
|
-
<
|
|
1197
|
-
class="
|
|
1192
|
+
<devtools-link
|
|
1193
|
+
class="devtools-link"
|
|
1198
1194
|
href=${RECORDER_EXPLANATION_URL}
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
.context('learn-more')}
|
|
1202
|
-
>${i18nString(UIStrings.learnMore)}</x-link>
|
|
1195
|
+
.jslogContext=${'learn-more'}
|
|
1196
|
+
>${i18nString(UIStrings.learnMore)}</devtools-link>
|
|
1203
1197
|
</div>
|
|
1204
1198
|
<devtools-button .variant=${Buttons.Button.Variant.TONAL} jslogContext=${Actions.RecorderActions.CREATE_RECORDING} @click=${this.#onCreateNewRecording}>${i18nString(UIStrings.createRecording)}</devtools-button>
|
|
1205
1199
|
</div>
|
|
@@ -1474,9 +1468,9 @@ export class RecorderController extends LitElement {
|
|
|
1474
1468
|
}
|
|
1475
1469
|
></devtools-button>
|
|
1476
1470
|
<div class="feedback">
|
|
1477
|
-
<
|
|
1471
|
+
<devtools-link class="devtools-link" title=${i18nString(UIStrings.sendFeedback)} href=${
|
|
1478
1472
|
FEEDBACK_URL
|
|
1479
|
-
}
|
|
1473
|
+
} .jslogContext=${'feedback'}>${i18nString(UIStrings.sendFeedback)}</devtools-link>
|
|
1480
1474
|
</div>
|
|
1481
1475
|
<div class="separator"></div>
|
|
1482
1476
|
<devtools-shortcut-dialog
|
|
@@ -211,13 +211,13 @@ export const DEFAULT_VIEW = (input: ViewInput, output: ViewOutput, target: HTMLE
|
|
|
211
211
|
/>
|
|
212
212
|
<label class="row-label" for="selector-attribute">
|
|
213
213
|
<span>${i18nString(UIStrings.selectorAttribute)}</span>
|
|
214
|
-
<
|
|
214
|
+
<devtools-link
|
|
215
215
|
class="link" href="https://g.co/devtools/recorder#selector"
|
|
216
216
|
title=${i18nString(UIStrings.learnMore)}
|
|
217
|
-
|
|
217
|
+
.jslogContext=${'recorder-selector-help'}>
|
|
218
218
|
<devtools-icon name="help">
|
|
219
219
|
</devtools-icon>
|
|
220
|
-
</
|
|
220
|
+
</devtools-link>
|
|
221
221
|
</label>
|
|
222
222
|
<input
|
|
223
223
|
value=${selectorAttribute}
|
|
@@ -232,13 +232,13 @@ export const DEFAULT_VIEW = (input: ViewInput, output: ViewOutput, target: HTMLE
|
|
|
232
232
|
/>
|
|
233
233
|
<label class="row-label">
|
|
234
234
|
<span>${i18nString(UIStrings.selectorTypes)}</span>
|
|
235
|
-
<
|
|
235
|
+
<devtools-link
|
|
236
236
|
class="link" href="https://g.co/devtools/recorder#selector"
|
|
237
237
|
title=${i18nString(UIStrings.learnMore)}
|
|
238
|
-
|
|
238
|
+
.jslogContext=${'recorder-selector-help'}>
|
|
239
239
|
<devtools-icon name="help">
|
|
240
240
|
</devtools-icon>
|
|
241
|
-
</
|
|
241
|
+
</devtools-link>
|
|
242
242
|
</label>
|
|
243
243
|
<div class="checkbox-container">
|
|
244
244
|
${repeat(selectorTypes, item => {
|
|
@@ -177,38 +177,6 @@ const networkConditionPresets = [
|
|
|
177
177
|
SDK.NetworkManager.Fast4GConditions,
|
|
178
178
|
];
|
|
179
179
|
|
|
180
|
-
function converterIdToFlowMetric(
|
|
181
|
-
converterId: string,
|
|
182
|
-
): Host.UserMetrics.RecordingCopiedToClipboard {
|
|
183
|
-
switch (converterId) {
|
|
184
|
-
case Models.ConverterIds.ConverterIds.PUPPETEER:
|
|
185
|
-
case Models.ConverterIds.ConverterIds.PUPPETEER_FIREFOX:
|
|
186
|
-
return Host.UserMetrics.RecordingCopiedToClipboard.COPIED_RECORDING_WITH_PUPPETEER;
|
|
187
|
-
case Models.ConverterIds.ConverterIds.JSON:
|
|
188
|
-
return Host.UserMetrics.RecordingCopiedToClipboard.COPIED_RECORDING_WITH_JSON;
|
|
189
|
-
case Models.ConverterIds.ConverterIds.REPLAY:
|
|
190
|
-
return Host.UserMetrics.RecordingCopiedToClipboard.COPIED_RECORDING_WITH_REPLAY;
|
|
191
|
-
default:
|
|
192
|
-
return Host.UserMetrics.RecordingCopiedToClipboard.COPIED_RECORDING_WITH_EXTENSION;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
function converterIdToStepMetric(
|
|
197
|
-
converterId: string,
|
|
198
|
-
): Host.UserMetrics.RecordingCopiedToClipboard {
|
|
199
|
-
switch (converterId) {
|
|
200
|
-
case Models.ConverterIds.ConverterIds.PUPPETEER:
|
|
201
|
-
case Models.ConverterIds.ConverterIds.PUPPETEER_FIREFOX:
|
|
202
|
-
return Host.UserMetrics.RecordingCopiedToClipboard.COPIED_STEP_WITH_PUPPETEER;
|
|
203
|
-
case Models.ConverterIds.ConverterIds.JSON:
|
|
204
|
-
return Host.UserMetrics.RecordingCopiedToClipboard.COPIED_STEP_WITH_JSON;
|
|
205
|
-
case Models.ConverterIds.ConverterIds.REPLAY:
|
|
206
|
-
return Host.UserMetrics.RecordingCopiedToClipboard.COPIED_STEP_WITH_REPLAY;
|
|
207
|
-
default:
|
|
208
|
-
return Host.UserMetrics.RecordingCopiedToClipboard.COPIED_STEP_WITH_EXTENSION;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
180
|
function renderSettings({
|
|
213
181
|
settings,
|
|
214
182
|
replaySettingsExpanded,
|
|
@@ -1193,8 +1161,6 @@ export class RecordingView extends UI.Widget.Widget {
|
|
|
1193
1161
|
}
|
|
1194
1162
|
|
|
1195
1163
|
Host.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(text);
|
|
1196
|
-
const metric = step ? converterIdToStepMetric(converter.getId()) : converterIdToFlowMetric(converter.getId());
|
|
1197
|
-
Host.userMetrics.recordingCopiedToClipboard(metric);
|
|
1198
1164
|
}
|
|
1199
1165
|
|
|
1200
1166
|
#onCopyStepEvent(event: CopyStepEvent): void {
|
|
@@ -1223,10 +1189,6 @@ export class RecordingView extends UI.Widget.Widget {
|
|
|
1223
1189
|
|
|
1224
1190
|
showCodeToggle = (): void => {
|
|
1225
1191
|
this.#showCodeView = !this.#showCodeView;
|
|
1226
|
-
Host.userMetrics.recordingCodeToggled(
|
|
1227
|
-
this.#showCodeView ? Host.UserMetrics.RecordingCodeToggled.CODE_SHOWN :
|
|
1228
|
-
Host.UserMetrics.RecordingCodeToggled.CODE_HIDDEN,
|
|
1229
|
-
);
|
|
1230
1192
|
void this.#convertToCode();
|
|
1231
1193
|
};
|
|
1232
1194
|
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
// Copyright 2023 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
4
|
|
|
6
|
-
import * as Host from '../../../core/host/host.js';
|
|
7
5
|
import * as i18n from '../../../core/i18n/i18n.js';
|
|
8
6
|
import * as Platform from '../../../core/platform/platform.js';
|
|
9
7
|
import * as Buttons from '../../../ui/components/buttons/buttons.js';
|
|
@@ -66,13 +64,6 @@ const UIStrings = {
|
|
|
66
64
|
extensionGroup: 'Extensions',
|
|
67
65
|
} as const;
|
|
68
66
|
|
|
69
|
-
const replaySpeedToMetricSpeedMap = {
|
|
70
|
-
[PlayRecordingSpeed.NORMAL]: Host.UserMetrics.RecordingReplaySpeed.NORMAL,
|
|
71
|
-
[PlayRecordingSpeed.SLOW]: Host.UserMetrics.RecordingReplaySpeed.SLOW,
|
|
72
|
-
[PlayRecordingSpeed.VERY_SLOW]: Host.UserMetrics.RecordingReplaySpeed.VERY_SLOW,
|
|
73
|
-
[PlayRecordingSpeed.EXTREMELY_SLOW]: Host.UserMetrics.RecordingReplaySpeed.EXTREMELY_SLOW,
|
|
74
|
-
} as const;
|
|
75
|
-
|
|
76
67
|
const str_ = i18n.i18n.registerUIStrings(
|
|
77
68
|
'panels/recorder/components/ReplaySection.ts',
|
|
78
69
|
UIStrings,
|
|
@@ -185,7 +176,6 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: ViewOutput, target: HTML
|
|
|
185
176
|
</devtools-button>
|
|
186
177
|
</div>`,
|
|
187
178
|
target,
|
|
188
|
-
{ host: target },
|
|
189
179
|
);
|
|
190
180
|
// clang-format on
|
|
191
181
|
};
|
|
@@ -334,10 +324,6 @@ export class ReplaySection extends UI.Widget.Widget {
|
|
|
334
324
|
this.#settings.speed = speed;
|
|
335
325
|
this.#settings.replayExtension = '';
|
|
336
326
|
}
|
|
337
|
-
|
|
338
|
-
if (replaySpeedToMetricSpeedMap[speed]) {
|
|
339
|
-
Host.userMetrics.recordingReplaySpeed(replaySpeedToMetricSpeedMap[speed]);
|
|
340
|
-
}
|
|
341
327
|
this.performUpdate();
|
|
342
328
|
}
|
|
343
329
|
}
|