chrome-devtools-frontend 1.0.1667564 → 1.0.1669021
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/skills/devtools-ci/SKILL.md +65 -0
- package/.agents/skills/devtools-setting-migration/SKILL.md +290 -0
- package/.agents/skills/gerrit-cli/SKILL.md +59 -0
- package/.agents/skills/gerrit-cli/references/commands.md +93 -0
- package/.agents/skills/gerrit-cli/references/workflows.md +56 -0
- package/.agents/skills/gerrit-cli/scripts/gerrit_client_wrapper.py +47 -0
- package/.agents/skills/gerrit-cli/scripts/import_upstream.py +230 -0
- package/.agents/skills/ui-eng-vision-widget-promoter/SKILL.md +11 -4
- package/.agents/skills/ui-widgets/SKILL.md +25 -1
- package/docs/contributing/infrastructure.md +7 -1
- package/docs/ui_engineering.md +44 -1
- package/front_end/core/common/Settings.ts +11 -4
- package/front_end/core/host/AidaClient.ts +66 -47
- package/front_end/core/host/GcaClient.ts +4 -6
- package/front_end/core/host/ResourceLoader.ts +4 -2
- package/front_end/core/root/Runtime.ts +5 -5
- package/front_end/core/sdk/CSSModel.test.api.ts +102 -0
- package/front_end/core/sdk/CSSModel.ts +3 -2
- package/front_end/core/sdk/ConsoleModel.ts +3 -2
- package/front_end/core/sdk/DebuggerModel.ts +16 -7
- package/front_end/core/sdk/SDKSettings.ts +38 -0
- package/front_end/core/sdk/sdk-meta.ts +0 -120
- package/front_end/core/sdk/sdk.ts +2 -0
- package/front_end/entrypoints/main/MainImpl.ts +10 -3
- package/front_end/foundation/Universe.ts +7 -0
- package/front_end/generated/InspectorBackendCommands.ts +2 -2
- package/front_end/generated/protocol.ts +11 -3
- package/front_end/models/ai_assistance/AiAgent2.ts +1 -1
- package/front_end/models/ai_assistance/AiUtils.ts +67 -4
- package/front_end/models/ai_assistance/BuiltInAi.ts +11 -6
- package/front_end/models/ai_assistance/ChangeManager.ts +17 -1
- package/front_end/models/ai_assistance/StorageItem.ts +26 -5
- package/front_end/models/ai_code_completion/AiCodeCompletion.ts +2 -19
- package/front_end/models/ai_code_generation/AiCodeGeneration.ts +2 -3
- package/front_end/models/javascript_metadata/NativeFunctions.js +22 -9
- package/front_end/models/source_map_scopes/NamesResolver.ts +23 -17
- package/front_end/models/trace/handlers/RendererHandler.ts +20 -4
- package/front_end/models/trace/types/File.ts +1 -0
- package/front_end/models/workspace/UISourceCode.ts +0 -10
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +61 -182
- package/front_end/panels/ai_assistance/components/ChatInput.ts +25 -8
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +13 -69
- package/front_end/panels/ai_assistance/components/ChatView.ts +14 -8
- package/front_end/panels/ai_assistance/components/chatMessage.css +2 -20
- package/front_end/panels/application/ApplicationPanelSidebar.ts +2 -2
- package/front_end/panels/application/ApplicationPanelTreeElement.ts +41 -3
- package/front_end/panels/application/ServiceWorkerUpdateCycleView.ts +131 -134
- package/front_end/panels/application/ServiceWorkersView.ts +8 -8
- package/front_end/panels/application/application.ts +2 -0
- package/front_end/panels/application/components/AdsView.ts +10 -6
- package/front_end/panels/application/preloading/PreloadingView.ts +53 -45
- package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +111 -119
- package/front_end/panels/application/preloading/components/preloadingDetailsReportView.css +22 -24
- package/front_end/panels/application/serviceWorkerUpdateCycleView.css +105 -102
- package/front_end/panels/common/AiCodeCompletionDisclaimer.ts +107 -96
- package/front_end/panels/common/AiCodeCompletionSummaryToolbar.ts +17 -19
- package/front_end/panels/common/AiCodeCompletionTeaser.ts +6 -6
- package/front_end/panels/common/AiCodeGenerationTeaser.ts +28 -26
- package/front_end/panels/common/common.ts +1 -1
- package/front_end/panels/console/ConsoleInsightTeaser.ts +6 -8
- package/front_end/panels/console/ConsoleView.ts +6 -4
- package/front_end/panels/console/ConsoleViewMessage.ts +1 -1
- package/front_end/panels/console/console-meta.ts +28 -0
- package/front_end/panels/elements/StylesAiCodeCompletionProvider.ts +1 -1
- package/front_end/panels/elements/StylesSidebarPane.ts +3 -2
- package/front_end/panels/emulation/DeviceModeToolbar.ts +2 -2
- package/front_end/panels/emulation/DeviceModeView.ts +63 -104
- package/front_end/panels/emulation/DeviceModeWrapper.ts +18 -4
- package/front_end/panels/explain/components/ConsoleInsight.ts +4 -6
- package/front_end/panels/explain/explain-meta.ts +7 -49
- package/front_end/panels/network/NetworkDataGridNode.ts +1 -1
- package/front_end/panels/network/NetworkLogView.ts +1 -0
- package/front_end/panels/network/OriginalResourceChunkView.ts +340 -0
- package/front_end/panels/network/ResourceChunkView.ts +72 -46
- package/front_end/panels/network/ResourceDirectSocketChunkView.ts +3 -2
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +3 -3
- package/front_end/panels/network/originalResourceChunkView.css +49 -0
- package/front_end/panels/screencast/ScreencastView.ts +401 -260
- package/front_end/panels/screencast/screencastView.css +113 -100
- package/front_end/panels/sensors/LocationsSettingsTab.ts +329 -135
- package/front_end/panels/sensors/locationsSettingsTab.css +78 -4
- package/front_end/panels/settings/AISettingsTab.ts +17 -100
- package/front_end/panels/snippets/ScriptSnippetFileSystem.ts +2 -2
- package/front_end/panels/snippets/SnippetsQuickOpen.ts +4 -4
- package/front_end/panels/sources/AddSourceMapURLDialog.ts +3 -3
- package/front_end/panels/sources/AiCodeCompletionPlugin.ts +4 -3
- package/front_end/panels/sources/BreakpointEditDialog.ts +14 -14
- package/front_end/panels/sources/BreakpointsView.ts +14 -14
- package/front_end/panels/sources/CallStackSidebarPane.ts +6 -6
- package/front_end/panels/sources/CategorizedBreakpointL10n.ts +18 -18
- package/front_end/panels/sources/CoveragePlugin.ts +7 -7
- package/front_end/panels/sources/DebuggerPausedMessage.ts +23 -23
- package/front_end/panels/sources/DebuggerPlugin.ts +31 -31
- package/front_end/panels/sources/FilteredUISourceCodeListProvider.ts +2 -2
- package/front_end/panels/sources/GoToLineQuickOpen.ts +10 -10
- package/front_end/panels/sources/NavigatorView.ts +34 -27
- package/front_end/panels/sources/OutlineQuickOpen.ts +3 -3
- package/front_end/panels/sources/PersistenceActions.ts +9 -9
- package/front_end/panels/sources/ProfilePlugin.ts +1 -1
- package/front_end/panels/sources/ScopeChainSidebarPane.ts +5 -5
- package/front_end/panels/sources/SnippetsPlugin.ts +2 -2
- package/front_end/panels/sources/SourcesNavigator.ts +20 -18
- package/front_end/panels/sources/SourcesPanel.ts +26 -25
- package/front_end/panels/sources/SourcesView.ts +5 -6
- package/front_end/panels/sources/TabbedEditorContainer.ts +3 -3
- package/front_end/panels/sources/ThreadsSidebarPane.ts +1 -1
- package/front_end/panels/sources/UISourceCodeFrame.ts +0 -2
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +7 -7
- package/front_end/panels/sources/components/HeadersView.ts +2 -2
- package/front_end/panels/sources/sources-meta.ts +164 -71
- package/front_end/panels/sources/sources.ts +0 -2
- package/front_end/panels/timeline/TimelineHistoryManager.ts +14 -3
- package/front_end/panels/timeline/TimelineLoader.ts +72 -42
- package/front_end/panels/timeline/TimelinePanel.ts +29 -4
- package/front_end/panels/timeline/timelineHistoryManager.css +4 -0
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +187 -1
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +91 -38
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.d.ts +145 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.js +0 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.d.ts +0 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.js +0 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Dialog.d.ts +3 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Dialog.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Dialog.js +8 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Dialog.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/JSHandle.d.ts +0 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/JSHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/JSHandle.js +0 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/JSHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.d.ts +1 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.js +0 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Realm.d.ts +0 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Realm.js +0 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BidiOverCdp.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BidiOverCdp.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BidiOverCdp.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Browser.d.ts +5 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Browser.js +12 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/HTTPResponse.js +4 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.d.ts +5 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js +49 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/EventEmitter.d.ts +0 -6
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/EventEmitter.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/EventEmitter.js +0 -6
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/EventEmitter.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/util.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.d.ts +0 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.js +0 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/disposable.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/disposable.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +187 -1
- package/front_end/third_party/puppeteer/package/package.json +5 -5
- package/front_end/third_party/puppeteer/package/src/api/Browser.ts +155 -2
- package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +0 -2
- package/front_end/third_party/puppeteer/package/src/api/Dialog.ts +10 -2
- package/front_end/third_party/puppeteer/package/src/api/JSHandle.ts +0 -2
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +1 -3
- package/front_end/third_party/puppeteer/package/src/api/Realm.ts +0 -1
- package/front_end/third_party/puppeteer/package/src/bidi/BidiOverCdp.ts +4 -2
- package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +17 -0
- package/front_end/third_party/puppeteer/package/src/bidi/HTTPResponse.ts +5 -4
- package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +66 -0
- package/front_end/third_party/puppeteer/package/src/common/EventEmitter.ts +0 -6
- package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/injected/util.ts +4 -1
- package/front_end/third_party/puppeteer/package/src/node/ScreenRecorder.ts +0 -3
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/disposable.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
- package/front_end/ui/components/text_editor/AiCodeCompletionProvider.ts +9 -7
- package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +7 -8
- package/front_end/ui/legacy/Dialog.ts +103 -4
- package/front_end/ui/legacy/InspectorView.ts +1 -5
- package/front_end/ui/legacy/PopoverHelper.ts +5 -5
- package/front_end/ui/legacy/TabbedPane.ts +7 -2
- package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +40 -24
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +1 -0
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +8 -4
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +14 -7
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +11 -1
- package/front_end/ui/visual_logging/KnownContextValues.ts +3 -0
- package/package.json +1 -1
- package/front_end/panels/sources/AiWarningInfobarPlugin.ts +0 -78
|
@@ -57,7 +57,7 @@ export interface ViewInput {
|
|
|
57
57
|
renderInline?: boolean;
|
|
58
58
|
portBindingEnabled?: boolean;
|
|
59
59
|
schemeBindingEnabled?: boolean;
|
|
60
|
-
onEdit: (data: CookieData, columnId: string, valueBeforeEditing: string, newText: string) => void;
|
|
60
|
+
onEdit: (data: CookieData, columnId: string, valueBeforeEditing: string|boolean, newText: string|boolean) => void;
|
|
61
61
|
onCreate: (data: CookieData) => void;
|
|
62
62
|
onRefresh: () => void;
|
|
63
63
|
onDelete: (data: CookieData) => void;
|
|
@@ -71,18 +71,21 @@ type ViewFunction = (input: ViewInput, output: object, target: HTMLElement) => v
|
|
|
71
71
|
type AttributeWithIcon = SDK.Cookie.Attribute.NAME|SDK.Cookie.Attribute.VALUE|SDK.Cookie.Attribute.DOMAIN|
|
|
72
72
|
SDK.Cookie.Attribute.PATH|SDK.Cookie.Attribute.SECURE|SDK.Cookie.Attribute.SAME_SITE;
|
|
73
73
|
|
|
74
|
-
type
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
74
|
+
type BooleanAttributes =
|
|
75
|
+
SDK.Cookie.Attribute.HTTP_ONLY|SDK.Cookie.Attribute.SECURE|SDK.Cookie.Attribute.HAS_CROSS_SITE_ANCESTOR;
|
|
76
|
+
type CookieData = Partial<Record<Exclude<SDK.Cookie.Attribute, BooleanAttributes>, string>>&
|
|
77
|
+
Partial<Record<BooleanAttributes, string|boolean>>&{
|
|
78
|
+
name: string,
|
|
79
|
+
value: string,
|
|
80
|
+
}&{
|
|
81
|
+
key?: string,
|
|
82
|
+
flagged?: boolean,
|
|
83
|
+
icons?: Partial<Record<AttributeWithIcon, Icon>>,
|
|
84
|
+
priorityValue?: number,
|
|
85
|
+
expiresTooltip?: string,
|
|
86
|
+
dirty?: boolean,
|
|
87
|
+
inactive?: boolean,
|
|
88
|
+
};
|
|
86
89
|
|
|
87
90
|
const {repeat, ifDefined} = Directives;
|
|
88
91
|
|
|
@@ -185,6 +188,10 @@ const i18nLazyString = i18n.i18n.getLazilyComputedLocalizedString.bind(undefined
|
|
|
185
188
|
|
|
186
189
|
const expiresSessionValue = i18nLazyString(UIStrings.session);
|
|
187
190
|
|
|
191
|
+
function isFlagAttribute(attribute: SDK.Cookie.Attribute): attribute is BooleanAttributes {
|
|
192
|
+
return attribute === SDK.Cookie.Attribute.HTTP_ONLY || attribute === SDK.Cookie.Attribute.SECURE;
|
|
193
|
+
}
|
|
194
|
+
|
|
188
195
|
export interface CookiesTableData {
|
|
189
196
|
cookies: SDK.Cookie.Cookie[];
|
|
190
197
|
cookieToBlockedReasons?: ReadonlyMap<SDK.Cookie.Cookie, SDK.CookieModel.BlockedReason[]>;
|
|
@@ -280,13 +287,13 @@ export class CookiesTable extends UI.Widget.VBox {
|
|
|
280
287
|
</th>` : ''}
|
|
281
288
|
</tr>
|
|
282
289
|
${repeat(this.data, cookie => cookie.key, cookie => {
|
|
283
|
-
const isHttpOnly = cookie['http-only']
|
|
290
|
+
const isHttpOnly = Boolean(cookie['http-only']);
|
|
284
291
|
return html`
|
|
285
292
|
<tr ?selected=${cookie.key === input.selectedKey}
|
|
286
293
|
?inactive=${cookie.inactive}
|
|
287
294
|
?dirty=${cookie.dirty}
|
|
288
295
|
?highlighted=${cookie.flagged}
|
|
289
|
-
@edit=${(e: CustomEvent<{columnId: string, valueBeforeEditing: string, newText: string}>) =>
|
|
296
|
+
@edit=${(e: CustomEvent<{columnId: string, valueBeforeEditing: string|boolean, newText: string|boolean}>) =>
|
|
290
297
|
input.onEdit(cookie, e.detail.columnId, e.detail.valueBeforeEditing, e.detail.newText)}
|
|
291
298
|
@delete=${()=> input.onDelete(cookie)}
|
|
292
299
|
@contextmenu=${(e: CustomEvent<UI.ContextMenu.ContextMenu>) => input.onContextMenu(cookie, e.detail)}
|
|
@@ -479,7 +486,8 @@ export class CookiesTable extends UI.Widget.VBox {
|
|
|
479
486
|
}
|
|
480
487
|
}
|
|
481
488
|
|
|
482
|
-
private onUpdateCookie(oldData: CookieData, columnIdentifier: string, _oldText: string,
|
|
489
|
+
private onUpdateCookie(oldData: CookieData, columnIdentifier: string, _oldText: string|boolean,
|
|
490
|
+
newText: string|boolean): void {
|
|
483
491
|
const oldCookie = this.cookies.find(cookie => cookie.key() === oldData.key);
|
|
484
492
|
if (!oldCookie) {
|
|
485
493
|
return;
|
|
@@ -547,7 +555,14 @@ export class CookiesTable extends UI.Widget.VBox {
|
|
|
547
555
|
of [SDK.Cookie.Attribute.DOMAIN, SDK.Cookie.Attribute.PATH, SDK.Cookie.Attribute.HTTP_ONLY,
|
|
548
556
|
SDK.Cookie.Attribute.SECURE, SDK.Cookie.Attribute.SAME_SITE, SDK.Cookie.Attribute.SOURCE_SCHEME]) {
|
|
549
557
|
if (attribute in data) {
|
|
550
|
-
|
|
558
|
+
const value = data[attribute];
|
|
559
|
+
if (isFlagAttribute(attribute)) {
|
|
560
|
+
if (value === true) {
|
|
561
|
+
cookie.addAttribute(attribute);
|
|
562
|
+
}
|
|
563
|
+
} else {
|
|
564
|
+
cookie.addAttribute(attribute, value);
|
|
565
|
+
}
|
|
551
566
|
}
|
|
552
567
|
}
|
|
553
568
|
if (data.expires && data.expires !== expiresSessionValue()) {
|
|
@@ -559,11 +574,8 @@ export class CookiesTable extends UI.Widget.VBox {
|
|
|
559
574
|
Number.parseInt(data[SDK.Cookie.Attribute.SOURCE_PORT] || '', 10) || undefined);
|
|
560
575
|
}
|
|
561
576
|
if (data[SDK.Cookie.Attribute.PARTITION_KEY_SITE]) {
|
|
562
|
-
cookie.setPartitionKey(
|
|
563
|
-
|
|
564
|
-
Boolean(
|
|
565
|
-
data[SDK.Cookie.Attribute.HAS_CROSS_SITE_ANCESTOR] ? data[SDK.Cookie.Attribute.HAS_CROSS_SITE_ANCESTOR] :
|
|
566
|
-
false));
|
|
577
|
+
cookie.setPartitionKey(data[SDK.Cookie.Attribute.PARTITION_KEY_SITE],
|
|
578
|
+
data[SDK.Cookie.Attribute.HAS_CROSS_SITE_ANCESTOR] === true);
|
|
567
579
|
}
|
|
568
580
|
cookie.setSize(data[SDK.Cookie.Attribute.NAME].length + data[SDK.Cookie.Attribute.VALUE].length);
|
|
569
581
|
return cookie;
|
|
@@ -578,7 +590,11 @@ export class CookiesTable extends UI.Widget.VBox {
|
|
|
578
590
|
of [SDK.Cookie.Attribute.HTTP_ONLY, SDK.Cookie.Attribute.SECURE, SDK.Cookie.Attribute.SAME_SITE,
|
|
579
591
|
SDK.Cookie.Attribute.SOURCE_SCHEME, SDK.Cookie.Attribute.SOURCE_PORT]) {
|
|
580
592
|
if (cookie.hasAttribute(attribute)) {
|
|
581
|
-
|
|
593
|
+
if (isFlagAttribute(attribute)) {
|
|
594
|
+
data[attribute] = true;
|
|
595
|
+
} else {
|
|
596
|
+
data[attribute] = String(cookie.getAttribute(attribute) ?? true);
|
|
597
|
+
}
|
|
582
598
|
}
|
|
583
599
|
}
|
|
584
600
|
data[SDK.Cookie.Attribute.DOMAIN] = cookie.domain() || (isRequest ? i18nString(UIStrings.na) : '');
|
|
@@ -596,7 +612,7 @@ export class CookiesTable extends UI.Widget.VBox {
|
|
|
596
612
|
}
|
|
597
613
|
data[SDK.Cookie.Attribute.PARTITION_KEY_SITE] =
|
|
598
614
|
cookie.partitionKeyOpaque() ? i18nString(UIStrings.opaquePartitionKey).toString() : cookie.topLevelSite();
|
|
599
|
-
data[SDK.Cookie.Attribute.HAS_CROSS_SITE_ANCESTOR] = cookie.hasCrossSiteAncestor()
|
|
615
|
+
data[SDK.Cookie.Attribute.HAS_CROSS_SITE_ANCESTOR] = cookie.hasCrossSiteAncestor();
|
|
600
616
|
data[SDK.Cookie.Attribute.SIZE] = String(cookie.size());
|
|
601
617
|
data[SDK.Cookie.Attribute.PRIORITY] = cookie.priority();
|
|
602
618
|
data.priorityValue = ['Low', 'Medium', 'High'].indexOf(cookie.priority());
|
|
@@ -285,7 +285,9 @@ export class DataGridElement extends UI.UIUtils.HTMLElementWithLightDOMTemplate
|
|
|
285
285
|
if (align !== Align.CENTER && align !== Align.RIGHT) {
|
|
286
286
|
align = undefined;
|
|
287
287
|
}
|
|
288
|
-
const
|
|
288
|
+
const typeAttr = column.getAttribute('type');
|
|
289
|
+
const dataType =
|
|
290
|
+
typeAttr === 'boolean' ? DataType.BOOLEAN : (typeAttr === 'numeric' ? DataType.NUMBER : DataType.STRING);
|
|
289
291
|
const weight = parseFloat(column.getAttribute('weight') || '') ?? undefined;
|
|
290
292
|
const editable = column.hasAttribute('editable');
|
|
291
293
|
if (editable) {
|
|
@@ -318,7 +320,6 @@ export class DataGridElement extends UI.UIUtils.HTMLElementWithLightDOMTemplate
|
|
|
318
320
|
const visibleColumns = new Set(this.#columns.map(({id}) => id).filter(id => !this.#hiddenColumns.has(id)));
|
|
319
321
|
this.#dataGrid.setColumnsVisibility(visibleColumns);
|
|
320
322
|
this.#dataGrid.setEditCallback(hasEditableColumn ? this.#editCallback.bind(this) : undefined, INTERNAL_TOKEN);
|
|
321
|
-
this.#dataGrid.deleteCallback = this.#deleteCallback.bind(this);
|
|
322
323
|
}
|
|
323
324
|
|
|
324
325
|
#needUpdateColumns(mutationList: MutationRecord[]): boolean {
|
|
@@ -509,8 +510,8 @@ export class DataGridElement extends UI.UIUtils.HTMLElementWithLightDOMTemplate
|
|
|
509
510
|
}
|
|
510
511
|
}
|
|
511
512
|
|
|
512
|
-
#editCallback(node: DataGridElementNode, columnId: string, valueBeforeEditing: string,
|
|
513
|
-
moveDirection?: string): void {
|
|
513
|
+
#editCallback(node: DataGridElementNode, columnId: string, valueBeforeEditing: string|boolean,
|
|
514
|
+
newText: string|boolean, moveDirection?: string): void {
|
|
514
515
|
if (node.isCreationNode) {
|
|
515
516
|
this.#usedCreationNode = node;
|
|
516
517
|
let hasNextEditableColumn = false;
|
|
@@ -543,6 +544,9 @@ export class DataGridElement extends UI.UIUtils.HTMLElementWithLightDOMTemplate
|
|
|
543
544
|
if (args[0] === 'refresh') {
|
|
544
545
|
this.#dataGrid.refreshCallback = this.#refreshCallback.bind(this);
|
|
545
546
|
}
|
|
547
|
+
if (args[0] === 'delete') {
|
|
548
|
+
this.#dataGrid.deleteCallback = this.#deleteCallback.bind(this);
|
|
549
|
+
}
|
|
546
550
|
}
|
|
547
551
|
|
|
548
552
|
#refreshCallback(): void {
|
|
@@ -12,7 +12,7 @@ import type * as NetworkTimeCalculator from '../../../../models/network_time_cal
|
|
|
12
12
|
import * as Trace from '../../../../models/trace/trace.js';
|
|
13
13
|
import * as VisualLogging from '../../../../ui/visual_logging/visual_logging.js';
|
|
14
14
|
import * as Buttons from '../../../components/buttons/buttons.js';
|
|
15
|
-
import {html, render, type TemplateResult} from '../../../lit/lit.js';
|
|
15
|
+
import {html, nothing, render, type TemplateResult} from '../../../lit/lit.js';
|
|
16
16
|
import * as UI from '../../legacy.js';
|
|
17
17
|
import * as ThemeSupport from '../../theme_support/theme_support.js';
|
|
18
18
|
|
|
@@ -621,7 +621,7 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
|
621
621
|
|
|
622
622
|
hideHighlight(): void {
|
|
623
623
|
if (this.#searchResultEntryIndex === null) {
|
|
624
|
-
this
|
|
624
|
+
this.#renderPopover(nothing);
|
|
625
625
|
this.lastPopoverState = {
|
|
626
626
|
entryIndex: -1,
|
|
627
627
|
groupIndex: -1,
|
|
@@ -794,7 +794,7 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
|
794
794
|
this.viewportElement.style.cursor = 'pointer';
|
|
795
795
|
const iconTooltipElement = this.#prepareIconInfo(groupIndex, hoverType);
|
|
796
796
|
if (iconTooltipElement) {
|
|
797
|
-
this
|
|
797
|
+
this.#renderPopover(iconTooltipElement);
|
|
798
798
|
this.updatePopoverOffset();
|
|
799
799
|
}
|
|
800
800
|
return;
|
|
@@ -923,9 +923,13 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
|
923
923
|
};
|
|
924
924
|
}
|
|
925
925
|
|
|
926
|
-
|
|
926
|
+
#renderPopover(content: Element|TemplateResult|string|typeof nothing): void {
|
|
927
927
|
// eslint-disable-next-line @devtools/no-lit-render-outside-of-view
|
|
928
|
-
render(html`${
|
|
928
|
+
render(html`${content}`, this.popoverElement);
|
|
929
|
+
}
|
|
930
|
+
|
|
931
|
+
updatePopoverContents(popoverElement: Element|TemplateResult): void {
|
|
932
|
+
this.#renderPopover(popoverElement);
|
|
929
933
|
// Must update the offset AFTER the new content has been added.
|
|
930
934
|
this.updatePopoverOffset();
|
|
931
935
|
this.lastPopoverState.entryIndex = -1;
|
|
@@ -941,13 +945,14 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
|
941
945
|
if (groupIndex === this.lastPopoverState.groupIndex) {
|
|
942
946
|
return this.updatePopoverOffset();
|
|
943
947
|
}
|
|
944
|
-
this.popoverElement.removeChildren();
|
|
945
948
|
const data = this.timelineData();
|
|
946
949
|
if (!data) {
|
|
950
|
+
this.#renderPopover(nothing);
|
|
947
951
|
return;
|
|
948
952
|
}
|
|
949
953
|
const group = data.groups.at(groupIndex);
|
|
950
954
|
if (!group) {
|
|
955
|
+
this.#renderPopover(nothing);
|
|
951
956
|
return;
|
|
952
957
|
}
|
|
953
958
|
// Only show a popover tooltip if the group has a pre-defined `fullTrackName`
|
|
@@ -956,8 +961,10 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
|
956
961
|
const fullTrackName = group.fullTrackName;
|
|
957
962
|
|
|
958
963
|
if (fullTrackName) {
|
|
959
|
-
this
|
|
964
|
+
this.#renderPopover(fullTrackName);
|
|
960
965
|
this.updatePopoverOffset();
|
|
966
|
+
} else {
|
|
967
|
+
this.#renderPopover(nothing);
|
|
961
968
|
}
|
|
962
969
|
this.lastPopoverState = {
|
|
963
970
|
groupIndex,
|
|
@@ -228,7 +228,17 @@ export class CommandMenu {
|
|
|
228
228
|
if (!options || !registeredSettingUI.uiDescriptor.category) {
|
|
229
229
|
continue;
|
|
230
230
|
}
|
|
231
|
-
|
|
231
|
+
let setting: Common.Settings.Setting<unknown>;
|
|
232
|
+
if ('isAvailable' in registeredSettingUI.descriptor) {
|
|
233
|
+
const settingResult = Common.Settings.Settings.instance().maybeResolve(
|
|
234
|
+
registeredSettingUI.descriptor as Common.Settings.ConditionalSettingDescriptor<unknown, unknown>);
|
|
235
|
+
if (!('setting' in settingResult)) {
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
238
|
+
setting = settingResult.setting;
|
|
239
|
+
} else {
|
|
240
|
+
setting = Common.Settings.Settings.instance().resolve(registeredSettingUI.descriptor);
|
|
241
|
+
}
|
|
232
242
|
for (const pair of options) {
|
|
233
243
|
this.#commands.push(
|
|
234
244
|
CommandMenu.createSettingCommand(setting, pair.title(), pair.value, registeredSettingUI.uiDescriptor));
|
|
@@ -2601,6 +2601,7 @@ export const knownContextValues = new Set([
|
|
|
2601
2601
|
'lmi-interpreter-settings',
|
|
2602
2602
|
'lo',
|
|
2603
2603
|
'load',
|
|
2604
|
+
'load-cpu-profile-confirmation',
|
|
2604
2605
|
'load-through-target',
|
|
2605
2606
|
'loadeddata',
|
|
2606
2607
|
'loadedmetadata',
|
|
@@ -2614,6 +2615,7 @@ export const knownContextValues = new Set([
|
|
|
2614
2615
|
'local-storage-for-domain',
|
|
2615
2616
|
'locale',
|
|
2616
2617
|
'location',
|
|
2618
|
+
'location-dialog',
|
|
2617
2619
|
'log-level',
|
|
2618
2620
|
'logpoint',
|
|
2619
2621
|
'long',
|
|
@@ -2861,6 +2863,7 @@ export const knownContextValues = new Set([
|
|
|
2861
2863
|
'network.add-network-request-blocking-pattern',
|
|
2862
2864
|
'network.blocked-urls',
|
|
2863
2865
|
'network.clear',
|
|
2866
|
+
'network.clear-all',
|
|
2864
2867
|
'network.config',
|
|
2865
2868
|
'network.enable-remote-file-loading',
|
|
2866
2869
|
'network.enable-remote-file-loading-documentation',
|
package/package.json
CHANGED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
// Copyright 2025 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
|
-
import * as i18n from '../../core/i18n/i18n.js';
|
|
6
|
-
import * as Workspace from '../../models/workspace/workspace.js';
|
|
7
|
-
import type * as TextEditor from '../../ui/components/text_editor/text_editor.js';
|
|
8
|
-
import * as SourceFrame from '../../ui/legacy/components/source_frame/source_frame.js';
|
|
9
|
-
import * as UI from '../../ui/legacy/legacy.js';
|
|
10
|
-
|
|
11
|
-
import {Plugin} from './Plugin.js';
|
|
12
|
-
|
|
13
|
-
const UIStrings = {
|
|
14
|
-
/**
|
|
15
|
-
* @description Infobar text announcing that the file contents have been changed by AI
|
|
16
|
-
*/
|
|
17
|
-
aiContentWarning: 'This file contains AI-generated content',
|
|
18
|
-
} as const;
|
|
19
|
-
const str_ = i18n.i18n.registerUIStrings('panels/sources/AiWarningInfobarPlugin.ts', UIStrings);
|
|
20
|
-
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
21
|
-
|
|
22
|
-
export class AiWarningInfobarPlugin extends Plugin {
|
|
23
|
-
#editor: TextEditor.TextEditor.TextEditor|undefined = undefined;
|
|
24
|
-
#aiWarningInfobar: UI.Infobar.Infobar|null = null;
|
|
25
|
-
|
|
26
|
-
constructor(uiSourceCode: Workspace.UISourceCode.UISourceCode) {
|
|
27
|
-
super(uiSourceCode);
|
|
28
|
-
this.uiSourceCode.addEventListener(
|
|
29
|
-
Workspace.UISourceCode.Events.WorkingCopyCommitted, this.#onWorkingCopyCommitted, this);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
override dispose(): void {
|
|
33
|
-
this.#aiWarningInfobar?.dispose();
|
|
34
|
-
this.#aiWarningInfobar = null;
|
|
35
|
-
this.uiSourceCode.removeEventListener(
|
|
36
|
-
Workspace.UISourceCode.Events.WorkingCopyCommitted, this.#onWorkingCopyCommitted, this);
|
|
37
|
-
super.dispose();
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
static override accepts(uiSourceCode: Workspace.UISourceCode.UISourceCode): boolean {
|
|
41
|
-
return uiSourceCode.contentType().hasScripts() || uiSourceCode.contentType().hasStyleSheets();
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
override editorInitialized(editor: TextEditor.TextEditor.TextEditor): void {
|
|
45
|
-
this.#editor = editor;
|
|
46
|
-
if (this.uiSourceCode.containsAiChanges()) {
|
|
47
|
-
this.#showAiWarningInfobar();
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
#onWorkingCopyCommitted(): void {
|
|
52
|
-
if (!this.uiSourceCode.containsAiChanges()) {
|
|
53
|
-
this.#aiWarningInfobar?.dispose();
|
|
54
|
-
this.#aiWarningInfobar = null;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
#showAiWarningInfobar(): void {
|
|
59
|
-
const infobar = new UI.Infobar.Infobar(
|
|
60
|
-
UI.Infobar.Type.WARNING, i18nString(UIStrings.aiContentWarning), undefined, undefined,
|
|
61
|
-
'contains-ai-content-warning');
|
|
62
|
-
this.#aiWarningInfobar = infobar;
|
|
63
|
-
infobar.setCloseCallback(() => this.removeInfobar(this.#aiWarningInfobar));
|
|
64
|
-
this.attachInfobar(this.#aiWarningInfobar);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
attachInfobar(bar: UI.Infobar.Infobar): void {
|
|
68
|
-
if (this.#editor) {
|
|
69
|
-
this.#editor.dispatch({effects: SourceFrame.SourceFrame.addSourceFrameInfobar.of({element: bar.element})});
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
removeInfobar(bar: UI.Infobar.Infobar|null): void {
|
|
74
|
-
if (this.#editor && bar) {
|
|
75
|
-
this.#editor.dispatch({effects: SourceFrame.SourceFrame.removeSourceFrameInfobar.of({element: bar.element})});
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|