chrome-devtools-frontend 1.0.1571573 → 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/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 +0 -30
- package/front_end/core/root/ExperimentNames.ts +30 -0
- package/front_end/core/root/Runtime.ts +12 -27
- 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 +1 -1
- package/front_end/core/sdk/SourceMap.ts +1 -1
- package/front_end/devtools_compatibility.js +0 -6
- package/front_end/entrypoints/main/MainImpl.ts +34 -25
- package/front_end/entrypoints/main/main-meta.ts +1 -1
- package/front_end/generated/SupportedCSSProperties.js +4 -8
- 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/source_map_scopes/NamesResolver.ts +1 -1
- package/front_end/models/trace/EventsSerializer.ts +5 -1
- 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/aiAssistancePanel.css +0 -16
- package/front_end/panels/ai_assistance/ai_assistance.ts +0 -1
- 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 +11 -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 +8 -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/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/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 +7 -54
- package/front_end/panels/elements/ElementsPanel.ts +33 -6
- package/front_end/panels/elements/ElementsTreeOutline.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/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 +2 -7
- package/front_end/panels/network/components/HeaderSectionRow.ts +3 -2
- package/front_end/panels/network/components/RequestHeaderSection.ts +3 -1
- package/front_end/panels/profiler/HeapProfileView.ts +3 -3
- package/front_end/panels/profiler/HeapSnapshotView.ts +1 -1
- 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 +2 -7
- 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 +3 -3
- package/front_end/panels/security/CookieReportView.ts +14 -14
- 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 +8 -10
- 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/FilteredUISourceCodeListProvider.ts +1 -1
- package/front_end/panels/sources/NavigatorView.ts +4 -4
- package/front_end/panels/sources/SourcesPanel.ts +5 -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 +3 -3
- package/front_end/panels/timeline/TimelinePanel.ts +6 -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/third_party/chromium/README.chromium +1 -1
- package/front_end/ui/components/buttons/button.css +4 -0
- package/front_end/ui/components/panel_feedback/PreviewToggle.ts +5 -5
- 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/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 +4 -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 +2 -0
- 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
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 -960 960 960" width="20px" fill="#e3e3e3"><path d="M449-449Zm97-87Zm-97 87Zm97-87Zm-97 87Zm97-87ZM768-90 90-768l51-51 678 678-51 51Zm-287.52-54Q339-144 241.5-185.85T144-288v-384q0-23 16-44.5t45-38.5l226 226q-65-4-120.5-18T216-583v109q44 32 111.5 49T480-408q17.96 0 35.02-.5 17.06-.5 34.12-2.5L612-348q-31 6-64.07 9-33.07 3-67.93 3-80 0-148.5-14.5T216-391v103q10 26 93.5 49T480-216q62 0 123-12t99-29l53 52q-45.91 28.22-117.59 44.61Q565.74-144 480.48-144ZM807-255l-63-63v-73q-11 6-23.94 11.33Q707.12-374.33 693-369l-57-57q32-8 59-20t49-28v-109q-40 22-94.5 35T532-530l-70-70q23 1 65-2.5t85.5-12q43.5-8.5 81-22.5t50.5-35q-18-28-98.5-50T480-744q-37 0-74 4.5T335-727l-59-59q43-14 94.5-22t109.5-8q139.07 0 237.53 42Q816-732 816-672v384q0 8-2 16.5t-7 16.5Z"/></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 -960 960 960" width="20px" fill="#e3e3e3"><path d="M720-240q25 0 42.5-17.5T780-300q0-25-17.5-42.5T720-360q-25 0-42.5 17.5T660-300q0 25 17.5 42.5T720-240Zm0 120q32 0 59-16t43-42q-23-13-48.5-19.5T720-204q-28 0-53.5 7T618-178q16 26 43 42t59 16ZM360-624h240v-96q0-50-35-85t-85-35q-50 0-85 35t-35 85v96ZM499-96H264q-29.7 0-50.85-21.15Q192-138.3 192-168v-384q0-29.7 21.15-50.85Q234.3-624 264-624h24v-96q0-79.68 56.23-135.84 56.22-56.16 136-56.16Q560-912 616-855.84q56 56.16 56 135.84v96h24q29.7 0 50.85 21.15Q768-581.7 768-552v53q-17.05-3-35.53-4.5Q714-505 696-503v-49H264v384h202q6 20 14 38t19 34Zm220.77 48Q640-48 584-104.23q-56-56.22-56-136Q528-320 584.23-376q56.22-56 136-56Q800-432 856-375.77q56 56.22 56 136Q912-160 855.77-104q-56.22 56-136 56ZM264-552v384-384Z"/></svg>
|
|
@@ -9,7 +9,16 @@ export const debounce = function(func: (...args: any[]) => void, delay: number):
|
|
|
9
9
|
let timer: ReturnType<typeof setTimeout>;
|
|
10
10
|
const debounced = (...args: any[]): void => {
|
|
11
11
|
clearTimeout(timer);
|
|
12
|
-
timer = setTimeout(() => func(...args), delay);
|
|
12
|
+
timer = setTimeout(() => func(...args), testDebounceOverride ? 0 : delay);
|
|
13
13
|
};
|
|
14
14
|
return debounced;
|
|
15
15
|
};
|
|
16
|
+
|
|
17
|
+
let testDebounceOverride = false;
|
|
18
|
+
export function enableTestOverride(): void {
|
|
19
|
+
testDebounceOverride = true;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function disableTestOverride(): void {
|
|
23
|
+
testDebounceOverride = false;
|
|
24
|
+
}
|
|
@@ -277,7 +277,7 @@ export interface SettingRegistration {
|
|
|
277
277
|
* The name of the experiment a setting is associated with. Enabling and disabling the declared
|
|
278
278
|
* experiment will enable and disable the setting respectively.
|
|
279
279
|
*/
|
|
280
|
-
experiment?: Root.
|
|
280
|
+
experiment?: Root.ExperimentNames.ExperimentName;
|
|
281
281
|
/**
|
|
282
282
|
* A condition is a function that will make the setting available if it
|
|
283
283
|
* returns true, and not available, otherwise. Make sure that objects you
|
|
@@ -531,6 +531,14 @@ export class AidaClient {
|
|
|
531
531
|
if (!InspectorFrontendHostInstance.doAidaConversation) {
|
|
532
532
|
throw new Error('doAidaConversation is not available');
|
|
533
533
|
}
|
|
534
|
+
|
|
535
|
+
// Disable logging for now.
|
|
536
|
+
// For context, see b/454563259#comment35.
|
|
537
|
+
// We should be able to remove this ~end of April.
|
|
538
|
+
if (Root.Runtime.hostConfig.devToolsGeminiRebranding?.enabled) {
|
|
539
|
+
request.metadata.disable_user_content_logging = true;
|
|
540
|
+
}
|
|
541
|
+
|
|
534
542
|
const stream = (() => {
|
|
535
543
|
let {promise, resolve, reject} = Promise.withResolvers<string|null>();
|
|
536
544
|
options?.signal?.addEventListener('abort', () => {
|
|
@@ -536,13 +536,7 @@ export const enum EnumeratedHistogram {
|
|
|
536
536
|
DeveloperResourceScheme = 'DevTools.DeveloperResourceScheme',
|
|
537
537
|
Language = 'DevTools.Language',
|
|
538
538
|
SyncSetting = 'DevTools.SyncSetting',
|
|
539
|
-
RecordingAssertion = 'DevTools.RecordingAssertion',
|
|
540
|
-
RecordingCodeToggled = 'DevTools.RecordingCodeToggled',
|
|
541
|
-
RecordingCopiedToClipboard = 'DevTools.RecordingCopiedToClipboard',
|
|
542
|
-
RecordingEdited = 'DevTools.RecordingEdited',
|
|
543
|
-
RecordingExported = 'DevTools.RecordingExported',
|
|
544
539
|
RecordingReplayFinished = 'DevTools.RecordingReplayFinished',
|
|
545
|
-
RecordingReplaySpeed = 'DevTools.RecordingReplaySpeed',
|
|
546
540
|
RecordingReplayStarted = 'DevTools.RecordingReplayStarted',
|
|
547
541
|
RecordingToggled = 'DevTools.RecordingToggled',
|
|
548
542
|
SourcesPanelFileDebugged = 'DevTools.SourcesPanelFileDebugged',
|
|
@@ -209,11 +209,6 @@ export class UserMetrics {
|
|
|
209
209
|
});
|
|
210
210
|
}
|
|
211
211
|
|
|
212
|
-
recordingAssertion(value: RecordingAssertion): void {
|
|
213
|
-
InspectorFrontendHostInstance.recordEnumeratedHistogram(
|
|
214
|
-
EnumeratedHistogram.RecordingAssertion, value, RecordingAssertion.MAX_VALUE);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
212
|
recordingToggled(value: RecordingToggled): void {
|
|
218
213
|
InspectorFrontendHostInstance.recordEnumeratedHistogram(
|
|
219
214
|
EnumeratedHistogram.RecordingToggled, value, RecordingToggled.MAX_VALUE);
|
|
@@ -224,36 +219,11 @@ export class UserMetrics {
|
|
|
224
219
|
EnumeratedHistogram.RecordingReplayFinished, value, RecordingReplayFinished.MAX_VALUE);
|
|
225
220
|
}
|
|
226
221
|
|
|
227
|
-
recordingReplaySpeed(value: RecordingReplaySpeed): void {
|
|
228
|
-
InspectorFrontendHostInstance.recordEnumeratedHistogram(
|
|
229
|
-
EnumeratedHistogram.RecordingReplaySpeed, value, RecordingReplaySpeed.MAX_VALUE);
|
|
230
|
-
}
|
|
231
|
-
|
|
232
222
|
recordingReplayStarted(value: RecordingReplayStarted): void {
|
|
233
223
|
InspectorFrontendHostInstance.recordEnumeratedHistogram(
|
|
234
224
|
EnumeratedHistogram.RecordingReplayStarted, value, RecordingReplayStarted.MAX_VALUE);
|
|
235
225
|
}
|
|
236
226
|
|
|
237
|
-
recordingEdited(value: RecordingEdited): void {
|
|
238
|
-
InspectorFrontendHostInstance.recordEnumeratedHistogram(
|
|
239
|
-
EnumeratedHistogram.RecordingEdited, value, RecordingEdited.MAX_VALUE);
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
recordingExported(value: RecordingExported): void {
|
|
243
|
-
InspectorFrontendHostInstance.recordEnumeratedHistogram(
|
|
244
|
-
EnumeratedHistogram.RecordingExported, value, RecordingExported.MAX_VALUE);
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
recordingCodeToggled(value: RecordingCodeToggled): void {
|
|
248
|
-
InspectorFrontendHostInstance.recordEnumeratedHistogram(
|
|
249
|
-
EnumeratedHistogram.RecordingCodeToggled, value, RecordingCodeToggled.MAX_VALUE);
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
recordingCopiedToClipboard(value: RecordingCopiedToClipboard): void {
|
|
253
|
-
InspectorFrontendHostInstance.recordEnumeratedHistogram(
|
|
254
|
-
EnumeratedHistogram.RecordingCopiedToClipboard, value, RecordingCopiedToClipboard.MAX_VALUE);
|
|
255
|
-
}
|
|
256
|
-
|
|
257
227
|
lighthouseModeRun(type: LighthouseModeRun): void {
|
|
258
228
|
InspectorFrontendHostInstance.recordEnumeratedHistogram(
|
|
259
229
|
EnumeratedHistogram.LighthouseModeRun, type, LighthouseModeRun.MAX_VALUE);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// Copyright 2026 The Chromium Authors
|
|
2
|
+
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
+
// found in the LICENSE file.
|
|
4
|
+
|
|
5
|
+
export enum ExperimentName {
|
|
6
|
+
ALL = '*',
|
|
7
|
+
CAPTURE_NODE_CREATION_STACKS = 'capture-node-creation-stacks',
|
|
8
|
+
LIVE_HEAP_PROFILE = 'live-heap-profile',
|
|
9
|
+
PROTOCOL_MONITOR = 'protocol-monitor',
|
|
10
|
+
SAMPLING_HEAP_PROFILER_TIMELINE = 'sampling-heap-profiler-timeline',
|
|
11
|
+
SHOW_OPTION_TO_EXPOSE_INTERNALS_IN_HEAP_SNAPSHOT = 'show-option-to-expose-internals-in-heap-snapshot',
|
|
12
|
+
TIMELINE_INVALIDATION_TRACKING = 'timeline-invalidation-tracking',
|
|
13
|
+
TIMELINE_SHOW_ALL_EVENTS = 'timeline-show-all-events',
|
|
14
|
+
TIMELINE_V8_RUNTIME_CALL_STATS = 'timeline-v8-runtime-call-stats',
|
|
15
|
+
APCA = 'apca',
|
|
16
|
+
FONT_EDITOR = 'font-editor',
|
|
17
|
+
FULL_ACCESSIBILITY_TREE = 'full-accessibility-tree',
|
|
18
|
+
CONTRAST_ISSUES = 'contrast-issues',
|
|
19
|
+
EXPERIMENTAL_COOKIE_FEATURES = 'experimental-cookie-features',
|
|
20
|
+
INSTRUMENTATION_BREAKPOINTS = 'instrumentation-breakpoints',
|
|
21
|
+
AUTHORED_DEPLOYED_GROUPING = 'authored-deployed-grouping',
|
|
22
|
+
JUST_MY_CODE = 'just-my-code',
|
|
23
|
+
USE_SOURCE_MAP_SCOPES = 'use-source-map-scopes',
|
|
24
|
+
TIMELINE_SHOW_POST_MESSAGE_EVENTS = 'timeline-show-postmessage-events',
|
|
25
|
+
TIMELINE_DEBUG_MODE = 'timeline-debug-mode',
|
|
26
|
+
// Adding or removing an entry from this enum?
|
|
27
|
+
// You will need to update:
|
|
28
|
+
// 1. DevToolsExperiments enum in host/UserMetrics.ts
|
|
29
|
+
// 2. Maybe REGISTERED_EXPERIMENTS in EnvironmentHelpers.ts (to create this experiment in the test env)
|
|
30
|
+
}
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
import * as Platform from '../platform/platform.js';
|
|
6
6
|
|
|
7
|
+
import type {ExperimentName} from './ExperimentNames.js';
|
|
8
|
+
|
|
7
9
|
let runtimePlatform = '';
|
|
8
10
|
|
|
9
11
|
let runtimeInstance: Runtime|undefined;
|
|
@@ -333,33 +335,6 @@ export class Experiment {
|
|
|
333
335
|
/** This must be constructed after the query parameters have been parsed. **/
|
|
334
336
|
export const experiments = new ExperimentsSupport();
|
|
335
337
|
|
|
336
|
-
export enum ExperimentName {
|
|
337
|
-
ALL = '*',
|
|
338
|
-
CAPTURE_NODE_CREATION_STACKS = 'capture-node-creation-stacks',
|
|
339
|
-
LIVE_HEAP_PROFILE = 'live-heap-profile',
|
|
340
|
-
PROTOCOL_MONITOR = 'protocol-monitor',
|
|
341
|
-
SAMPLING_HEAP_PROFILER_TIMELINE = 'sampling-heap-profiler-timeline',
|
|
342
|
-
SHOW_OPTION_TO_EXPOSE_INTERNALS_IN_HEAP_SNAPSHOT = 'show-option-to-expose-internals-in-heap-snapshot',
|
|
343
|
-
TIMELINE_INVALIDATION_TRACKING = 'timeline-invalidation-tracking',
|
|
344
|
-
TIMELINE_SHOW_ALL_EVENTS = 'timeline-show-all-events',
|
|
345
|
-
TIMELINE_V8_RUNTIME_CALL_STATS = 'timeline-v8-runtime-call-stats',
|
|
346
|
-
APCA = 'apca',
|
|
347
|
-
FONT_EDITOR = 'font-editor',
|
|
348
|
-
FULL_ACCESSIBILITY_TREE = 'full-accessibility-tree',
|
|
349
|
-
CONTRAST_ISSUES = 'contrast-issues',
|
|
350
|
-
EXPERIMENTAL_COOKIE_FEATURES = 'experimental-cookie-features',
|
|
351
|
-
INSTRUMENTATION_BREAKPOINTS = 'instrumentation-breakpoints',
|
|
352
|
-
AUTHORED_DEPLOYED_GROUPING = 'authored-deployed-grouping',
|
|
353
|
-
JUST_MY_CODE = 'just-my-code',
|
|
354
|
-
USE_SOURCE_MAP_SCOPES = 'use-source-map-scopes',
|
|
355
|
-
TIMELINE_SHOW_POST_MESSAGE_EVENTS = 'timeline-show-postmessage-events',
|
|
356
|
-
TIMELINE_DEBUG_MODE = 'timeline-debug-mode',
|
|
357
|
-
// Adding or removing an entry from this enum?
|
|
358
|
-
// You will need to update:
|
|
359
|
-
// 1. DevToolsExperiments enum in host/UserMetrics.ts
|
|
360
|
-
// 2. Maybe REGISTERED_EXPERIMENTS in EnvironmentHelpers.ts (to create this experiment in the test env)
|
|
361
|
-
}
|
|
362
|
-
|
|
363
338
|
export enum GenAiEnterprisePolicyValue {
|
|
364
339
|
ALLOW = 0,
|
|
365
340
|
ALLOW_WITHOUT_LOGGING = 1,
|
|
@@ -444,6 +419,10 @@ export interface HostConfigGreenDevUi {
|
|
|
444
419
|
enabled: boolean;
|
|
445
420
|
}
|
|
446
421
|
|
|
422
|
+
export interface HostConfigGeminiRebranding {
|
|
423
|
+
enabled: boolean;
|
|
424
|
+
}
|
|
425
|
+
|
|
447
426
|
export interface HostConfigVeLogging {
|
|
448
427
|
enabled: boolean;
|
|
449
428
|
testing: boolean;
|
|
@@ -476,6 +455,10 @@ export interface HostConfigThirdPartyCookieControls {
|
|
|
476
455
|
managedBlockThirdPartyCookies: string|boolean;
|
|
477
456
|
}
|
|
478
457
|
|
|
458
|
+
export interface HostConfigAiAssistanceV2 {
|
|
459
|
+
enabled: boolean;
|
|
460
|
+
}
|
|
461
|
+
|
|
479
462
|
interface AiGeneratedTimelineLabels {
|
|
480
463
|
enabled: boolean;
|
|
481
464
|
}
|
|
@@ -564,6 +547,7 @@ export type HostConfig = Platform.TypeScriptUtilities.RecursivePartial<{
|
|
|
564
547
|
devToolsAiAssistanceNetworkAgent: HostConfigAiAssistanceNetworkAgent,
|
|
565
548
|
devToolsAiAssistanceFileAgent: HostConfigAiAssistanceFileAgent,
|
|
566
549
|
devToolsAiAssistancePerformanceAgent: HostConfigAiAssistancePerformanceAgent,
|
|
550
|
+
devToolsAiAssistanceV2: HostConfigAiAssistanceV2,
|
|
567
551
|
devToolsAiCodeCompletion: HostConfigAiCodeCompletion,
|
|
568
552
|
devToolsAiCodeGeneration: HostConfigAiCodeGeneration,
|
|
569
553
|
devToolsVeLogging: HostConfigVeLogging,
|
|
@@ -590,6 +574,7 @@ export type HostConfig = Platform.TypeScriptUtilities.RecursivePartial<{
|
|
|
590
574
|
devToolsEnableDurableMessages: DevToolsEnableDurableMessages,
|
|
591
575
|
devToolsAiAssistanceContextSelectionAgent: HostConfigAiAssistanceContextSelectionAgent,
|
|
592
576
|
devToolsConsoleInsightsTeasers: ConsoleInsightsTeasers,
|
|
577
|
+
devToolsGeminiRebranding: HostConfigGeminiRebranding,
|
|
593
578
|
}>;
|
|
594
579
|
|
|
595
580
|
/**
|
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
5
|
import * as DevToolsContext from './DevToolsContext.js';
|
|
6
|
+
import * as ExperimentNames from './ExperimentNames.js';
|
|
6
7
|
import * as Runtime from './Runtime.js';
|
|
7
8
|
|
|
8
9
|
export {
|
|
9
10
|
DevToolsContext,
|
|
11
|
+
ExperimentNames,
|
|
10
12
|
Runtime,
|
|
11
13
|
};
|
|
@@ -379,6 +379,13 @@ export class CSSModel extends SDKModel<EventTypes> {
|
|
|
379
379
|
return await this.#styleLoader.computedStylePromise(nodeId);
|
|
380
380
|
}
|
|
381
381
|
|
|
382
|
+
async getComputedStyleExtraFields(nodeId: Protocol.DOM.NodeId): Promise<Protocol.CSS.ComputedStyleExtraFields> {
|
|
383
|
+
if (!this.isEnabled()) {
|
|
384
|
+
await this.enable();
|
|
385
|
+
}
|
|
386
|
+
return await this.#styleLoader.extraFieldsPromise(nodeId);
|
|
387
|
+
}
|
|
388
|
+
|
|
382
389
|
async getLayoutPropertiesFromComputedStyle(nodeId: Protocol.DOM.NodeId): Promise<LayoutProperties|null> {
|
|
383
390
|
const styles = await this.getComputedStyle(nodeId);
|
|
384
391
|
if (!styles) {
|
|
@@ -1051,32 +1058,48 @@ class CSSDispatcher implements ProtocolProxyApi.CSSDispatcher {
|
|
|
1051
1058
|
}
|
|
1052
1059
|
}
|
|
1053
1060
|
|
|
1061
|
+
interface ComputedStyleWithExtraFields {
|
|
1062
|
+
style: Map<string, string>|null;
|
|
1063
|
+
extraFields: Protocol.CSS.ComputedStyleExtraFields;
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1054
1066
|
class ComputedStyleLoader {
|
|
1055
1067
|
#cssModel: CSSModel;
|
|
1056
|
-
#nodeIdToPromise = new Map<number, Promise<
|
|
1068
|
+
#nodeIdToPromise = new Map<number, Promise<ComputedStyleWithExtraFields>>();
|
|
1057
1069
|
constructor(cssModel: CSSModel) {
|
|
1058
1070
|
this.#cssModel = cssModel;
|
|
1059
1071
|
}
|
|
1060
1072
|
|
|
1061
|
-
|
|
1073
|
+
#getResponsePromise(nodeId: Protocol.DOM.NodeId): Promise<ComputedStyleWithExtraFields> {
|
|
1062
1074
|
let promise = this.#nodeIdToPromise.get(nodeId);
|
|
1063
1075
|
if (promise) {
|
|
1064
1076
|
return promise;
|
|
1065
1077
|
}
|
|
1066
|
-
promise =
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1078
|
+
promise =
|
|
1079
|
+
this.#cssModel.getAgent().invoke_getComputedStyleForNode({nodeId}).then(({computedStyle, extraFields}) => {
|
|
1080
|
+
this.#nodeIdToPromise.delete(nodeId);
|
|
1081
|
+
if (!computedStyle?.length) {
|
|
1082
|
+
return {style: null, extraFields};
|
|
1083
|
+
}
|
|
1084
|
+
const result = new Map<string, string>();
|
|
1085
|
+
for (const property of computedStyle) {
|
|
1086
|
+
result.set(property.name, property.value);
|
|
1087
|
+
}
|
|
1088
|
+
return {style: result, extraFields};
|
|
1089
|
+
});
|
|
1077
1090
|
this.#nodeIdToPromise.set(nodeId, promise);
|
|
1078
1091
|
return promise;
|
|
1079
1092
|
}
|
|
1093
|
+
|
|
1094
|
+
async computedStylePromise(nodeId: Protocol.DOM.NodeId): Promise<Map<string, string>|null> {
|
|
1095
|
+
const computedStyleWithExtraFields = await this.#getResponsePromise(nodeId);
|
|
1096
|
+
return computedStyleWithExtraFields.style;
|
|
1097
|
+
}
|
|
1098
|
+
|
|
1099
|
+
async extraFieldsPromise(nodeId: Protocol.DOM.NodeId): Promise<Protocol.CSS.ComputedStyleExtraFields> {
|
|
1100
|
+
const computedStyleWithExtraFields = await this.#getResponsePromise(nodeId);
|
|
1101
|
+
return computedStyleWithExtraFields.extraFields;
|
|
1102
|
+
}
|
|
1080
1103
|
}
|
|
1081
1104
|
|
|
1082
1105
|
export class InlineStyleResult {
|
|
@@ -115,7 +115,7 @@ export class CSSProperty extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
|
|
|
115
115
|
const matchers = matchedStyles.propertyMatchers(this.ownerStyle, computedStyles);
|
|
116
116
|
|
|
117
117
|
matchers.push(new CSSWideKeywordMatcher(this, matchedStyles));
|
|
118
|
-
if (Root.Runtime.experiments.isEnabled(Root.
|
|
118
|
+
if (Root.Runtime.experiments.isEnabled(Root.ExperimentNames.ExperimentName.FONT_EDITOR)) {
|
|
119
119
|
matchers.push(new FontMatcher());
|
|
120
120
|
}
|
|
121
121
|
return matchers;
|
|
@@ -983,6 +983,9 @@ export const enum ArithmeticFunction {
|
|
|
983
983
|
CALC = 'calc',
|
|
984
984
|
SIBLING_COUNT = 'sibling-count',
|
|
985
985
|
SIBLING_INDEX = 'sibling-index',
|
|
986
|
+
ROUND = 'round',
|
|
987
|
+
MOD = 'mod',
|
|
988
|
+
REM = 'rem',
|
|
986
989
|
}
|
|
987
990
|
type MathFunction = SelectFunction|ArithmeticFunction;
|
|
988
991
|
|
|
@@ -1000,6 +1003,9 @@ export class MathFunctionMatch extends BaseFunctionMatch<MathFunction> {
|
|
|
1000
1003
|
case ArithmeticFunction.CALC:
|
|
1001
1004
|
case ArithmeticFunction.SIBLING_COUNT:
|
|
1002
1005
|
case ArithmeticFunction.SIBLING_INDEX:
|
|
1006
|
+
case ArithmeticFunction.ROUND:
|
|
1007
|
+
case ArithmeticFunction.MOD:
|
|
1008
|
+
case ArithmeticFunction.REM:
|
|
1003
1009
|
return true;
|
|
1004
1010
|
}
|
|
1005
1011
|
// This assignment catches missed values in the switch above.
|
|
@@ -1021,6 +1027,9 @@ export class MathFunctionMatcher extends matcherBase(MathFunctionMatch) {
|
|
|
1021
1027
|
case ArithmeticFunction.CALC:
|
|
1022
1028
|
case ArithmeticFunction.SIBLING_COUNT:
|
|
1023
1029
|
case ArithmeticFunction.SIBLING_INDEX:
|
|
1030
|
+
case ArithmeticFunction.ROUND:
|
|
1031
|
+
case ArithmeticFunction.MOD:
|
|
1032
|
+
case ArithmeticFunction.REM:
|
|
1024
1033
|
return maybeFunc;
|
|
1025
1034
|
}
|
|
1026
1035
|
// This assignment catches missed values in the switch above.
|
|
@@ -99,7 +99,8 @@ export class CookieModel extends SDKModel<EventTypes> {
|
|
|
99
99
|
if (cookie.expires()) {
|
|
100
100
|
expires = Math.floor(Date.parse(`${cookie.expires()}`) / 1000);
|
|
101
101
|
}
|
|
102
|
-
const enabled =
|
|
102
|
+
const enabled =
|
|
103
|
+
Root.Runtime.experiments.isEnabled(Root.ExperimentNames.ExperimentName.EXPERIMENTAL_COOKIE_FEATURES);
|
|
103
104
|
const preserveUnset = (scheme: Protocol.Network.CookieSourceScheme): Protocol.Network.CookieSourceScheme.Unset|
|
|
104
105
|
undefined => scheme === Protocol.Network.CookieSourceScheme.Unset ? scheme : undefined;
|
|
105
106
|
const protocolCookie = {
|
|
@@ -1319,7 +1319,7 @@ export class DOMModel extends SDKModel<EventTypes> {
|
|
|
1319
1319
|
void this.agent.invoke_enable({});
|
|
1320
1320
|
}
|
|
1321
1321
|
|
|
1322
|
-
if (Root.Runtime.experiments.isEnabled(Root.
|
|
1322
|
+
if (Root.Runtime.experiments.isEnabled(Root.ExperimentNames.ExperimentName.CAPTURE_NODE_CREATION_STACKS)) {
|
|
1323
1323
|
void this.agent.invoke_setNodeStackTracesEnabled({enable: true});
|
|
1324
1324
|
}
|
|
1325
1325
|
}
|
|
@@ -267,7 +267,7 @@ export class DebuggerModel extends SDKModel<EventTypes> {
|
|
|
267
267
|
const maxScriptsCacheSize = isRemoteFrontend ? 10e6 : 100e6;
|
|
268
268
|
const enablePromise = this.agent.invoke_enable({maxScriptsCacheSize});
|
|
269
269
|
let instrumentationPromise: Promise<Protocol.Debugger.SetInstrumentationBreakpointResponse>|undefined;
|
|
270
|
-
if (Root.Runtime.experiments.isEnabled(Root.
|
|
270
|
+
if (Root.Runtime.experiments.isEnabled(Root.ExperimentNames.ExperimentName.INSTRUMENTATION_BREAKPOINTS)) {
|
|
271
271
|
instrumentationPromise = this.agent.invoke_setInstrumentationBreakpoint({
|
|
272
272
|
instrumentation: Protocol.Debugger.SetInstrumentationBreakpointRequestInstrumentation.BeforeScriptExecution,
|
|
273
273
|
});
|
|
@@ -534,7 +534,7 @@ export class OverlayModel extends SDKModel<EventTypes> implements ProtocolProxyA
|
|
|
534
534
|
gridHighlightConfig: {},
|
|
535
535
|
flexContainerHighlightConfig: {},
|
|
536
536
|
flexItemHighlightConfig: {},
|
|
537
|
-
contrastAlgorithm: Root.Runtime.experiments.isEnabled(Root.
|
|
537
|
+
contrastAlgorithm: Root.Runtime.experiments.isEnabled(Root.ExperimentNames.ExperimentName.APCA) ?
|
|
538
538
|
Protocol.Overlay.ContrastAlgorithm.Apca :
|
|
539
539
|
Protocol.Overlay.ContrastAlgorithm.Aa,
|
|
540
540
|
};
|
|
@@ -578,7 +578,7 @@ export class SourceMap {
|
|
|
578
578
|
lineNumber, columnNumber, sourceIndex, sourceURL, sourceLineNumber, sourceColumnNumber, names[nameIndex]));
|
|
579
579
|
}
|
|
580
580
|
|
|
581
|
-
if (Root.Runtime.experiments.isEnabled(Root.
|
|
581
|
+
if (Root.Runtime.experiments.isEnabled(Root.ExperimentNames.ExperimentName.USE_SOURCE_MAP_SCOPES)) {
|
|
582
582
|
if (!this.#scopesInfo) {
|
|
583
583
|
this.#scopesInfo = new SourceMapScopesInfo(this, {scopes: [], ranges: []});
|
|
584
584
|
}
|
|
@@ -435,13 +435,7 @@
|
|
|
435
435
|
LighthouseModeRun: 'DevTools.LighthouseModeRun',
|
|
436
436
|
LighthouseCategoryUsed: 'DevTools.LighthouseCategoryUsed',
|
|
437
437
|
PanelShown: 'DevTools.PanelShown',
|
|
438
|
-
RecordingAssertion: 'DevTools.RecordingAssertion',
|
|
439
|
-
RecordingCodeToggled: 'DevTools.RecordingCodeToggled',
|
|
440
|
-
RecordingCopiedToClipboard: 'DevTools.RecordingCopiedToClipboard',
|
|
441
|
-
RecordingEdited: 'DevTools.RecordingEdited',
|
|
442
|
-
RecordingExported: 'DevTools.RecordingExported',
|
|
443
438
|
RecordingReplayFinished: 'DevTools.RecordingReplayFinished',
|
|
444
|
-
RecordingReplaySpeed: 'DevTools.RecordingReplaySpeed',
|
|
445
439
|
RecordingReplayStarted: 'DevTools.RecordingReplayStarted',
|
|
446
440
|
RecordingToggled: 'DevTools.RecordingToggled',
|
|
447
441
|
SourcesPanelFileDebugged: 'DevTools.SourcesPanelFileDebugged',
|
|
@@ -330,77 +330,82 @@ export class MainImpl {
|
|
|
330
330
|
|
|
331
331
|
#initializeExperiments(): void {
|
|
332
332
|
Root.Runtime.experiments.register(
|
|
333
|
-
Root.
|
|
334
|
-
Root.Runtime.experiments.register(Root.
|
|
333
|
+
Root.ExperimentNames.ExperimentName.CAPTURE_NODE_CREATION_STACKS, 'Capture node creation stacks');
|
|
334
|
+
Root.Runtime.experiments.register(Root.ExperimentNames.ExperimentName.LIVE_HEAP_PROFILE, 'Live heap profile');
|
|
335
335
|
Root.Runtime.experiments.register(
|
|
336
|
-
Root.
|
|
336
|
+
Root.ExperimentNames.ExperimentName.PROTOCOL_MONITOR, 'Protocol Monitor',
|
|
337
337
|
'https://developer.chrome.com/blog/new-in-devtools-92/#protocol-monitor');
|
|
338
338
|
Root.Runtime.experiments.register(
|
|
339
|
-
Root.
|
|
339
|
+
Root.ExperimentNames.ExperimentName.SAMPLING_HEAP_PROFILER_TIMELINE, 'Sampling heap profiler timeline');
|
|
340
340
|
Root.Runtime.experiments.register(
|
|
341
|
-
Root.
|
|
341
|
+
Root.ExperimentNames.ExperimentName.SHOW_OPTION_TO_EXPOSE_INTERNALS_IN_HEAP_SNAPSHOT,
|
|
342
342
|
'Show option to expose internals in heap snapshots');
|
|
343
343
|
|
|
344
344
|
// Timeline
|
|
345
345
|
Root.Runtime.experiments.register(
|
|
346
|
-
Root.
|
|
346
|
+
Root.ExperimentNames.ExperimentName.TIMELINE_INVALIDATION_TRACKING, 'Performance panel: invalidation tracking');
|
|
347
347
|
Root.Runtime.experiments.register(
|
|
348
|
-
Root.
|
|
348
|
+
Root.ExperimentNames.ExperimentName.TIMELINE_SHOW_ALL_EVENTS, 'Performance panel: show all events');
|
|
349
349
|
Root.Runtime.experiments.register(
|
|
350
|
-
Root.
|
|
350
|
+
Root.ExperimentNames.ExperimentName.TIMELINE_V8_RUNTIME_CALL_STATS, 'Performance panel: V8 runtime call stats');
|
|
351
351
|
Root.Runtime.experiments.register(
|
|
352
|
-
Root.
|
|
352
|
+
Root.ExperimentNames.ExperimentName.TIMELINE_DEBUG_MODE,
|
|
353
|
+
'Performance panel: debug mode (trace event details, etc)');
|
|
353
354
|
|
|
354
355
|
// Debugging
|
|
355
356
|
Root.Runtime.experiments.register(
|
|
356
|
-
Root.
|
|
357
|
+
Root.ExperimentNames.ExperimentName.INSTRUMENTATION_BREAKPOINTS, 'Instrumentation breakpoints');
|
|
357
358
|
Root.Runtime.experiments.register(
|
|
358
|
-
Root.
|
|
359
|
+
Root.ExperimentNames.ExperimentName.USE_SOURCE_MAP_SCOPES, 'Use scope information from source maps');
|
|
359
360
|
|
|
360
361
|
// Advanced Perceptual Contrast Algorithm.
|
|
361
362
|
Root.Runtime.experiments.register(
|
|
362
|
-
Root.
|
|
363
|
+
Root.ExperimentNames.ExperimentName.APCA,
|
|
363
364
|
'Advanced Perceptual Contrast Algorithm (APCA) replacing previous contrast ratio and AA/AAA guidelines',
|
|
364
365
|
'https://developer.chrome.com/blog/new-in-devtools-89/#apca');
|
|
365
366
|
|
|
366
367
|
// Full Accessibility Tree
|
|
367
368
|
Root.Runtime.experiments.register(
|
|
368
|
-
Root.
|
|
369
|
+
Root.ExperimentNames.ExperimentName.FULL_ACCESSIBILITY_TREE,
|
|
370
|
+
'Full accessibility tree view in the Elements panel',
|
|
369
371
|
'https://developer.chrome.com/blog/new-in-devtools-90/#accessibility-tree',
|
|
370
372
|
'https://g.co/devtools/a11y-tree-feedback');
|
|
371
373
|
|
|
372
374
|
// Font Editor
|
|
373
375
|
Root.Runtime.experiments.register(
|
|
374
|
-
Root.
|
|
376
|
+
Root.ExperimentNames.ExperimentName.FONT_EDITOR, 'New font editor in the Styles tab',
|
|
375
377
|
'https://developer.chrome.com/blog/new-in-devtools-89/#font');
|
|
376
378
|
|
|
377
379
|
// Contrast issues reported via the Issues panel.
|
|
378
380
|
Root.Runtime.experiments.register(
|
|
379
|
-
Root.
|
|
381
|
+
Root.ExperimentNames.ExperimentName.CONTRAST_ISSUES, 'Automatic contrast issue reporting via the Issues panel',
|
|
380
382
|
'https://developer.chrome.com/blog/new-in-devtools-90/#low-contrast');
|
|
381
383
|
|
|
382
384
|
// New cookie features.
|
|
383
385
|
Root.Runtime.experiments.register(
|
|
384
|
-
Root.
|
|
386
|
+
Root.ExperimentNames.ExperimentName.EXPERIMENTAL_COOKIE_FEATURES, 'Experimental cookie features');
|
|
385
387
|
|
|
386
388
|
// Change grouping of sources panel to use Authored/Deployed trees
|
|
387
389
|
Root.Runtime.experiments.register(
|
|
388
|
-
Root.
|
|
389
|
-
'
|
|
390
|
+
Root.ExperimentNames.ExperimentName.AUTHORED_DEPLOYED_GROUPING,
|
|
391
|
+
'Group sources into authored and deployed trees', 'https://goo.gle/authored-deployed',
|
|
392
|
+
'https://goo.gle/authored-deployed-feedback');
|
|
390
393
|
|
|
391
394
|
// Hide third party code (as determined by ignore lists or source maps)
|
|
392
395
|
Root.Runtime.experiments.register(
|
|
393
|
-
Root.
|
|
396
|
+
Root.ExperimentNames.ExperimentName.JUST_MY_CODE, 'Hide ignore-listed code in Sources tree view');
|
|
394
397
|
|
|
395
398
|
Root.Runtime.experiments.register(
|
|
396
|
-
Root.
|
|
399
|
+
Root.ExperimentNames.ExperimentName.TIMELINE_SHOW_POST_MESSAGE_EVENTS,
|
|
397
400
|
'Performance panel: show postMessage dispatch and handling flows',
|
|
398
401
|
);
|
|
399
402
|
|
|
400
403
|
Root.Runtime.experiments.enableExperimentsByDefault([
|
|
401
|
-
Root.
|
|
402
|
-
Root.
|
|
403
|
-
...(Root.Runtime.Runtime.queryParam('isChromeForTesting') ?
|
|
404
|
+
Root.ExperimentNames.ExperimentName.FULL_ACCESSIBILITY_TREE,
|
|
405
|
+
Root.ExperimentNames.ExperimentName.USE_SOURCE_MAP_SCOPES,
|
|
406
|
+
...(Root.Runtime.Runtime.queryParam('isChromeForTesting') ?
|
|
407
|
+
[Root.ExperimentNames.ExperimentName.PROTOCOL_MONITOR] :
|
|
408
|
+
[]),
|
|
404
409
|
]);
|
|
405
410
|
|
|
406
411
|
Root.Runtime.experiments.cleanUpStaleExperiments();
|
|
@@ -413,7 +418,7 @@ export class MainImpl {
|
|
|
413
418
|
if (Host.InspectorFrontendHost.isUnderTest()) {
|
|
414
419
|
const testParam = Root.Runtime.Runtime.queryParam('test');
|
|
415
420
|
if (testParam?.includes('live-line-level-heap-profile.js')) {
|
|
416
|
-
Root.Runtime.experiments.enableForTest(Root.
|
|
421
|
+
Root.Runtime.experiments.enableForTest(Root.ExperimentNames.ExperimentName.LIVE_HEAP_PROFILE);
|
|
417
422
|
}
|
|
418
423
|
}
|
|
419
424
|
|
|
@@ -576,6 +581,10 @@ export class MainImpl {
|
|
|
576
581
|
AiAssistanceModel.ConversationHandler.ConversationHandlerEvents.EXTERNAL_CONVERSATION_STARTED,
|
|
577
582
|
event => void VisualLogging.logFunctionCall(`start-conversation-${event.data}`, 'external'));
|
|
578
583
|
|
|
584
|
+
if (Root.Runtime.hostConfig.devToolsGeminiRebranding?.enabled) {
|
|
585
|
+
await PanelCommon.GeminiRebrandPromoDialog.maybeShow();
|
|
586
|
+
}
|
|
587
|
+
|
|
579
588
|
MainImpl.timeEnd('Main._createAppUI');
|
|
580
589
|
|
|
581
590
|
const appProvider = Common.AppProvider.getRegisteredAppProviders()[0];
|
|
@@ -683,7 +692,7 @@ export class MainImpl {
|
|
|
683
692
|
const runnable = await lateInitializationLoader();
|
|
684
693
|
return await runnable.run();
|
|
685
694
|
});
|
|
686
|
-
if (Root.Runtime.experiments.isEnabled(Root.
|
|
695
|
+
if (Root.Runtime.experiments.isEnabled(Root.ExperimentNames.ExperimentName.LIVE_HEAP_PROFILE)) {
|
|
687
696
|
const PerfUI = await import('../../ui/legacy/components/perf_ui/perf_ui.js');
|
|
688
697
|
const setting = 'memory-live-heap-profile';
|
|
689
698
|
if (Common.Settings.Settings.instance().moduleSetting(setting).get()) {
|
|
@@ -1793,8 +1793,7 @@ export const generatedProperties = [
|
|
|
1793
1793
|
"keywords": [
|
|
1794
1794
|
"all",
|
|
1795
1795
|
"around",
|
|
1796
|
-
"between"
|
|
1797
|
-
"none"
|
|
1796
|
+
"between"
|
|
1798
1797
|
],
|
|
1799
1798
|
"name": "column-rule-visibility-items"
|
|
1800
1799
|
},
|
|
@@ -3825,8 +3824,7 @@ export const generatedProperties = [
|
|
|
3825
3824
|
"keywords": [
|
|
3826
3825
|
"all",
|
|
3827
3826
|
"around",
|
|
3828
|
-
"between"
|
|
3829
|
-
"none"
|
|
3827
|
+
"between"
|
|
3830
3828
|
],
|
|
3831
3829
|
"name": "row-rule-visibility-items"
|
|
3832
3830
|
},
|
|
@@ -5521,8 +5519,7 @@ export const generatedPropertyValues = {
|
|
|
5521
5519
|
"values": [
|
|
5522
5520
|
"all",
|
|
5523
5521
|
"around",
|
|
5524
|
-
"between"
|
|
5525
|
-
"none"
|
|
5522
|
+
"between"
|
|
5526
5523
|
]
|
|
5527
5524
|
},
|
|
5528
5525
|
"column-rule-width": {
|
|
@@ -6645,8 +6642,7 @@ export const generatedPropertyValues = {
|
|
|
6645
6642
|
"values": [
|
|
6646
6643
|
"all",
|
|
6647
6644
|
"around",
|
|
6648
|
-
"between"
|
|
6649
|
-
"none"
|
|
6645
|
+
"between"
|
|
6650
6646
|
]
|
|
6651
6647
|
},
|
|
6652
6648
|
"row-rule-width": {
|