chrome-devtools-frontend 1.0.1581449 → 1.0.1582745
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/merging-devtools-module.md +144 -0
- package/agents/prompts/ui-widgets.md +351 -0
- package/agents/prompts/verification.md +2 -1
- package/docs/contributing/README.md +5 -6
- package/docs/contributing/changes.md +1 -2
- package/docs/styleguide/ux/README.md +1 -1
- package/front_end/core/sdk/OverlayModel.ts +4 -2
- package/front_end/core/sdk/RemoteObject.ts +7 -1
- package/front_end/core/sdk/StorageKeyManager.ts +6 -1
- package/front_end/core/sdk/Target.ts +4 -2
- package/front_end/entrypoint_template.html +5 -1
- package/front_end/entrypoints/greendev_floaty/FloatyEntrypoint.ts +31 -40
- package/front_end/entrypoints/greendev_floaty/floaty.css +41 -1
- package/front_end/entrypoints/greendev_floaty/floaty.html +8 -1
- package/front_end/entrypoints/greendev_floaty/greendev_floaty.ts +5 -5
- package/front_end/entrypoints/node_app/app/NodeMain.ts +19 -1
- package/front_end/entrypoints/node_app/node_app.ts +34 -0
- package/front_end/generated/InspectorBackendCommands.ts +1 -1
- package/front_end/generated/SupportedCSSProperties.js +2 -0
- package/front_end/generated/protocol.ts +0 -6
- package/front_end/models/ai_assistance/AiConversation.ts +10 -0
- package/front_end/models/ai_assistance/agents/AiAgent.ts +2 -0
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.snapshot.txt +26 -4
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +85 -7
- package/front_end/models/ai_assistance/agents/NetworkAgent.ts +2 -6
- package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +66 -2
- package/front_end/models/computed_style/ComputedStyleModel.ts +26 -0
- package/front_end/models/greendev/Prototypes.ts +1 -10
- package/front_end/models/issues_manager/ConnectionAllowlistIssue.ts +75 -0
- package/front_end/models/issues_manager/CookieIssue.ts +0 -28
- package/front_end/models/issues_manager/FederatedAuthRequestIssue.ts +0 -30
- package/front_end/models/issues_manager/IssuesManager.ts +5 -0
- package/front_end/models/issues_manager/descriptions/connectionAllowlistInvalidAllowlistItemType.md +12 -0
- package/front_end/models/issues_manager/descriptions/connectionAllowlistInvalidHeader.md +12 -0
- package/front_end/models/issues_manager/descriptions/connectionAllowlistInvalidUrlPattern.md +8 -0
- package/front_end/models/issues_manager/descriptions/connectionAllowlistItemNotInnerList.md +12 -0
- package/front_end/models/issues_manager/descriptions/connectionAllowlistMoreThanOneList.md +7 -0
- package/front_end/models/issues_manager/descriptions/connectionAllowlistReportingEndpointNotToken.md +10 -0
- package/front_end/models/issues_manager/issues_manager.ts +2 -0
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +93 -6
- package/front_end/panels/ai_assistance/components/ChatInput.ts +8 -4
- package/front_end/panels/application/ApplicationPanelSidebar.ts +13 -11
- package/front_end/panels/application/DOMStorageModel.ts +1 -1
- package/front_end/panels/application/ResourcesPanel.ts +10 -5
- package/front_end/panels/application/preloading/PreloadingView.ts +8 -1
- package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +4 -1
- package/front_end/panels/application/preloading/components/PreloadingGrid.ts +2 -1
- package/front_end/panels/application/preloading/components/PreloadingString.ts +12 -3
- package/front_end/panels/application/preloading/helper/PreloadingForward.ts +14 -0
- package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +37 -3
- package/front_end/panels/changes/ChangesSidebar.ts +2 -6
- package/front_end/panels/common/AiCodeCompletionTeaser.ts +13 -3
- package/front_end/panels/common/aiCodeCompletionTeaser.css +6 -0
- package/front_end/panels/console/ConsoleSidebar.ts +3 -11
- package/front_end/panels/console_counters/WarningErrorCounter.ts +16 -10
- package/front_end/panels/elements/ComputedStyleWidget.ts +55 -37
- package/front_end/panels/elements/PlatformFontsWidget.ts +23 -10
- package/front_end/panels/greendev/GreenDevPanel.css +42 -1
- package/front_end/panels/greendev/GreenDevPanel.ts +30 -1
- package/front_end/panels/lighthouse/LighthouseStartView.ts +3 -5
- package/front_end/panels/lighthouse/lighthouseStartView.css +6 -0
- package/front_end/panels/network/NetworkLogView.ts +6 -6
- package/front_end/panels/network/RequestInitiatorView.ts +27 -19
- package/front_end/panels/network/RequestTimingView.ts +1 -1
- package/front_end/panels/settings/AISettingsTab.ts +1 -5
- package/front_end/panels/settings/KeybindsSettingsTab.ts +4 -3
- package/front_end/panels/settings/SettingsScreen.ts +0 -51
- package/front_end/panels/sources/OutlineQuickOpen.ts +19 -0
- package/front_end/panels/timeline/AnimationsTrackAppender.ts +4 -1
- package/front_end/panels/timeline/InteractionsTrackAppender.ts +1 -1
- package/front_end/panels/timeline/TimelinePanel.ts +25 -0
- package/front_end/panels/timeline/TimelineUIUtils.ts +13 -16
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/lighthouse/README.chromium +2 -2
- package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +145 -144
- package/front_end/third_party/lighthouse/report/bundle.js +12 -5
- package/front_end/third_party/lighthouse/report-assets/report-generator.mjs +2 -2
- package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +5 -1
- package/front_end/ui/legacy/ListControl.ts +28 -1
- package/front_end/ui/legacy/Toolbar.ts +4 -4
- package/front_end/ui/legacy/Treeoutline.ts +5 -5
- package/front_end/ui/legacy/UIUtils.ts +26 -10
- package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +10 -13
- package/front_end/ui/legacy/components/utils/Linkifier.ts +4 -7
- package/front_end/ui/visual_logging/KnownContextValues.ts +2 -0
- package/inspector_overlay/main.ts +18 -3
- package/inspector_overlay/tool_green_dev_anchors.css +54 -0
- package/inspector_overlay/tool_green_dev_anchors.ts +164 -0
- package/inspector_overlay/tool_persistent.ts +14 -0
- package/package.json +1 -1
- package/docs/contributing/design.md +0 -166
- package/docs/design_guidelines.md +0 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataHttpNotFound.md +0 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataInvalidResponse.md +0 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataNoResponse.md +0 -1
|
@@ -631,16 +631,6 @@ const GREENDEV_VIEW: View = (input, _output, target) => {
|
|
|
631
631
|
${renderPrototypeCheckboxes(input.settings, ['aiAnnotations', 'inDevToolsFloaty', 'copyToGemini'])}
|
|
632
632
|
</div>
|
|
633
633
|
</devtools-card>
|
|
634
|
-
|
|
635
|
-
<devtools-card .heading=${'GreenDev widgets'}>
|
|
636
|
-
<div class="experiments-warning-subsection">
|
|
637
|
-
<devtools-icon .name=${'warning'}></devtools-icon>
|
|
638
|
-
<span>${i18nString(UIStrings.greenDevUnstable)}</span>
|
|
639
|
-
</div>
|
|
640
|
-
<div class="settings-experiments-block greendev-widgets">
|
|
641
|
-
${renderWidgetOptions(input.settings)}
|
|
642
|
-
</div>
|
|
643
|
-
</devtools-card>
|
|
644
634
|
</div>
|
|
645
635
|
`, target);
|
|
646
636
|
// clang-format on
|
|
@@ -649,50 +639,9 @@ const GREENDEV_VIEW: View = (input, _output, target) => {
|
|
|
649
639
|
const GREENDEV_PROTOTYPE_NAMES: Record<keyof GreenDev.GreenDevSettings, string> = {
|
|
650
640
|
inDevToolsFloaty: 'In DevTools context picker',
|
|
651
641
|
aiAnnotations: 'AI auto-annotations',
|
|
652
|
-
inlineWidgets: 'Inline widgets in AI Assistance',
|
|
653
|
-
artifactViewer: 'Widgets in the Artifact viewer',
|
|
654
642
|
copyToGemini: 'Copy changes to AI Prompt'
|
|
655
643
|
};
|
|
656
644
|
|
|
657
|
-
function renderWidgetOptions(settings: GreenDev.GreenDevSettings): TemplateResult {
|
|
658
|
-
function onChange(nowActiveRadio: 'inlineWidgets'|'artifactViewer'|'none') {
|
|
659
|
-
return () => {
|
|
660
|
-
switch (nowActiveRadio) {
|
|
661
|
-
case 'inlineWidgets': {
|
|
662
|
-
settings.artifactViewer.set(false);
|
|
663
|
-
settings.inlineWidgets.set(true);
|
|
664
|
-
break;
|
|
665
|
-
}
|
|
666
|
-
case 'artifactViewer': {
|
|
667
|
-
settings.artifactViewer.set(true);
|
|
668
|
-
settings.inlineWidgets.set(false);
|
|
669
|
-
break;
|
|
670
|
-
}
|
|
671
|
-
case 'none': {
|
|
672
|
-
settings.artifactViewer.set(false);
|
|
673
|
-
settings.inlineWidgets.set(false);
|
|
674
|
-
}
|
|
675
|
-
}
|
|
676
|
-
|
|
677
|
-
UI.InspectorView.InspectorView.instance().displayReloadRequiredWarning(
|
|
678
|
-
i18nString(UIStrings.settingsChangedReloadDevTools));
|
|
679
|
-
};
|
|
680
|
-
}
|
|
681
|
-
// clang-format off
|
|
682
|
-
return html`
|
|
683
|
-
<p class="settings-experiment">
|
|
684
|
-
<label><input type="radio" name="widgets-choice" @change=${onChange('inlineWidgets')}>${GREENDEV_PROTOTYPE_NAMES['inlineWidgets']}</label>
|
|
685
|
-
</p>
|
|
686
|
-
<p class="settings-experiment">
|
|
687
|
-
<label><input type="radio" name="widgets-choice" @change=${onChange('artifactViewer')}>${GREENDEV_PROTOTYPE_NAMES['artifactViewer']}</label>
|
|
688
|
-
</p>
|
|
689
|
-
<p class="settings-experiment">
|
|
690
|
-
<label><input type="radio" name="widgets-choice" @change=${onChange('none')}>None</label>
|
|
691
|
-
</p>
|
|
692
|
-
`;
|
|
693
|
-
// clang-format on
|
|
694
|
-
}
|
|
695
|
-
|
|
696
645
|
function renderPrototypeCheckboxes(
|
|
697
646
|
settings: GreenDev.GreenDevSettings,
|
|
698
647
|
keys: Array<keyof GreenDev.GreenDevSettings>,
|
|
@@ -179,6 +179,25 @@ export function outline(state: CodeMirror.EditorState): OutlineItem[] {
|
|
|
179
179
|
])) {
|
|
180
180
|
let title = state.sliceDoc(cursor.from, cursor.to);
|
|
181
181
|
const {lineNumber, columnNumber} = toLineColumn(cursor.from);
|
|
182
|
+
let hasEquals = false;
|
|
183
|
+
let node: CodeMirror.SyntaxNode|null = cursor.node;
|
|
184
|
+
while (node && node.name !== 'AssignmentExpression' && node.name !== 'VariableDeclaration') {
|
|
185
|
+
let sibling = node.nextSibling;
|
|
186
|
+
while (sibling) {
|
|
187
|
+
if (sibling.name === 'Equals') {
|
|
188
|
+
hasEquals = true;
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
sibling = sibling.nextSibling;
|
|
192
|
+
}
|
|
193
|
+
if (hasEquals) {
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
node = node.parent;
|
|
197
|
+
}
|
|
198
|
+
if (!hasEquals) {
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
182
201
|
while (cursor.name as string !== 'Equals') {
|
|
183
202
|
if (!cursor.next()) {
|
|
184
203
|
return items;
|
|
@@ -48,7 +48,10 @@ export class AnimationsTrackAppender implements TrackAppender {
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
#appendTrackHeaderAtLevel(currentLevel: number, expanded?: boolean): void {
|
|
51
|
-
const style = buildGroupStyle({
|
|
51
|
+
const style = buildGroupStyle({
|
|
52
|
+
useFirstLineForOverview: false,
|
|
53
|
+
collapsible: PerfUI.FlameChart.GroupCollapsibleState.IF_MULTI_ROW,
|
|
54
|
+
});
|
|
52
55
|
const group = buildTrackHeader(
|
|
53
56
|
VisualLoggingTrackName.ANIMATIONS, currentLevel, i18nString(UIStrings.animations), style,
|
|
54
57
|
/* selectable= */ true, expanded);
|
|
@@ -71,7 +71,7 @@ export class InteractionsTrackAppender implements TrackAppender {
|
|
|
71
71
|
#appendTrackHeaderAtLevel(currentLevel: number, expanded?: boolean): void {
|
|
72
72
|
const trackIsCollapsible = this.#parsedTrace.data.UserInteractions.interactionEvents.length > 0;
|
|
73
73
|
const style = buildGroupStyle({
|
|
74
|
-
collapsible: trackIsCollapsible ? PerfUI.FlameChart.GroupCollapsibleState.
|
|
74
|
+
collapsible: trackIsCollapsible ? PerfUI.FlameChart.GroupCollapsibleState.IF_MULTI_ROW :
|
|
75
75
|
PerfUI.FlameChart.GroupCollapsibleState.NEVER,
|
|
76
76
|
useDecoratorsForOverview: true,
|
|
77
77
|
});
|
|
@@ -3041,6 +3041,31 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
|
|
|
3041
3041
|
this.#setActiveInsight({model: insightModel, insightSetKey}, {highlightInsight: true});
|
|
3042
3042
|
}
|
|
3043
3043
|
|
|
3044
|
+
static async executeRecordAndReload(): Promise<Trace.TraceModel.ParsedTrace> {
|
|
3045
|
+
await UI.ViewManager.ViewManager.instance().showView('timeline');
|
|
3046
|
+
const panelInstance = TimelinePanel.instance();
|
|
3047
|
+
|
|
3048
|
+
const result: EventTypes[Events.RECORDING_COMPLETED] = await new Promise(resolve => {
|
|
3049
|
+
function listener(e: Common.EventTarget.EventTargetEvent<EventTypes[Events.RECORDING_COMPLETED]>): void {
|
|
3050
|
+
resolve(e.data);
|
|
3051
|
+
panelInstance.removeEventListener(Events.RECORDING_COMPLETED, listener);
|
|
3052
|
+
}
|
|
3053
|
+
panelInstance.addEventListener(Events.RECORDING_COMPLETED, listener);
|
|
3054
|
+
panelInstance.recordReload();
|
|
3055
|
+
});
|
|
3056
|
+
|
|
3057
|
+
if ('errorText' in result) {
|
|
3058
|
+
throw new Error(result.errorText);
|
|
3059
|
+
}
|
|
3060
|
+
|
|
3061
|
+
const trace = panelInstance.model.parsedTrace(result.traceIndex);
|
|
3062
|
+
if (!trace) {
|
|
3063
|
+
throw new Error('Failed to parse trace');
|
|
3064
|
+
}
|
|
3065
|
+
|
|
3066
|
+
return trace;
|
|
3067
|
+
}
|
|
3068
|
+
|
|
3044
3069
|
static async *
|
|
3045
3070
|
handleExternalRecordRequest(): AsyncGenerator<
|
|
3046
3071
|
AiAssistanceModel.AiAgent.ExternalRequestResponse, AiAssistanceModel.AiAgent.ExternalRequestResponse> {
|
|
@@ -2502,24 +2502,21 @@ export class TimelineDetailsContentHelper {
|
|
|
2502
2502
|
return null;
|
|
2503
2503
|
}
|
|
2504
2504
|
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
callFrameContents.stackTrace = stackTrace;
|
|
2512
|
-
} else {
|
|
2513
|
-
// I _think_ this only happens during tests.
|
|
2514
|
-
// See "TimelineFlameChartView > shows the details for a selected main thread event".
|
|
2515
|
-
// For now, just defer to the still-supported legacy runtime stack trace. When
|
|
2516
|
-
// that is removed, we could instead create a stub StackTrace ourselves, even
|
|
2517
|
-
// without a `target`.
|
|
2518
|
-
callFrameContents = new LegacyComponents.JSPresentationUtils.StackTracePreviewContent(
|
|
2519
|
-
undefined, this.target ?? undefined, this.#linkifier,
|
|
2520
|
-
{runtimeStackTrace, tabStops: true, showColumnNumber: true});
|
|
2505
|
+
// Fallback to the main page/root target. Maybe the main page has a source map we need.
|
|
2506
|
+
// Worst case the stack is identity mapped.
|
|
2507
|
+
const targetManager = SDK.TargetManager.TargetManager.instance();
|
|
2508
|
+
const target = this.target ?? targetManager.primaryPageTarget() ?? targetManager.rootTarget();
|
|
2509
|
+
if (!target) {
|
|
2510
|
+
return null;
|
|
2521
2511
|
}
|
|
2522
2512
|
|
|
2513
|
+
const stackTrace =
|
|
2514
|
+
await Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance().createStackTraceFromProtocolRuntime(
|
|
2515
|
+
runtimeStackTrace, target);
|
|
2516
|
+
const callFrameContents = new LegacyComponents.JSPresentationUtils.StackTracePreviewContent(
|
|
2517
|
+
undefined, target, this.#linkifier, {tabStops: true, showColumnNumber: true});
|
|
2518
|
+
callFrameContents.stackTrace = stackTrace;
|
|
2519
|
+
|
|
2523
2520
|
await callFrameContents.updateComplete;
|
|
2524
2521
|
if (!callFrameContents.hasContent()) {
|
|
2525
2522
|
return null;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Name: Dependencies sourced from the upstream `chromium` repository
|
|
2
2
|
URL: https://chromium.googlesource.com/chromium/src
|
|
3
3
|
Version: N/A
|
|
4
|
-
Revision:
|
|
4
|
+
Revision: 294287c423bbeff3981714f04e193960f503e773
|
|
5
5
|
Update Mechanism: Manual (https://crbug.com/428069060)
|
|
6
6
|
License: BSD-3-Clause
|
|
7
7
|
License File: LICENSE
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Name: Lighthouse
|
|
2
2
|
Short Name: lighthouse
|
|
3
|
-
Version: 13.0.
|
|
4
|
-
Revision:
|
|
3
|
+
Version: 13.0.2
|
|
4
|
+
Revision: 440f8bf87117ef61dc970c3ce4cebf91d46eb181
|
|
5
5
|
Update Mechanism: Manual
|
|
6
6
|
URL: https://github.com/GoogleChrome/lighthouse
|
|
7
7
|
License: Apache-2.0
|