chrome-devtools-frontend 1.0.1642845 → 1.0.1643099
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/SECURITY.md +1 -0
- package/front_end/core/host/UserMetrics.ts +2 -1
- package/front_end/core/protocol_client/InspectorBackend.ts +4 -0
- package/front_end/core/sdk/CSSMatchedStyles.ts +55 -26
- package/front_end/core/sdk/CSSRule.ts +1 -0
- package/front_end/core/sdk/DebuggerModel.ts +5 -0
- package/front_end/entrypoints/greendev_floaty/FloatyEntrypoint.ts +4 -3
- package/front_end/entrypoints/greendev_floaty/greendev_floaty.ts +4 -3
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +4 -5
- package/front_end/generated/InspectorBackendCommands.ts +1 -1
- package/front_end/generated/protocol.ts +7 -0
- package/front_end/models/ai_assistance/AiAgent2.ts +100 -18
- package/front_end/models/ai_assistance/AiConversation.ts +18 -14
- package/front_end/models/ai_assistance/AiUtils.ts +71 -0
- package/front_end/models/ai_assistance/ChangeManager.ts +2 -5
- package/front_end/models/ai_assistance/{agents/ConversationSummaryAgent.ts → ConversationSummary.ts} +29 -66
- package/front_end/models/ai_assistance/ExtensionScope.ts +1 -4
- package/front_end/models/ai_assistance/{agents/PerformanceAnnotationsAgent.ts → PerformanceAnnotations.ts} +47 -89
- package/front_end/models/ai_assistance/README.md +8 -0
- package/front_end/models/ai_assistance/agents/AccessibilityAgent.ts +65 -40
- package/front_end/models/ai_assistance/agents/AiAgent.ts +37 -6
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.snapshot.txt +11 -0
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +55 -5
- package/front_end/models/ai_assistance/agents/ExecuteJavascript.ts +2 -0
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +119 -78
- package/front_end/models/ai_assistance/agents/StorageAgent.ts +47 -38
- package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +0 -25
- package/front_end/models/ai_assistance/agents/StylingAgent.ts +46 -326
- package/front_end/models/ai_assistance/ai_assistance.ts +14 -4
- package/front_end/models/ai_assistance/contexts/DOMNodeContext.snapshot.txt +51 -0
- package/front_end/models/ai_assistance/contexts/DOMNodeContext.ts +200 -0
- package/front_end/models/ai_assistance/skills/styling.md +44 -2
- package/front_end/models/ai_assistance/tools/ExecuteJavaScript.ts +140 -0
- package/front_end/models/ai_assistance/tools/GetStyles.ts +141 -0
- package/front_end/models/ai_assistance/tools/Tool.ts +64 -0
- package/front_end/models/ai_assistance/tools/ToolRegistry.ts +36 -0
- package/front_end/models/heap_snapshot/HeapSnapshotProxy.ts +5 -7
- package/front_end/models/lighthouse/LighthouseReporterTypes.ts +5 -0
- package/front_end/models/live-metrics/LiveMetrics.ts +24 -13
- package/front_end/models/stack_trace/DetailedErrorStackParser.ts +2 -2
- package/front_end/models/stack_trace/StackTrace.ts +4 -1
- package/front_end/models/stack_trace/StackTraceImpl.ts +9 -2
- package/front_end/models/stack_trace/StackTraceModel.ts +17 -4
- package/front_end/models/stack_trace/Trie.ts +1 -1
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +25 -22
- package/front_end/panels/ai_assistance/ai_assistance-meta.ts +16 -0
- package/front_end/panels/ai_assistance/components/ChatInput.ts +2 -2
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +96 -4
- package/front_end/panels/ai_assistance/components/chatMessage.css +6 -0
- package/front_end/panels/application/DOMStorageItemsView.ts +4 -0
- package/front_end/panels/application/KeyValueStorageItemsView.ts +39 -7
- package/front_end/panels/application/components/AdsView.ts +219 -0
- package/front_end/panels/application/components/adsView.css +54 -0
- package/front_end/panels/application/components/components.ts +2 -0
- package/front_end/panels/common/ExtensionServer.ts +26 -15
- package/front_end/panels/console/SymbolizedErrorWidget.ts +73 -22
- package/front_end/panels/elements/StandaloneStylesContainer.ts +1 -1
- package/front_end/panels/elements/StylePropertiesSection.ts +8 -0
- package/front_end/panels/elements/StylePropertyHighlighter.ts +4 -2
- package/front_end/panels/elements/StylePropertyTreeElement.ts +6 -5
- package/front_end/panels/elements/StylesContainer.ts +1 -1
- package/front_end/panels/elements/StylesSidebarPane.ts +4 -4
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +106 -132
- package/front_end/panels/lighthouse/LighthousePanel.ts +4 -3
- package/front_end/panels/network/NetworkLogView.ts +8 -1
- package/front_end/panels/network/networkLogView.css +0 -15
- package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +5 -4
- 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 +1607 -5733
- package/front_end/third_party/lighthouse/locales/ar-XB.json +290 -65
- package/front_end/third_party/lighthouse/locales/ar.json +290 -65
- package/front_end/third_party/lighthouse/locales/bg.json +290 -65
- package/front_end/third_party/lighthouse/locales/ca.json +295 -70
- package/front_end/third_party/lighthouse/locales/cs.json +290 -65
- package/front_end/third_party/lighthouse/locales/da.json +294 -69
- package/front_end/third_party/lighthouse/locales/de.json +295 -70
- package/front_end/third_party/lighthouse/locales/el.json +290 -65
- package/front_end/third_party/lighthouse/locales/en-GB.json +290 -65
- package/front_end/third_party/lighthouse/locales/en-US.json +79 -67
- package/front_end/third_party/lighthouse/locales/en-XA.json +253 -64
- package/front_end/third_party/lighthouse/locales/en-XL.json +79 -67
- package/front_end/third_party/lighthouse/locales/es-419.json +290 -65
- package/front_end/third_party/lighthouse/locales/es.json +298 -73
- package/front_end/third_party/lighthouse/locales/fi.json +290 -65
- package/front_end/third_party/lighthouse/locales/fil.json +290 -65
- package/front_end/third_party/lighthouse/locales/fr.json +294 -69
- package/front_end/third_party/lighthouse/locales/he.json +293 -68
- package/front_end/third_party/lighthouse/locales/hi.json +291 -66
- package/front_end/third_party/lighthouse/locales/hr.json +290 -65
- package/front_end/third_party/lighthouse/locales/hu.json +290 -65
- package/front_end/third_party/lighthouse/locales/id.json +290 -65
- package/front_end/third_party/lighthouse/locales/it.json +294 -69
- package/front_end/third_party/lighthouse/locales/ja.json +290 -65
- package/front_end/third_party/lighthouse/locales/ko.json +290 -65
- package/front_end/third_party/lighthouse/locales/lt.json +290 -65
- package/front_end/third_party/lighthouse/locales/lv.json +290 -65
- package/front_end/third_party/lighthouse/locales/nl.json +290 -65
- package/front_end/third_party/lighthouse/locales/no.json +290 -65
- package/front_end/third_party/lighthouse/locales/pl.json +290 -65
- package/front_end/third_party/lighthouse/locales/pt-PT.json +291 -66
- package/front_end/third_party/lighthouse/locales/pt.json +290 -65
- package/front_end/third_party/lighthouse/locales/ro.json +290 -65
- package/front_end/third_party/lighthouse/locales/ru.json +301 -76
- package/front_end/third_party/lighthouse/locales/sk.json +291 -66
- package/front_end/third_party/lighthouse/locales/sl.json +290 -65
- package/front_end/third_party/lighthouse/locales/sr-Latn.json +290 -65
- package/front_end/third_party/lighthouse/locales/sr.json +290 -65
- package/front_end/third_party/lighthouse/locales/sv.json +297 -72
- package/front_end/third_party/lighthouse/locales/ta.json +291 -66
- package/front_end/third_party/lighthouse/locales/te.json +293 -68
- package/front_end/third_party/lighthouse/locales/th.json +291 -66
- package/front_end/third_party/lighthouse/locales/tr.json +290 -65
- package/front_end/third_party/lighthouse/locales/uk.json +290 -65
- package/front_end/third_party/lighthouse/locales/vi.json +291 -66
- package/front_end/third_party/lighthouse/locales/zh-HK.json +292 -67
- package/front_end/third_party/lighthouse/locales/zh-TW.json +291 -66
- package/front_end/third_party/lighthouse/locales/zh.json +291 -66
- package/front_end/third_party/lighthouse/report/bundle.d.ts +6 -6
- package/front_end/third_party/lighthouse/report/bundle.js +4 -7
- package/front_end/third_party/lighthouse/report-assets/report-generator.mjs +2 -2
- package/front_end/ui/legacy/Widget.ts +32 -8
- package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +36 -3
- package/front_end/ui/legacy/components/data_grid/dataGridAiButton.css +20 -0
- package/front_end/ui/legacy/components/utils/Linkifier.ts +19 -4
- package/front_end/ui/visual_logging/KnownContextValues.ts +3 -0
- package/mcp/mcp.ts +1 -0
- package/package.json +1 -1
|
@@ -118,13 +118,31 @@ function cancelUpdate(widget: AnyWidget): void {
|
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
+
function resolveOverallUpdatePromise(): void {
|
|
122
|
+
if (currentlyProcessed.size === 0 && (!currentUpdateQueue || currentUpdateQueue.size === 0) &&
|
|
123
|
+
nextUpdateQueue.size === 0 && !pendingAnimationFrame && overallUpdatePromise) {
|
|
124
|
+
overallUpdatePromise.resolve();
|
|
125
|
+
overallUpdatePromise = null;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
121
129
|
function runNextUpdate(): void {
|
|
122
130
|
pendingAnimationFrame = null;
|
|
123
131
|
if (!currentUpdateQueue) {
|
|
124
132
|
currentUpdateQueue = nextUpdateQueue;
|
|
125
133
|
nextUpdateQueue = new Map();
|
|
126
134
|
}
|
|
127
|
-
for (const [widget,
|
|
135
|
+
for (const [widget, update] of currentUpdateQueue) {
|
|
136
|
+
if (currentlyProcessed.has(widget)) {
|
|
137
|
+
const scheduledUpdate = nextUpdateQueue.get(widget);
|
|
138
|
+
if (!scheduledUpdate) {
|
|
139
|
+
nextUpdateQueue.set(widget, update);
|
|
140
|
+
} else {
|
|
141
|
+
void scheduledUpdate.promise.then(update.resolve);
|
|
142
|
+
}
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
const {resolve} = update;
|
|
128
146
|
currentlyProcessed.add(widget);
|
|
129
147
|
void (async () => {
|
|
130
148
|
try {
|
|
@@ -132,7 +150,17 @@ function runNextUpdate(): void {
|
|
|
132
150
|
widget.addUpdateController(controller);
|
|
133
151
|
await widget.performUpdate(controller.signal);
|
|
134
152
|
} finally {
|
|
135
|
-
|
|
153
|
+
currentlyProcessed.delete(widget);
|
|
154
|
+
const nextUpdate = nextUpdateQueue.get(widget);
|
|
155
|
+
if (nextUpdate) {
|
|
156
|
+
void nextUpdate.promise.then(resolve);
|
|
157
|
+
if (pendingAnimationFrame === null) {
|
|
158
|
+
pendingAnimationFrame = requestAnimationFrame(runNextUpdate);
|
|
159
|
+
}
|
|
160
|
+
} else {
|
|
161
|
+
resolve();
|
|
162
|
+
}
|
|
163
|
+
resolveOverallUpdatePromise();
|
|
136
164
|
}
|
|
137
165
|
})().catch(e => {
|
|
138
166
|
if (e.name !== 'AbortError') {
|
|
@@ -146,11 +174,7 @@ function runNextUpdate(): void {
|
|
|
146
174
|
runNextUpdate();
|
|
147
175
|
} else {
|
|
148
176
|
currentUpdateQueue = null;
|
|
149
|
-
|
|
150
|
-
if (!pendingAnimationFrame && overallUpdatePromise) {
|
|
151
|
-
overallUpdatePromise.resolve();
|
|
152
|
-
overallUpdatePromise = null;
|
|
153
|
-
}
|
|
177
|
+
resolveOverallUpdatePromise();
|
|
154
178
|
}
|
|
155
179
|
});
|
|
156
180
|
}
|
|
@@ -545,7 +569,7 @@ export class Widget<ContentTypeT extends HTMLElement|DocumentFragment = HTMLElem
|
|
|
545
569
|
}
|
|
546
570
|
|
|
547
571
|
static get allUpdatesComplete(): Promise<void> {
|
|
548
|
-
if (!pendingAnimationFrame && !currentUpdateQueue) {
|
|
572
|
+
if (!pendingAnimationFrame && !currentUpdateQueue && currentlyProcessed.size === 0) {
|
|
549
573
|
return Promise.resolve();
|
|
550
574
|
}
|
|
551
575
|
if (!overallUpdatePromise) {
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
35
35
|
*/
|
|
36
36
|
import '../data_grid/data_grid.js';
|
|
37
|
+
import '../../../components/buttons/buttons.js';
|
|
37
38
|
|
|
38
39
|
import * as Common from '../../../../core/common/common.js';
|
|
39
40
|
import * as i18n from '../../../../core/i18n/i18n.js';
|
|
@@ -43,12 +44,15 @@ import type * as Protocol from '../../../../generated/protocol.js';
|
|
|
43
44
|
import * as IssuesManager from '../../../../models/issues_manager/issues_manager.js';
|
|
44
45
|
import * as NetworkForward from '../../../../panels/network/forward/forward.js';
|
|
45
46
|
import {Icon} from '../../../kit/kit.js';
|
|
46
|
-
import {Directives, html, render} from '../../../lit/lit.js';
|
|
47
|
+
import {Directives, html, nothing, render} from '../../../lit/lit.js';
|
|
47
48
|
import * as UI from '../../legacy.js';
|
|
49
|
+
import dataGridAiButtonStyles from '../data_grid/dataGridAiButton.css.js';
|
|
48
50
|
|
|
49
51
|
import cookiesTableStyles from './cookiesTable.css.js';
|
|
50
52
|
|
|
51
|
-
|
|
53
|
+
const STORAGE_FLOATING_BUTTON_ACTION_ID = 'ai-assistance.storage-floating-button';
|
|
54
|
+
|
|
55
|
+
export interface ViewInput {
|
|
52
56
|
data: CookieData[];
|
|
53
57
|
selectedKey?: string;
|
|
54
58
|
editable?: boolean;
|
|
@@ -61,6 +65,9 @@ interface ViewInput {
|
|
|
61
65
|
onDelete: (data: CookieData) => void;
|
|
62
66
|
onContextMenu: (data: CookieData, menu: UI.ContextMenu.ContextMenu) => void;
|
|
63
67
|
onSelect: (key: string|undefined) => void;
|
|
68
|
+
showAiButton?: boolean;
|
|
69
|
+
aiButtonTitle?: string;
|
|
70
|
+
onAiButtonClick?: (cookie: CookieData, event: Event) => void;
|
|
64
71
|
}
|
|
65
72
|
type ViewFunction = (input: ViewInput, output: object, target: HTMLElement) => void;
|
|
66
73
|
type AttributeWithIcon = SDK.Cookie.Attribute.NAME|SDK.Cookie.Attribute.VALUE|SDK.Cookie.Attribute.DOMAIN|
|
|
@@ -219,6 +226,7 @@ export class CookiesTable extends UI.Widget.VBox {
|
|
|
219
226
|
@deselect=${() => input.onSelect(undefined)}
|
|
220
227
|
>
|
|
221
228
|
<table>
|
|
229
|
+
${input.showAiButton ? html`<style>${dataGridAiButtonStyles}</style>` : nothing}
|
|
222
230
|
<tr>
|
|
223
231
|
<th id=${SDK.Cookie.Attribute.NAME} sortable ?disclosure=${input.editable} ?editable=${input.editable} long weight="24">
|
|
224
232
|
${i18nString(UIStrings.name)}
|
|
@@ -275,7 +283,15 @@ export class CookiesTable extends UI.Widget.VBox {
|
|
|
275
283
|
@delete=${()=> input.onDelete(cookie)}
|
|
276
284
|
@contextmenu=${(e: CustomEvent<UI.ContextMenu.ContextMenu>) => input.onContextMenu(cookie, e.detail)}
|
|
277
285
|
@select=${() => input.onSelect(cookie.key)}>
|
|
278
|
-
<td>${
|
|
286
|
+
<td>${input.showAiButton && !Boolean(cookie['http-only']) ? html`
|
|
287
|
+
<span class="ai-button-container">
|
|
288
|
+
<devtools-floating-button
|
|
289
|
+
icon-name=${Root.Runtime.hostConfig.devToolsGeminiRebranding?.enabled ? 'spark' : 'smart-assistant'}
|
|
290
|
+
title=${ifDefined(input.aiButtonTitle)}
|
|
291
|
+
@click=${(e: Event) => input.onAiButtonClick?.(cookie, e)}
|
|
292
|
+
></devtools-floating-button>
|
|
293
|
+
</span>
|
|
294
|
+
` : nothing}${cookie.icons?.name}${cookie.name}</td>
|
|
279
295
|
<td>${cookie.value}</td>
|
|
280
296
|
<td>${cookie.icons?.domain}${cookie.domain}</td>
|
|
281
297
|
<td>${cookie.icons?.path}${cookie.path}</td>
|
|
@@ -404,6 +420,19 @@ export class CookiesTable extends UI.Widget.VBox {
|
|
|
404
420
|
onDelete: this.onDeleteCookie.bind(this),
|
|
405
421
|
onSelect: this.onSelect.bind(this),
|
|
406
422
|
onContextMenu: this.populateContextMenu.bind(this),
|
|
423
|
+
showAiButton: this.isAiButtonEnabled(),
|
|
424
|
+
aiButtonTitle: this.isAiButtonEnabled() &&
|
|
425
|
+
UI.ActionRegistry.ActionRegistry.instance().hasAction(STORAGE_FLOATING_BUTTON_ACTION_ID) ?
|
|
426
|
+
UI.ActionRegistry.ActionRegistry.instance().getAction(STORAGE_FLOATING_BUTTON_ACTION_ID).title() :
|
|
427
|
+
undefined,
|
|
428
|
+
onAiButtonClick: (cookie: CookieData, event: Event) => {
|
|
429
|
+
event.stopPropagation();
|
|
430
|
+
this.onSelect(cookie.key);
|
|
431
|
+
const actionRegistry = UI.ActionRegistry.ActionRegistry.instance();
|
|
432
|
+
if (actionRegistry.hasAction(STORAGE_FLOATING_BUTTON_ACTION_ID)) {
|
|
433
|
+
void actionRegistry.getAction(STORAGE_FLOATING_BUTTON_ACTION_ID).execute();
|
|
434
|
+
}
|
|
435
|
+
},
|
|
407
436
|
};
|
|
408
437
|
const output = {};
|
|
409
438
|
this.view(input, output, this.element);
|
|
@@ -414,6 +443,10 @@ export class CookiesTable extends UI.Widget.VBox {
|
|
|
414
443
|
this.#selectedCallback?.(this.selectedCookie());
|
|
415
444
|
}
|
|
416
445
|
|
|
446
|
+
private isAiButtonEnabled(): boolean {
|
|
447
|
+
return UI.ActionRegistry.ActionRegistry.instance().hasAction(STORAGE_FLOATING_BUTTON_ACTION_ID);
|
|
448
|
+
}
|
|
449
|
+
|
|
417
450
|
private onDeleteCookie(data: CookieData): void {
|
|
418
451
|
const cookie = this.cookies.find(cookie => cookie.key() === data.key);
|
|
419
452
|
if (cookie && this.#deleteCallback) {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 The Chromium Authors
|
|
3
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
4
|
+
* found in the LICENSE file.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
.data-grid-data-grid-node .ai-button-container {
|
|
8
|
+
display: none;
|
|
9
|
+
float: right;
|
|
10
|
+
|
|
11
|
+
devtools-floating-button {
|
|
12
|
+
position: absolute;
|
|
13
|
+
z-index: 999;
|
|
14
|
+
margin-left: -17px;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.data-grid-data-grid-node:hover .ai-button-container {
|
|
19
|
+
display: inline-flex;
|
|
20
|
+
}
|
|
@@ -399,7 +399,12 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
|
|
|
399
399
|
jslogContext: options?.jslogContext || 'script-location',
|
|
400
400
|
omitOrigin: options?.omitOrigin,
|
|
401
401
|
} satisfies LinkifyURLOptions;
|
|
402
|
-
const
|
|
402
|
+
const fallbackOptions = {
|
|
403
|
+
...linkifyURLOptions,
|
|
404
|
+
showColumnNumber: frame.isWasm || Boolean(options?.showColumnNumber),
|
|
405
|
+
omitLineAndRenderColumnAsHex: frame.isWasm,
|
|
406
|
+
};
|
|
407
|
+
const fallbackAnchor = Linkifier.linkifyURL(frame.url as Platform.DevToolsPath.UrlString, fallbackOptions);
|
|
403
408
|
if (!frame.uiSourceCode) {
|
|
404
409
|
const isIgnoreListed = (options?.ignoreListManager ?? Workspace.IgnoreListManager.IgnoreListManager.instance())
|
|
405
410
|
.isUserIgnoreListedURL(frame.url as Platform.DevToolsPath.UrlString);
|
|
@@ -602,6 +607,11 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
|
|
|
602
607
|
const maxLength = options.maxLength || UI.UIUtils.MaxLengthForDisplayedURLs;
|
|
603
608
|
const bypassURLTrimming = options.bypassURLTrimming;
|
|
604
609
|
const omitOrigin = options.omitOrigin;
|
|
610
|
+
const omitLineAndRenderColumnAsHex = options.omitLineAndRenderColumnAsHex;
|
|
611
|
+
|
|
612
|
+
if (omitLineAndRenderColumnAsHex && showColumnNumber === false) {
|
|
613
|
+
throw new Error('omitLineAndRenderColumnAsHex requires showColumnNumber to not be explicitly false');
|
|
614
|
+
}
|
|
605
615
|
|
|
606
616
|
if (!url || Common.ParsedURL.schemeIs(url, 'javascript:')) {
|
|
607
617
|
// clang-format off
|
|
@@ -619,7 +629,11 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
|
|
|
619
629
|
}
|
|
620
630
|
}
|
|
621
631
|
|
|
622
|
-
if (
|
|
632
|
+
if (omitLineAndRenderColumnAsHex && !text) {
|
|
633
|
+
if (typeof columnNumber === 'number') {
|
|
634
|
+
linkText += ':0x' + columnNumber.toString(16);
|
|
635
|
+
}
|
|
636
|
+
} else if (typeof lineNumber === 'number' && !text) {
|
|
623
637
|
linkText += ':' + (lineNumber + 1);
|
|
624
638
|
if (showColumnNumber && typeof columnNumber === 'number') {
|
|
625
639
|
linkText += ':' + (columnNumber + 1);
|
|
@@ -947,7 +961,7 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
|
|
|
947
961
|
}
|
|
948
962
|
|
|
949
963
|
for (const registration of linkHandlers.values().filter(r => r.handler)) {
|
|
950
|
-
const {title, handler, shouldHandleOpenResource} = registration;
|
|
964
|
+
const {title, origin, handler, shouldHandleOpenResource} = registration;
|
|
951
965
|
if (url && !shouldHandleOpenResource(url, specificSchemeHandlers)) {
|
|
952
966
|
continue;
|
|
953
967
|
}
|
|
@@ -957,7 +971,7 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
|
|
|
957
971
|
jslogContext: 'open-using',
|
|
958
972
|
handler: handler.bind(null, contentProviderOrUrl, lineNumber, columnNumber),
|
|
959
973
|
};
|
|
960
|
-
if (
|
|
974
|
+
if (origin === Linkifier.linkHandlerSetting().get()) {
|
|
961
975
|
result.unshift(action);
|
|
962
976
|
} else {
|
|
963
977
|
result.push(action);
|
|
@@ -1182,6 +1196,7 @@ export interface LinkifyURLOptions {
|
|
|
1182
1196
|
jslogContext?: string;
|
|
1183
1197
|
omitOrigin?: boolean;
|
|
1184
1198
|
onRef?: (el: HTMLElement) => void;
|
|
1199
|
+
omitLineAndRenderColumnAsHex?: boolean;
|
|
1185
1200
|
}
|
|
1186
1201
|
|
|
1187
1202
|
export interface LinkifyOptions {
|
|
@@ -362,6 +362,7 @@ export const knownContextValues = new Set([
|
|
|
362
362
|
'ai-assistance-v2-opt-in-change-dialog-seen',
|
|
363
363
|
'ai-assistance-v2-opt-in.got-it',
|
|
364
364
|
'ai-assistance-v2-opt-in.manage-settings',
|
|
365
|
+
'ai-assistance.storage-floating-button',
|
|
365
366
|
'ai-code-completion-citations',
|
|
366
367
|
'ai-code-completion-citations.citation-link',
|
|
367
368
|
'ai-code-completion-disclaimer',
|
|
@@ -2825,6 +2826,7 @@ export const knownContextValues = new Set([
|
|
|
2825
2826
|
'network-record-film-strip-setting',
|
|
2826
2827
|
'network-request',
|
|
2827
2828
|
'network-request-general-headers-widget',
|
|
2829
|
+
'network-requests-list-widget',
|
|
2828
2830
|
'network-resource-type-filters',
|
|
2829
2831
|
'network-settings',
|
|
2830
2832
|
'network-show-blocked-cookies-only-setting',
|
|
@@ -3679,6 +3681,7 @@ export const knownContextValues = new Set([
|
|
|
3679
3681
|
'show-all',
|
|
3680
3682
|
'show-all-nodes',
|
|
3681
3683
|
'show-all-properties',
|
|
3684
|
+
'show-all-widget-requests-button',
|
|
3682
3685
|
'show-as-javascript-object',
|
|
3683
3686
|
'show-console-insight-teasers',
|
|
3684
3687
|
'show-content-scripts',
|
package/mcp/mcp.ts
CHANGED
|
@@ -48,6 +48,7 @@ export {
|
|
|
48
48
|
createIssuesFromProtocolIssue,
|
|
49
49
|
Events as IssuesManagerEvents,
|
|
50
50
|
type EventTypes as IssuesManagerEventTypes,
|
|
51
|
+
isIssueCodeSupported,
|
|
51
52
|
IssuesManager
|
|
52
53
|
} from '../front_end/models/issues_manager/IssuesManager.js';
|
|
53
54
|
export * as MarkdownIssueDescription from '../front_end/models/issues_manager/MarkdownIssueDescription.js';
|
package/package.json
CHANGED