chrome-devtools-frontend 1.0.1578729 → 1.0.1581449
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/creating-a-model.md +51 -0
- package/docs/cookbook/devtools_on_devtools.md +2 -2
- package/docs/feature-specs/elements-gutter-decorators.md +40 -0
- package/docs/feature-specs/elements-tree-edit-html.md +14 -0
- package/docs/feature-specs/elements-tree-node-title.md +46 -0
- package/docs/feature-specs/elements-tree-selection-and-hover.md +31 -0
- package/docs/feature-specs/images/elements-gutter-decorators-multiple.png +0 -0
- package/docs/get_the_code.md +3 -3
- package/front_end/core/host/UserMetrics.ts +3 -7
- package/front_end/core/root/Runtime.ts +0 -1
- package/front_end/core/sdk/NetworkManager.ts +0 -35
- package/front_end/core/sdk/OverlayModel.ts +10 -0
- package/front_end/devtools_compatibility.js +4 -0
- package/front_end/entrypoints/devtools_app/devtools_app.ts +1 -0
- package/front_end/entrypoints/greendev_floaty/FloatyEntrypoint.ts +530 -0
- package/front_end/entrypoints/greendev_floaty/floaty.css +258 -0
- package/front_end/entrypoints/greendev_floaty/floaty.html +31 -0
- package/front_end/entrypoints/greendev_floaty/greendev_floaty.ts +422 -0
- package/front_end/entrypoints/inspector_main/InspectorMain.ts +0 -38
- package/front_end/generated/ARIAProperties.js +0 -6
- package/front_end/generated/InspectorBackendCommands.ts +10 -4
- package/front_end/generated/SupportedCSSProperties.js +39 -31
- package/front_end/generated/protocol-mapping.d.ts +12 -0
- package/front_end/generated/protocol-proxy-api.d.ts +12 -0
- package/front_end/generated/protocol.ts +57 -2
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.snapshot.txt +32 -2
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +110 -6
- package/front_end/models/computed_style/computed_style.ts +9 -0
- package/front_end/models/issues_manager/CorsIssue.ts +11 -14
- package/front_end/models/javascript_metadata/NativeFunctions.js +4 -0
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +33 -4
- package/front_end/panels/ai_assistance/components/ChatInput.ts +52 -19
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +7 -4
- package/front_end/panels/ai_assistance/components/ChatView.ts +4 -0
- package/front_end/panels/ai_assistance/components/chatInput.css +10 -3
- package/front_end/panels/application/DeviceBoundSessionsView.ts +51 -76
- package/front_end/panels/changes/changesSidebar.css +5 -0
- package/front_end/panels/common/AiCodeGenerationTeaser.ts +2 -2
- package/front_end/panels/common/AiCodeGenerationUpgradeDialog.ts +4 -4
- package/front_end/panels/common/ExtensionPanel.ts +4 -0
- package/front_end/panels/common/FreDialog.ts +4 -0
- package/front_end/panels/coverage/CoverageListView.ts +18 -3
- package/front_end/panels/elements/AdoptedStyleSheetTreeElement.ts +89 -0
- package/front_end/panels/elements/ComputedStyleWidget.ts +12 -8
- package/front_end/panels/elements/ElementsPanel.ts +4 -3
- package/front_end/panels/elements/ElementsSidebarPane.ts +11 -8
- package/front_end/panels/elements/ElementsTreeElement.ts +92 -121
- package/front_end/panels/elements/ElementsTreeOutline.ts +26 -15
- package/front_end/panels/elements/MetricsSidebarPane.ts +2 -2
- package/front_end/panels/elements/PlatformFontsWidget.ts +7 -5
- package/front_end/panels/elements/PropertiesWidget.ts +3 -6
- package/front_end/panels/elements/StylesSidebarPane.ts +4 -3
- package/front_end/panels/elements/elements.ts +4 -3
- package/front_end/panels/elements/elementsTreeOutline.css +16 -5
- package/front_end/panels/greendev/GreenDevPanel.css +241 -0
- package/front_end/panels/greendev/GreenDevPanel.ts +308 -0
- package/front_end/panels/greendev/GreenDevShared.ts +13 -0
- package/front_end/panels/greendev/greendev-meta.ts +52 -0
- package/front_end/panels/greendev/greendev.ts +9 -0
- package/front_end/panels/issues/CorsIssueDetailsView.ts +4 -4
- package/front_end/panels/lighthouse/LighthouseStartView.ts +1 -1
- package/front_end/panels/lighthouse/lighthouseStartView.css +6 -0
- package/front_end/panels/network/NetworkLogView.ts +2 -5
- package/front_end/panels/security/SecurityPanel.ts +0 -4
- package/front_end/panels/security/SecurityPanelSidebar.ts +2 -42
- package/front_end/panels/security/security-meta.ts +2 -14
- package/front_end/panels/security/security.ts +0 -4
- package/front_end/panels/settings/EditFileSystemView.ts +8 -8
- package/front_end/panels/settings/SettingsScreen.ts +4 -4
- package/front_end/panels/sources/SourcesSearchScope.ts +2 -1
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +47 -26
- package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.ts +121 -39
- package/front_end/panels/timeline/overlays/components/timespanBreakdownOverlay.css +106 -101
- 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/cjs/puppeteer/api/Browser.d.ts +35 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js +19 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts +16 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +21 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js +6 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.d.ts +13 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.js +56 -36
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js +32 -8
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts +5 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js +32 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts +3 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +20 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +25 -8
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js +23 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts +3 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js +10 -6
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts +29 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js +46 -6
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts +5 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js +18 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js +13 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/JSHandle.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/JSHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +7 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +43 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.d.ts +10 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.js +34 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Cookie.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Cookie.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/XPathQuerySelector.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/XPathQuerySelector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts +4 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +129 -3
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +233 -65
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +35 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js +19 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts +16 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +21 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js +6 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.d.ts +13 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.js +56 -36
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js +30 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts +5 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js +32 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts +3 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +20 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +25 -8
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js +23 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts +3 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js +10 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts +29 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js +46 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts +5 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js +19 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js +14 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/JSHandle.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/JSHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +7 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +43 -8
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.d.ts +10 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.js +31 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Cookie.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Cookie.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/XPathQuerySelector.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/XPathQuerySelector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts +4 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +129 -3
- package/front_end/third_party/puppeteer/package/package.json +4 -4
- package/front_end/third_party/puppeteer/package/src/api/Browser.ts +46 -0
- package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +21 -0
- package/front_end/third_party/puppeteer/package/src/api/Frame.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +23 -0
- package/front_end/third_party/puppeteer/package/src/api/locators/locators.ts +88 -56
- package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +33 -8
- package/front_end/third_party/puppeteer/package/src/bidi/BrowserContext.ts +61 -3
- package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +23 -2
- package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +29 -8
- package/front_end/third_party/puppeteer/package/src/bidi/core/Browser.ts +30 -0
- package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +13 -2
- package/front_end/third_party/puppeteer/package/src/bidi/core/UserContext.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +85 -8
- package/front_end/third_party/puppeteer/package/src/cdp/BrowserContext.ts +36 -1
- package/front_end/third_party/puppeteer/package/src/cdp/ExecutionContext.ts +5 -5
- package/front_end/third_party/puppeteer/package/src/cdp/HTTPRequest.ts +23 -2
- package/front_end/third_party/puppeteer/package/src/cdp/JSHandle.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +60 -8
- package/front_end/third_party/puppeteer/package/src/cdp/utils.ts +36 -3
- package/front_end/third_party/puppeteer/package/src/common/Cookie.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/injected/XPathQuerySelector.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +2 -0
- package/front_end/third_party/puppeteer/package/src/node/LaunchOptions.ts +4 -0
- package/front_end/third_party/puppeteer/package/src/node/PuppeteerNode.ts +8 -6
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
- package/front_end/ui/components/text_editor/AutocompleteHistory.ts +2 -1
- package/front_end/ui/components/text_editor/TextEditorHistory.ts +1 -1
- package/front_end/ui/legacy/InplaceEditor.ts +1 -1
- package/front_end/ui/legacy/SearchableView.ts +5 -2
- package/front_end/ui/legacy/Widget.ts +15 -0
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +6 -0
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +50 -1
- package/front_end/ui/legacy/components/data_grid/SortableDataGrid.ts +59 -9
- package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +2 -1
- package/front_end/ui/legacy/components/data_grid/data_grid.ts +1 -0
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +28 -15
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +2 -2
- package/front_end/ui/legacy/components/settings_ui/SettingsUI.ts +3 -3
- package/front_end/ui/legacy/components/source_frame/JSONView.ts +2 -3
- package/front_end/ui/visual_logging/Debugging.ts +1 -1
- package/front_end/ui/visual_logging/KnownContextValues.ts +13 -0
- package/mcp/mcp.ts +1 -0
- package/package.json +1 -1
- package/front_end/panels/security/CookieControlsTreeElement.ts +0 -21
- package/front_end/panels/security/CookieControlsView.ts +0 -447
- package/front_end/panels/security/CookieReportTreeElement.ts +0 -21
- package/front_end/panels/security/CookieReportView.ts +0 -549
- package/front_end/panels/security/cookieControlsView.css +0 -139
- package/front_end/panels/security/cookieReportView.css +0 -90
- /package/front_end/{panels/elements → models/computed_style}/ComputedStyleModel.ts +0 -0
|
@@ -107,10 +107,11 @@ export class AutocompleteHistory {
|
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
next(): string|undefined {
|
|
110
|
+
next(currentText: string): string|undefined {
|
|
111
111
|
if (this.#historyOffset === 1) {
|
|
112
112
|
return undefined;
|
|
113
113
|
}
|
|
114
|
+
this.#saveCurrentEdit(currentText);
|
|
114
115
|
--this.#historyOffset;
|
|
115
116
|
return this.#currentHistoryItem();
|
|
116
117
|
}
|
|
@@ -48,7 +48,7 @@ export class TextEditorHistory {
|
|
|
48
48
|
|
|
49
49
|
const text = editor.state.doc.toString();
|
|
50
50
|
const history = this.#history;
|
|
51
|
-
const newText = isBackward ? history.previous(text) : history.next();
|
|
51
|
+
const newText = isBackward ? history.previous(text) : history.next(text);
|
|
52
52
|
if (newText === undefined) {
|
|
53
53
|
return false;
|
|
54
54
|
}
|
|
@@ -129,7 +129,7 @@ export class InplaceEditor<T> {
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
function defaultFinishHandler(event: KeyboardEvent): string {
|
|
132
|
-
if (event.key === 'Enter') {
|
|
132
|
+
if (event.key === 'Enter' && !event.shiftKey) {
|
|
133
133
|
return 'commit';
|
|
134
134
|
}
|
|
135
135
|
if (event.keyCode === Keys.Esc.code || event.key === Platform.KeyboardUtilities.ESCAPE_KEY) {
|
|
@@ -502,8 +502,10 @@ export class SearchableView extends VBox {
|
|
|
502
502
|
private updateSearchNavigationButtonState(enabled: boolean): void {
|
|
503
503
|
this.replaceButtonElement.disabled = !enabled;
|
|
504
504
|
this.replaceAllButtonElement.disabled = !enabled;
|
|
505
|
-
this.
|
|
506
|
-
|
|
505
|
+
if (this.searchProvider.supportsMatchCounts?.() === true) {
|
|
506
|
+
this.searchNavigationPrevElement.setEnabled(enabled);
|
|
507
|
+
this.searchNavigationNextElement.setEnabled(enabled);
|
|
508
|
+
}
|
|
507
509
|
}
|
|
508
510
|
|
|
509
511
|
private updateSearchMatchesCountAndCurrentMatchIndex(matches: number, currentMatchIndex: number): void {
|
|
@@ -682,6 +684,7 @@ export class SearchableView extends VBox {
|
|
|
682
684
|
const searchableViewsByElement = new WeakMap<Element, SearchableView>();
|
|
683
685
|
|
|
684
686
|
export interface Searchable {
|
|
687
|
+
supportsMatchCounts?(): boolean;
|
|
685
688
|
currentQuery?: string;
|
|
686
689
|
currentSearchMatches?: number;
|
|
687
690
|
onSearchCanceled(): void;
|
|
@@ -73,6 +73,7 @@ let currentUpdateQueue: Map<Widget, PromiseWithResolvers<void>>|null = null;
|
|
|
73
73
|
const currentlyProcessed = new Set<Widget>();
|
|
74
74
|
let nextUpdateQueue = new Map<Widget, PromiseWithResolvers<void>>();
|
|
75
75
|
let pendingAnimationFrame: number|null = null;
|
|
76
|
+
let overallUpdatePromise: PromiseWithResolvers<void>|null = null;
|
|
76
77
|
|
|
77
78
|
function enqueueIntoNextUpdateQueue(widget: Widget): Promise<void> {
|
|
78
79
|
const scheduledUpdate = nextUpdateQueue.get(widget) ?? Promise.withResolvers<void>();
|
|
@@ -132,6 +133,10 @@ function runNextUpdate(): void {
|
|
|
132
133
|
} else {
|
|
133
134
|
currentUpdateQueue = null;
|
|
134
135
|
currentlyProcessed.clear();
|
|
136
|
+
if (!pendingAnimationFrame && overallUpdatePromise) {
|
|
137
|
+
overallUpdatePromise.resolve();
|
|
138
|
+
overallUpdatePromise = null;
|
|
139
|
+
}
|
|
135
140
|
}
|
|
136
141
|
});
|
|
137
142
|
}
|
|
@@ -414,6 +419,16 @@ export class Widget {
|
|
|
414
419
|
return widgetMap.get(node);
|
|
415
420
|
}
|
|
416
421
|
|
|
422
|
+
static get allUpdatesComplete(): Promise<void> {
|
|
423
|
+
if (!pendingAnimationFrame && !currentUpdateQueue) {
|
|
424
|
+
return Promise.resolve();
|
|
425
|
+
}
|
|
426
|
+
if (!overallUpdatePromise) {
|
|
427
|
+
overallUpdatePromise = Promise.withResolvers<void>();
|
|
428
|
+
}
|
|
429
|
+
return overallUpdatePromise.promise;
|
|
430
|
+
}
|
|
431
|
+
|
|
417
432
|
static getOrCreateWidget(element: HTMLElement): Widget {
|
|
418
433
|
const widget = Widget.get(element);
|
|
419
434
|
if (widget) {
|
|
@@ -1679,6 +1679,8 @@ export const enum Events {
|
|
|
1679
1679
|
OPENED_NODE = 'OpenedNode',
|
|
1680
1680
|
SORTING_CHANGED = 'SortingChanged',
|
|
1681
1681
|
PADDING_CHANGED = 'PaddingChanged',
|
|
1682
|
+
EXPANDED_NODE = 'ExpandedNode',
|
|
1683
|
+
COLLAPSED_NODE = 'CollapsedNode',
|
|
1682
1684
|
}
|
|
1683
1685
|
|
|
1684
1686
|
export interface EventTypes<T> {
|
|
@@ -1687,6 +1689,8 @@ export interface EventTypes<T> {
|
|
|
1687
1689
|
[Events.OPENED_NODE]: DataGridNode<T>;
|
|
1688
1690
|
[Events.SORTING_CHANGED]: void;
|
|
1689
1691
|
[Events.PADDING_CHANGED]: void;
|
|
1692
|
+
[Events.EXPANDED_NODE]: DataGridNode<T>;
|
|
1693
|
+
[Events.COLLAPSED_NODE]: DataGridNode<T>;
|
|
1690
1694
|
}
|
|
1691
1695
|
|
|
1692
1696
|
export enum Order {
|
|
@@ -2227,6 +2231,7 @@ export class DataGridNode<T> {
|
|
|
2227
2231
|
for (let i = 0; i < this.children.length; ++i) {
|
|
2228
2232
|
this.children[i].revealed = false;
|
|
2229
2233
|
}
|
|
2234
|
+
this.dataGrid?.dispatchEventToListeners(Events.COLLAPSED_NODE, this);
|
|
2230
2235
|
}
|
|
2231
2236
|
|
|
2232
2237
|
collapseRecursively(): void {
|
|
@@ -2284,6 +2289,7 @@ export class DataGridNode<T> {
|
|
|
2284
2289
|
}
|
|
2285
2290
|
|
|
2286
2291
|
this.expandedInternal = true;
|
|
2292
|
+
this.dataGrid?.dispatchEventToListeners(Events.EXPANDED_NODE, this);
|
|
2287
2293
|
}
|
|
2288
2294
|
|
|
2289
2295
|
expandRecursively(): void {
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import type * as Platform from '../../../../core/platform/platform.js';
|
|
7
7
|
import type * as TextUtils from '../../../../models/text_utils/text_utils.js';
|
|
8
|
+
import * as Lit from '../../../lit/lit.js';
|
|
8
9
|
import * as UI from '../../legacy.js';
|
|
9
10
|
|
|
10
11
|
import dataGridStyles from './dataGrid.css.js';
|
|
@@ -81,6 +82,12 @@ class DataGridElement extends UI.UIUtils.HTMLElementWithLightDOMTemplate {
|
|
|
81
82
|
this.#dataGrid.addEventListener(
|
|
82
83
|
DataGridEvents.OPENED_NODE,
|
|
83
84
|
e => (e.data as DataGridElementNode).configElement.dispatchEvent(new CustomEvent('open')));
|
|
85
|
+
this.#dataGrid.addEventListener(
|
|
86
|
+
DataGridEvents.EXPANDED_NODE,
|
|
87
|
+
e => (e.data as DataGridElementNode).configElement.dispatchEvent(new CustomEvent('expand')));
|
|
88
|
+
this.#dataGrid.addEventListener(
|
|
89
|
+
DataGridEvents.COLLAPSED_NODE,
|
|
90
|
+
e => (e.data as DataGridElementNode).configElement.dispatchEvent(new CustomEvent('collapse')));
|
|
84
91
|
this.#dataGrid.addEventListener(DataGridEvents.SORTING_CHANGED, () => this.dispatchEvent(new CustomEvent('sort', {
|
|
85
92
|
detail: {columnId: this.#dataGrid.sortColumnId(), ascending: this.#dataGrid.isSortOrderAscending()}
|
|
86
93
|
})));
|
|
@@ -170,6 +177,14 @@ class DataGridElement extends UI.UIUtils.HTMLElementWithLightDOMTemplate {
|
|
|
170
177
|
return this.#columns;
|
|
171
178
|
}
|
|
172
179
|
|
|
180
|
+
#updateHasChildren(dataGridNode: DataGridElementNode, dataRow: Element): void {
|
|
181
|
+
let hasChildren = dataGridNode.children.length > 0;
|
|
182
|
+
if (!hasChildren) {
|
|
183
|
+
hasChildren = Boolean(dataRow.querySelector('td table'));
|
|
184
|
+
}
|
|
185
|
+
dataGridNode.setHasChildren(hasChildren);
|
|
186
|
+
}
|
|
187
|
+
|
|
173
188
|
#updateColumns(): void {
|
|
174
189
|
for (const column of Object.keys(this.#dataGrid.columns)) {
|
|
175
190
|
this.#dataGrid.removeColumn(column);
|
|
@@ -292,6 +307,7 @@ class DataGridElement extends UI.UIUtils.HTMLElementWithLightDOMTemplate {
|
|
|
292
307
|
const nextNode = this.#findNextExistingNode(element);
|
|
293
308
|
const index = nextNode ? parentNode.children.indexOf(nextNode) : parentNode.children.length;
|
|
294
309
|
const node = new DataGridElementNode(element, this);
|
|
310
|
+
this.#updateHasChildren(node, element);
|
|
295
311
|
if ((parentRow || node.hasChildren()) && !this.#dataGrid.disclosureColumnId) {
|
|
296
312
|
this.#dataGrid.disclosureColumnId = this.#columns[0].id;
|
|
297
313
|
}
|
|
@@ -319,7 +335,7 @@ class DataGridElement extends UI.UIUtils.HTMLElementWithLightDOMTemplate {
|
|
|
319
335
|
for (const element of this.#getDataRows(nodes)) {
|
|
320
336
|
const node = DataGridElementNode.get(element);
|
|
321
337
|
if (node) {
|
|
322
|
-
|
|
338
|
+
DataGridElementNode.remove(node);
|
|
323
339
|
}
|
|
324
340
|
}
|
|
325
341
|
}
|
|
@@ -344,6 +360,7 @@ class DataGridElement extends UI.UIUtils.HTMLElementWithLightDOMTemplate {
|
|
|
344
360
|
} else if (attributeName === 'highlighted') {
|
|
345
361
|
dataGridNode.setHighlighted(hasBooleanAttribute(dataRow, 'highlighted'));
|
|
346
362
|
} else {
|
|
363
|
+
this.#updateHasChildren(dataGridNode, dataRow);
|
|
347
364
|
dataGridNode.refresh();
|
|
348
365
|
}
|
|
349
366
|
}
|
|
@@ -591,3 +608,35 @@ export interface DataGridInternalToken {
|
|
|
591
608
|
const INTERNAL_TOKEN: DataGridInternalToken = {
|
|
592
609
|
token: 'DataGridInternalToken'
|
|
593
610
|
};
|
|
611
|
+
|
|
612
|
+
export const ifExpanded = Lit.Directive.directive(class extends Lit.Directive.Directive {
|
|
613
|
+
#partInfo: {type: Lit.Directive.PartType, startNode: Node};
|
|
614
|
+
constructor(partInfo: Lit.Directive.PartInfo) {
|
|
615
|
+
if (partInfo.type !== Lit.Directive.PartType.CHILD) {
|
|
616
|
+
throw new Error('expand directive must be used in a child node');
|
|
617
|
+
}
|
|
618
|
+
super(partInfo);
|
|
619
|
+
this.#partInfo = partInfo as {type: Lit.Directive.PartType, startNode: Node};
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
render(content: () => Lit.TemplateResult): Lit.LitTemplate {
|
|
623
|
+
return this.#isInExpandedRow(this.#partInfo.startNode) ? content() : Lit.nothing;
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
#isInExpandedRow(element: Node|null|undefined): boolean {
|
|
627
|
+
if (!element) {
|
|
628
|
+
return false;
|
|
629
|
+
}
|
|
630
|
+
if (!(element instanceof HTMLElement)) {
|
|
631
|
+
element = element.parentNode;
|
|
632
|
+
}
|
|
633
|
+
if (!(element instanceof HTMLElement)) {
|
|
634
|
+
return false;
|
|
635
|
+
}
|
|
636
|
+
const node = DataGridElementNode.get(element.closest('tr') ?? undefined);
|
|
637
|
+
if (!node) {
|
|
638
|
+
return false;
|
|
639
|
+
}
|
|
640
|
+
return node.expanded;
|
|
641
|
+
}
|
|
642
|
+
});
|
|
@@ -22,10 +22,8 @@ export class SortableDataGrid<T> extends ViewportDataGrid<SortableDataGridNode<T
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
static NumericComparator<T>(columnId: string, a: SortableDataGridNode<T>, b: SortableDataGridNode<T>): number {
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const aNumber = Number(aValue instanceof Node ? aValue.textContent : aValue);
|
|
28
|
-
const bNumber = Number(bValue instanceof Node ? bValue.textContent : bValue);
|
|
25
|
+
const aNumber = a.getNumericValue(columnId);
|
|
26
|
+
const bNumber = b.getNumericValue(columnId);
|
|
29
27
|
return aNumber < bNumber ? -1 : (aNumber > bNumber ? 1 : 0);
|
|
30
28
|
}
|
|
31
29
|
|
|
@@ -127,6 +125,54 @@ export class SortableDataGrid<T> extends ViewportDataGrid<SortableDataGridNode<T
|
|
|
127
125
|
}
|
|
128
126
|
|
|
129
127
|
export class SortableDataGridNode<T> extends ViewportDataGridNode<SortableDataGridNode<T>> {
|
|
128
|
+
#numericData = new Map<string, number>();
|
|
129
|
+
#childrenDirty = true;
|
|
130
|
+
#lastSortingFunction: (<T>(a: SortableDataGridNode<T>, b: SortableDataGridNode<T>) => number)|null = null;
|
|
131
|
+
|
|
132
|
+
override get data(): DataGridData {
|
|
133
|
+
return super.data;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
override set data(x: DataGridData) {
|
|
137
|
+
this.#numericData.clear();
|
|
138
|
+
super.data = x;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
getNumericValue(columnId: string): number {
|
|
142
|
+
let value = this.#numericData.get(columnId);
|
|
143
|
+
if (value === undefined) {
|
|
144
|
+
const rawValue = this.data[columnId];
|
|
145
|
+
value = Number(rawValue instanceof Node ? rawValue.textContent : rawValue);
|
|
146
|
+
this.#numericData.set(columnId, value);
|
|
147
|
+
}
|
|
148
|
+
return value;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
override insertChild(child: SortableDataGridNode<T>, index: number): void {
|
|
152
|
+
super.insertChild(child, index);
|
|
153
|
+
this.#childrenDirty = true;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
override removeChild(child: SortableDataGridNode<T>): void {
|
|
157
|
+
super.removeChild(child);
|
|
158
|
+
this.#childrenDirty = true;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
override refresh(): void {
|
|
162
|
+
this.#numericData.clear();
|
|
163
|
+
super.refresh();
|
|
164
|
+
(this.parent as SortableDataGridNode<T>| null)?.markChildrenDirty();
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
override expand(): void {
|
|
168
|
+
super.expand();
|
|
169
|
+
this.sortChildren();
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
markChildrenDirty(): void {
|
|
173
|
+
this.#childrenDirty = true;
|
|
174
|
+
}
|
|
175
|
+
|
|
130
176
|
insertChildOrdered(node: SortableDataGridNode<T>): void {
|
|
131
177
|
const dataGrid = (this.dataGrid as SortableDataGrid<T>| null);
|
|
132
178
|
if (dataGrid) {
|
|
@@ -139,13 +185,17 @@ export class SortableDataGridNode<T> extends ViewportDataGridNode<SortableDataGr
|
|
|
139
185
|
|
|
140
186
|
sortChildren(): void {
|
|
141
187
|
const dataGrid = (this.dataGrid as SortableDataGrid<T>| null);
|
|
142
|
-
if (!dataGrid) {
|
|
188
|
+
if (!dataGrid || !this.expanded) {
|
|
143
189
|
return;
|
|
144
190
|
}
|
|
145
|
-
(this
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
191
|
+
if (this.#childrenDirty || this.#lastSortingFunction !== dataGrid.sortingFunction) {
|
|
192
|
+
(this.children as Array<SortableDataGridNode<T>>).sort(dataGrid.sortingFunction);
|
|
193
|
+
this.#childrenDirty = false;
|
|
194
|
+
this.#lastSortingFunction = dataGrid.sortingFunction;
|
|
195
|
+
for (let i = 0; i < this.children.length; ++i) {
|
|
196
|
+
const child = (this.children[i] as SortableDataGridNode<T>);
|
|
197
|
+
child.recalculateSiblings(i);
|
|
198
|
+
}
|
|
149
199
|
}
|
|
150
200
|
for (let i = 0; i < this.children.length; ++i) {
|
|
151
201
|
const child = (this.children[i] as SortableDataGridNode<T>);
|
|
@@ -7,7 +7,7 @@ import * as Platform from '../../../../core/platform/platform.js';
|
|
|
7
7
|
import type * as TextUtils from '../../../../models/text_utils/text_utils.js';
|
|
8
8
|
import * as RenderCoordinator from '../../../components/render_coordinator/render_coordinator.js';
|
|
9
9
|
|
|
10
|
-
import {type DataGridData, DataGridImpl, DataGridNode, type Parameters} from './DataGrid.js';
|
|
10
|
+
import {type DataGridData, DataGridImpl, DataGridNode, Events as DataGridEvents, type Parameters} from './DataGrid.js';
|
|
11
11
|
|
|
12
12
|
let nextId = 0;
|
|
13
13
|
|
|
@@ -492,6 +492,7 @@ export class ViewportDataGridNode<T> extends DataGridNode<ViewportDataGridNode<T
|
|
|
492
492
|
(this.dataGrid as ViewportDataGrid<T>).announceSelectedGridNode();
|
|
493
493
|
}
|
|
494
494
|
(this.dataGrid as ViewportDataGrid<T>).scheduleUpdateStructure();
|
|
495
|
+
this.dataGrid?.dispatchEventToListeners(DataGridEvents.COLLAPSED_NODE, this);
|
|
495
496
|
}
|
|
496
497
|
|
|
497
498
|
override expand(): void {
|
|
@@ -13,4 +13,5 @@ import * as ShowMoreDataGridNode from './ShowMoreDataGridNode.js';
|
|
|
13
13
|
import * as SortableDataGrid from './SortableDataGrid.js';
|
|
14
14
|
import * as ViewportDataGrid from './ViewportDataGrid.js';
|
|
15
15
|
|
|
16
|
+
export {ifExpanded} from './DataGridElement.js';
|
|
16
17
|
export {DataGrid, ShowMoreDataGridNode, SortableDataGrid, ViewportDataGrid};
|
|
@@ -496,16 +496,16 @@ export const getObjectPropertiesSectionFrom = (element: Element): ObjectProperti
|
|
|
496
496
|
|
|
497
497
|
export class ObjectPropertiesSection extends UI.TreeOutline.TreeOutlineInShadow {
|
|
498
498
|
private readonly root: ObjectTree;
|
|
499
|
-
editable: boolean;
|
|
499
|
+
readonly editable: boolean;
|
|
500
500
|
readonly #objectTreeElement: RootElement;
|
|
501
501
|
titleElement: Element;
|
|
502
502
|
skipProtoInternal?: boolean;
|
|
503
503
|
constructor(
|
|
504
504
|
object: SDK.RemoteObject.RemoteObject, title?: string|Element|null, linkifier?: Components.Linkifier.Linkifier,
|
|
505
|
-
showOverflow?: boolean) {
|
|
505
|
+
showOverflow?: boolean, editable = true) {
|
|
506
506
|
super();
|
|
507
507
|
this.root = new ObjectTree(object);
|
|
508
|
-
this.editable =
|
|
508
|
+
this.editable = editable;
|
|
509
509
|
if (!showOverflow) {
|
|
510
510
|
this.setHideOverflow(true);
|
|
511
511
|
}
|
|
@@ -549,14 +549,10 @@ export class ObjectPropertiesSection extends UI.TreeOutline.TreeOutlineInShadow
|
|
|
549
549
|
const propertyValue =
|
|
550
550
|
ObjectPropertiesSection.createPropertyValue(object, /* wasThrown */ false, /* showPreview */ true);
|
|
551
551
|
shadowRoot.appendChild(propertyValue);
|
|
552
|
-
const objectPropertiesSection = new ObjectPropertiesSection(object, titleElement, linkifier);
|
|
553
|
-
objectPropertiesSection.editable = false;
|
|
552
|
+
const objectPropertiesSection = new ObjectPropertiesSection(object, titleElement, linkifier, undefined, !readOnly);
|
|
554
553
|
if (skipProto) {
|
|
555
554
|
objectPropertiesSection.skipProto();
|
|
556
555
|
}
|
|
557
|
-
if (readOnly) {
|
|
558
|
-
objectPropertiesSection.setEditable(false);
|
|
559
|
-
}
|
|
560
556
|
|
|
561
557
|
return objectPropertiesSection;
|
|
562
558
|
}
|
|
@@ -863,10 +859,6 @@ export class ObjectPropertiesSection extends UI.TreeOutline.TreeOutlineInShadow
|
|
|
863
859
|
this.#objectTreeElement.expand();
|
|
864
860
|
}
|
|
865
861
|
|
|
866
|
-
setEditable(value: boolean): void {
|
|
867
|
-
this.editable = value;
|
|
868
|
-
}
|
|
869
|
-
|
|
870
862
|
objectTreeElement(): UI.TreeOutline.TreeElement {
|
|
871
863
|
return this.#objectTreeElement;
|
|
872
864
|
}
|
|
@@ -998,6 +990,7 @@ export class RootElement extends UI.TreeOutline.TreeElement {
|
|
|
998
990
|
export const InitialVisibleChildrenLimit = 200;
|
|
999
991
|
|
|
1000
992
|
export interface ObjectPropertyViewInput {
|
|
993
|
+
editable: boolean;
|
|
1001
994
|
startEditing(): unknown;
|
|
1002
995
|
invokeGetter(getter: SDK.RemoteObject.RemoteObject): unknown;
|
|
1003
996
|
onAutoComplete(expression: string, filter: string, force: boolean): unknown;
|
|
@@ -1075,7 +1068,7 @@ export const OBJECT_PROPERTY_DEFAULT_VIEW: ObjectPropertyView = (input, output,
|
|
|
1075
1068
|
return;
|
|
1076
1069
|
}
|
|
1077
1070
|
event.consume(true);
|
|
1078
|
-
if (property.value && !property.value.customPreview() && (property.writable || property.setter)) {
|
|
1071
|
+
if (input.editable && property.value && !property.value.customPreview() && (property.writable || property.setter)) {
|
|
1079
1072
|
input.startEditing();
|
|
1080
1073
|
}
|
|
1081
1074
|
};
|
|
@@ -1125,6 +1118,7 @@ export class ObjectPropertyWidget extends UI.Widget.Widget {
|
|
|
1125
1118
|
readonly #view: ObjectPropertyView;
|
|
1126
1119
|
#expanded = false;
|
|
1127
1120
|
#linkifier: Components.Linkifier.Linkifier|undefined;
|
|
1121
|
+
#editable = false;
|
|
1128
1122
|
|
|
1129
1123
|
constructor(target?: HTMLElement, view = OBJECT_PROPERTY_DEFAULT_VIEW) {
|
|
1130
1124
|
super(target);
|
|
@@ -1161,11 +1155,20 @@ export class ObjectPropertyWidget extends UI.Widget.Widget {
|
|
|
1161
1155
|
this.requestUpdate();
|
|
1162
1156
|
}
|
|
1163
1157
|
|
|
1158
|
+
get editable(): boolean {
|
|
1159
|
+
return this.#editable;
|
|
1160
|
+
}
|
|
1161
|
+
set editable(val: boolean) {
|
|
1162
|
+
this.#editable = val;
|
|
1163
|
+
this.requestUpdate();
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1164
1166
|
override performUpdate(): void {
|
|
1165
1167
|
if (!this.#property) {
|
|
1166
1168
|
return;
|
|
1167
1169
|
}
|
|
1168
1170
|
const input: ObjectPropertyViewInput = {
|
|
1171
|
+
editable: this.#editable,
|
|
1169
1172
|
expanded: this.#expanded,
|
|
1170
1173
|
editing: this.#editing,
|
|
1171
1174
|
editingEnded: this.#editingEnded.bind(this),
|
|
@@ -1366,6 +1369,13 @@ export class ObjectPropertyTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
1366
1369
|
return this.#widget.editing;
|
|
1367
1370
|
}
|
|
1368
1371
|
|
|
1372
|
+
get editable(): boolean {
|
|
1373
|
+
return this.#widget.editable;
|
|
1374
|
+
}
|
|
1375
|
+
set editable(val: boolean) {
|
|
1376
|
+
this.#widget.editable = val;
|
|
1377
|
+
}
|
|
1378
|
+
|
|
1369
1379
|
// This is called by layout tests
|
|
1370
1380
|
async applyExpression(expression: string): Promise<void> {
|
|
1371
1381
|
await this.property.setValue(expression);
|
|
@@ -1424,6 +1434,10 @@ export class ObjectPropertyTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
1424
1434
|
this.#widget.show(this.listItemElement);
|
|
1425
1435
|
this.#widget.property = this.property;
|
|
1426
1436
|
this.#widget.linkifier = this.linkifier;
|
|
1437
|
+
this.#widget.editable = this.treeOutline instanceof ObjectPropertiesSectionsTreeOutline ||
|
|
1438
|
+
this.treeOutline instanceof ObjectPropertiesSection ?
|
|
1439
|
+
this.treeOutline.editable :
|
|
1440
|
+
false;
|
|
1427
1441
|
}
|
|
1428
1442
|
|
|
1429
1443
|
override onexpand(): void {
|
|
@@ -1775,11 +1789,10 @@ export class Renderer implements UI.UIUtils.Renderer {
|
|
|
1775
1789
|
throw new Error('Can\'t render ' + object);
|
|
1776
1790
|
}
|
|
1777
1791
|
const title = options?.title;
|
|
1778
|
-
const section = new ObjectPropertiesSection(object, title);
|
|
1792
|
+
const section = new ObjectPropertiesSection(object, title, undefined, undefined, Boolean(options?.editable));
|
|
1779
1793
|
if (!title) {
|
|
1780
1794
|
section.titleLessMode();
|
|
1781
1795
|
}
|
|
1782
|
-
section.editable = Boolean(options?.editable);
|
|
1783
1796
|
if (options?.expand) {
|
|
1784
1797
|
section.firstChild()?.expand();
|
|
1785
1798
|
}
|
|
@@ -20,7 +20,7 @@ const UIStrings = {
|
|
|
20
20
|
/**
|
|
21
21
|
* @description Message to display if a setting change requires a reload of DevTools
|
|
22
22
|
*/
|
|
23
|
-
|
|
23
|
+
settingsChangedReloadDevTools: 'Settings changed. To apply, reload DevTools.',
|
|
24
24
|
/**
|
|
25
25
|
* @description Text in Command Menu of the Command Menu
|
|
26
26
|
*/
|
|
@@ -122,7 +122,7 @@ export class CommandMenu {
|
|
|
122
122
|
|
|
123
123
|
if (reloadRequired) {
|
|
124
124
|
UI.InspectorView.InspectorView.instance().displayReloadRequiredWarning(
|
|
125
|
-
i18nString(UIStrings.
|
|
125
|
+
i18nString(UIStrings.settingsChangedReloadDevTools));
|
|
126
126
|
}
|
|
127
127
|
},
|
|
128
128
|
availableHandler,
|
|
@@ -19,7 +19,7 @@ const UIStrings = {
|
|
|
19
19
|
/**
|
|
20
20
|
* @description Message to display if a setting change requires a reload of DevTools
|
|
21
21
|
*/
|
|
22
|
-
|
|
22
|
+
settingsChangedReloadDevTools: 'Settings changed. To apply, reload DevTools.',
|
|
23
23
|
} as const;
|
|
24
24
|
const str_ = i18n.i18n.registerUIStrings('ui/legacy/components/settings_ui/SettingsUI.ts', UIStrings);
|
|
25
25
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
@@ -94,7 +94,7 @@ const createSettingSelect = function(
|
|
|
94
94
|
if (reloadWarning) {
|
|
95
95
|
reloadWarning.classList.remove('hidden');
|
|
96
96
|
UI.InspectorView.InspectorView.instance().displayReloadRequiredWarning(
|
|
97
|
-
i18nString(UIStrings.
|
|
97
|
+
i18nString(UIStrings.settingsChangedReloadDevTools));
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
};
|
|
@@ -111,7 +111,7 @@ export const createControlForSetting = function(
|
|
|
111
111
|
component.onchange = () => {
|
|
112
112
|
if (setting.reloadRequired()) {
|
|
113
113
|
UI.InspectorView.InspectorView.instance().displayReloadRequiredWarning(
|
|
114
|
-
i18nString(UIStrings.
|
|
114
|
+
i18nString(UIStrings.settingsChangedReloadDevTools));
|
|
115
115
|
}
|
|
116
116
|
};
|
|
117
117
|
return component;
|
|
@@ -147,10 +147,9 @@ export class JSONView extends UI.Widget.VBox implements UI.SearchableView.Search
|
|
|
147
147
|
|
|
148
148
|
const obj = SDK.RemoteObject.RemoteObject.fromLocalObject(this.parsedJSON.data);
|
|
149
149
|
const title = this.parsedJSON.prefix + obj.description + this.parsedJSON.suffix;
|
|
150
|
-
this.treeOutline =
|
|
151
|
-
|
|
150
|
+
this.treeOutline = new ObjectUI.ObjectPropertiesSection.ObjectPropertiesSection(
|
|
151
|
+
obj, title, undefined, true /* showOverflow */, false /* editable */);
|
|
152
152
|
this.treeOutline.enableContextMenu();
|
|
153
|
-
this.treeOutline.setEditable(false);
|
|
154
153
|
if (!this.startCollapsed) {
|
|
155
154
|
this.treeOutline.expand();
|
|
156
155
|
}
|
|
@@ -793,7 +793,7 @@ export async function expectVeEvents(expectedEvents: TestLogEntry[]): Promise<vo
|
|
|
793
793
|
checkPendingEventExpectation();
|
|
794
794
|
|
|
795
795
|
const timeout = setTimeout(() => {
|
|
796
|
-
if (pendingEventExpectation?.missingEvents) {
|
|
796
|
+
if (pendingEventExpectation?.missingEvents?.length) {
|
|
797
797
|
const allLogs = veDebugEventsLog.filter(ve => {
|
|
798
798
|
if ('interaction' in ve) {
|
|
799
799
|
// Very noisy in the error and not providing context
|
|
@@ -923,6 +923,12 @@ export const knownContextValues = new Set([
|
|
|
923
923
|
'content-type',
|
|
924
924
|
'content-visibility',
|
|
925
925
|
'context',
|
|
926
|
+
'context-change-drjones-file',
|
|
927
|
+
'context-change-drjones-network-request',
|
|
928
|
+
'context-change-drjones-performance',
|
|
929
|
+
'context-change-freestyler',
|
|
930
|
+
'context-change-none',
|
|
931
|
+
'context-change-performance-insight',
|
|
926
932
|
'context3',
|
|
927
933
|
'contextmenu',
|
|
928
934
|
'continue',
|
|
@@ -1770,6 +1776,7 @@ export const knownContextValues = new Set([
|
|
|
1770
1776
|
'gotpointercapture',
|
|
1771
1777
|
'grace-period-link',
|
|
1772
1778
|
'grace-period-mitigation-disabled',
|
|
1779
|
+
'greendev',
|
|
1773
1780
|
'greendev-ai-annotations-enabled',
|
|
1774
1781
|
'greendev-artifact-viewer-enabled',
|
|
1775
1782
|
'greendev-copy-to-gemini-enabled',
|
|
@@ -2515,6 +2522,7 @@ export const knownContextValues = new Set([
|
|
|
2515
2522
|
'margin-left',
|
|
2516
2523
|
'margin-right',
|
|
2517
2524
|
'margin-top',
|
|
2525
|
+
'margin-trim',
|
|
2518
2526
|
'marker',
|
|
2519
2527
|
'marker-end',
|
|
2520
2528
|
'marker-mid',
|
|
@@ -3261,6 +3269,7 @@ export const knownContextValues = new Set([
|
|
|
3261
3269
|
'rule-inset',
|
|
3262
3270
|
'rule-interior-inset',
|
|
3263
3271
|
'rule-outset',
|
|
3272
|
+
'rule-overlap',
|
|
3264
3273
|
'rule-set',
|
|
3265
3274
|
'rule-set-details',
|
|
3266
3275
|
'rule-style',
|
|
@@ -3689,6 +3698,7 @@ export const knownContextValues = new Set([
|
|
|
3689
3698
|
'start-conversation-drjones-performance',
|
|
3690
3699
|
'start-conversation-freestyler',
|
|
3691
3700
|
'start-conversation-performance-insight',
|
|
3701
|
+
'start-conversation-performance-none',
|
|
3692
3702
|
'start-new-chat',
|
|
3693
3703
|
'start-recording',
|
|
3694
3704
|
'start-time',
|
|
@@ -3894,6 +3904,9 @@ export const knownContextValues = new Set([
|
|
|
3894
3904
|
'timeline-tree-current-thread',
|
|
3895
3905
|
'timeline-tree-group-by',
|
|
3896
3906
|
'timeline-trigger',
|
|
3907
|
+
'timeline-trigger-activation-range',
|
|
3908
|
+
'timeline-trigger-activation-range-end',
|
|
3909
|
+
'timeline-trigger-activation-range-start',
|
|
3897
3910
|
'timeline-trigger-active-range',
|
|
3898
3911
|
'timeline-trigger-active-range-end',
|
|
3899
3912
|
'timeline-trigger-active-range-start',
|
package/mcp/mcp.ts
CHANGED
|
@@ -53,6 +53,7 @@ export {
|
|
|
53
53
|
export * as MarkdownIssueDescription from '../front_end/models/issues_manager/MarkdownIssueDescription.js';
|
|
54
54
|
export * as StackTrace from '../front_end/models/stack_trace/stack_trace.js';
|
|
55
55
|
export * as TraceEngine from '../front_end/models/trace/trace.js';
|
|
56
|
+
export {IgnoreListManager} from '../front_end/models/workspace/IgnoreListManager.js';
|
|
56
57
|
export * as Marked from '../front_end/third_party/marked/marked.js';
|
|
57
58
|
|
|
58
59
|
installInspectorFrontendHost(new McpHostBindings());
|
package/package.json
CHANGED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// Copyright 2024 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
|
-
import {createIcon} from '../../ui/kit/kit.js';
|
|
5
|
-
|
|
6
|
-
import {SecurityPanelSidebarTreeElement} from './SecurityPanelSidebarTreeElement.js';
|
|
7
|
-
|
|
8
|
-
export class CookieControlsTreeElement extends SecurityPanelSidebarTreeElement {
|
|
9
|
-
constructor(title: string, jslogContext: string|number) {
|
|
10
|
-
super(title, false, jslogContext);
|
|
11
|
-
this.setLeadingIcons([createIcon('gear', 'cookie-icon')]);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
override get elemId(): string {
|
|
15
|
-
return 'controls';
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
override showElement(): void {
|
|
19
|
-
this.listItemElement.dispatchEvent(new CustomEvent('showFlagControls', {bubbles: true, composed: true}));
|
|
20
|
-
}
|
|
21
|
-
}
|