chrome-devtools-frontend 1.0.1579812 → 1.0.1581708
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/agents/prompts/merging-devtools-module.md +144 -0
- package/agents/prompts/ui-widgets.md +351 -0
- package/agents/prompts/verification.md +2 -1
- package/docs/contributing/README.md +5 -6
- package/docs/contributing/changes.md +1 -2
- package/docs/feature-specs/elements-tree-edit-html.md +14 -0
- package/docs/feature-specs/elements-tree-node-title.md +46 -0
- package/docs/styleguide/ux/README.md +1 -1
- 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 +12 -0
- package/front_end/core/sdk/StorageKeyManager.ts +6 -1
- package/front_end/core/sdk/Target.ts +4 -2
- 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 +536 -0
- package/front_end/entrypoints/greendev_floaty/floaty.css +298 -0
- package/front_end/entrypoints/greendev_floaty/floaty.html +38 -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/entrypoints/node_app/app/NodeMain.ts +19 -1
- package/front_end/entrypoints/node_app/node_app.ts +34 -0
- package/front_end/generated/InspectorBackendCommands.ts +9 -3
- 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 +56 -2
- package/front_end/models/ai_assistance/AiConversation.ts +10 -0
- package/front_end/models/ai_assistance/agents/AiAgent.ts +2 -0
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.snapshot.txt +24 -2
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +104 -9
- package/front_end/{panels/elements → models/computed_style}/ComputedStyleModel.ts +26 -0
- package/front_end/models/computed_style/computed_style.ts +9 -0
- package/front_end/models/issues_manager/CookieIssue.ts +0 -28
- package/front_end/models/issues_manager/CorsIssue.ts +11 -14
- package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +3 -5
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +102 -6
- package/front_end/panels/ai_assistance/components/ChatInput.ts +15 -2
- package/front_end/panels/ai_assistance/components/ChatView.ts +2 -0
- package/front_end/panels/animation/AnimationGroupPreviewUI.ts +1 -1
- package/front_end/panels/application/ApplicationPanelSidebar.ts +13 -11
- package/front_end/panels/application/DOMStorageModel.ts +1 -1
- package/front_end/panels/application/ResourcesPanel.ts +10 -5
- package/front_end/panels/application/ServiceWorkerUpdateCycleView.ts +0 -1
- package/front_end/panels/application/components/BackForwardCacheView.ts +2 -4
- package/front_end/panels/autofill/AutofillView.ts +1 -1
- package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +0 -1
- package/front_end/panels/changes/changesSidebar.css +5 -0
- package/front_end/panels/common/AiCodeCompletionTeaser.ts +13 -3
- package/front_end/panels/common/ExtensionPanel.ts +4 -0
- package/front_end/panels/common/FreDialog.ts +4 -0
- package/front_end/panels/common/aiCodeCompletionTeaser.css +6 -0
- package/front_end/panels/console/ConsoleViewMessage.ts +0 -1
- package/front_end/panels/console_counters/WarningErrorCounter.ts +16 -10
- package/front_end/panels/coverage/CoverageListView.ts +18 -3
- package/front_end/panels/elements/AdoptedStyleSheetTreeElement.ts +11 -0
- package/front_end/panels/elements/ComputedStyleWidget.ts +67 -45
- 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 +0 -1
- package/front_end/panels/elements/ElementsTreeOutline.ts +25 -15
- package/front_end/panels/elements/LayoutPane.ts +7 -8
- package/front_end/panels/elements/MetricsSidebarPane.ts +2 -2
- package/front_end/panels/elements/PlatformFontsWidget.ts +24 -9
- package/front_end/panels/elements/PropertiesWidget.ts +3 -6
- package/front_end/panels/elements/StylesSidebarPane.ts +4 -3
- package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +1 -1
- package/front_end/panels/elements/components/StylePropertyEditor.ts +1 -2
- package/front_end/panels/elements/elements.ts +1 -3
- package/front_end/panels/greendev/GreenDevPanel.css +282 -0
- package/front_end/panels/greendev/GreenDevPanel.ts +337 -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/LighthouseReportRenderer.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +1 -1
- package/front_end/panels/media/PlayerListView.ts +1 -1
- package/front_end/panels/network/NetworkLogViewColumns.ts +1 -2
- package/front_end/panels/network/RequestInitiatorView.ts +8 -11
- package/front_end/panels/network/RequestTimingView.ts +1 -1
- package/front_end/panels/network/components/RequestHeaderSection.ts +1 -1
- package/front_end/panels/protocol_monitor/JSONEditor.ts +1 -1
- package/front_end/panels/recorder/components/RecordingListView.ts +1 -1
- package/front_end/panels/recorder/components/StepEditor.ts +3 -3
- 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/KeybindsSettingsTab.ts +5 -5
- package/front_end/panels/sources/OutlineQuickOpen.ts +19 -0
- package/front_end/panels/sources/SourcesSearchScope.ts +2 -1
- package/front_end/panels/sources/components/HeadersView.ts +2 -2
- package/front_end/panels/timeline/TimelinePanel.ts +25 -0
- package/front_end/panels/timeline/components/BreadcrumbsUI.ts +1 -1
- package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +1 -1
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/lighthouse/README.chromium +2 -2
- package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +145 -144
- package/front_end/third_party/lighthouse/report/bundle.js +12 -5
- package/front_end/third_party/lighthouse/report-assets/report-generator.mjs +2 -2
- 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/suggestion_input/SuggestionInput.ts +12 -7
- 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/components/tree_outline/TreeOutline.ts +1 -1
- package/front_end/ui/legacy/ListControl.ts +27 -1
- package/front_end/ui/legacy/ListWidget.ts +1 -1
- package/front_end/ui/legacy/SearchableView.ts +5 -2
- package/front_end/ui/legacy/SoftContextMenu.ts +1 -2
- package/front_end/ui/legacy/Treeoutline.ts +1 -2
- package/front_end/ui/legacy/UIUtils.ts +17 -7
- package/front_end/ui/legacy/Widget.ts +15 -0
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +8 -4
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +50 -1
- 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/quick_open/FilteredListWidget.ts +1 -1
- package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +4 -2
- package/front_end/ui/visual_logging/KnownContextValues.ts +15 -0
- package/inspector_overlay/main.ts +18 -3
- package/inspector_overlay/tool_green_dev_anchors.css +54 -0
- package/inspector_overlay/tool_green_dev_anchors.ts +164 -0
- package/inspector_overlay/tool_persistent.ts +14 -0
- package/mcp/mcp.ts +1 -0
- package/package.json +1 -1
- package/docs/contributing/design.md +0 -166
- package/docs/design_guidelines.md +0 -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
|
@@ -37,9 +37,13 @@ export class ResourcesPanel extends UI.Panel.PanelWithSidebar {
|
|
|
37
37
|
private cookieView: CookieItemsView|null;
|
|
38
38
|
private deviceBoundSessionsView: DeviceBoundSessionsView|null;
|
|
39
39
|
private readonly sidebar: ApplicationPanelSidebar;
|
|
40
|
+
mode: 'default'|'node' = 'default';
|
|
40
41
|
|
|
41
|
-
private constructor(
|
|
42
|
+
private constructor(
|
|
43
|
+
mode: 'default'|'node' = 'default',
|
|
44
|
+
) {
|
|
42
45
|
super('resources');
|
|
46
|
+
this.mode = mode;
|
|
43
47
|
this.registerRequiredCSS(resourcesPanelStyles);
|
|
44
48
|
|
|
45
49
|
this.resourcesLastSelectedItemSetting =
|
|
@@ -68,11 +72,12 @@ export class ResourcesPanel extends UI.Panel.PanelWithSidebar {
|
|
|
68
72
|
}
|
|
69
73
|
|
|
70
74
|
static instance(opts: {
|
|
71
|
-
forceNew
|
|
72
|
-
|
|
73
|
-
|
|
75
|
+
forceNew?: boolean|null,
|
|
76
|
+
mode?: 'default'|'node',
|
|
77
|
+
} = {forceNew: null, mode: 'default'}): ResourcesPanel {
|
|
78
|
+
const {forceNew, mode} = opts;
|
|
74
79
|
if (!resourcesPanelInstance || forceNew) {
|
|
75
|
-
resourcesPanelInstance = new ResourcesPanel();
|
|
80
|
+
resourcesPanelInstance = new ResourcesPanel(mode);
|
|
76
81
|
}
|
|
77
82
|
|
|
78
83
|
return resourcesPanelInstance;
|
|
@@ -180,7 +180,6 @@ export class ServiceWorkerUpdateCycleView {
|
|
|
180
180
|
const tr = this.tableElement.createChild('tr', 'service-worker-update-timeline');
|
|
181
181
|
tr.setAttribute('jslog', `${VisualLogging.treeItem('update-timeline').track({
|
|
182
182
|
click: true,
|
|
183
|
-
resize: true,
|
|
184
183
|
keydown: 'ArrowLeft|ArrowRight|ArrowUp|ArrowDown|Enter|Space',
|
|
185
184
|
})}`);
|
|
186
185
|
this.rows.push(tr);
|
|
@@ -353,7 +353,7 @@ function renderFramesPerReason(frames: string[]|undefined): LitTemplate {
|
|
|
353
353
|
}
|
|
354
354
|
const rows = [html`<div>${i18nString(UIStrings.framesPerIssue, {n: frames.length})}</div>`];
|
|
355
355
|
rows.push(...frames.map(url => html`<div class="text-ellipsis" title=${url}
|
|
356
|
-
jslog=${VisualLogging.treeItem()
|
|
356
|
+
jslog=${VisualLogging.treeItem()}>${url}</div>`));
|
|
357
357
|
return html`
|
|
358
358
|
<div class="details-list"
|
|
359
359
|
jslog=${VisualLogging.tree('frames-per-issue')}>
|
|
@@ -361,9 +361,7 @@ function renderFramesPerReason(frames: string[]|undefined): LitTemplate {
|
|
|
361
361
|
rows,
|
|
362
362
|
title: i18nString(UIStrings.framesPerIssue, {n: frames.length}),
|
|
363
363
|
} as ExpandableList.ExpandableList.ExpandableListData}
|
|
364
|
-
jslog=${VisualLogging.treeItem()
|
|
365
|
-
resize: true
|
|
366
|
-
})}></devtools-expandable-list>
|
|
364
|
+
jslog=${VisualLogging.treeItem()}></devtools-expandable-list>
|
|
367
365
|
</div>
|
|
368
366
|
`;
|
|
369
367
|
}
|
|
@@ -144,7 +144,7 @@ const DEFAULT_VIEW: View = (input: ViewInput, _output: ViewOutput, target: HTMLE
|
|
|
144
144
|
// clang-format off
|
|
145
145
|
return html`
|
|
146
146
|
<span class=${spanClasses}
|
|
147
|
-
jslog=${VisualLogging.item('matched-address-item').track({hover: true
|
|
147
|
+
jslog=${VisualLogging.item('matched-address-item').track({hover: true})}
|
|
148
148
|
@mouseenter=${() => input.onHighlightMatchesInAddress(startIndex)}
|
|
149
149
|
@mouseleave=${input.onClearHighlightedMatches}>
|
|
150
150
|
${templateLines}
|
|
@@ -238,7 +238,6 @@ export class XHRBreakpointsSidebarPane extends UI.Widget.VBox implements UI.Cont
|
|
|
238
238
|
listItemElement.setAttribute('jslog', `${VisualLogging.item().track({
|
|
239
239
|
click: true,
|
|
240
240
|
dblclick: true,
|
|
241
|
-
resize: true,
|
|
242
241
|
keydown: 'ArrowUp|ArrowDown|PageUp|PageDown|Enter|Space',
|
|
243
242
|
})}`);
|
|
244
243
|
return listItemElement;
|
|
@@ -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 {
|
|
@@ -73,12 +73,12 @@ const UIStringsNotTranslate = {
|
|
|
73
73
|
* @description Code generation disclaimer item text for the fre dialog.
|
|
74
74
|
*/
|
|
75
75
|
freDisclaimerDescribeCodeInComment:
|
|
76
|
-
'In Console or Sources, describe the code you need in a comment, then press
|
|
76
|
+
'In Console or Sources, describe the code you need in a comment, then press ctrl+i to generate it.',
|
|
77
77
|
/**
|
|
78
78
|
* @description Code generation disclaimer item text for the fre dialog.
|
|
79
79
|
*/
|
|
80
80
|
freDisclaimerDescribeCodeInCommentForMacOs:
|
|
81
|
-
'In Console or Sources, describe the code you need in a comment, then press
|
|
81
|
+
'In Console or Sources, describe the code you need in a comment, then press cmd+i to generate it.',
|
|
82
82
|
/**
|
|
83
83
|
* @description Privacy disclaimer item text for the fre dialog.
|
|
84
84
|
*/
|
|
@@ -140,7 +140,17 @@ export const DEFAULT_VIEW: View = (input, _output, target) => {
|
|
|
140
140
|
<span>${lockedString(UIStringsNotTranslate.i)}</span>
|
|
141
141
|
</span>
|
|
142
142
|
</span> ${lockedString(UIStringsNotTranslate.toTurnOnCodeSuggestions)}
|
|
143
|
-
<span role="button" class="ai-code-completion-teaser-dismiss"
|
|
143
|
+
<span role="button" class="ai-code-completion-teaser-dismiss"
|
|
144
|
+
tabindex="0"
|
|
145
|
+
@click=${input.onDismiss}
|
|
146
|
+
@keydown=${(e: KeyboardEvent) => {
|
|
147
|
+
// Handle Enter and Space events to make dismiss button accessible for only keyboard users.
|
|
148
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
149
|
+
input.onDismiss(e);
|
|
150
|
+
e.stopPropagation();
|
|
151
|
+
e.preventDefault();
|
|
152
|
+
}
|
|
153
|
+
}}
|
|
144
154
|
jslog=${VisualLogging.action('ai-code-completion-teaser.dismiss').track({click: true})}>
|
|
145
155
|
${lockedString(UIStringsNotTranslate.dontShowAgain)}
|
|
146
156
|
</span>
|
|
@@ -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
|
}
|
|
@@ -26,6 +26,12 @@
|
|
|
26
26
|
.ai-code-completion-teaser-dismiss {
|
|
27
27
|
text-decoration: underline;
|
|
28
28
|
cursor: pointer;
|
|
29
|
+
|
|
30
|
+
&:focus-visible {
|
|
31
|
+
border-radius: var(--sys-shape-corner-extra-small);
|
|
32
|
+
outline: var(--sys-size-2) solid var(--sys-color-state-focus-ring);
|
|
33
|
+
outline-offset: 0;
|
|
34
|
+
}
|
|
29
35
|
}
|
|
30
36
|
|
|
31
37
|
.ai-code-completion-teaser-action {
|
|
@@ -1425,7 +1425,6 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
|
|
|
1425
1425
|
this.elementInternal.className = 'console-message-wrapper';
|
|
1426
1426
|
this.elementInternal.setAttribute('jslog', `${VisualLogging.item('console-message').track({
|
|
1427
1427
|
click: true,
|
|
1428
|
-
resize: true,
|
|
1429
1428
|
keydown: 'ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Enter|Space|Home|End',
|
|
1430
1429
|
})}`);
|
|
1431
1430
|
this.elementInternal.removeChildren();
|
|
@@ -12,9 +12,11 @@ import * as IssuesManager from '../../models/issues_manager/issues_manager.js';
|
|
|
12
12
|
import type * as IconButton from '../../ui/components/icon_button/icon_button.js';
|
|
13
13
|
import * as IssueCounter from '../../ui/components/issue_counter/issue_counter.js';
|
|
14
14
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
15
|
-
import
|
|
15
|
+
import * as Lit from '../../ui/lit/lit.js';
|
|
16
16
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
17
17
|
|
|
18
|
+
const {html, nothing, render} = Lit;
|
|
19
|
+
|
|
18
20
|
const UIStrings = {
|
|
19
21
|
/**
|
|
20
22
|
* @description The console error count in the Warning Error Counter shown in the main toolbar (top-left in DevTools). The error count refers to the number of errors currently present in the JavaScript console.
|
|
@@ -95,21 +97,25 @@ const DEFAULT_VIEW: View = (input, _output, target) => {
|
|
|
95
97
|
|
|
96
98
|
render(
|
|
97
99
|
html`<div class="status-buttons"
|
|
98
|
-
|
|
100
|
+
>${
|
|
101
|
+
errors + warnings ? html`<icon-button
|
|
99
102
|
.data=${iconData}
|
|
100
103
|
title=${consoleTitle}
|
|
101
|
-
class=${'small'
|
|
104
|
+
class=${'small'}
|
|
102
105
|
jslog=${VisualLogging.counter('console').track({
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
></icon-button
|
|
106
|
-
|
|
106
|
+
click: true
|
|
107
|
+
})}
|
|
108
|
+
></icon-button>` :
|
|
109
|
+
nothing}${
|
|
110
|
+
issues ? html`<devtools-issue-counter
|
|
111
|
+
class=${'main-toolbar'}
|
|
107
112
|
title=${issuesTitle}
|
|
108
113
|
.data=${issueCounterData}
|
|
109
114
|
jslog=${VisualLogging.counter('issue').track({
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
></devtools-issue-counter
|
|
115
|
+
click: true
|
|
116
|
+
})}
|
|
117
|
+
></devtools-issue-counter>` :
|
|
118
|
+
nothing}</div>`,
|
|
113
119
|
target);
|
|
114
120
|
};
|
|
115
121
|
|
|
@@ -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
|
|
@@ -13,6 +13,17 @@ import {PanelUtils} from '../utils/utils.js';
|
|
|
13
13
|
|
|
14
14
|
import type {EditorHandles} from './ElementsTreeElement.js';
|
|
15
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
|
+
|
|
16
27
|
export class AdoptedStyleSheetTreeElement extends UI.TreeOutline.TreeElement {
|
|
17
28
|
private eventListener: Common.EventTarget.EventDescriptor|null = null;
|
|
18
29
|
|
|
@@ -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';
|
|
@@ -53,7 +53,7 @@ import {categorizePropertyName, type Category, DefaultCategoryOrder} from './Pro
|
|
|
53
53
|
import {Renderer, rendererBase, type RenderingContext, StringRenderer, URLRenderer} from './PropertyRenderer.js';
|
|
54
54
|
import {StylePropertiesSection} from './StylePropertiesSection.js';
|
|
55
55
|
|
|
56
|
-
const {html} = Lit;
|
|
56
|
+
const {html, render} = Lit;
|
|
57
57
|
|
|
58
58
|
const UIStrings = {
|
|
59
59
|
/**
|
|
@@ -197,7 +197,7 @@ const createTraceElement =
|
|
|
197
197
|
return trace;
|
|
198
198
|
};
|
|
199
199
|
|
|
200
|
-
|
|
200
|
+
// clang-format off
|
|
201
201
|
class ColorRenderer extends rendererBase(SDK.CSSPropertyParserMatchers.ColorMatch) {
|
|
202
202
|
// clang-format on
|
|
203
203
|
override render(match: SDK.CSSPropertyParserMatchers.ColorMatch, context: RenderingContext): Node[] {
|
|
@@ -261,28 +261,56 @@ type ComputedStyleData = {
|
|
|
261
261
|
name: string,
|
|
262
262
|
};
|
|
263
263
|
|
|
264
|
+
interface ComputedStyleWidgetInput {
|
|
265
|
+
computedStylesTree: TreeOutline.TreeOutline.TreeOutline<ComputedStyleData>;
|
|
266
|
+
toolbar: HTMLElement;
|
|
267
|
+
hasMatches: boolean;
|
|
268
|
+
computedStyleModel: ComputedStyleModule.ComputedStyleModel.ComputedStyleModel;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
type View = (input: ComputedStyleWidgetInput, output: null, target: HTMLElement) => void;
|
|
272
|
+
|
|
273
|
+
export const DEFAULT_VIEW: View = (input, _output, target) => {
|
|
274
|
+
// clang-format off
|
|
275
|
+
render(html`
|
|
276
|
+
<div class="styles-sidebar-pane-toolbar">${input.toolbar}</div>
|
|
277
|
+
<div class="computed-style-tree-outline-container">
|
|
278
|
+
${input.computedStylesTree}
|
|
279
|
+
</div>
|
|
280
|
+
${!input.hasMatches ? html`<div class="gray-info-message">${i18nString(UIStrings.noMatchingProperty)}</div>` : ''}
|
|
281
|
+
<div class="platform-fonts-widget-container">
|
|
282
|
+
<devtools-widget .widgetConfig=${UI.Widget.widgetConfig(PlatformFontsWidget, { sharedModel: input.computedStyleModel})}></devtools-widget>
|
|
283
|
+
</div>
|
|
284
|
+
`, target);
|
|
285
|
+
// clang-format on
|
|
286
|
+
};
|
|
287
|
+
|
|
264
288
|
export class ComputedStyleWidget extends UI.Widget.VBox {
|
|
265
|
-
private computedStyleModel: ComputedStyleModel;
|
|
289
|
+
private computedStyleModel: ComputedStyleModule.ComputedStyleModel.ComputedStyleModel;
|
|
266
290
|
private readonly showInheritedComputedStylePropertiesSetting: Common.Settings.Setting<boolean>;
|
|
267
291
|
private readonly groupComputedStylesSetting: Common.Settings.Setting<boolean>;
|
|
268
292
|
input: UI.Toolbar.ToolbarInput;
|
|
269
293
|
private filterRegex: RegExp|null;
|
|
270
|
-
private readonly noMatchesElement: HTMLElement;
|
|
271
294
|
private readonly linkifier: Components.Linkifier.Linkifier;
|
|
272
295
|
private readonly imagePreviewPopover: ImagePreviewPopover;
|
|
273
296
|
|
|
274
297
|
#computedStylesTree = new TreeOutline.TreeOutline.TreeOutline<ComputedStyleData>();
|
|
275
298
|
#treeData?: TreeOutline.TreeOutline.TreeOutlineData<ComputedStyleData>;
|
|
299
|
+
readonly #view: View;
|
|
300
|
+
private readonly toolbarElement: HTMLElement;
|
|
276
301
|
|
|
277
|
-
constructor(computedStyleModel: ComputedStyleModel) {
|
|
302
|
+
constructor(computedStyleModel: ComputedStyleModule.ComputedStyleModel.ComputedStyleModel) {
|
|
278
303
|
super({useShadowDom: true});
|
|
304
|
+
this.#view = DEFAULT_VIEW;
|
|
279
305
|
this.registerRequiredCSS(computedStyleSidebarPaneStyles);
|
|
280
306
|
|
|
281
307
|
this.contentElement.classList.add('styles-sidebar-computed-style-widget');
|
|
282
308
|
|
|
283
309
|
this.computedStyleModel = computedStyleModel;
|
|
284
|
-
this.computedStyleModel.addEventListener(
|
|
285
|
-
|
|
310
|
+
this.computedStyleModel.addEventListener(
|
|
311
|
+
ComputedStyleModule.ComputedStyleModel.Events.CSS_MODEL_CHANGED, this.requestUpdate, this);
|
|
312
|
+
this.computedStyleModel.addEventListener(
|
|
313
|
+
ComputedStyleModule.ComputedStyleModel.Events.COMPUTED_STYLE_CHANGED, this.requestUpdate, this);
|
|
286
314
|
|
|
287
315
|
this.showInheritedComputedStylePropertiesSetting =
|
|
288
316
|
Common.Settings.Settings.instance().createSetting('show-inherited-computed-style-properties', false);
|
|
@@ -293,8 +321,12 @@ export class ComputedStyleWidget extends UI.Widget.VBox {
|
|
|
293
321
|
this.requestUpdate();
|
|
294
322
|
});
|
|
295
323
|
|
|
296
|
-
|
|
297
|
-
|
|
324
|
+
this.toolbarElement = document.createElement('div');
|
|
325
|
+
this.toolbarElement.classList.add('hbox', 'styles-sidebar-pane-toolbar');
|
|
326
|
+
const toolbar = document.createElement('devtools-toolbar');
|
|
327
|
+
toolbar.classList.add('styles-pane-toolbar');
|
|
328
|
+
this.toolbarElement.appendChild(toolbar);
|
|
329
|
+
|
|
298
330
|
const filterInput = new UI.Toolbar.ToolbarFilter(undefined, 1, 1, undefined, undefined, false);
|
|
299
331
|
filterInput.addEventListener(UI.Toolbar.ToolbarInput.Event.TEXT_CHANGED, this.onFilterChanged, this);
|
|
300
332
|
toolbar.appendToolbarItem(filterInput);
|
|
@@ -306,11 +338,6 @@ export class ComputedStyleWidget extends UI.Widget.VBox {
|
|
|
306
338
|
toolbar.appendToolbarItem(
|
|
307
339
|
new UI.Toolbar.ToolbarSettingCheckbox(this.groupComputedStylesSetting, undefined, i18nString(UIStrings.group)));
|
|
308
340
|
|
|
309
|
-
this.noMatchesElement = this.contentElement.createChild('div', 'gray-info-message');
|
|
310
|
-
this.noMatchesElement.textContent = i18nString(UIStrings.noMatchingProperty);
|
|
311
|
-
|
|
312
|
-
this.contentElement.appendChild(this.#computedStylesTree);
|
|
313
|
-
|
|
314
341
|
this.linkifier = new Components.Linkifier.Linkifier(maxLinkLength);
|
|
315
342
|
|
|
316
343
|
this.imagePreviewPopover = new ImagePreviewPopover(this.contentElement, event => {
|
|
@@ -321,8 +348,7 @@ export class ComputedStyleWidget extends UI.Widget.VBox {
|
|
|
321
348
|
return null;
|
|
322
349
|
}, () => this.computedStyleModel.node);
|
|
323
350
|
|
|
324
|
-
|
|
325
|
-
fontsWidget.show(this.contentElement);
|
|
351
|
+
this.#updateView({hasMatches: true});
|
|
326
352
|
}
|
|
327
353
|
|
|
328
354
|
override onResize(): void {
|
|
@@ -340,11 +366,24 @@ export class ComputedStyleWidget extends UI.Widget.VBox {
|
|
|
340
366
|
UI.Context.Context.instance().setFlavor(ComputedStyleWidget, null);
|
|
341
367
|
}
|
|
342
368
|
|
|
369
|
+
/**
|
|
370
|
+
* @param input.hasMatches Whether any properties matched the current filter (or if any properties exist at all).
|
|
371
|
+
*/
|
|
372
|
+
#updateView({hasMatches}: {hasMatches: boolean}): void {
|
|
373
|
+
this.#view(
|
|
374
|
+
{
|
|
375
|
+
computedStylesTree: this.#computedStylesTree,
|
|
376
|
+
toolbar: this.toolbarElement,
|
|
377
|
+
hasMatches,
|
|
378
|
+
computedStyleModel: this.computedStyleModel,
|
|
379
|
+
},
|
|
380
|
+
null, this.contentElement);
|
|
381
|
+
}
|
|
382
|
+
|
|
343
383
|
override async performUpdate(): Promise<void> {
|
|
344
|
-
const
|
|
345
|
-
await Promise.all([this.computedStyleModel.fetchComputedStyle(), this.fetchMatchedCascade()]);
|
|
384
|
+
const {computedStyle: nodeStyles, matchedStyles} = await this.computedStyleModel.fetchAllComputedStyleInfo();
|
|
346
385
|
if (!nodeStyles || !matchedStyles) {
|
|
347
|
-
this
|
|
386
|
+
this.#updateView({hasMatches: false});
|
|
348
387
|
return;
|
|
349
388
|
}
|
|
350
389
|
const shouldGroupComputedStyles = this.groupComputedStylesSetting.get();
|
|
@@ -355,27 +394,9 @@ export class ComputedStyleWidget extends UI.Widget.VBox {
|
|
|
355
394
|
}
|
|
356
395
|
}
|
|
357
396
|
|
|
358
|
-
private async
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
return null;
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
const cssModel = this.computedStyleModel.cssModel();
|
|
365
|
-
if (!cssModel) {
|
|
366
|
-
return null;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
return await cssModel.cachedMatchedCascadeForNode(node).then(validateStyles.bind(this));
|
|
370
|
-
|
|
371
|
-
function validateStyles(this: ComputedStyleWidget, matchedStyles: SDK.CSSMatchedStyles.CSSMatchedStyles|null):
|
|
372
|
-
SDK.CSSMatchedStyles.CSSMatchedStyles|null {
|
|
373
|
-
return matchedStyles && matchedStyles.node() === this.computedStyleModel.node ? matchedStyles : null;
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
private async rebuildAlphabeticalList(nodeStyle: ComputedStyle, matchedStyles: SDK.CSSMatchedStyles.CSSMatchedStyles):
|
|
378
|
-
Promise<void> {
|
|
397
|
+
private async rebuildAlphabeticalList(
|
|
398
|
+
nodeStyle: ComputedStyleModule.ComputedStyleModel.ComputedStyle,
|
|
399
|
+
matchedStyles: SDK.CSSMatchedStyles.CSSMatchedStyles): Promise<void> {
|
|
379
400
|
this.imagePreviewPopover.hide();
|
|
380
401
|
this.linkifier.reset();
|
|
381
402
|
const cssModel = this.computedStyleModel.cssModel();
|
|
@@ -417,12 +438,13 @@ export class ComputedStyleWidget extends UI.Widget.VBox {
|
|
|
417
438
|
}
|
|
418
439
|
|
|
419
440
|
private async rebuildGroupedList(
|
|
420
|
-
nodeStyle: ComputedStyle|null,
|
|
441
|
+
nodeStyle: ComputedStyleModule.ComputedStyleModel.ComputedStyle|null,
|
|
442
|
+
matchedStyles: SDK.CSSMatchedStyles.CSSMatchedStyles|null): Promise<void> {
|
|
421
443
|
this.imagePreviewPopover.hide();
|
|
422
444
|
this.linkifier.reset();
|
|
423
445
|
const cssModel = this.computedStyleModel.cssModel();
|
|
424
446
|
if (!nodeStyle || !matchedStyles || !cssModel) {
|
|
425
|
-
this
|
|
447
|
+
this.#updateView({hasMatches: false});
|
|
426
448
|
return;
|
|
427
449
|
}
|
|
428
450
|
|
|
@@ -644,7 +666,7 @@ export class ComputedStyleWidget extends UI.Widget.VBox {
|
|
|
644
666
|
defaultRenderer: this.#treeData.defaultRenderer,
|
|
645
667
|
compact: this.#treeData.compact,
|
|
646
668
|
};
|
|
647
|
-
this
|
|
669
|
+
this.#updateView({hasMatches: Boolean(tree.length)});
|
|
648
670
|
}
|
|
649
671
|
|
|
650
672
|
private async filterGroupLists(): Promise<void> {
|
|
@@ -671,7 +693,7 @@ export class ComputedStyleWidget extends UI.Widget.VBox {
|
|
|
671
693
|
compact: this.#treeData.compact,
|
|
672
694
|
};
|
|
673
695
|
await this.#computedStylesTree.expandRecursively(0);
|
|
674
|
-
this
|
|
696
|
+
this.#updateView({hasMatches: Boolean(tree.length)});
|
|
675
697
|
}
|
|
676
698
|
}
|
|
677
699
|
|
|
@@ -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 {
|
|
@@ -721,7 +721,6 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
721
721
|
this.listItemElement.setAttribute(
|
|
722
722
|
'jslog', `${VisualLogging.treeItem().parent('elementsTreeOutline').track({
|
|
723
723
|
keydown: 'ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Backspace|Delete|Enter|Space|Home|End',
|
|
724
|
-
resize: true,
|
|
725
724
|
drag: true,
|
|
726
725
|
click: true,
|
|
727
726
|
})}`);
|