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
|
@@ -582,27 +582,25 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: ViewOutput, target: HTML
|
|
|
582
582
|
<devtools-report>
|
|
583
583
|
<devtools-report-section-header role="heading" aria-level="2">${
|
|
584
584
|
i18nString(UIStrings.sessionConfig)}</devtools-report-section-header>
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
i18nString(UIStrings.allowedRefreshInitiators),
|
|
599
|
-
sessionAndEvents.session.allowedRefreshInitiators.join(', '), 'dbsc-allowed-refresh-initiators')}
|
|
585
|
+
<devtools-report-key>${i18nString(UIStrings.keySite)}</devtools-report-key>
|
|
586
|
+
<devtools-report-value>${key.site}</devtools-report-value>
|
|
587
|
+
<devtools-report-key>${i18nString(UIStrings.keyId)}</devtools-report-key>
|
|
588
|
+
<devtools-report-value>${key.id}</devtools-report-value>
|
|
589
|
+
<devtools-report-key>${i18nString(UIStrings.refreshUrl)}</devtools-report-key>
|
|
590
|
+
<devtools-report-value>${sessionAndEvents.session.refreshUrl}</devtools-report-value>
|
|
591
|
+
<devtools-report-key>${i18nString(UIStrings.expiryDate)}</devtools-report-key>
|
|
592
|
+
<devtools-report-value>${
|
|
593
|
+
new Date(sessionAndEvents.session.expiryDate * 1000).toLocaleString()}</devtools-report-value>
|
|
594
|
+
<devtools-report-key>${i18nString(UIStrings.cachedChallenge)}</devtools-report-key>
|
|
595
|
+
<devtools-report-value>${sessionAndEvents.session.cachedChallenge || ''}</devtools-report-value>
|
|
596
|
+
<devtools-report-key>${i18nString(UIStrings.allowedRefreshInitiators)}</devtools-report-key>
|
|
597
|
+
<devtools-report-value>${sessionAndEvents.session.allowedRefreshInitiators.join(', ')}</devtools-report-value>
|
|
600
598
|
<devtools-report-section-header role="heading" aria-level="2">${
|
|
601
599
|
i18nString(UIStrings.scope)}</devtools-report-section-header>
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
600
|
+
<devtools-report-key>${i18nString(UIStrings.origin)}</devtools-report-key>
|
|
601
|
+
<devtools-report-value>${inclusionRules.origin}</devtools-report-value>
|
|
602
|
+
<devtools-report-key>${i18nString(UIStrings.includeSite)}</devtools-report-key>
|
|
603
|
+
<devtools-report-value>${boolToString(inclusionRules.includeSite)}</devtools-report-value>
|
|
606
604
|
</devtools-report>
|
|
607
605
|
${
|
|
608
606
|
inclusionRules.urlRules.length > 0 ? html`
|
|
@@ -710,78 +708,62 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: ViewOutput, target: HTML
|
|
|
710
708
|
const creationEventDetails =
|
|
711
709
|
selectedEvent?.creationEventDetails &&
|
|
712
710
|
html`
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
html`
|
|
720
|
-
${
|
|
721
|
-
renderKeyValue(
|
|
722
|
-
i18nString(UIStrings.updatedSessionConfig), i18nString(UIStrings.yes),
|
|
723
|
-
'dbsc-creation-updated-session-config')}
|
|
711
|
+
<devtools-report-key>${i18nString(UIStrings.fetchResult)}</devtools-report-key>
|
|
712
|
+
<devtools-report-value>${
|
|
713
|
+
fetchResultToString(selectedEvent.creationEventDetails.fetchResult)}</devtools-report-value>
|
|
714
|
+
${selectedEvent.creationEventDetails.newSession && html`
|
|
715
|
+
<devtools-report-key>${i18nString(UIStrings.updatedSessionConfig)}</devtools-report-key>
|
|
716
|
+
<devtools-report-value>${i18nString(UIStrings.yes)}</devtools-report-value>
|
|
724
717
|
`}
|
|
725
718
|
`;
|
|
726
719
|
const refreshEventDetails =
|
|
727
720
|
selectedEvent?.refreshEventDetails &&
|
|
728
721
|
html`
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
i18nString(UIStrings.causedAnyRequestDeferrals),
|
|
736
|
-
boolToString(!selectedEvent.refreshEventDetails.wasFullyProactiveRefresh),
|
|
737
|
-
'dbsc-refresh-was-fully-proactive-refresh')}
|
|
722
|
+
<devtools-report-key>${i18nString(UIStrings.refreshResult)}</devtools-report-key>
|
|
723
|
+
<devtools-report-value>${
|
|
724
|
+
refreshResultToString(selectedEvent.refreshEventDetails.refreshResult)}</devtools-report-value>
|
|
725
|
+
<devtools-report-key>${i18nString(UIStrings.causedAnyRequestDeferrals)}</devtools-report-key>
|
|
726
|
+
<devtools-report-value>${
|
|
727
|
+
boolToString(!selectedEvent.refreshEventDetails.wasFullyProactiveRefresh)}</devtools-report-value>
|
|
738
728
|
${
|
|
739
729
|
selectedEvent.refreshEventDetails.fetchResult &&
|
|
740
730
|
html`
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
'dbsc-refresh-fetch-result')}
|
|
731
|
+
<devtools-report-key>${i18nString(UIStrings.fetchResult)}</devtools-report-key>
|
|
732
|
+
<devtools-report-value>${
|
|
733
|
+
fetchResultToString(selectedEvent.refreshEventDetails.fetchResult)}</devtools-report-value>
|
|
745
734
|
`}
|
|
746
|
-
${
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
${
|
|
750
|
-
renderKeyValue(
|
|
751
|
-
i18nString(UIStrings.updatedSessionConfig), i18nString(UIStrings.yes),
|
|
752
|
-
'dbsc-refresh-updated-session-config')}
|
|
735
|
+
${selectedEvent.refreshEventDetails.newSession && html`
|
|
736
|
+
<devtools-report-key>${i18nString(UIStrings.updatedSessionConfig)}</devtools-report-key>
|
|
737
|
+
<devtools-report-value>${i18nString(UIStrings.yes)}</devtools-report-value>
|
|
753
738
|
`}
|
|
754
739
|
`;
|
|
755
740
|
const challengeEventDetails =
|
|
756
741
|
selectedEvent?.challengeEventDetails &&
|
|
757
742
|
html`
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
renderKeyValue(
|
|
764
|
-
i18nString(UIStrings.challenge), selectedEvent.challengeEventDetails.challenge, 'dbsc-challenge')}
|
|
743
|
+
<devtools-report-key>${i18nString(UIStrings.challengeResult)}</devtools-report-key>
|
|
744
|
+
<devtools-report-value>${
|
|
745
|
+
challengeResultToString(selectedEvent.challengeEventDetails.challengeResult)}</devtools-report-value>
|
|
746
|
+
<devtools-report-key>${i18nString(UIStrings.challenge)}</devtools-report-key>
|
|
747
|
+
<devtools-report-value>${selectedEvent.challengeEventDetails.challenge}</devtools-report-value>
|
|
765
748
|
`;
|
|
766
749
|
const terminationEventDetails =
|
|
767
750
|
selectedEvent?.terminationEventDetails &&
|
|
768
751
|
html`
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
deletionReasonToString(selectedEvent.terminationEventDetails.deletionReason), 'dbsc-termination-reason')}
|
|
752
|
+
<devtools-report-key>${i18nString(UIStrings.deletionReason)}</devtools-report-key>
|
|
753
|
+
<devtools-report-value>${
|
|
754
|
+
deletionReasonToString(selectedEvent.terminationEventDetails.deletionReason)}</devtools-report-value>
|
|
773
755
|
`;
|
|
774
756
|
const eventDetailsContentHtml = selectedEvent ?
|
|
775
757
|
html`
|
|
776
758
|
<devtools-report>
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
759
|
+
<devtools-report-key>${i18nString(UIStrings.keySite)}</devtools-report-key>
|
|
760
|
+
<devtools-report-value>${selectedEvent.site}</devtools-report-value>
|
|
761
|
+
<devtools-report-key>${i18nString(UIStrings.sessionId)}</devtools-report-key>
|
|
762
|
+
<devtools-report-value>${selectedEvent.sessionId}</devtools-report-value>
|
|
763
|
+
<devtools-report-key>${i18nString(UIStrings.type)}</devtools-report-key>
|
|
764
|
+
<devtools-report-value>${getEventTypeString(selectedEvent)}</devtools-report-value>
|
|
765
|
+
<devtools-report-key>${i18nString(UIStrings.eventResult)}</devtools-report-key>
|
|
766
|
+
<devtools-report-value>${succeededToString(selectedEvent.succeeded)}</devtools-report-value>
|
|
785
767
|
${creationEventDetails}
|
|
786
768
|
${refreshEventDetails}
|
|
787
769
|
${challengeEventDetails}
|
|
@@ -888,13 +870,6 @@ export class DeviceBoundSessionsView extends UI.Widget.VBox {
|
|
|
888
870
|
}
|
|
889
871
|
}
|
|
890
872
|
|
|
891
|
-
function renderKeyValue(key: string, value: string, id: string): TemplateResult {
|
|
892
|
-
return html`
|
|
893
|
-
<devtools-report-key id=${id}>${key}</devtools-report-key>
|
|
894
|
-
<devtools-report-value role="text" aria-describedby=${id}>${value}</devtools-report-value>
|
|
895
|
-
`;
|
|
896
|
-
}
|
|
897
|
-
|
|
898
873
|
function ruleTypeToString(ruleType: Protocol.Network.DeviceBoundSessionUrlRuleRuleType): string {
|
|
899
874
|
switch (ruleType) {
|
|
900
875
|
case Protocol.Network.DeviceBoundSessionUrlRuleRuleType.Exclude:
|
|
@@ -14,6 +14,11 @@ devtools-icon {
|
|
|
14
14
|
margin-right: var(--sys-size-4);
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
.tree-element-title > div {
|
|
18
|
+
display: flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
}
|
|
21
|
+
|
|
17
22
|
.navigator-sm-script-tree-item devtools-icon,
|
|
18
23
|
.navigator-script-tree-item devtools-icon,
|
|
19
24
|
.navigator-snippet-tree-item devtools-icon {
|
|
@@ -18,11 +18,11 @@ const UIStringsNotTranslate = {
|
|
|
18
18
|
/**
|
|
19
19
|
* @description Text for teaser to generate code.
|
|
20
20
|
*/
|
|
21
|
-
ctrlItoGenerateCode: '
|
|
21
|
+
ctrlItoGenerateCode: 'ctrl+i to generate code',
|
|
22
22
|
/**
|
|
23
23
|
* @description Text for teaser to generate code in Mac.
|
|
24
24
|
*/
|
|
25
|
-
cmdItoGenerateCode: '
|
|
25
|
+
cmdItoGenerateCode: 'cmd+i to generate code',
|
|
26
26
|
/**
|
|
27
27
|
* @description Aria label for teaser to generate code.
|
|
28
28
|
*/
|
|
@@ -22,16 +22,16 @@ const UIStringsNotTranslate = {
|
|
|
22
22
|
* @description First item in the description.
|
|
23
23
|
*/
|
|
24
24
|
describeCodeInComment:
|
|
25
|
-
'Pressing
|
|
25
|
+
'Pressing ctrl+i on a comment in the Console and Sources panels now generates entire code blocks based on the instructions in the comment',
|
|
26
26
|
/**
|
|
27
27
|
* @description First item in the description.
|
|
28
28
|
*/
|
|
29
29
|
describeCodeInCommentForMacOs:
|
|
30
|
-
'Pressing
|
|
30
|
+
'Pressing cmd+i on a comment in the Console and Sources panels now generates entire code blocks based on the instructions in the comment',
|
|
31
31
|
/**
|
|
32
32
|
* @description Second item in the description.
|
|
33
33
|
*/
|
|
34
|
-
asYouType: 'You will still receive the real-time, as-you-type suggestions to help you code faster
|
|
34
|
+
asYouType: 'You will still receive the real-time, as-you-type suggestions to help you code faster',
|
|
35
35
|
/**
|
|
36
36
|
* @description Third item in the description.
|
|
37
37
|
*/
|
|
@@ -97,7 +97,7 @@ export class AiCodeGenerationUpgradeDialog {
|
|
|
97
97
|
<div class="right-buttons">
|
|
98
98
|
<devtools-button
|
|
99
99
|
@click=${() => {
|
|
100
|
-
result.resolve(
|
|
100
|
+
result.resolve(false);
|
|
101
101
|
void UI.ViewManager.ViewManager.instance().showView('chrome-ai');
|
|
102
102
|
}}
|
|
103
103
|
jslogcontext="ai-code-generation-upgrade-dialog.manage-in-settings"
|
|
@@ -52,6 +52,10 @@ export class ExtensionPanel extends UI.Panel.Panel implements UI.SearchableView.
|
|
|
52
52
|
this.id, Extensions.ExtensionAPI.PrivateAPI.Panels.SearchAction.PerformSearch, query);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
supportsMatchCounts(): boolean {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
|
|
55
59
|
jumpToNextSearchResult(): void {
|
|
56
60
|
this.server.notifySearchAction(this.id, Extensions.ExtensionAPI.PrivateAPI.Panels.SearchAction.NextSearchResult);
|
|
57
61
|
}
|
|
@@ -54,6 +54,7 @@ export class FreDialog {
|
|
|
54
54
|
if (ariaLabel) {
|
|
55
55
|
dialog.setAriaLabel(ariaLabel);
|
|
56
56
|
}
|
|
57
|
+
dialog.contentElement.tabIndex = -1;
|
|
57
58
|
const result = Promise.withResolvers<boolean>();
|
|
58
59
|
// clang-format off
|
|
59
60
|
Lit.render(html`
|
|
@@ -131,6 +132,9 @@ export class FreDialog {
|
|
|
131
132
|
dialog.setSizeBehavior(UI.GlassPane.SizeBehavior.MEASURE_CONTENT);
|
|
132
133
|
dialog.setDimmed(true);
|
|
133
134
|
dialog.show();
|
|
135
|
+
// Explicitly calling focus as `dialog.show()` does not put the FRE
|
|
136
|
+
// dialog in focus.
|
|
137
|
+
dialog.contentElement.focus();
|
|
134
138
|
|
|
135
139
|
return result.promise;
|
|
136
140
|
}
|
|
@@ -3,18 +3,20 @@
|
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
5
|
import '../../ui/components/highlighting/highlighting.js';
|
|
6
|
-
import '../../ui/legacy/components/data_grid/data_grid.js';
|
|
7
6
|
|
|
8
7
|
import * as Common from '../../core/common/common.js';
|
|
9
8
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
10
9
|
import type * as Platform from '../../core/platform/platform.js';
|
|
11
10
|
import * as Workspace from '../../models/workspace/workspace.js';
|
|
11
|
+
import * as DataGrid from '../../ui/legacy/components/data_grid/data_grid.js';
|
|
12
12
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
13
13
|
import {Directives, html, nothing, render, type TemplateResult} from '../../ui/lit/lit.js';
|
|
14
14
|
|
|
15
15
|
import coverageListViewStyles from './coverageListView.css.js';
|
|
16
16
|
import {CoverageType} from './CoverageModel.js';
|
|
17
17
|
|
|
18
|
+
const {ifExpanded} = DataGrid;
|
|
19
|
+
|
|
18
20
|
export interface CoverageListItem {
|
|
19
21
|
url: Platform.DevToolsPath.UrlString;
|
|
20
22
|
type: CoverageType;
|
|
@@ -143,7 +145,10 @@ interface ViewInput {
|
|
|
143
145
|
selectedUrl: Platform.DevToolsPath.UrlString|null;
|
|
144
146
|
maxSize: number;
|
|
145
147
|
onOpen: (url: Platform.DevToolsPath.UrlString) => void;
|
|
148
|
+
onExpand: () => void;
|
|
149
|
+
onCollapse: () => void;
|
|
146
150
|
highlightRegExp: RegExp|null;
|
|
151
|
+
expandedUrls: Set<Platform.DevToolsPath.UrlString>;
|
|
147
152
|
}
|
|
148
153
|
|
|
149
154
|
type View = (input: ViewInput, output: object, target: HTMLElement) => void;
|
|
@@ -181,6 +186,7 @@ export class CoverageListView extends UI.Widget.VBox {
|
|
|
181
186
|
#coverageInfo: CoverageListItem[] = [];
|
|
182
187
|
#selectedUrl: Platform.DevToolsPath.UrlString|null = null;
|
|
183
188
|
#maxSize = 0;
|
|
189
|
+
#expandedUrls = new Set<Platform.DevToolsPath.UrlString>();
|
|
184
190
|
#view: View;
|
|
185
191
|
|
|
186
192
|
constructor(element?: HTMLElement, view = DEFAULT_VIEW) {
|
|
@@ -213,9 +219,16 @@ export class CoverageListView extends UI.Widget.VBox {
|
|
|
213
219
|
items: this.#coverageInfo,
|
|
214
220
|
selectedUrl: this.#selectedUrl,
|
|
215
221
|
maxSize: this.#maxSize,
|
|
222
|
+
expandedUrls: this.#expandedUrls,
|
|
216
223
|
onOpen: (url: Platform.DevToolsPath.UrlString) => {
|
|
217
224
|
this.selectedUrl = url;
|
|
218
225
|
},
|
|
226
|
+
onExpand: () => {
|
|
227
|
+
this.requestUpdate();
|
|
228
|
+
},
|
|
229
|
+
onCollapse: () => {
|
|
230
|
+
this.requestUpdate();
|
|
231
|
+
},
|
|
219
232
|
highlightRegExp: this.#highlightRegExp,
|
|
220
233
|
};
|
|
221
234
|
this.#view(input, {}, this.contentElement);
|
|
@@ -281,7 +294,9 @@ function renderItem(info: CoverageListItem, input: ViewInput): TemplateResult {
|
|
|
281
294
|
return html`
|
|
282
295
|
<style>${coverageListViewStyles}</style>
|
|
283
296
|
<tr data-url=${info.url} selected=${info.url === input.selectedUrl}
|
|
284
|
-
@open=${() => input.onOpen(info.url)}
|
|
297
|
+
@open=${() => input.onOpen(info.url)}
|
|
298
|
+
@expand=${() => input.onExpand()}
|
|
299
|
+
@collapse=${() => input.onCollapse()}>
|
|
285
300
|
<td data-value=${info.url} title=${info.url} aria-label=${info.url}>
|
|
286
301
|
<devtools-highlight ranges=${highlightRange(info.url)} class="url-outer" aria-hidden="true">
|
|
287
302
|
<div class="url-prefix">${splitURL ? splitURL[1] : info.url}</div>
|
|
@@ -325,7 +340,7 @@ function renderItem(info: CoverageListItem, input: ViewInput): TemplateResult {
|
|
|
325
340
|
</td>
|
|
326
341
|
${info.sources.length > 0 ? html`
|
|
327
342
|
<td><table>
|
|
328
|
-
${repeat(info.sources, source => source.url, source => renderItem(source, input))}
|
|
343
|
+
${ifExpanded(() => html`${repeat(info.sources, source => source.url, source => renderItem(source, input))}`)}
|
|
329
344
|
</table></td>` : nothing}
|
|
330
345
|
</tr>`;
|
|
331
346
|
// clang-format on
|
|
@@ -11,6 +11,19 @@ import * as UI from '../../ui/legacy/legacy.js';
|
|
|
11
11
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
12
12
|
import {PanelUtils} from '../utils/utils.js';
|
|
13
13
|
|
|
14
|
+
import type {EditorHandles} from './ElementsTreeElement.js';
|
|
15
|
+
|
|
16
|
+
export class AdoptedStyleSheetSetTreeElement extends UI.TreeOutline.TreeElement {
|
|
17
|
+
constructor(readonly adoptedStyleSheets: SDK.DOMModel.AdoptedStyleSheet[]) {
|
|
18
|
+
super('');
|
|
19
|
+
const documentElement = this.listItemElement.createChild('span');
|
|
20
|
+
UI.UIUtils.createTextChild(documentElement, '#adopted-style-sheets');
|
|
21
|
+
for (const adoptedStyleSheet of adoptedStyleSheets) {
|
|
22
|
+
this.appendChild(new AdoptedStyleSheetTreeElement(adoptedStyleSheet));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
14
27
|
export class AdoptedStyleSheetTreeElement extends UI.TreeOutline.TreeElement {
|
|
15
28
|
private eventListener: Common.EventTarget.EventDescriptor|null = null;
|
|
16
29
|
|
|
@@ -58,6 +71,8 @@ export class AdoptedStyleSheetTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
58
71
|
}
|
|
59
72
|
|
|
60
73
|
export class AdoptedStyleSheetContentsTreeElement extends UI.TreeOutline.TreeElement {
|
|
74
|
+
private editing: EditorHandles|null = null;
|
|
75
|
+
|
|
61
76
|
constructor(private readonly styleSheetHeader: SDK.CSSStyleSheetHeader.CSSStyleSheetHeader) {
|
|
62
77
|
super('');
|
|
63
78
|
}
|
|
@@ -69,6 +84,9 @@ export class AdoptedStyleSheetContentsTreeElement extends UI.TreeOutline.TreeEle
|
|
|
69
84
|
}
|
|
70
85
|
|
|
71
86
|
override onunbind(): void {
|
|
87
|
+
if (this.editing) {
|
|
88
|
+
this.editing.cancel();
|
|
89
|
+
}
|
|
72
90
|
this.styleSheetHeader.cssModel().removeEventListener(
|
|
73
91
|
SDK.CSSModel.Events.StyleSheetChanged, this.onStyleSheetChanged, this);
|
|
74
92
|
}
|
|
@@ -91,4 +109,75 @@ export class AdoptedStyleSheetContentsTreeElement extends UI.TreeOutline.TreeEle
|
|
|
91
109
|
void this.onpopulate();
|
|
92
110
|
}
|
|
93
111
|
}
|
|
112
|
+
|
|
113
|
+
override ondblclick(event: Event): boolean {
|
|
114
|
+
if (this.editing) {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
void this.startEditing(event.target as Element);
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
override onenter(): boolean {
|
|
122
|
+
if (this.editing) {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
const target = this.listItemElement.querySelector('.webkit-html-text-node');
|
|
126
|
+
if (target) {
|
|
127
|
+
void this.startEditing(target);
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
private async startEditing(target: Element): Promise<void> {
|
|
134
|
+
if (this.editing || UI.UIUtils.isBeingEdited(target)) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const textNode = target.enclosingNodeOrSelfWithClass('webkit-html-text-node');
|
|
139
|
+
if (!textNode) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const data = await this.styleSheetHeader.requestContentData();
|
|
144
|
+
textNode.textContent = (TextUtils.ContentData.ContentData.isError(data) || !data.isTextContent) ? '' : data.text;
|
|
145
|
+
|
|
146
|
+
const config =
|
|
147
|
+
new UI.InplaceEditor.Config(this.editingCommitted.bind(this), () => this.editingCancelled(), undefined);
|
|
148
|
+
|
|
149
|
+
const editorHandles = UI.InplaceEditor.InplaceEditor.startEditing(textNode, config);
|
|
150
|
+
if (!editorHandles) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
this.editing = {
|
|
155
|
+
commit: editorHandles.commit,
|
|
156
|
+
cancel: editorHandles.cancel,
|
|
157
|
+
editor: undefined,
|
|
158
|
+
resize: () => {},
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
const componentSelection = this.listItemElement.getComponentSelection();
|
|
162
|
+
componentSelection?.selectAllChildren(textNode);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
private async editingCommitted(element: Element, newText: string, oldText: string|null): Promise<void> {
|
|
166
|
+
this.editing = null;
|
|
167
|
+
|
|
168
|
+
if (newText !== oldText) {
|
|
169
|
+
await this.styleSheetHeader.cssModel().setStyleSheetText(this.styleSheetHeader.id, newText, false);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
this.editingCancelled();
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
private editingCancelled(): void {
|
|
176
|
+
this.editing = null;
|
|
177
|
+
void this.onpopulate();
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
isEditing(): boolean {
|
|
181
|
+
return this.editing !== null;
|
|
182
|
+
}
|
|
94
183
|
}
|
|
@@ -38,6 +38,7 @@ import * as Common from '../../core/common/common.js';
|
|
|
38
38
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
39
39
|
import * as Platform from '../../core/platform/platform.js';
|
|
40
40
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
41
|
+
import * as ComputedStyleModule from '../../models/computed_style/computed_style.js';
|
|
41
42
|
import * as TreeOutline from '../../ui/components/tree_outline/tree_outline.js';
|
|
42
43
|
import * as InlineEditor from '../../ui/legacy/components/inline_editor/inline_editor.js';
|
|
43
44
|
import * as Components from '../../ui/legacy/components/utils/utils.js';
|
|
@@ -45,7 +46,6 @@ import * as UI from '../../ui/legacy/legacy.js';
|
|
|
45
46
|
import * as Lit from '../../ui/lit/lit.js';
|
|
46
47
|
|
|
47
48
|
import * as ElementsComponents from './components/components.js';
|
|
48
|
-
import {type ComputedStyle, type ComputedStyleModel, Events} from './ComputedStyleModel.js';
|
|
49
49
|
import computedStyleSidebarPaneStyles from './computedStyleSidebarPane.css.js';
|
|
50
50
|
import {ImagePreviewPopover} from './ImagePreviewPopover.js';
|
|
51
51
|
import {PlatformFontsWidget} from './PlatformFontsWidget.js';
|
|
@@ -262,7 +262,7 @@ type ComputedStyleData = {
|
|
|
262
262
|
};
|
|
263
263
|
|
|
264
264
|
export class ComputedStyleWidget extends UI.Widget.VBox {
|
|
265
|
-
private computedStyleModel: ComputedStyleModel;
|
|
265
|
+
private computedStyleModel: ComputedStyleModule.ComputedStyleModel.ComputedStyleModel;
|
|
266
266
|
private readonly showInheritedComputedStylePropertiesSetting: Common.Settings.Setting<boolean>;
|
|
267
267
|
private readonly groupComputedStylesSetting: Common.Settings.Setting<boolean>;
|
|
268
268
|
input: UI.Toolbar.ToolbarInput;
|
|
@@ -274,15 +274,17 @@ export class ComputedStyleWidget extends UI.Widget.VBox {
|
|
|
274
274
|
#computedStylesTree = new TreeOutline.TreeOutline.TreeOutline<ComputedStyleData>();
|
|
275
275
|
#treeData?: TreeOutline.TreeOutline.TreeOutlineData<ComputedStyleData>;
|
|
276
276
|
|
|
277
|
-
constructor(computedStyleModel: ComputedStyleModel) {
|
|
277
|
+
constructor(computedStyleModel: ComputedStyleModule.ComputedStyleModel.ComputedStyleModel) {
|
|
278
278
|
super({useShadowDom: true});
|
|
279
279
|
this.registerRequiredCSS(computedStyleSidebarPaneStyles);
|
|
280
280
|
|
|
281
281
|
this.contentElement.classList.add('styles-sidebar-computed-style-widget');
|
|
282
282
|
|
|
283
283
|
this.computedStyleModel = computedStyleModel;
|
|
284
|
-
this.computedStyleModel.addEventListener(
|
|
285
|
-
|
|
284
|
+
this.computedStyleModel.addEventListener(
|
|
285
|
+
ComputedStyleModule.ComputedStyleModel.Events.CSS_MODEL_CHANGED, this.requestUpdate, this);
|
|
286
|
+
this.computedStyleModel.addEventListener(
|
|
287
|
+
ComputedStyleModule.ComputedStyleModel.Events.COMPUTED_STYLE_CHANGED, this.requestUpdate, this);
|
|
286
288
|
|
|
287
289
|
this.showInheritedComputedStylePropertiesSetting =
|
|
288
290
|
Common.Settings.Settings.instance().createSetting('show-inherited-computed-style-properties', false);
|
|
@@ -374,8 +376,9 @@ export class ComputedStyleWidget extends UI.Widget.VBox {
|
|
|
374
376
|
}
|
|
375
377
|
}
|
|
376
378
|
|
|
377
|
-
private async rebuildAlphabeticalList(
|
|
378
|
-
|
|
379
|
+
private async rebuildAlphabeticalList(
|
|
380
|
+
nodeStyle: ComputedStyleModule.ComputedStyleModel.ComputedStyle,
|
|
381
|
+
matchedStyles: SDK.CSSMatchedStyles.CSSMatchedStyles): Promise<void> {
|
|
379
382
|
this.imagePreviewPopover.hide();
|
|
380
383
|
this.linkifier.reset();
|
|
381
384
|
const cssModel = this.computedStyleModel.cssModel();
|
|
@@ -417,7 +420,8 @@ export class ComputedStyleWidget extends UI.Widget.VBox {
|
|
|
417
420
|
}
|
|
418
421
|
|
|
419
422
|
private async rebuildGroupedList(
|
|
420
|
-
nodeStyle: ComputedStyle|null,
|
|
423
|
+
nodeStyle: ComputedStyleModule.ComputedStyleModel.ComputedStyle|null,
|
|
424
|
+
matchedStyles: SDK.CSSMatchedStyles.CSSMatchedStyles|null): Promise<void> {
|
|
421
425
|
this.imagePreviewPopover.hide();
|
|
422
426
|
this.linkifier.reset();
|
|
423
427
|
const cssModel = this.computedStyleModel.cssModel();
|
|
@@ -41,6 +41,7 @@ import * as Root from '../../core/root/root.js';
|
|
|
41
41
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
42
42
|
import type * as Protocol from '../../generated/protocol.js';
|
|
43
43
|
import * as Annotations from '../../models/annotations/annotations.js';
|
|
44
|
+
import * as ComputedStyle from '../../models/computed_style/computed_style.js';
|
|
44
45
|
import * as PanelCommon from '../../panels/common/common.js';
|
|
45
46
|
import type * as Adorners from '../../ui/components/adorners/adorners.js';
|
|
46
47
|
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
@@ -52,7 +53,6 @@ import type {AXTreeNodeData} from './AccessibilityTreeUtils.js';
|
|
|
52
53
|
import {AccessibilityTreeView} from './AccessibilityTreeView.js';
|
|
53
54
|
import {ColorSwatchPopoverIcon} from './ColorSwatchPopoverIcon.js';
|
|
54
55
|
import * as ElementsComponents from './components/components.js';
|
|
55
|
-
import {ComputedStyleModel} from './ComputedStyleModel.js';
|
|
56
56
|
import {ComputedStyleWidget} from './ComputedStyleWidget.js';
|
|
57
57
|
import elementsPanelStyles from './elementsPanel.css.js';
|
|
58
58
|
import {DOMTreeWidget, type ElementsTreeOutline} from './ElementsTreeOutline.js';
|
|
@@ -242,7 +242,7 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
|
|
|
242
242
|
|
|
243
243
|
private cssStyleTrackerByCSSModel: Map<SDK.CSSModel.CSSModel, SDK.CSSModel.CSSPropertyTracker>;
|
|
244
244
|
#domTreeWidget: DOMTreeWidget;
|
|
245
|
-
#computedStyleModel: ComputedStyleModel;
|
|
245
|
+
#computedStyleModel: ComputedStyle.ComputedStyleModel.ComputedStyleModel;
|
|
246
246
|
|
|
247
247
|
getTreeOutlineForTesting(): ElementsTreeOutline|undefined {
|
|
248
248
|
return this.#domTreeWidget.getTreeOutlineForTesting();
|
|
@@ -302,7 +302,8 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
|
|
|
302
302
|
|
|
303
303
|
crumbsContainer.appendChild(this.breadcrumbs);
|
|
304
304
|
|
|
305
|
-
this.#computedStyleModel = new ComputedStyleModel
|
|
305
|
+
this.#computedStyleModel = new ComputedStyle.ComputedStyleModel.ComputedStyleModel(
|
|
306
|
+
UI.Context.Context.instance().flavor(SDK.DOMModel.DOMNode));
|
|
306
307
|
UI.Context.Context.instance().addFlavorChangeListener(SDK.DOMModel.DOMNode, event => {
|
|
307
308
|
this.#computedStyleModel.node = event.data;
|
|
308
309
|
this.evaluateTrackingComputedStyleUpdatesForNode();
|
|
@@ -4,20 +4,22 @@
|
|
|
4
4
|
|
|
5
5
|
import type * as Common from '../../core/common/common.js';
|
|
6
6
|
import type * as SDK from '../../core/sdk/sdk.js';
|
|
7
|
+
import * as ComputedStyle from '../../models/computed_style/computed_style.js';
|
|
7
8
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
8
9
|
|
|
9
|
-
import {type ComputedStyleModel, type CSSModelChangedEvent, Events} from './ComputedStyleModel.js';
|
|
10
|
-
|
|
11
10
|
export class ElementsSidebarPane extends UI.Widget.VBox {
|
|
12
|
-
protected computedStyleModelInternal: ComputedStyleModel;
|
|
13
|
-
constructor(
|
|
11
|
+
protected computedStyleModelInternal: ComputedStyle.ComputedStyleModel.ComputedStyleModel;
|
|
12
|
+
constructor(
|
|
13
|
+
computedStyleModel: ComputedStyle.ComputedStyleModel.ComputedStyleModel, options: UI.Widget.WidgetOptions = {}) {
|
|
14
14
|
options.useShadowDom = options.useShadowDom ?? true;
|
|
15
15
|
options.classes = options.classes ?? [];
|
|
16
16
|
options.classes.push('flex-none');
|
|
17
17
|
super(options);
|
|
18
18
|
this.computedStyleModelInternal = computedStyleModel;
|
|
19
|
-
this.computedStyleModelInternal.addEventListener(
|
|
20
|
-
|
|
19
|
+
this.computedStyleModelInternal.addEventListener(
|
|
20
|
+
ComputedStyle.ComputedStyleModel.Events.CSS_MODEL_CHANGED, this.onCSSModelChanged, this);
|
|
21
|
+
this.computedStyleModelInternal.addEventListener(
|
|
22
|
+
ComputedStyle.ComputedStyleModel.Events.COMPUTED_STYLE_CHANGED, this.onComputedStyleChanged, this);
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
node(): SDK.DOMModel.DOMNode|null {
|
|
@@ -28,7 +30,7 @@ export class ElementsSidebarPane extends UI.Widget.VBox {
|
|
|
28
30
|
return this.computedStyleModelInternal.cssModel();
|
|
29
31
|
}
|
|
30
32
|
|
|
31
|
-
computedStyleModel(): ComputedStyleModel {
|
|
33
|
+
computedStyleModel(): ComputedStyle.ComputedStyleModel.ComputedStyleModel {
|
|
32
34
|
return this.computedStyleModelInternal;
|
|
33
35
|
}
|
|
34
36
|
|
|
@@ -36,7 +38,8 @@ export class ElementsSidebarPane extends UI.Widget.VBox {
|
|
|
36
38
|
return;
|
|
37
39
|
}
|
|
38
40
|
|
|
39
|
-
onCSSModelChanged(
|
|
41
|
+
onCSSModelChanged(
|
|
42
|
+
_event: Common.EventTarget.EventTargetEvent<ComputedStyle.ComputedStyleModel.CSSModelChangedEvent|null>): void {
|
|
40
43
|
}
|
|
41
44
|
|
|
42
45
|
onComputedStyleChanged(): void {
|