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
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
*/
|
|
35
35
|
|
|
36
36
|
import '../../ui/components/adorners/adorners.js';
|
|
37
|
+
import '../../ui/components/buttons/buttons.js';
|
|
37
38
|
|
|
38
39
|
import * as Common from '../../core/common/common.js';
|
|
39
40
|
import * as Host from '../../core/host/host.js';
|
|
@@ -50,7 +51,6 @@ import * as TextUtils from '../../models/text_utils/text_utils.js';
|
|
|
50
51
|
import * as Workspace from '../../models/workspace/workspace.js';
|
|
51
52
|
import * as CodeMirror from '../../third_party/codemirror.next/codemirror.next.js';
|
|
52
53
|
import type * as Adorners from '../../ui/components/adorners/adorners.js';
|
|
53
|
-
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
54
54
|
import * as CodeHighlighter from '../../ui/components/code_highlighter/code_highlighter.js';
|
|
55
55
|
import * as Highlighting from '../../ui/components/highlighting/highlighting.js';
|
|
56
56
|
import * as TextEditor from '../../ui/components/text_editor/text_editor.js';
|
|
@@ -417,11 +417,20 @@ export interface ViewInput {
|
|
|
417
417
|
showStartingStyleAdorner: boolean;
|
|
418
418
|
startingStyleAdornerActive: boolean;
|
|
419
419
|
onStartingStyleAdornerClick: (e: Event) => void;
|
|
420
|
+
|
|
421
|
+
isHovered: boolean;
|
|
422
|
+
isSelected: boolean;
|
|
423
|
+
showAiButton: boolean;
|
|
424
|
+
aiButtonTitle?: string;
|
|
425
|
+
onAiButtonClick: (e: Event) => void;
|
|
426
|
+
|
|
427
|
+
decorations: Decoration[];
|
|
428
|
+
descendantDecorations: Decoration[];
|
|
429
|
+
decorationsTooltip: string;
|
|
430
|
+
indent: number;
|
|
420
431
|
}
|
|
421
432
|
|
|
422
433
|
export interface ViewOutput {
|
|
423
|
-
gutterContainer?: HTMLElement;
|
|
424
|
-
decorationsElement?: HTMLElement;
|
|
425
434
|
contentElement?: HTMLElement;
|
|
426
435
|
}
|
|
427
436
|
|
|
@@ -443,6 +452,11 @@ export function adornerRef(): DirectiveResult<typeof Lit.Directives.RefDirective
|
|
|
443
452
|
});
|
|
444
453
|
}
|
|
445
454
|
|
|
455
|
+
export interface Decoration {
|
|
456
|
+
title: string;
|
|
457
|
+
color: string;
|
|
458
|
+
}
|
|
459
|
+
|
|
446
460
|
function handleAdornerKeydown(cb: (event: Event) => void): (event: KeyboardEvent) => void {
|
|
447
461
|
return (event: KeyboardEvent) => {
|
|
448
462
|
if (event.code === 'Enter' || event.code === 'Space') {
|
|
@@ -458,13 +472,27 @@ export const DEFAULT_VIEW = (input: ViewInput, output: ViewOutput, target: HTMLE
|
|
|
458
472
|
input.showGridAdorner || input.showGridLanesAdorner || input.showMediaAdorner || input.showPopoverAdorner ||
|
|
459
473
|
input.showTopLayerAdorner || input.showViewSourceAdorner || input.showScrollAdorner ||
|
|
460
474
|
input.showScrollSnapAdorner || input.showSlotAdorner || input.showStartingStyleAdorner;
|
|
475
|
+
const gutterContainerClasses = {
|
|
476
|
+
'has-decorations': input.decorations.length || input.descendantDecorations.length,
|
|
477
|
+
'gutter-container': true,
|
|
478
|
+
};
|
|
461
479
|
// clang-format off
|
|
462
480
|
render(html`
|
|
463
481
|
<div ${ref(el => { output.contentElement = el as HTMLElement; })}>
|
|
464
482
|
${input.nodeInfo ? html`<span class="highlight">${input.nodeInfo}</span>` : nothing}
|
|
465
|
-
|
|
483
|
+
${input.isHovered || input.isSelected ? html`
|
|
484
|
+
<div class="selection fill" style=${`margin-left: ${-input.indent}px`}></div>
|
|
485
|
+
` : nothing}
|
|
486
|
+
<div class=${Lit.Directives.classMap(gutterContainerClasses)}
|
|
487
|
+
style="left: ${-input.indent}px"
|
|
488
|
+
@click=${input.onGutterClick}>
|
|
466
489
|
<devtools-icon name="dots-horizontal"></devtools-icon>
|
|
467
|
-
|
|
490
|
+
${input.decorations.length || input.descendantDecorations.length ? html`
|
|
491
|
+
<div class="elements-gutter-decoration-container"
|
|
492
|
+
title=${input.decorationsTooltip}>
|
|
493
|
+
${input.decorations.map(d => html`<div class="elements-gutter-decoration" style="--decoration-color: ${d.color}"></div>`)}
|
|
494
|
+
${input.descendantDecorations.map(d => html`<div class="elements-gutter-decoration elements-has-decorated-children" style="--decoration-color: ${d.color}"></div>`)}
|
|
495
|
+
</div>` : nothing}
|
|
468
496
|
</div>
|
|
469
497
|
${hasAdorners ? html`<div class="adorner-container ${!hasAdorners ? 'hidden' : ''}">
|
|
470
498
|
${input.showAdAdorner ? html`<devtools-adorner
|
|
@@ -630,6 +658,20 @@ export const DEFAULT_VIEW = (input: ViewInput, output: ViewOutput, target: HTMLE
|
|
|
630
658
|
<span>${ElementsComponents.AdornerManager.RegisteredAdorners.SCROLL_SNAP}</span>
|
|
631
659
|
</devtools-adorner>` : nothing}
|
|
632
660
|
</div>`: nothing}
|
|
661
|
+
${input.isSelected ? html`
|
|
662
|
+
<span class="selected-hint" title=${i18nString(UIStrings.useSInTheConsoleToReferToThis, {PH1: '$0'})} aria-hidden="true"></span>
|
|
663
|
+
` : nothing}
|
|
664
|
+
${input.showAiButton ? html`
|
|
665
|
+
<span class="ai-button-container">
|
|
666
|
+
<devtools-floating-button
|
|
667
|
+
icon-name=${AIAssistance.AiUtils.getIconName()}
|
|
668
|
+
title=${input.aiButtonTitle || ''}
|
|
669
|
+
jslogcontext="ask-ai"
|
|
670
|
+
@click=${input.onAiButtonClick}
|
|
671
|
+
@mousedown=${(e: Event) => e.stopPropagation()}>
|
|
672
|
+
</devtools-floating-button>
|
|
673
|
+
</span>
|
|
674
|
+
` : nothing}
|
|
633
675
|
</div>
|
|
634
676
|
`, target);
|
|
635
677
|
// clang-format on
|
|
@@ -640,8 +682,6 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
640
682
|
override treeOutline: ElementsTreeOutline|null;
|
|
641
683
|
|
|
642
684
|
// Handled by the view output for now.
|
|
643
|
-
gutterContainer!: HTMLElement;
|
|
644
|
-
decorationsElement!: HTMLElement;
|
|
645
685
|
contentElement!: HTMLElement;
|
|
646
686
|
|
|
647
687
|
private searchQuery: string|null;
|
|
@@ -652,9 +692,6 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
652
692
|
private editing: EditorHandles|null;
|
|
653
693
|
private htmlEditElement?: HTMLElement;
|
|
654
694
|
expandAllButtonElement: UI.TreeOutline.TreeElement|null;
|
|
655
|
-
selectionElement?: HTMLDivElement;
|
|
656
|
-
private hintElement?: HTMLElement;
|
|
657
|
-
private aiButtonContainer?: HTMLElement;
|
|
658
695
|
#elementIssues = new Map<string, IssuesManager.Issue.Issue>();
|
|
659
696
|
#nodeElementToIssue = new Map<Element, IssuesManager.Issue.Issue[]>();
|
|
660
697
|
#highlights: Range[] = [];
|
|
@@ -672,6 +709,10 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
672
709
|
#startingStyleAdornerActive = false;
|
|
673
710
|
#layout: SDK.CSSModel.LayoutProperties|null = null;
|
|
674
711
|
|
|
712
|
+
#decorations: Decoration[] = [];
|
|
713
|
+
#descendantDecorations: Decoration[] = [];
|
|
714
|
+
#decorationsTooltip = '';
|
|
715
|
+
|
|
675
716
|
constructor(node: SDK.DOMModel.DOMNode, isClosingTag?: boolean) {
|
|
676
717
|
// The title will be updated in onattach.
|
|
677
718
|
super();
|
|
@@ -797,6 +838,10 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
797
838
|
showScrollAdorner: ((this.node().nodeName() === 'HTML' && this.node().ownerDocument?.isScrollable()) ||
|
|
798
839
|
(this.node().nodeName() !== '#document' && this.node().isScrollable())) &&
|
|
799
840
|
!this.isClosingTag(),
|
|
841
|
+
decorations: this.#decorations,
|
|
842
|
+
descendantDecorations: this.expanded ? [] : this.#descendantDecorations,
|
|
843
|
+
decorationsTooltip: this.#decorationsTooltip,
|
|
844
|
+
indent: this.computeLeftIndent(),
|
|
800
845
|
showScrollSnapAdorner: Boolean(this.#layout?.hasScroll) && !this.isClosingTag(),
|
|
801
846
|
scrollSnapAdornerActive: this.#scrollSnapAdornerActive,
|
|
802
847
|
showSlotAdorner: Boolean(this.nodeInternal.assignedSlot) && !this.isClosingTag(),
|
|
@@ -827,6 +872,21 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
827
872
|
}
|
|
828
873
|
this.treeOutline.revealInTopLayer(this.node());
|
|
829
874
|
},
|
|
875
|
+
isHovered: this.#hovered,
|
|
876
|
+
isSelected: this.selected,
|
|
877
|
+
showAiButton: Boolean(this.#hovered || this.selected) && this.node().nodeType() === Node.ELEMENT_NODE &&
|
|
878
|
+
UI.ActionRegistry.ActionRegistry.instance().hasAction('freestyler.elements-floating-button'),
|
|
879
|
+
aiButtonTitle: UI.ActionRegistry.ActionRegistry.instance().hasAction('freestyler.elements-floating-button') ?
|
|
880
|
+
UI.ActionRegistry.ActionRegistry.instance().getAction('freestyler.elements-floating-button').title() :
|
|
881
|
+
undefined,
|
|
882
|
+
onAiButtonClick: (ev: Event) => {
|
|
883
|
+
ev.stopPropagation();
|
|
884
|
+
this.select(true, false);
|
|
885
|
+
const action = UI.ActionRegistry.ActionRegistry.instance().getAction('freestyler.elements-floating-button');
|
|
886
|
+
if (action) {
|
|
887
|
+
void action.execute();
|
|
888
|
+
}
|
|
889
|
+
},
|
|
830
890
|
},
|
|
831
891
|
this, this.listItemElement);
|
|
832
892
|
}
|
|
@@ -962,22 +1022,15 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
962
1022
|
return;
|
|
963
1023
|
}
|
|
964
1024
|
|
|
965
|
-
if (isHovered && !this.aiButtonContainer) {
|
|
966
|
-
this.createAiButton();
|
|
967
|
-
} else if (!isHovered && this.aiButtonContainer) {
|
|
968
|
-
this.aiButtonContainer.remove();
|
|
969
|
-
delete this.aiButtonContainer;
|
|
970
|
-
}
|
|
971
|
-
|
|
972
1025
|
this.#hovered = isHovered;
|
|
973
1026
|
|
|
974
1027
|
if (this.listItemElement) {
|
|
975
1028
|
if (isHovered) {
|
|
976
|
-
this.createSelection();
|
|
977
1029
|
this.listItemElement.classList.add('hovered');
|
|
978
1030
|
} else {
|
|
979
1031
|
this.listItemElement.classList.remove('hovered');
|
|
980
1032
|
}
|
|
1033
|
+
this.performUpdate();
|
|
981
1034
|
}
|
|
982
1035
|
}
|
|
983
1036
|
|
|
@@ -1043,54 +1096,6 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
1043
1096
|
this.#expandedChildrenLimit = expandedChildrenLimit;
|
|
1044
1097
|
}
|
|
1045
1098
|
|
|
1046
|
-
private createSelection(): void {
|
|
1047
|
-
const contentElement = this.contentElement;
|
|
1048
|
-
if (!contentElement) {
|
|
1049
|
-
return;
|
|
1050
|
-
}
|
|
1051
|
-
|
|
1052
|
-
if (!this.selectionElement) {
|
|
1053
|
-
this.selectionElement = document.createElement('div');
|
|
1054
|
-
this.selectionElement.className = 'selection fill';
|
|
1055
|
-
this.selectionElement.style.setProperty('margin-left', (-this.computeLeftIndent()) + 'px');
|
|
1056
|
-
contentElement.prepend(this.selectionElement);
|
|
1057
|
-
}
|
|
1058
|
-
}
|
|
1059
|
-
|
|
1060
|
-
private createHint(): void {
|
|
1061
|
-
if (this.contentElement && !this.hintElement) {
|
|
1062
|
-
this.hintElement = this.contentElement.createChild('span', 'selected-hint');
|
|
1063
|
-
const selectedElementCommand = '$0';
|
|
1064
|
-
UI.Tooltip.Tooltip.install(
|
|
1065
|
-
this.hintElement, i18nString(UIStrings.useSInTheConsoleToReferToThis, {PH1: selectedElementCommand}));
|
|
1066
|
-
UI.ARIAUtils.setHidden(this.hintElement, true);
|
|
1067
|
-
}
|
|
1068
|
-
}
|
|
1069
|
-
|
|
1070
|
-
private createAiButton(): void {
|
|
1071
|
-
const isElementNode = this.node().nodeType() === Node.ELEMENT_NODE;
|
|
1072
|
-
if (!isElementNode ||
|
|
1073
|
-
!UI.ActionRegistry.ActionRegistry.instance().hasAction('freestyler.elements-floating-button')) {
|
|
1074
|
-
return;
|
|
1075
|
-
}
|
|
1076
|
-
|
|
1077
|
-
const action = UI.ActionRegistry.ActionRegistry.instance().getAction('freestyler.elements-floating-button');
|
|
1078
|
-
if (this.contentElement && !this.aiButtonContainer) {
|
|
1079
|
-
this.aiButtonContainer = this.contentElement.createChild('span', 'ai-button-container');
|
|
1080
|
-
const floatingButton =
|
|
1081
|
-
Buttons.FloatingButton.create(AIAssistance.AiUtils.getIconName(), action.title(), 'ask-ai');
|
|
1082
|
-
floatingButton.addEventListener('click', ev => {
|
|
1083
|
-
ev.stopPropagation();
|
|
1084
|
-
this.select(true, false);
|
|
1085
|
-
void action.execute();
|
|
1086
|
-
}, {capture: true});
|
|
1087
|
-
floatingButton.addEventListener('mousedown', ev => {
|
|
1088
|
-
ev.stopPropagation();
|
|
1089
|
-
}, {capture: true});
|
|
1090
|
-
this.aiButtonContainer.appendChild(floatingButton);
|
|
1091
|
-
}
|
|
1092
|
-
}
|
|
1093
|
-
|
|
1094
1099
|
override onbind(): void {
|
|
1095
1100
|
this.performUpdate();
|
|
1096
1101
|
if (this.treeOutline && !this.isClosingTag()) {
|
|
@@ -1156,6 +1161,14 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
1156
1161
|
onPopoverAdornerClick: () => {},
|
|
1157
1162
|
onScrollSnapAdornerClick: () => {},
|
|
1158
1163
|
onTopLayerAdornerClick: () => {},
|
|
1164
|
+
isHovered: false,
|
|
1165
|
+
isSelected: false,
|
|
1166
|
+
showAiButton: false,
|
|
1167
|
+
onAiButtonClick: () => {},
|
|
1168
|
+
decorations: [],
|
|
1169
|
+
descendantDecorations: [],
|
|
1170
|
+
decorationsTooltip: '',
|
|
1171
|
+
indent: 0,
|
|
1159
1172
|
},
|
|
1160
1173
|
this, this.listItemElement);
|
|
1161
1174
|
|
|
@@ -1219,8 +1232,8 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
1219
1232
|
|
|
1220
1233
|
override onattach(): void {
|
|
1221
1234
|
if (this.#hovered) {
|
|
1222
|
-
this.createSelection();
|
|
1223
1235
|
this.listItemElement.classList.add('hovered');
|
|
1236
|
+
this.performUpdate();
|
|
1224
1237
|
}
|
|
1225
1238
|
|
|
1226
1239
|
this.updateTitle();
|
|
@@ -1278,8 +1291,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
1278
1291
|
this.nodeInternal.highlight();
|
|
1279
1292
|
Host.userMetrics.actionTaken(Host.UserMetrics.Action.ChangeInspectedNodeInElementsPanel);
|
|
1280
1293
|
}
|
|
1281
|
-
this.
|
|
1282
|
-
this.createHint();
|
|
1294
|
+
this.performUpdate();
|
|
1283
1295
|
this.treeOutline.suppressRevealAndSelect = false;
|
|
1284
1296
|
return true;
|
|
1285
1297
|
}
|
|
@@ -2252,10 +2264,6 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
2252
2264
|
// fixme: make it clear that `this.title = x` is a setter with significant side effects
|
|
2253
2265
|
this.title = this.contentElement;
|
|
2254
2266
|
this.updateDecorations();
|
|
2255
|
-
if (this.selected) {
|
|
2256
|
-
this.createSelection();
|
|
2257
|
-
this.createHint();
|
|
2258
|
-
}
|
|
2259
2267
|
|
|
2260
2268
|
// If there is an issue with this node, make sure to update it.
|
|
2261
2269
|
for (const issue of this.#elementIssues.values()) {
|
|
@@ -2278,10 +2286,6 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
2278
2286
|
}
|
|
2279
2287
|
|
|
2280
2288
|
updateDecorations(): void {
|
|
2281
|
-
const indent = this.computeLeftIndent();
|
|
2282
|
-
this.gutterContainer.style.left = (-indent) + 'px';
|
|
2283
|
-
this.listItemElement.style.setProperty('--indent', indent + 'px');
|
|
2284
|
-
|
|
2285
2289
|
if (this.isClosingTag()) {
|
|
2286
2290
|
return;
|
|
2287
2291
|
}
|
|
@@ -2339,60 +2343,27 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
2339
2343
|
return Promise.all(promises).then(updateDecorationsUI.bind(this));
|
|
2340
2344
|
|
|
2341
2345
|
function updateDecorationsUI(this: ElementsTreeElement): void {
|
|
2342
|
-
this
|
|
2343
|
-
this
|
|
2344
|
-
this.gutterContainer.classList.toggle(
|
|
2345
|
-
'has-decorations', Boolean(decorations.length || descendantDecorations.length));
|
|
2346
|
-
UI.ARIAUtils.setLabel(this.decorationsElement, '');
|
|
2346
|
+
this.#decorations = decorations;
|
|
2347
|
+
this.#descendantDecorations = descendantDecorations;
|
|
2347
2348
|
|
|
2348
2349
|
if (!decorations.length && !descendantDecorations.length) {
|
|
2350
|
+
this.#decorationsTooltip = '';
|
|
2351
|
+
this.performUpdate();
|
|
2349
2352
|
return;
|
|
2350
2353
|
}
|
|
2351
2354
|
|
|
2352
|
-
const
|
|
2353
|
-
const titles = document.createElement('div');
|
|
2354
|
-
|
|
2355
|
+
const tooltip: string[] = [];
|
|
2355
2356
|
for (const decoration of decorations) {
|
|
2356
|
-
|
|
2357
|
-
titleElement.textContent = decoration.title;
|
|
2358
|
-
colors.add(decoration.color);
|
|
2357
|
+
tooltip.push(decoration.title);
|
|
2359
2358
|
}
|
|
2360
|
-
if (this.expanded &&
|
|
2361
|
-
|
|
2362
|
-
}
|
|
2363
|
-
|
|
2364
|
-
const descendantColors = new Set<string>();
|
|
2365
|
-
if (descendantDecorations.length) {
|
|
2366
|
-
let element = titles.createChild('div');
|
|
2367
|
-
element.textContent = i18nString(UIStrings.children);
|
|
2359
|
+
if (!this.expanded && descendantDecorations.length) {
|
|
2360
|
+
tooltip.push(i18nString(UIStrings.children));
|
|
2368
2361
|
for (const decoration of descendantDecorations) {
|
|
2369
|
-
|
|
2370
|
-
element.style.marginLeft = '15px';
|
|
2371
|
-
element.textContent = decoration.title;
|
|
2372
|
-
descendantColors.add(decoration.color);
|
|
2373
|
-
}
|
|
2374
|
-
}
|
|
2375
|
-
|
|
2376
|
-
let offset = 0;
|
|
2377
|
-
processColors.call(this, colors, 'elements-gutter-decoration');
|
|
2378
|
-
if (!this.expanded) {
|
|
2379
|
-
processColors.call(this, descendantColors, 'elements-gutter-decoration elements-has-decorated-children');
|
|
2380
|
-
}
|
|
2381
|
-
UI.Tooltip.Tooltip.install(this.decorationsElement, titles.textContent);
|
|
2382
|
-
UI.ARIAUtils.setLabel(this.decorationsElement, titles.textContent || '');
|
|
2383
|
-
|
|
2384
|
-
function processColors(this: ElementsTreeElement, colors: Set<string>, className: string): void {
|
|
2385
|
-
for (const color of colors) {
|
|
2386
|
-
const child = this.decorationsElement.createChild('div', className);
|
|
2387
|
-
this.decorationsElement.classList.remove('hidden');
|
|
2388
|
-
child.style.backgroundColor = color;
|
|
2389
|
-
child.style.borderColor = color;
|
|
2390
|
-
if (offset) {
|
|
2391
|
-
child.style.marginLeft = offset + 'px';
|
|
2392
|
-
}
|
|
2393
|
-
offset += 3;
|
|
2362
|
+
tooltip.push(decoration.title);
|
|
2394
2363
|
}
|
|
2395
2364
|
}
|
|
2365
|
+
this.#decorationsTooltip = tooltip.join('\n');
|
|
2366
|
+
this.performUpdate();
|
|
2396
2367
|
}
|
|
2397
2368
|
}
|
|
2398
2369
|
|
|
@@ -47,7 +47,7 @@ import * as UI from '../../ui/legacy/legacy.js';
|
|
|
47
47
|
import {html, nothing, render} from '../../ui/lit/lit.js';
|
|
48
48
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
49
49
|
|
|
50
|
-
import {AdoptedStyleSheetTreeElement} from './AdoptedStyleSheetTreeElement.js';
|
|
50
|
+
import {AdoptedStyleSheetSetTreeElement, AdoptedStyleSheetTreeElement} from './AdoptedStyleSheetTreeElement.js';
|
|
51
51
|
import {getElementIssueDetails} from './ElementIssueUtils.js';
|
|
52
52
|
import {ElementsPanel} from './ElementsPanel.js';
|
|
53
53
|
import {ElementsTreeElement, InitialChildrenLimit, isOpeningTag} from './ElementsTreeElement.js';
|
|
@@ -83,6 +83,7 @@ const elementsTreeOutlineByDOMModel = new WeakMap<SDK.DOMModel.DOMModel, Element
|
|
|
83
83
|
const populatedTreeElements = new WeakSet<ElementsTreeElement>();
|
|
84
84
|
|
|
85
85
|
export type View = typeof DEFAULT_VIEW;
|
|
86
|
+
export {elementsTreeOutlineStyles};
|
|
86
87
|
|
|
87
88
|
interface ViewInput {
|
|
88
89
|
omitRootDOMNode: boolean;
|
|
@@ -916,15 +917,21 @@ export class ElementsTreeOutline extends
|
|
|
916
917
|
}
|
|
917
918
|
|
|
918
919
|
highlightAdoptedStyleSheet(adoptedStyleSheet: SDK.DOMModel.AdoptedStyleSheet): void {
|
|
919
|
-
const
|
|
920
|
+
const parentDOMNode =
|
|
921
|
+
!this.includeRootDOMNode && adoptedStyleSheet.parent === this.rootDOMNode && this.rootDOMNode ?
|
|
920
922
|
this.rootElement() :
|
|
921
923
|
this.createTreeElementFor(adoptedStyleSheet.parent);
|
|
922
|
-
if (!
|
|
924
|
+
if (!parentDOMNode) {
|
|
925
|
+
return;
|
|
926
|
+
}
|
|
927
|
+
const parentNode = parentDOMNode.firstChild();
|
|
928
|
+
if (!(parentNode && parentNode instanceof AdoptedStyleSheetSetTreeElement)) {
|
|
923
929
|
return;
|
|
924
930
|
}
|
|
925
931
|
|
|
926
932
|
for (const child of parentNode.children()) {
|
|
927
933
|
if (child instanceof AdoptedStyleSheetTreeElement && child.adoptedStyleSheet === adoptedStyleSheet) {
|
|
934
|
+
parentNode.expand();
|
|
928
935
|
child.highlight();
|
|
929
936
|
return;
|
|
930
937
|
}
|
|
@@ -979,8 +986,8 @@ export class ElementsTreeOutline extends
|
|
|
979
986
|
this.dispatchEventToListeners(ElementsTreeOutline.Events.ElementsTreeUpdated, nodes);
|
|
980
987
|
}
|
|
981
988
|
|
|
982
|
-
findTreeElement(node: SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet): ElementsTreeElement|null {
|
|
983
|
-
if (node instanceof
|
|
989
|
+
findTreeElement(node: SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[]): ElementsTreeElement|null {
|
|
990
|
+
if (node instanceof Array) {
|
|
984
991
|
return null;
|
|
985
992
|
}
|
|
986
993
|
let treeElement = this.lookUpTreeElement(node);
|
|
@@ -1767,10 +1774,10 @@ export class ElementsTreeOutline extends
|
|
|
1767
1774
|
}
|
|
1768
1775
|
}
|
|
1769
1776
|
|
|
1770
|
-
private createElementTreeElement(node: SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet, isClosingTag?: boolean):
|
|
1777
|
+
private createElementTreeElement(node: SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[], isClosingTag?: boolean):
|
|
1771
1778
|
UI.TreeOutline.TreeElement {
|
|
1772
|
-
if (node instanceof
|
|
1773
|
-
return new
|
|
1779
|
+
if (node instanceof Array) {
|
|
1780
|
+
return new AdoptedStyleSheetSetTreeElement(node);
|
|
1774
1781
|
}
|
|
1775
1782
|
const treeElement = new ElementsTreeElement(node, isClosingTag);
|
|
1776
1783
|
treeElement.setExpandable(!isClosingTag && this.hasVisibleChildren(node));
|
|
@@ -1799,8 +1806,12 @@ export class ElementsTreeOutline extends
|
|
|
1799
1806
|
return treeElement.childAt(index) as ElementsTreeElement;
|
|
1800
1807
|
}
|
|
1801
1808
|
|
|
1802
|
-
private visibleChildren(node: SDK.DOMModel.DOMNode): Array<SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet> {
|
|
1803
|
-
|
|
1809
|
+
private visibleChildren(node: SDK.DOMModel.DOMNode): Array<SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[]> {
|
|
1810
|
+
const visibleChildren: Array<SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[]> = [];
|
|
1811
|
+
if (node.adoptedStyleSheetsForNode.length) {
|
|
1812
|
+
visibleChildren.push(node.adoptedStyleSheetsForNode);
|
|
1813
|
+
}
|
|
1814
|
+
visibleChildren.push(...ElementsTreeElement.visibleShadowRoots(node));
|
|
1804
1815
|
|
|
1805
1816
|
const contentDocument = node.contentDocument();
|
|
1806
1817
|
if (contentDocument) {
|
|
@@ -1837,7 +1848,7 @@ export class ElementsTreeOutline extends
|
|
|
1837
1848
|
if (!this.showHTMLCommentsSetting.get()) {
|
|
1838
1849
|
children = children.filter(n => n.nodeType() !== Node.COMMENT_NODE);
|
|
1839
1850
|
}
|
|
1840
|
-
visibleChildren
|
|
1851
|
+
visibleChildren.push(...children);
|
|
1841
1852
|
}
|
|
1842
1853
|
|
|
1843
1854
|
const afterPseudoElement = node.afterPseudoElement();
|
|
@@ -1926,7 +1937,7 @@ export class ElementsTreeOutline extends
|
|
|
1926
1937
|
}
|
|
1927
1938
|
|
|
1928
1939
|
insertChildElement(
|
|
1929
|
-
treeElement: ElementsTreeElement|TopLayerContainer, child: SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet,
|
|
1940
|
+
treeElement: ElementsTreeElement|TopLayerContainer, child: SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[],
|
|
1930
1941
|
index: number, isClosingTag?: boolean): UI.TreeOutline.TreeElement {
|
|
1931
1942
|
const newElement = this.createElementTreeElement(child, isClosingTag);
|
|
1932
1943
|
treeElement.insertChild(newElement, index);
|
|
@@ -1956,12 +1967,12 @@ export class ElementsTreeOutline extends
|
|
|
1956
1967
|
|
|
1957
1968
|
const node = treeElement.node();
|
|
1958
1969
|
const visibleChildren = this.visibleChildren(node);
|
|
1959
|
-
const visibleChildrenSet = new Set<SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet>(visibleChildren);
|
|
1970
|
+
const visibleChildrenSet = new Set<SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[]>(visibleChildren);
|
|
1960
1971
|
|
|
1961
1972
|
// Remove any tree elements that no longer have this node as their parent and save
|
|
1962
1973
|
// all existing elements that could be reused. This also removes closing tag element.
|
|
1963
|
-
const existingTreeElements =
|
|
1964
|
-
|
|
1974
|
+
const existingTreeElements = new Map<
|
|
1975
|
+
SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[], UI.TreeOutline.TreeElement&ElementsTreeElement>();
|
|
1965
1976
|
for (let i = treeElement.childCount() - 1; i >= 0; --i) {
|
|
1966
1977
|
const existingTreeElement = treeElement.childAt(i);
|
|
1967
1978
|
if (!(existingTreeElement instanceof ElementsTreeElement)) {
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
import * as Common from '../../core/common/common.js';
|
|
34
34
|
import * as Platform from '../../core/platform/platform.js';
|
|
35
35
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
36
|
+
import type * as ComputedStyle from '../../models/computed_style/computed_style.js';
|
|
36
37
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
37
38
|
import {Directives, html, type LitTemplate, nothing, render} from '../../ui/lit/lit.js';
|
|
38
39
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
39
40
|
|
|
40
|
-
import type {ComputedStyleModel} from './ComputedStyleModel.js';
|
|
41
41
|
import {ElementsSidebarPane} from './ElementsSidebarPane.js';
|
|
42
42
|
import metricsSidebarPaneStyles from './metricsSidebarPane.css.js';
|
|
43
43
|
|
|
@@ -190,7 +190,7 @@ export class MetricsSidebarPane extends ElementsSidebarPane {
|
|
|
190
190
|
private isEditingMetrics?: boolean;
|
|
191
191
|
private view: View;
|
|
192
192
|
|
|
193
|
-
constructor(computedStyleModel: ComputedStyleModel, view = DEFAULT_VIEW) {
|
|
193
|
+
constructor(computedStyleModel: ComputedStyle.ComputedStyleModel.ComputedStyleModel, view = DEFAULT_VIEW) {
|
|
194
194
|
super(computedStyleModel, {jslog: `${VisualLogging.pane('styles-metrics')}`});
|
|
195
195
|
this.registerRequiredCSS(metricsSidebarPaneStyles);
|
|
196
196
|
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
6
6
|
import type * as Protocol from '../../generated/protocol.js';
|
|
7
|
+
import * as ComputedStyle from '../../models/computed_style/computed_style.js';
|
|
7
8
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
8
9
|
import {html, render} from '../../ui/lit/lit.js';
|
|
9
10
|
|
|
10
|
-
import {type ComputedStyleModel, Events as ComputedStyleModelEvents} from './ComputedStyleModel.js';
|
|
11
11
|
import platformFontsWidgetStyles from './platformFontsWidget.css.js';
|
|
12
12
|
|
|
13
13
|
const UIStrings = {
|
|
@@ -78,17 +78,19 @@ export const DEFAULT_VIEW: View = (input, _output, target) => {
|
|
|
78
78
|
};
|
|
79
79
|
|
|
80
80
|
export class PlatformFontsWidget extends UI.Widget.VBox {
|
|
81
|
-
private readonly sharedModel: ComputedStyleModel;
|
|
81
|
+
private readonly sharedModel: ComputedStyle.ComputedStyleModel.ComputedStyleModel;
|
|
82
82
|
readonly #view: View;
|
|
83
83
|
|
|
84
|
-
constructor(sharedModel: ComputedStyleModel, view: View = DEFAULT_VIEW) {
|
|
84
|
+
constructor(sharedModel: ComputedStyle.ComputedStyleModel.ComputedStyleModel, view: View = DEFAULT_VIEW) {
|
|
85
85
|
super({useShadowDom: true});
|
|
86
86
|
this.#view = view;
|
|
87
87
|
this.registerRequiredCSS(platformFontsWidgetStyles);
|
|
88
88
|
|
|
89
89
|
this.sharedModel = sharedModel;
|
|
90
|
-
this.sharedModel.addEventListener(
|
|
91
|
-
|
|
90
|
+
this.sharedModel.addEventListener(
|
|
91
|
+
ComputedStyle.ComputedStyleModel.Events.CSS_MODEL_CHANGED, this.requestUpdate, this);
|
|
92
|
+
this.sharedModel.addEventListener(
|
|
93
|
+
ComputedStyle.ComputedStyleModel.Events.COMPUTED_STYLE_CHANGED, this.requestUpdate, this);
|
|
92
94
|
}
|
|
93
95
|
|
|
94
96
|
override async performUpdate(): Promise<void> {
|
|
@@ -189,14 +189,11 @@ export class PropertiesWidget extends UI.Widget.VBox {
|
|
|
189
189
|
}
|
|
190
190
|
|
|
191
191
|
const treeElement = this.treeOutline.rootElement();
|
|
192
|
-
let {properties} = await SDK.RemoteObject.RemoteObject.loadFromObjectPerProto(object, true /* generatePreview */);
|
|
193
192
|
treeElement.removeChildren();
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
}
|
|
193
|
+
const root = new ObjectUI.ObjectPropertiesSection.ObjectTree(
|
|
194
|
+
object, ObjectUI.ObjectPropertiesSection.ObjectPropertiesMode.OWN_AND_INTERNAL_AND_INHERITED);
|
|
197
195
|
ObjectUI.ObjectPropertiesSection.ObjectPropertyTreeElement.populateWithProperties(
|
|
198
|
-
treeElement,
|
|
199
|
-
true /* skipProto */, true /* skipGettersAndSetters */);
|
|
196
|
+
treeElement, await root.populateChildrenIfNeeded(), true /* skipProto */, true /* skipGettersAndSetters */);
|
|
200
197
|
this.internalFilterProperties();
|
|
201
198
|
}
|
|
202
199
|
this.#view(
|
|
@@ -43,6 +43,7 @@ import * as Root from '../../core/root/root.js';
|
|
|
43
43
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
44
44
|
import * as Protocol from '../../generated/protocol.js';
|
|
45
45
|
import * as Bindings from '../../models/bindings/bindings.js';
|
|
46
|
+
import type * as ComputedStyle from '../../models/computed_style/computed_style.js';
|
|
46
47
|
import * as TextUtils from '../../models/text_utils/text_utils.js';
|
|
47
48
|
import {createIcon, Icon} from '../../ui/kit/kit.js';
|
|
48
49
|
import * as InlineEditor from '../../ui/legacy/components/inline_editor/inline_editor.js';
|
|
@@ -52,7 +53,6 @@ import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
|
52
53
|
import * as PanelsCommon from '../common/common.js';
|
|
53
54
|
|
|
54
55
|
import * as ElementsComponents from './components/components.js';
|
|
55
|
-
import type {ComputedStyleModel, CSSModelChangedEvent} from './ComputedStyleModel.js';
|
|
56
56
|
import {ElementsPanel} from './ElementsPanel.js';
|
|
57
57
|
import {ElementsSidebarPane} from './ElementsSidebarPane.js';
|
|
58
58
|
import {ImagePreviewPopover} from './ImagePreviewPopover.js';
|
|
@@ -204,7 +204,7 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
|
|
|
204
204
|
#updateAbortController?: AbortController;
|
|
205
205
|
#updateComputedStylesAbortController?: AbortController;
|
|
206
206
|
|
|
207
|
-
constructor(computedStyleModel: ComputedStyleModel) {
|
|
207
|
+
constructor(computedStyleModel: ComputedStyle.ComputedStyleModel.ComputedStyleModel) {
|
|
208
208
|
super(computedStyleModel, {delegatesFocus: true});
|
|
209
209
|
this.setMinimumSize(96, 26);
|
|
210
210
|
this.registerRequiredCSS(stylesSidebarPaneStyles);
|
|
@@ -729,7 +729,8 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
|
|
|
729
729
|
}
|
|
730
730
|
}
|
|
731
731
|
|
|
732
|
-
override onCSSModelChanged(
|
|
732
|
+
override onCSSModelChanged(
|
|
733
|
+
event: Common.EventTarget.EventTargetEvent<ComputedStyle.ComputedStyleModel.CSSModelChangedEvent>): void {
|
|
733
734
|
const edit = event?.data && 'edit' in event.data ? event.data.edit : null;
|
|
734
735
|
if (edit) {
|
|
735
736
|
for (const section of this.allSections()) {
|
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
import './InspectElementModeController.js';
|
|
6
6
|
import './ColorSwatchPopoverIcon.js';
|
|
7
|
-
|
|
7
|
+
|
|
8
8
|
import './DOMPath.js';
|
|
9
9
|
import './ElementsSidebarPane.js';
|
|
10
10
|
import './ElementsTreeElement.js';
|
|
11
|
+
import './AdoptedStyleSheetTreeElement.js';
|
|
11
12
|
import './TopLayerContainer.js';
|
|
12
13
|
import './ElementsTreeOutline.js';
|
|
13
14
|
import './EventListenersWidget.js';
|
|
@@ -30,9 +31,9 @@ import './AccessibilityTreeView.js';
|
|
|
30
31
|
|
|
31
32
|
import * as AccessibilityTreeUtils from './AccessibilityTreeUtils.js';
|
|
32
33
|
import * as AccessibilityTreeView from './AccessibilityTreeView.js';
|
|
34
|
+
import * as AdoptedStyleSheetTreeElement from './AdoptedStyleSheetTreeElement.js';
|
|
33
35
|
import * as ClassesPaneWidget from './ClassesPaneWidget.js';
|
|
34
36
|
import * as ColorSwatchPopoverIcon from './ColorSwatchPopoverIcon.js';
|
|
35
|
-
import * as ComputedStyleModel from './ComputedStyleModel.js';
|
|
36
37
|
import * as ComputedStyleWidget from './ComputedStyleWidget.js';
|
|
37
38
|
import * as CSSRuleValidator from './CSSRuleValidator.js';
|
|
38
39
|
import * as CSSValueTraceView from './CSSValueTraceView.js';
|
|
@@ -65,9 +66,9 @@ import * as WebCustomData from './WebCustomData.js';
|
|
|
65
66
|
export {
|
|
66
67
|
AccessibilityTreeUtils,
|
|
67
68
|
AccessibilityTreeView,
|
|
69
|
+
AdoptedStyleSheetTreeElement,
|
|
68
70
|
ClassesPaneWidget,
|
|
69
71
|
ColorSwatchPopoverIcon,
|
|
70
|
-
ComputedStyleModel,
|
|
71
72
|
ComputedStyleWidget,
|
|
72
73
|
CSSRuleValidator,
|
|
73
74
|
CSSValueTraceView,
|
|
@@ -217,14 +217,25 @@ select {
|
|
|
217
217
|
}
|
|
218
218
|
|
|
219
219
|
.elements-gutter-decoration {
|
|
220
|
-
position: absolute;
|
|
221
|
-
top: 3px;
|
|
222
|
-
left: 2px;
|
|
223
220
|
height: 9px;
|
|
224
221
|
width: 9px;
|
|
225
222
|
border-radius: 5px;
|
|
226
|
-
border: 1px solid var(--
|
|
227
|
-
background-color: var(--
|
|
223
|
+
border: 1px solid var(--decoration-color); /* stylelint-disable-line plugin/use_theme_colors */
|
|
224
|
+
background-color: var(--decoration-color); /* stylelint-disable-line plugin/use_theme_colors */
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.elements-gutter-decoration-container {
|
|
228
|
+
display: flex;
|
|
229
|
+
position: absolute;
|
|
230
|
+
top: 0;
|
|
231
|
+
left: 1px;
|
|
232
|
+
width: 15px;
|
|
233
|
+
height: 15px;
|
|
234
|
+
align-items: center;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
.elements-gutter-decoration + .elements-gutter-decoration {
|
|
238
|
+
margin-left: -6px;
|
|
228
239
|
}
|
|
229
240
|
|
|
230
241
|
.elements-gutter-decoration.elements-has-decorated-children {
|