chrome-devtools-frontend 1.0.936819 → 1.0.938678
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/config/gni/all_devtools_files.gni +0 -20
- package/config/gni/devtools_grd_files.gni +2 -10
- package/front_end/Images/whatsnew.avif +0 -0
- package/front_end/Tests.js +0 -1
- package/front_end/core/host/InspectorFrontendHostAPI.ts +1 -0
- package/front_end/core/host/UserMetrics.ts +25 -0
- package/front_end/core/platform/string-utilities.ts +23 -0
- package/front_end/core/sdk/DOMModel.ts +1 -1
- package/front_end/core/sdk/NetworkManager.ts +1 -0
- package/front_end/entrypoints/devtools_app/devtools_app.json +0 -5
- package/front_end/entrypoints/inspector_main/inspector_main-meta.ts +0 -3
- package/front_end/entrypoints/lighthouse_worker/LighthouseService.ts +3 -1
- package/front_end/entrypoints/main/MainImpl.ts +15 -0
- package/front_end/entrypoints/node_app/node_app-meta.ts +0 -3
- package/front_end/entrypoints/node_app/node_app.js +3 -0
- package/front_end/entrypoints/shell/shell.json +3 -7
- package/front_end/entrypoints/worker_app/worker_app.json +0 -2
- package/front_end/generated/InspectorBackendCommands.js +14 -5
- package/front_end/generated/SupportedCSSProperties.js +8 -4
- package/front_end/generated/protocol-mapping.d.ts +10 -0
- package/front_end/generated/protocol-proxy-api.d.ts +19 -0
- package/front_end/generated/protocol.d.ts +56 -1
- package/front_end/legacy_test_runner/test_runner/test_runner.js +2 -4
- package/front_end/models/issues_manager/DeprecationIssue.ts +67 -0
- package/front_end/models/issues_manager/IssuesManager.ts +5 -0
- package/front_end/models/issues_manager/descriptions/deprecation.md +3 -0
- package/front_end/models/issues_manager/issues_manager.ts +2 -0
- package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +8 -1
- package/front_end/panels/accessibility/accessibility-meta.ts +0 -3
- package/front_end/panels/application/components/ReportsGrid.ts +38 -4
- package/front_end/panels/application/components/reportingApiGrid.css +4 -0
- package/front_end/panels/application/module.json +1 -3
- package/front_end/panels/browser_debugger/browser_debugger-meta.ts +0 -5
- package/front_end/panels/console/console-meta.ts +1 -3
- package/front_end/panels/coverage/coverage-meta.ts +0 -3
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +18 -17
- package/front_end/panels/css_overview/CSSOverviewPanel.ts +31 -10
- package/front_end/panels/css_overview/css_overview-meta.ts +0 -3
- package/front_end/panels/elements/StylePropertyTreeElement.ts +3 -0
- package/front_end/panels/elements/elements-meta.ts +0 -2
- package/front_end/panels/elements/stylesSidebarPane.css +8 -0
- package/front_end/panels/event_listeners/EventListenersView.ts +2 -0
- package/front_end/panels/help/ReleaseNoteText.ts +28 -0
- package/front_end/panels/issues/issuesTree.css +11 -0
- package/front_end/panels/lighthouse/module.json +0 -1
- package/front_end/panels/media/module.json +0 -1
- package/front_end/panels/network/module.json +0 -1
- package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +3 -0
- package/front_end/panels/protocol_monitor/protocol_monitor-meta.ts +0 -2
- package/front_end/panels/sources/JavaScriptBreakpointsSidebarPane.ts +14 -17
- package/front_end/panels/sources/javaScriptBreakpointsSidebarPane.css +18 -44
- package/front_end/panels/sources/sources-meta.ts +0 -2
- package/front_end/panels/timeline/module.json +0 -1
- package/front_end/third_party/puppeteer/package/CHANGELOG.md +29 -0
- package/front_end/third_party/puppeteer/package/README.md +12 -14
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.js +13 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Connection.d.ts +10 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Connection.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Connection.js +25 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Connection.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Coverage.js +6 -6
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Coverage.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.d.ts +3 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.js +16 -12
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Dialog.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Dialog.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.d.ts +10 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.js +9 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EventEmitter.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EventEmitter.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ExecutionContext.js +8 -8
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ExecutionContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FileChooser.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FileChooser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.d.ts +21 -9
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js +155 -72
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts +5 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js +32 -29
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.js +14 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Input.d.ts +2 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Input.js +3 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.js +13 -12
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/LifecycleWatcher.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/LifecycleWatcher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.js +2 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.d.ts +33 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.js +92 -46
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Puppeteer.js +5 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Puppeteer.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Target.d.ts +3 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Target.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Target.js +3 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Target.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/TaskQueue.d.ts +21 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/TaskQueue.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/TaskQueue.js +30 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/TaskQueue.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Tracing.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Tracing.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.js +5 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js +14 -14
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.js +11 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.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/Launcher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js +30 -15
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Puppeteer.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Puppeteer.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/install.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/install.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node-puppeteer-core.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node-puppeteer-core.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/web.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/web.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.js +9 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.d.ts +10 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.js +22 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts +3 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.js +6 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts +10 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js +7 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts +21 -9
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js +150 -68
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts +5 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js +22 -19
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.js +15 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts +2 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.js +2 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.js +2 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js +1 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts +33 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js +69 -23
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.d.ts +3 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.js +3 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/TaskQueue.d.ts +21 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/TaskQueue.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/TaskQueue.js +26 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/TaskQueue.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js +7 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.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/Launcher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js +27 -12
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +3862 -3771
- package/front_end/third_party/puppeteer/package/package.json +33 -40
- package/front_end/ui/components/data_grid/DataGrid.ts +3 -1
- package/front_end/ui/components/data_grid/DataGridUtils.ts +8 -5
- package/front_end/ui/components/data_grid/dataGrid.css +0 -5
- package/front_end/ui/components/icon_button/iconButton.css +1 -0
- package/front_end/ui/components/settings/settingCheckbox.css +1 -1
- package/front_end/ui/legacy/ContextMenu.ts +5 -2
- package/front_end/ui/legacy/ListWidget.ts +2 -4
- package/front_end/ui/legacy/SoftContextMenu.ts +4 -1
- package/front_end/ui/legacy/XLink.ts +6 -6
- package/front_end/ui/legacy/checkboxTextLabel.css +1 -1
- package/front_end/ui/legacy/components/perf_ui/module.json +1 -3
- package/front_end/ui/legacy/components/source_frame/module.json +0 -1
- package/front_end/ui/legacy/inspectorCommon.css +1 -1
- package/front_end/ui/legacy/inspectorSyntaxHighlight.css +1 -1
- package/front_end/ui/legacy/inspectorSyntaxHighlightDark.css +1 -1
- package/front_end/ui/legacy/softContextMenu.css +10 -0
- package/front_end/ui/legacy/tabbedPane.css +5 -0
- package/front_end/ui/legacy/themeColors.css +1 -0
- package/front_end/ui/legacy/treeoutline.css +16 -0
- package/front_end/ui/legacy/viewContainers.css +6 -1
- package/package.json +1 -1
- package/scripts/build/ninja/copy-file.js +10 -1
- package/scripts/build/ninja/copy-files.js +10 -1
- package/scripts/eslint_rules/lib/check_test_definitions.js +2 -1
- package/scripts/eslint_rules/tests/check_test_definitions_test.js +34 -0
- package/scripts/eslint_rules/tests/migrate_create_shadow_root_with_styles_test.js +1 -1
- package/scripts/eslint_rules/tests/migrate_register_required_css_test.js +1 -1
- package/front_end/entrypoints/inspector_main/module.json +0 -9
- package/front_end/panels/accessibility/module.json +0 -7
- package/front_end/panels/browser_debugger/module.json +0 -7
- package/front_end/panels/console/module.json +0 -6
- package/front_end/panels/coverage/module.json +0 -6
- package/front_end/panels/css_overview/module.json +0 -4
- package/front_end/panels/elements/module.json +0 -6
- package/front_end/panels/protocol_monitor/module.json +0 -6
- package/front_end/panels/sources/module.json +0 -7
|
@@ -964,6 +964,26 @@ declare namespace Protocol {
|
|
|
964
964
|
frameId?: Page.FrameId;
|
|
965
965
|
}
|
|
966
966
|
|
|
967
|
+
/**
|
|
968
|
+
* This issue tracks information needed to print a deprecation message.
|
|
969
|
+
* The formatting is inherited from the old console.log version, see more at:
|
|
970
|
+
* https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/deprecation.cc
|
|
971
|
+
* TODO(crbug.com/1264960): Re-work format to add i18n support per:
|
|
972
|
+
* https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/public/devtools_protocol/README.md
|
|
973
|
+
*/
|
|
974
|
+
export interface DeprecationIssueDetails {
|
|
975
|
+
affectedFrame?: AffectedFrame;
|
|
976
|
+
sourceCodeLocation: SourceCodeLocation;
|
|
977
|
+
/**
|
|
978
|
+
* The content of the deprecation issue (this won't be translated),
|
|
979
|
+
* e.g. "window.inefficientLegacyStorageMethod will be removed in M97,
|
|
980
|
+
* around January 2022. Please use Web Storage or Indexed Database
|
|
981
|
+
* instead. This standard was abandoned in January, 1970. See
|
|
982
|
+
* https://www.chromestatus.com/feature/5684870116278272 for more details."
|
|
983
|
+
*/
|
|
984
|
+
message?: string;
|
|
985
|
+
}
|
|
986
|
+
|
|
967
987
|
/**
|
|
968
988
|
* A unique identifier for the type of issue. Each type may use one of the
|
|
969
989
|
* optional fields in InspectorIssueDetails to convey more specific
|
|
@@ -984,6 +1004,7 @@ declare namespace Protocol {
|
|
|
984
1004
|
NavigatorUserAgentIssue = 'NavigatorUserAgentIssue',
|
|
985
1005
|
WasmCrossOriginModuleSharingIssue = 'WasmCrossOriginModuleSharingIssue',
|
|
986
1006
|
GenericIssue = 'GenericIssue',
|
|
1007
|
+
DeprecationIssue = 'DeprecationIssue',
|
|
987
1008
|
}
|
|
988
1009
|
|
|
989
1010
|
/**
|
|
@@ -1006,6 +1027,7 @@ declare namespace Protocol {
|
|
|
1006
1027
|
navigatorUserAgentIssueDetails?: NavigatorUserAgentIssueDetails;
|
|
1007
1028
|
wasmCrossOriginModuleSharingIssue?: WasmCrossOriginModuleSharingIssueDetails;
|
|
1008
1029
|
genericIssueDetails?: GenericIssueDetails;
|
|
1030
|
+
deprecationIssueDetails?: DeprecationIssueDetails;
|
|
1009
1031
|
}
|
|
1010
1032
|
|
|
1011
1033
|
/**
|
|
@@ -4074,6 +4096,29 @@ declare namespace Protocol {
|
|
|
4074
4096
|
}
|
|
4075
4097
|
}
|
|
4076
4098
|
|
|
4099
|
+
/**
|
|
4100
|
+
* EventBreakpoints permits setting breakpoints on particular operations and
|
|
4101
|
+
* events in targets that run JavaScript but do not have a DOM.
|
|
4102
|
+
* JavaScript execution will stop on these operations as if there was a regular
|
|
4103
|
+
* breakpoint set.
|
|
4104
|
+
*/
|
|
4105
|
+
export namespace EventBreakpoints {
|
|
4106
|
+
|
|
4107
|
+
export interface SetInstrumentationBreakpointRequest {
|
|
4108
|
+
/**
|
|
4109
|
+
* Instrumentation name to stop on.
|
|
4110
|
+
*/
|
|
4111
|
+
eventName: string;
|
|
4112
|
+
}
|
|
4113
|
+
|
|
4114
|
+
export interface RemoveInstrumentationBreakpointRequest {
|
|
4115
|
+
/**
|
|
4116
|
+
* Instrumentation name to stop on.
|
|
4117
|
+
*/
|
|
4118
|
+
eventName: string;
|
|
4119
|
+
}
|
|
4120
|
+
}
|
|
4121
|
+
|
|
4077
4122
|
/**
|
|
4078
4123
|
* This domain facilitates obtaining document snapshots with DOM, layout, and style information.
|
|
4079
4124
|
*/
|
|
@@ -8528,6 +8573,12 @@ declare namespace Protocol {
|
|
|
8528
8573
|
* Request initiator.
|
|
8529
8574
|
*/
|
|
8530
8575
|
initiator: Initiator;
|
|
8576
|
+
/**
|
|
8577
|
+
* In the case that redirectResponse is populated, this flag indicates whether
|
|
8578
|
+
* requestWillBeSentExtraInfo and responseReceivedExtraInfo events will be or were emitted
|
|
8579
|
+
* for the request which was just redirected.
|
|
8580
|
+
*/
|
|
8581
|
+
redirectHasExtraInfo: boolean;
|
|
8531
8582
|
/**
|
|
8532
8583
|
* Redirect response data.
|
|
8533
8584
|
*/
|
|
@@ -8602,6 +8653,11 @@ declare namespace Protocol {
|
|
|
8602
8653
|
* Response data.
|
|
8603
8654
|
*/
|
|
8604
8655
|
response: Response;
|
|
8656
|
+
/**
|
|
8657
|
+
* Indicates whether requestWillBeSentExtraInfo and responseReceivedExtraInfo events will be
|
|
8658
|
+
* or were emitted for this request.
|
|
8659
|
+
*/
|
|
8660
|
+
hasExtraInfo: boolean;
|
|
8605
8661
|
/**
|
|
8606
8662
|
* Frame identifier.
|
|
8607
8663
|
*/
|
|
@@ -10492,7 +10548,6 @@ declare namespace Protocol {
|
|
|
10492
10548
|
ContentWebUSB = 'ContentWebUSB',
|
|
10493
10549
|
ContentMediaSession = 'ContentMediaSession',
|
|
10494
10550
|
ContentMediaSessionService = 'ContentMediaSessionService',
|
|
10495
|
-
ContentMediaPlay = 'ContentMediaPlay',
|
|
10496
10551
|
EmbedderPopupBlockerTabHelper = 'EmbedderPopupBlockerTabHelper',
|
|
10497
10552
|
EmbedderSafeBrowsingTriggeredPopupBlocker = 'EmbedderSafeBrowsingTriggeredPopupBlocker',
|
|
10498
10553
|
EmbedderSafeBrowsingThreatDetails = 'EmbedderSafeBrowsingThreatDetails',
|
|
@@ -59,15 +59,13 @@ export async function _executeTestScript() {
|
|
|
59
59
|
|
|
60
60
|
// Auto-start unit tests
|
|
61
61
|
self.test = async function() {
|
|
62
|
-
|
|
63
|
-
await eval(`import("${testScriptURL}")`);
|
|
62
|
+
await import(testScriptURL);
|
|
64
63
|
};
|
|
65
64
|
return;
|
|
66
65
|
}
|
|
67
66
|
|
|
68
67
|
try {
|
|
69
|
-
|
|
70
|
-
await eval(`import("${testScriptURL}")`);
|
|
68
|
+
await import(testScriptURL);
|
|
71
69
|
} catch (err) {
|
|
72
70
|
TestRunner.addResult('TEST ENDED EARLY DUE TO UNCAUGHT ERROR:');
|
|
73
71
|
TestRunner.addResult(err && err.stack || err);
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// Copyright 2021 The Chromium Authors. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
+
// found in the LICENSE file.
|
|
4
|
+
|
|
5
|
+
import type * as SDK from '../../core/sdk/sdk.js';
|
|
6
|
+
import type * as Protocol from '../../generated/protocol.js';
|
|
7
|
+
|
|
8
|
+
import {Issue, IssueCategory, IssueKind} from './Issue.js';
|
|
9
|
+
import type {MarkdownIssueDescription} from './MarkdownIssueDescription.js';
|
|
10
|
+
|
|
11
|
+
export const enum IssueCode {
|
|
12
|
+
DeprecationIssue = 'DeprecationIssue',
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export class DeprecationIssue extends Issue<IssueCode> {
|
|
16
|
+
private issueDetails: Protocol.Audits.DeprecationIssueDetails;
|
|
17
|
+
|
|
18
|
+
constructor(issueDetails: Protocol.Audits.DeprecationIssueDetails, issuesModel: SDK.IssuesModel.IssuesModel) {
|
|
19
|
+
super(IssueCode.DeprecationIssue, issuesModel);
|
|
20
|
+
this.issueDetails = issueDetails;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
getCategory(): IssueCategory {
|
|
24
|
+
return IssueCategory.Other;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
details(): Protocol.Audits.DeprecationIssueDetails {
|
|
28
|
+
return this.issueDetails;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
getDescription(): MarkdownIssueDescription|null {
|
|
32
|
+
return {
|
|
33
|
+
file: 'deprecation.md',
|
|
34
|
+
substitutions: new Map([
|
|
35
|
+
// TODO(crbug.com/1264960): Re-work format to add i18n support per:
|
|
36
|
+
// https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/public/devtools_protocol/README.md
|
|
37
|
+
['PLACEHOLDER_message', String(this.issueDetails.message)],
|
|
38
|
+
]),
|
|
39
|
+
links: [],
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
sources(): Iterable<Protocol.Audits.SourceCodeLocation> {
|
|
44
|
+
if (this.issueDetails.sourceCodeLocation) {
|
|
45
|
+
return [this.issueDetails.sourceCodeLocation];
|
|
46
|
+
}
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
primaryKey(): string {
|
|
51
|
+
return JSON.stringify(this.issueDetails);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
getKind(): IssueKind {
|
|
55
|
+
return IssueKind.BreakingChange;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
static fromInspectorIssue(issuesModel: SDK.IssuesModel.IssuesModel, inspectorIssue: Protocol.Audits.InspectorIssue):
|
|
59
|
+
DeprecationIssue[] {
|
|
60
|
+
const details = inspectorIssue.details.deprecationIssueDetails;
|
|
61
|
+
if (!details) {
|
|
62
|
+
console.warn('Deprecation issue without details received.');
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
return [new DeprecationIssue(details, issuesModel)];
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -11,6 +11,7 @@ import {AttributionReportingIssue} from './AttributionReportingIssue.js';
|
|
|
11
11
|
import {ContentSecurityPolicyIssue} from './ContentSecurityPolicyIssue.js';
|
|
12
12
|
import {CorsIssue} from './CorsIssue.js';
|
|
13
13
|
import {CrossOriginEmbedderPolicyIssue, isCrossOriginEmbedderPolicyIssue} from './CrossOriginEmbedderPolicyIssue.js';
|
|
14
|
+
import {DeprecationIssue} from './DeprecationIssue.js';
|
|
14
15
|
import {GenericIssue} from './GenericIssue.js';
|
|
15
16
|
import {HeavyAdIssue} from './HeavyAdIssue.js';
|
|
16
17
|
import type {Issue, IssueKind} from './Issue.js';
|
|
@@ -99,6 +100,10 @@ const issueCodeHandlers = new Map<
|
|
|
99
100
|
Protocol.Audits.InspectorIssueCode.GenericIssue,
|
|
100
101
|
GenericIssue.fromInspectorIssue,
|
|
101
102
|
],
|
|
103
|
+
[
|
|
104
|
+
Protocol.Audits.InspectorIssueCode.DeprecationIssue,
|
|
105
|
+
DeprecationIssue.fromInspectorIssue,
|
|
106
|
+
],
|
|
102
107
|
]);
|
|
103
108
|
|
|
104
109
|
/**
|
|
@@ -7,6 +7,7 @@ import * as ContentSecurityPolicyIssue from './ContentSecurityPolicyIssue.js';
|
|
|
7
7
|
import * as ContrastCheckTrigger from './ContrastCheckTrigger.js';
|
|
8
8
|
import * as CorsIssue from './CorsIssue.js';
|
|
9
9
|
import * as CrossOriginEmbedderPolicyIssue from './CrossOriginEmbedderPolicyIssue.js';
|
|
10
|
+
import * as DeprecationIssue from './DeprecationIssue.js';
|
|
10
11
|
import * as GenericIssue from './GenericIssue.js';
|
|
11
12
|
import * as HeavyAdIssue from './HeavyAdIssue.js';
|
|
12
13
|
import * as Issue from './Issue.js';
|
|
@@ -30,6 +31,7 @@ export {
|
|
|
30
31
|
ContrastCheckTrigger,
|
|
31
32
|
CorsIssue,
|
|
32
33
|
CrossOriginEmbedderPolicyIssue,
|
|
34
|
+
DeprecationIssue,
|
|
33
35
|
GenericIssue,
|
|
34
36
|
HeavyAdIssue,
|
|
35
37
|
Issue,
|
|
@@ -93,6 +93,9 @@ export class AXBreadcrumbsPane extends AccessibilitySubPane {
|
|
|
93
93
|
let parent: AXBreadcrumb|null = null;
|
|
94
94
|
this.inspectedNodeBreadcrumb = null;
|
|
95
95
|
for (ancestor of ancestorChain) {
|
|
96
|
+
if (ancestor !== axNode && ancestor.ignored() && ancestor.parentNode()) {
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
96
99
|
const breadcrumb = new AXBreadcrumb(ancestor, depth, (ancestor === axNode));
|
|
97
100
|
if (parent) {
|
|
98
101
|
parent.appendChild(breadcrumb);
|
|
@@ -112,6 +115,10 @@ export class AXBreadcrumbsPane extends AccessibilitySubPane {
|
|
|
112
115
|
|
|
113
116
|
function append(
|
|
114
117
|
parentBreadcrumb: AXBreadcrumb, axNode: SDK.AccessibilityModel.AccessibilityNode, localDepth: number): void {
|
|
118
|
+
if (axNode.ignored()) {
|
|
119
|
+
axNode.children().map(child => append(parentBreadcrumb, child, localDepth));
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
115
122
|
const childBreadcrumb = new AXBreadcrumb(axNode, localDepth, false);
|
|
116
123
|
parentBreadcrumb.appendChild(childBreadcrumb);
|
|
117
124
|
|
|
@@ -121,7 +128,7 @@ export class AXBreadcrumbsPane extends AccessibilitySubPane {
|
|
|
121
128
|
}
|
|
122
129
|
}
|
|
123
130
|
|
|
124
|
-
if (this.inspectedNodeBreadcrumb) {
|
|
131
|
+
if (this.inspectedNodeBreadcrumb && !axNode.ignored()) {
|
|
125
132
|
for (const child of axNode.children()) {
|
|
126
133
|
append(this.inspectedNodeBreadcrumb, child, depth);
|
|
127
134
|
if (child.backendDOMNodeId() === this.collapsingBreadcrumbId) {
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
5
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
6
|
-
import * as Root from '../../core/root/root.js';
|
|
7
6
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
8
7
|
|
|
9
8
|
// eslint-disable-next-line rulesdir/es_modules_import
|
|
@@ -26,8 +25,6 @@ const i18nLazyString = i18n.i18n.getLazilyComputedLocalizedString.bind(undefined
|
|
|
26
25
|
|
|
27
26
|
async function loadAccessibilityModule(): Promise<typeof Accessibility> {
|
|
28
27
|
if (!loadedAccessibilityModule) {
|
|
29
|
-
// Side-effect import resources in module.json
|
|
30
|
-
await Root.Runtime.Runtime.instance().loadModulePromise('panels/accessibility');
|
|
31
28
|
loadedAccessibilityModule = await import('./accessibility.js');
|
|
32
29
|
}
|
|
33
30
|
return loadedAccessibilityModule;
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import * as i18n from '../../../core/i18n/i18n.js';
|
|
6
6
|
import * as DataGrid from '../../../ui/components/data_grid/data_grid.js';
|
|
7
7
|
import * as ComponentHelpers from '../../../ui/components/helpers/helpers.js';
|
|
8
|
+
import * as IconButton from '../../../ui/components/icon_button/icon_button.js';
|
|
8
9
|
import * as LitHtml from '../../../ui/lit-html/lit-html.js';
|
|
9
10
|
|
|
10
11
|
import type * as Protocol from '../../../generated/protocol.js';
|
|
@@ -24,6 +25,33 @@ export const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
|
24
25
|
|
|
25
26
|
const {render, html} = LitHtml;
|
|
26
27
|
|
|
28
|
+
export class ReportsGridStatusHeader extends HTMLElement {
|
|
29
|
+
static readonly litTagName = LitHtml.literal`devtools-resources-reports-grid-status-header`;
|
|
30
|
+
private readonly shadow = this.attachShadow({mode: 'open'});
|
|
31
|
+
|
|
32
|
+
connectedCallback(): void {
|
|
33
|
+
this.shadow.adoptedStyleSheets = [reportingApiGridStyles];
|
|
34
|
+
this.render();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
private render(): void {
|
|
38
|
+
// Disabled until https://crbug.com/1079231 is fixed.
|
|
39
|
+
// clang-format off
|
|
40
|
+
render(html`
|
|
41
|
+
${i18n.i18n.lockedString('Status')}
|
|
42
|
+
<x-link href="https://web.dev/reporting-api/#report-status">
|
|
43
|
+
<${IconButton.Icon.Icon.litTagName} class="inline-icon" .data=${{
|
|
44
|
+
iconName: 'help_outline',
|
|
45
|
+
color: 'var(--color-primary)',
|
|
46
|
+
width: '16px',
|
|
47
|
+
height: '16px',
|
|
48
|
+
} as IconButton.Icon.IconData}></${IconButton.Icon.Icon.litTagName}>
|
|
49
|
+
</x-link>
|
|
50
|
+
`, this.shadow, {host: this});
|
|
51
|
+
// clang-format on
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
27
55
|
export interface ReportsGridData {
|
|
28
56
|
reports: Protocol.Network.ReportingApiReport[];
|
|
29
57
|
}
|
|
@@ -59,21 +87,24 @@ export class ReportsGrid extends HTMLElement {
|
|
|
59
87
|
{
|
|
60
88
|
id: 'type',
|
|
61
89
|
title: i18n.i18n.lockedString('Type'),
|
|
62
|
-
widthWeighting:
|
|
90
|
+
widthWeighting: 20,
|
|
63
91
|
hideable: false,
|
|
64
92
|
visible: true,
|
|
65
93
|
},
|
|
66
94
|
{
|
|
67
95
|
id: 'status',
|
|
68
96
|
title: i18n.i18n.lockedString('Status'),
|
|
69
|
-
widthWeighting:
|
|
97
|
+
widthWeighting: 20,
|
|
70
98
|
hideable: false,
|
|
71
99
|
visible: true,
|
|
100
|
+
titleElement: html`
|
|
101
|
+
<${ReportsGridStatusHeader.litTagName}></${ReportsGridStatusHeader.litTagName}>
|
|
102
|
+
`,
|
|
72
103
|
},
|
|
73
104
|
{
|
|
74
105
|
id: 'destination',
|
|
75
106
|
title: i18n.i18n.lockedString('Destination'),
|
|
76
|
-
widthWeighting:
|
|
107
|
+
widthWeighting: 20,
|
|
77
108
|
hideable: false,
|
|
78
109
|
visible: true,
|
|
79
110
|
},
|
|
@@ -116,7 +147,7 @@ export class ReportsGrid extends HTMLElement {
|
|
|
116
147
|
</div>
|
|
117
148
|
`}
|
|
118
149
|
</div>
|
|
119
|
-
`, this.shadow);
|
|
150
|
+
`, this.shadow, {host: this});
|
|
120
151
|
// clang-format on
|
|
121
152
|
}
|
|
122
153
|
|
|
@@ -135,10 +166,13 @@ export class ReportsGrid extends HTMLElement {
|
|
|
135
166
|
}
|
|
136
167
|
}
|
|
137
168
|
|
|
169
|
+
ComponentHelpers.CustomElements.defineComponent(
|
|
170
|
+
'devtools-resources-reports-grid-status-header', ReportsGridStatusHeader);
|
|
138
171
|
ComponentHelpers.CustomElements.defineComponent('devtools-resources-reports-grid', ReportsGrid);
|
|
139
172
|
|
|
140
173
|
declare global {
|
|
141
174
|
interface HTMLElementTagNameMap {
|
|
175
|
+
'devtools-resources-reports-grid-status-header': ReportsGridStatusHeader;
|
|
142
176
|
'devtools-resources-reports-grid': ReportsGrid;
|
|
143
177
|
}
|
|
144
178
|
}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
|
-
import * as Root from '../../core/root/root.js';
|
|
6
5
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
7
6
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
8
7
|
|
|
@@ -83,8 +82,6 @@ let loadedBrowserDebuggerModule: (typeof BrowserDebugger|undefined);
|
|
|
83
82
|
|
|
84
83
|
async function loadBrowserDebuggerModule(): Promise<typeof BrowserDebugger> {
|
|
85
84
|
if (!loadedBrowserDebuggerModule) {
|
|
86
|
-
// Side-effect import resources in module.json
|
|
87
|
-
await Root.Runtime.Runtime.instance().loadModulePromise('panels/browser_debugger');
|
|
88
85
|
loadedBrowserDebuggerModule = await import('./browser_debugger.js');
|
|
89
86
|
}
|
|
90
87
|
return loadedBrowserDebuggerModule;
|
|
@@ -99,8 +96,6 @@ let loadedSourcesModule: (typeof Sources|undefined);
|
|
|
99
96
|
// collision with node_app as a separate view with the same id is registered in it.
|
|
100
97
|
async function loadSourcesModule(): Promise<typeof Sources> {
|
|
101
98
|
if (!loadedSourcesModule) {
|
|
102
|
-
// Side-effect import resources in module.json
|
|
103
|
-
await Root.Runtime.Runtime.instance().loadModulePromise('sources');
|
|
104
99
|
loadedSourcesModule = await import('../sources/sources.js');
|
|
105
100
|
}
|
|
106
101
|
return loadedSourcesModule;
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
5
|
import * as Common from '../../core/common/common.js';
|
|
6
|
-
import * as Root from '../../core/root/root.js';
|
|
7
6
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
8
7
|
|
|
9
8
|
// eslint-disable-next-line rulesdir/es_modules_import
|
|
@@ -118,8 +117,6 @@ let loadedConsoleModule: (typeof Console|undefined);
|
|
|
118
117
|
|
|
119
118
|
async function loadConsoleModule(): Promise<typeof Console> {
|
|
120
119
|
if (!loadedConsoleModule) {
|
|
121
|
-
// Side-effect import resources in module.json
|
|
122
|
-
await Root.Runtime.Runtime.instance().loadModulePromise('panels/console');
|
|
123
120
|
loadedConsoleModule = await import('./console.js');
|
|
124
121
|
}
|
|
125
122
|
return loadedConsoleModule;
|
|
@@ -306,6 +303,7 @@ Common.Settings.registerSettingExtension({
|
|
|
306
303
|
|
|
307
304
|
Common.Settings.registerSettingExtension({
|
|
308
305
|
category: Common.Settings.SettingCategory.CONSOLE,
|
|
306
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
309
307
|
title: i18nLazyString(UIStrings.groupSimilarMessagesInConsole),
|
|
310
308
|
settingName: 'consoleGroupSimilar',
|
|
311
309
|
settingType: Common.Settings.SettingType.BOOLEAN,
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
5
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
6
|
-
import * as Root from '../../core/root/root.js';
|
|
7
6
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
8
7
|
|
|
9
8
|
// eslint-disable-next-line rulesdir/es_modules_import
|
|
@@ -38,8 +37,6 @@ let loadedCoverageModule: (typeof Coverage|undefined);
|
|
|
38
37
|
|
|
39
38
|
async function loadCoverageModule(): Promise<typeof Coverage> {
|
|
40
39
|
if (!loadedCoverageModule) {
|
|
41
|
-
// Side-effect import resources in module.json
|
|
42
|
-
await Root.Runtime.Runtime.instance().loadModulePromise('panels/coverage');
|
|
43
40
|
loadedCoverageModule = await import('./coverage.js');
|
|
44
41
|
}
|
|
45
42
|
return loadedCoverageModule;
|
|
@@ -11,12 +11,9 @@ import * as TextUtils from '../../models/text_utils/text_utils.js';
|
|
|
11
11
|
import * as DataGrid from '../../ui/legacy/components/data_grid/data_grid.js';
|
|
12
12
|
import * as Components from '../../ui/legacy/components/utils/utils.js';
|
|
13
13
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
14
|
-
|
|
15
|
-
import cssOverviewCompletedViewStyles from './cssOverviewCompletedView.css.js';
|
|
16
|
-
|
|
17
|
-
import type * as ProtocolProxyApi from '../../generated/protocol-proxy-api.js';
|
|
18
14
|
import type * as Protocol from '../../generated/protocol.js';
|
|
19
15
|
|
|
16
|
+
import cssOverviewCompletedViewStyles from './cssOverviewCompletedView.css.js';
|
|
20
17
|
import type {OverviewController, PopulateNodesEvent, PopulateNodesEventNodes, PopulateNodesEventNodeTypes} from './CSSOverviewController.js';
|
|
21
18
|
import {Events as CSSOverViewControllerEvents} from './CSSOverviewController.js';
|
|
22
19
|
import {CSSOverviewSidebarPanel, SidebarEvents} from './CSSOverviewSidebarPanel.js';
|
|
@@ -227,15 +224,14 @@ export class CSSOverviewCompletedView extends UI.Panel.PanelWithSidebar {
|
|
|
227
224
|
readonly #resultsContainer: UI.Widget.VBox;
|
|
228
225
|
readonly #elementContainer: DetailsView;
|
|
229
226
|
readonly #sideBar: CSSOverviewSidebarPanel;
|
|
230
|
-
#cssModel
|
|
231
|
-
#domModel
|
|
232
|
-
readonly #domAgent: ProtocolProxyApi.DOMApi;
|
|
227
|
+
#cssModel?: SDK.CSSModel.CSSModel;
|
|
228
|
+
#domModel?: SDK.DOMModel.DOMModel;
|
|
233
229
|
#linkifier: Components.Linkifier.Linkifier;
|
|
234
230
|
#viewMap: Map<string, ElementDetailsView>;
|
|
235
231
|
#data: OverviewData|null;
|
|
236
232
|
#fragment?: UI.Fragment.Fragment;
|
|
237
233
|
|
|
238
|
-
constructor(controller: OverviewController
|
|
234
|
+
constructor(controller: OverviewController) {
|
|
239
235
|
super('css_overview_completed_view');
|
|
240
236
|
|
|
241
237
|
this.#controller = controller;
|
|
@@ -264,14 +260,6 @@ export class CSSOverviewCompletedView extends UI.Panel.PanelWithSidebar {
|
|
|
264
260
|
this.splitWidget().setSidebarWidget(this.#sideBar);
|
|
265
261
|
this.splitWidget().setMainWidget(this.#mainContainer);
|
|
266
262
|
|
|
267
|
-
const cssModel = target.model(SDK.CSSModel.CSSModel);
|
|
268
|
-
const domModel = target.model(SDK.DOMModel.DOMModel);
|
|
269
|
-
if (!cssModel || !domModel) {
|
|
270
|
-
throw new Error('Target must provide CSS and DOM models');
|
|
271
|
-
}
|
|
272
|
-
this.#cssModel = cssModel;
|
|
273
|
-
this.#domModel = domModel;
|
|
274
|
-
this.#domAgent = target.domAgent();
|
|
275
263
|
this.#linkifier = new Components.Linkifier.Linkifier(/* maxLinkLength */ 20, /* useLinkDecorator */ true);
|
|
276
264
|
|
|
277
265
|
this.#viewMap = new Map();
|
|
@@ -300,6 +288,16 @@ export class CSSOverviewCompletedView extends UI.Panel.PanelWithSidebar {
|
|
|
300
288
|
// TODO(paullewis): update the links in the panels in case source has been .
|
|
301
289
|
}
|
|
302
290
|
|
|
291
|
+
initializeModels(target: SDK.Target.Target): void {
|
|
292
|
+
const cssModel = target.model(SDK.CSSModel.CSSModel);
|
|
293
|
+
const domModel = target.model(SDK.DOMModel.DOMModel);
|
|
294
|
+
if (!cssModel || !domModel) {
|
|
295
|
+
throw new Error('Target must provide CSS and DOM models');
|
|
296
|
+
}
|
|
297
|
+
this.#cssModel = cssModel;
|
|
298
|
+
this.#domModel = domModel;
|
|
299
|
+
}
|
|
300
|
+
|
|
303
301
|
private sideBarItemSelected(event: Common.EventTarget.EventTargetEvent<string>): void {
|
|
304
302
|
const {data} = event;
|
|
305
303
|
const section = (this.#fragment as UI.Fragment.Fragment).$(data);
|
|
@@ -650,6 +648,9 @@ export class CSSOverviewCompletedView extends UI.Panel.PanelWithSidebar {
|
|
|
650
648
|
|
|
651
649
|
let view = this.#viewMap.get(id);
|
|
652
650
|
if (!view) {
|
|
651
|
+
if (!this.#domModel || !this.#cssModel) {
|
|
652
|
+
throw new Error('Unable to initialize CSS Overview, missing models');
|
|
653
|
+
}
|
|
653
654
|
view = new ElementDetailsView(this.#controller, this.#domModel, this.#cssModel, this.#linkifier);
|
|
654
655
|
view.populateNodes(payload.nodes);
|
|
655
656
|
this.#viewMap.set(id, view);
|
|
@@ -970,7 +971,7 @@ export class ElementDetailsView extends UI.Widget.Widget {
|
|
|
970
971
|
this.#elementGrid.setStriped(true);
|
|
971
972
|
this.#elementGrid.addEventListener(DataGrid.DataGrid.Events.SortingChanged, this.sortMediaQueryDataGrid.bind(this));
|
|
972
973
|
|
|
973
|
-
this.
|
|
974
|
+
this.#elementGrid.asWidget().show(this.element);
|
|
974
975
|
}
|
|
975
976
|
|
|
976
977
|
private sortMediaQueryDataGrid(): void {
|
|
@@ -21,12 +21,13 @@ import type {UnusedDeclaration} from './CSSOverviewUnusedDeclarations.js';
|
|
|
21
21
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
22
22
|
let CSSOverviewPanelInstance: CSSOverviewPanel;
|
|
23
23
|
|
|
24
|
-
export class CSSOverviewPanel extends UI.Panel.Panel {
|
|
25
|
-
readonly #model: CSSOverviewModel;
|
|
24
|
+
export class CSSOverviewPanel extends UI.Panel.Panel implements SDK.TargetManager.Observer {
|
|
26
25
|
readonly #controller: OverviewController;
|
|
27
26
|
readonly #startView: CSSOverviewComponents.CSSOverviewStartView.CSSOverviewStartView;
|
|
28
27
|
readonly #processingView: CSSOverviewProcessingView;
|
|
29
28
|
readonly #completedView: CSSOverviewCompletedView;
|
|
29
|
+
#model?: CSSOverviewModel;
|
|
30
|
+
#target?: SDK.Target.Target;
|
|
30
31
|
#backgroundColors!: Map<string, Set<Protocol.DOM.BackendNodeId>>;
|
|
31
32
|
#textColors!: Map<string, Set<Protocol.DOM.BackendNodeId>>;
|
|
32
33
|
#fillColors!: Map<string, Set<Protocol.DOM.BackendNodeId>>;
|
|
@@ -44,15 +45,14 @@ export class CSSOverviewPanel extends UI.Panel.Panel {
|
|
|
44
45
|
|
|
45
46
|
this.element.classList.add('css-overview-panel');
|
|
46
47
|
|
|
47
|
-
const [model] = SDK.TargetManager.TargetManager.instance().models(CSSOverviewModel);
|
|
48
|
-
this.#model = (model as CSSOverviewModel);
|
|
49
|
-
|
|
50
48
|
this.#controller = new OverviewController();
|
|
51
49
|
this.#startView = new CSSOverviewComponents.CSSOverviewStartView.CSSOverviewStartView();
|
|
52
50
|
this.#startView.addEventListener(
|
|
53
51
|
'overviewstartrequested', () => this.#controller.dispatchEventToListeners(Events.RequestOverviewStart));
|
|
54
52
|
this.#processingView = new CSSOverviewProcessingView(this.#controller);
|
|
55
|
-
this.#completedView = new CSSOverviewCompletedView(this.#controller
|
|
53
|
+
this.#completedView = new CSSOverviewCompletedView(this.#controller);
|
|
54
|
+
|
|
55
|
+
SDK.TargetManager.TargetManager.instance().observeTargets(this);
|
|
56
56
|
|
|
57
57
|
this.#controller.addEventListener(Events.RequestOverviewStart, _event => {
|
|
58
58
|
Host.userMetrics.actionTaken(Host.UserMetrics.Action.CaptureCssOverviewClicked);
|
|
@@ -73,6 +73,26 @@ export class CSSOverviewPanel extends UI.Panel.Panel {
|
|
|
73
73
|
return CSSOverviewPanelInstance;
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
+
targetAdded(target: SDK.Target.Target): void {
|
|
77
|
+
if (this.#target) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
this.#target = target;
|
|
81
|
+
this.#completedView.initializeModels(target);
|
|
82
|
+
const [model] = SDK.TargetManager.TargetManager.instance().models(CSSOverviewModel);
|
|
83
|
+
this.#model = (model as CSSOverviewModel);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
targetRemoved(): void {
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
private getModel(): CSSOverviewModel {
|
|
90
|
+
if (!this.#model) {
|
|
91
|
+
throw new Error('Did not retrieve model information yet.');
|
|
92
|
+
}
|
|
93
|
+
return this.#model;
|
|
94
|
+
}
|
|
95
|
+
|
|
76
96
|
private reset(): void {
|
|
77
97
|
this.#backgroundColors = new Map();
|
|
78
98
|
this.#textColors = new Map();
|
|
@@ -104,7 +124,7 @@ export class CSSOverviewPanel extends UI.Panel.Panel {
|
|
|
104
124
|
}
|
|
105
125
|
|
|
106
126
|
private requestNodeHighlight(evt: Common.EventTarget.EventTargetEvent<number>): void {
|
|
107
|
-
this
|
|
127
|
+
this.getModel().highlightNode((evt.data as Protocol.DOM.BackendNodeId));
|
|
108
128
|
}
|
|
109
129
|
|
|
110
130
|
private renderInitialView(): void {
|
|
@@ -144,10 +164,11 @@ export class CSSOverviewPanel extends UI.Panel.Panel {
|
|
|
144
164
|
private async startOverview(): Promise<void> {
|
|
145
165
|
this.renderOverviewStartedView();
|
|
146
166
|
|
|
167
|
+
const model = this.getModel();
|
|
147
168
|
const [globalStyleStats, { elementCount, backgroundColors, textColors, textColorContrastIssues, fillColors, borderColors, fontInfo, unusedDeclarations }, mediaQueries] = await Promise.all([
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
169
|
+
model.getGlobalStylesheetStats(),
|
|
170
|
+
model.getNodeStyleStats(),
|
|
171
|
+
model.getMediaQueries(),
|
|
151
172
|
]);
|
|
152
173
|
|
|
153
174
|
if (elementCount) {
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
5
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
6
|
-
import * as Root from '../../core/root/root.js';
|
|
7
6
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
8
7
|
|
|
9
8
|
// eslint-disable-next-line rulesdir/es_modules_import
|
|
@@ -27,8 +26,6 @@ let loadedCSSOverviewModule: (typeof CSSOverview|undefined);
|
|
|
27
26
|
|
|
28
27
|
async function loadCSSOverviewModule(): Promise<typeof CSSOverview> {
|
|
29
28
|
if (!loadedCSSOverviewModule) {
|
|
30
|
-
// Side-effect import resources in module.json
|
|
31
|
-
await Root.Runtime.Runtime.instance().loadModulePromise('panels/css_overview');
|
|
32
29
|
loadedCSSOverviewModule = await import('./css_overview.js');
|
|
33
30
|
}
|
|
34
31
|
return loadedCSSOverviewModule;
|
|
@@ -1440,11 +1440,14 @@ export class StylePropertyTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
1440
1440
|
const currentNode = this.parentPaneInternal.node();
|
|
1441
1441
|
this.parentPaneInternal.setUserOperation(true);
|
|
1442
1442
|
|
|
1443
|
+
styleText += Platform.StringUtilities.findUnclosedCssQuote(styleText);
|
|
1444
|
+
|
|
1443
1445
|
// Append a ";" if the new text does not end in ";".
|
|
1444
1446
|
// FIXME: this does not handle trailing comments.
|
|
1445
1447
|
if (styleText.length && !/;\s*$/.test(styleText)) {
|
|
1446
1448
|
styleText += ';';
|
|
1447
1449
|
}
|
|
1450
|
+
|
|
1448
1451
|
const overwriteProperty = !this.newProperty || hasBeenEditedIncrementally;
|
|
1449
1452
|
let success: boolean = await this.property.setText(styleText, majorChange, overwriteProperty);
|
|
1450
1453
|
// Revert to the original text if applying the new text failed
|