chrome-devtools-frontend 1.0.944427 → 1.0.945677
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/devtools_grd_files.gni +4 -0
- package/config/gni/devtools_image_files.gni +1 -0
- package/front_end/Images/src/circled_exclamation_icon.svg +3 -0
- package/front_end/core/common/ParsedURL.ts +1 -1
- package/front_end/core/host/UserMetrics.ts +3 -1
- package/front_end/core/i18n/i18nImpl.ts +7 -4
- package/front_end/core/i18n/locales/en-US.json +3 -60
- package/front_end/core/i18n/locales/en-XL.json +15 -72
- package/front_end/core/protocol_client/NodeURL.ts +1 -0
- package/front_end/core/sdk/CSSMetadata.ts +0 -1
- package/front_end/core/sdk/CSSStyleSheetHeader.ts +2 -3
- package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +2 -3
- package/front_end/core/sdk/Cookie.ts +17 -0
- package/front_end/core/sdk/CookieModel.ts +1 -0
- package/front_end/core/sdk/DebuggerModel.ts +5 -4
- package/front_end/core/sdk/NetworkManager.ts +4 -1
- package/front_end/core/sdk/NetworkRequest.ts +2 -2
- package/front_end/core/sdk/Resource.ts +2 -2
- package/front_end/core/sdk/Script.ts +2 -3
- package/front_end/entrypoints/main/MainImpl.ts +6 -0
- package/front_end/generated/protocol.d.ts +0 -4
- package/front_end/models/bindings/BreakpointManager.ts +3 -4
- package/front_end/models/bindings/ResourceMapping.ts +1 -2
- package/front_end/models/bindings/StylesSourceMapping.ts +1 -2
- package/front_end/models/emulation/EmulatedDevices.ts +2 -4
- package/front_end/models/persistence/IsolatedFileSystem.ts +7 -6
- package/front_end/models/persistence/PersistenceActions.ts +4 -1
- package/front_end/models/persistence/PlatformFileSystem.ts +3 -4
- package/front_end/models/text_utils/ContentProvider.ts +1 -2
- package/front_end/models/text_utils/StaticContentProvider.ts +2 -3
- package/front_end/models/timeline_model/TimelineJSProfile.ts +16 -3
- package/front_end/models/timeline_model/TimelineModel.ts +1 -0
- package/front_end/models/workspace/UISourceCode.ts +2 -2
- package/front_end/models/workspace_diff/WorkspaceDiff.ts +20 -6
- package/front_end/panels/animation/AnimationTimeline.ts +1 -1
- package/front_end/panels/animation/animationTimeline.css +2 -0
- package/front_end/panels/application/BackForwardCacheStrings.ts +15 -75
- package/front_end/panels/application/BackForwardCacheView.ts +8 -1
- package/front_end/panels/application/ReportingApiView.ts +15 -1
- package/front_end/panels/application/components/EndpointsGrid.ts +63 -4
- package/front_end/panels/application/components/FrameDetailsView.ts +21 -34
- package/front_end/panels/changes/ChangesView.ts +8 -7
- package/front_end/panels/elements/StyleEditorWidget.ts +7 -7
- package/front_end/panels/elements/StylePropertyTreeElement.ts +8 -15
- package/front_end/panels/elements/StylesSidebarPane.ts +35 -9
- package/front_end/panels/emulation/DeviceModeView.ts +3 -0
- package/front_end/panels/help/ReleaseNoteText.ts +3 -1
- package/front_end/panels/network/NetworkItemView.ts +7 -1
- package/front_end/panels/profiler/heapProfiler.css +2 -5
- package/front_end/panels/snippets/ScriptSnippetFileSystem.ts +1 -1
- package/front_end/panels/sources/DebuggerPlugin.ts +1 -1
- package/front_end/panels/sources/NavigatorView.ts +1 -1
- package/front_end/panels/sources/UISourceCodeFrame.ts +0 -1
- package/front_end/panels/timeline/TimelineController.ts +3 -0
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +3 -34
- package/front_end/panels/timeline/TimelineUIUtils.ts +51 -3
- package/front_end/panels/webauthn/WebauthnPane.ts +31 -32
- package/front_end/services/window_bounds/WindowBoundsService.ts +27 -0
- package/front_end/services/window_bounds/window_bounds.ts +9 -0
- package/front_end/third_party/acorn/README.chromium +2 -2
- package/front_end/third_party/acorn/acorn.ts +1 -1
- package/front_end/third_party/acorn/package/CHANGELOG.md +31 -1
- package/front_end/third_party/acorn/package/README.md +1 -1
- package/front_end/third_party/acorn/package/dist/acorn.d.ts +3 -0
- package/front_end/third_party/acorn/package/dist/acorn.js +772 -708
- package/front_end/third_party/acorn/package/dist/acorn.mjs +767 -703
- package/front_end/third_party/acorn/package/dist/bin.js +47 -21
- package/front_end/third_party/acorn/package/package.json +1 -1
- package/front_end/third_party/acorn-loose/README.chromium +2 -2
- package/front_end/third_party/acorn-loose/package/CHANGELOG.md +12 -0
- package/front_end/third_party/acorn-loose/package/dist/acorn-loose.js +27 -7
- package/front_end/third_party/acorn-loose/package/dist/acorn-loose.mjs +28 -8
- package/front_end/third_party/acorn-loose/package/package.json +2 -2
- package/front_end/third_party/codemirror.next/bundle.ts +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
- package/front_end/third_party/codemirror.next/codemirror.next.d.ts +8 -1
- package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
- package/front_end/third_party/codemirror.next/package.json +1 -1
- package/front_end/third_party/i18n/i18n-impl.ts +1 -1
- package/front_end/third_party/lit-html/README.chromium +2 -2
- package/front_end/third_party/lit-html/package/CHANGELOG.md +216 -28
- package/front_end/third_party/lit-html/package/LICENSE +9 -9
- package/front_end/third_party/lit-html/package/README.md +12 -162
- package/front_end/third_party/lit-html/package/async-directive.d.ts +23 -54
- package/front_end/third_party/lit-html/package/async-directive.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/async-directive.js +2 -7
- package/front_end/third_party/lit-html/package/async-directive.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/async-directive.d.ts +23 -54
- package/front_end/third_party/lit-html/package/development/async-directive.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/async-directive.js +44 -194
- package/front_end/third_party/lit-html/package/development/async-directive.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/directive-helpers.d.ts +6 -5
- package/front_end/third_party/lit-html/package/development/directive-helpers.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/directive-helpers.js +25 -9
- package/front_end/third_party/lit-html/package/development/directive-helpers.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/directive.d.ts +3 -16
- package/front_end/third_party/lit-html/package/development/directive.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/directive.js +6 -1
- package/front_end/third_party/lit-html/package/development/directive.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/async-append.d.ts +7 -14
- package/front_end/third_party/lit-html/package/development/directives/async-append.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/async-append.js +17 -58
- package/front_end/third_party/lit-html/package/development/directives/async-append.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/async-replace.d.ts +9 -14
- package/front_end/third_party/lit-html/package/development/directives/async-replace.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/async-replace.js +57 -37
- package/front_end/third_party/lit-html/package/development/directives/async-replace.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/cache.d.ts +2 -3
- package/front_end/third_party/lit-html/package/development/directives/cache.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/cache.js +4 -6
- package/front_end/third_party/lit-html/package/development/directives/cache.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/class-map.d.ts +2 -2
- package/front_end/third_party/lit-html/package/development/directives/class-map.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/class-map.js +17 -7
- package/front_end/third_party/lit-html/package/development/directives/class-map.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/guard.d.ts +3 -2
- package/front_end/third_party/lit-html/package/development/directives/guard.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/guard.js +3 -2
- package/front_end/third_party/lit-html/package/development/directives/guard.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/live.d.ts +4 -3
- package/front_end/third_party/lit-html/package/development/directives/live.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/live.js +5 -7
- package/front_end/third_party/lit-html/package/development/directives/live.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/private-async-helpers.d.ts +58 -0
- package/front_end/third_party/lit-html/package/development/directives/private-async-helpers.d.ts.map +1 -0
- package/front_end/third_party/lit-html/package/development/directives/private-async-helpers.js +85 -0
- package/front_end/third_party/lit-html/package/development/directives/private-async-helpers.js.map +1 -0
- package/front_end/third_party/lit-html/package/development/directives/ref.d.ts +14 -11
- package/front_end/third_party/lit-html/package/development/directives/ref.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/ref.js +13 -11
- package/front_end/third_party/lit-html/package/development/directives/ref.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/repeat.d.ts +8 -4
- package/front_end/third_party/lit-html/package/development/directives/repeat.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/repeat.js +23 -9
- package/front_end/third_party/lit-html/package/development/directives/repeat.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/style-map.d.ts +1 -2
- package/front_end/third_party/lit-html/package/development/directives/style-map.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/style-map.js +1 -2
- package/front_end/third_party/lit-html/package/development/directives/style-map.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/template-content.d.ts +1 -2
- package/front_end/third_party/lit-html/package/development/directives/template-content.js +1 -2
- package/front_end/third_party/lit-html/package/development/directives/unsafe-html.d.ts +6 -4
- package/front_end/third_party/lit-html/package/development/directives/unsafe-html.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/unsafe-html.js +7 -5
- package/front_end/third_party/lit-html/package/development/directives/unsafe-html.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/unsafe-svg.d.ts +4 -1
- package/front_end/third_party/lit-html/package/development/directives/unsafe-svg.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/unsafe-svg.js +3 -0
- package/front_end/third_party/lit-html/package/development/directives/unsafe-svg.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/until.d.ts +12 -8
- package/front_end/third_party/lit-html/package/development/directives/until.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/directives/until.js +63 -23
- package/front_end/third_party/lit-html/package/development/directives/until.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/experimental-hydrate.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/experimental-hydrate.js +9 -8
- package/front_end/third_party/lit-html/package/development/experimental-hydrate.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/lit-html.d.ts +81 -136
- package/front_end/third_party/lit-html/package/development/lit-html.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/lit-html.js +249 -76
- package/front_end/third_party/lit-html/package/development/lit-html.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/polyfill-support.d.ts +1 -41
- package/front_end/third_party/lit-html/package/development/polyfill-support.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/polyfill-support.js +40 -21
- package/front_end/third_party/lit-html/package/development/polyfill-support.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/private-ssr-support.d.ts +12 -10
- package/front_end/third_party/lit-html/package/development/private-ssr-support.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/private-ssr-support.js +11 -3
- package/front_end/third_party/lit-html/package/development/private-ssr-support.js.map +1 -1
- package/front_end/third_party/lit-html/package/development/static.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/development/static.js +6 -5
- package/front_end/third_party/lit-html/package/development/static.js.map +1 -1
- package/front_end/third_party/lit-html/package/directive-helpers.d.ts +6 -5
- package/front_end/third_party/lit-html/package/directive-helpers.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/directive-helpers.js +2 -2
- package/front_end/third_party/lit-html/package/directive-helpers.js.map +1 -1
- package/front_end/third_party/lit-html/package/directive.d.ts +3 -16
- package/front_end/third_party/lit-html/package/directive.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/directive.js +1 -1
- package/front_end/third_party/lit-html/package/directive.js.map +1 -1
- package/front_end/third_party/lit-html/package/directives/async-append.d.ts +7 -14
- package/front_end/third_party/lit-html/package/directives/async-append.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/directives/async-append.js +2 -6
- package/front_end/third_party/lit-html/package/directives/async-append.js.map +1 -1
- package/front_end/third_party/lit-html/package/directives/async-replace.d.ts +9 -14
- package/front_end/third_party/lit-html/package/directives/async-replace.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/directives/async-replace.js +2 -5
- package/front_end/third_party/lit-html/package/directives/async-replace.js.map +1 -1
- package/front_end/third_party/lit-html/package/directives/cache.d.ts +2 -3
- package/front_end/third_party/lit-html/package/directives/cache.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/directives/cache.js +2 -5
- package/front_end/third_party/lit-html/package/directives/cache.js.map +1 -1
- package/front_end/third_party/lit-html/package/directives/class-map.d.ts +2 -2
- package/front_end/third_party/lit-html/package/directives/class-map.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/directives/class-map.js +2 -4
- package/front_end/third_party/lit-html/package/directives/class-map.js.map +1 -1
- package/front_end/third_party/lit-html/package/directives/guard.d.ts +3 -2
- package/front_end/third_party/lit-html/package/directives/guard.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/directives/guard.js +2 -4
- package/front_end/third_party/lit-html/package/directives/guard.js.map +1 -1
- package/front_end/third_party/lit-html/package/directives/live.d.ts +4 -3
- package/front_end/third_party/lit-html/package/directives/live.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/directives/live.js +1 -4
- package/front_end/third_party/lit-html/package/directives/live.js.map +1 -1
- package/front_end/third_party/lit-html/package/directives/private-async-helpers.d.ts +58 -0
- package/front_end/third_party/lit-html/package/directives/private-async-helpers.d.ts.map +1 -0
- package/front_end/third_party/lit-html/package/directives/private-async-helpers.js +7 -0
- package/front_end/third_party/lit-html/package/directives/private-async-helpers.js.map +1 -0
- package/front_end/third_party/lit-html/package/directives/ref.d.ts +14 -11
- package/front_end/third_party/lit-html/package/directives/ref.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/directives/ref.js +2 -5
- package/front_end/third_party/lit-html/package/directives/ref.js.map +1 -1
- package/front_end/third_party/lit-html/package/directives/repeat.d.ts +8 -4
- package/front_end/third_party/lit-html/package/directives/repeat.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/directives/repeat.js +2 -5
- package/front_end/third_party/lit-html/package/directives/repeat.js.map +1 -1
- package/front_end/third_party/lit-html/package/directives/style-map.d.ts +1 -2
- package/front_end/third_party/lit-html/package/directives/style-map.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/directives/style-map.js +2 -4
- package/front_end/third_party/lit-html/package/directives/style-map.js.map +1 -1
- package/front_end/third_party/lit-html/package/directives/template-content.d.ts +1 -2
- package/front_end/third_party/lit-html/package/directives/template-content.js +2 -4
- package/front_end/third_party/lit-html/package/directives/template-content.js.map +1 -1
- package/front_end/third_party/lit-html/package/directives/unsafe-html.d.ts +6 -4
- package/front_end/third_party/lit-html/package/directives/unsafe-html.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/directives/unsafe-html.js +2 -4
- package/front_end/third_party/lit-html/package/directives/unsafe-html.js.map +1 -1
- package/front_end/third_party/lit-html/package/directives/unsafe-svg.d.ts +4 -1
- package/front_end/third_party/lit-html/package/directives/unsafe-svg.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/directives/unsafe-svg.js.map +1 -1
- package/front_end/third_party/lit-html/package/directives/until.d.ts +12 -8
- package/front_end/third_party/lit-html/package/directives/until.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/directives/until.js +2 -6
- package/front_end/third_party/lit-html/package/directives/until.js.map +1 -1
- package/front_end/third_party/lit-html/package/experimental-hydrate.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/experimental-hydrate.js +2 -5
- package/front_end/third_party/lit-html/package/experimental-hydrate.js.map +1 -1
- package/front_end/third_party/lit-html/package/lit-html.d.ts +81 -136
- package/front_end/third_party/lit-html/package/lit-html.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/lit-html.js +1 -1
- package/front_end/third_party/lit-html/package/lit-html.js.map +1 -1
- package/front_end/third_party/lit-html/package/package.json +75 -24
- package/front_end/third_party/lit-html/package/polyfill-support.d.ts +1 -41
- package/front_end/third_party/lit-html/package/polyfill-support.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/polyfill-support.js +1 -1
- package/front_end/third_party/lit-html/package/polyfill-support.js.map +1 -1
- package/front_end/third_party/lit-html/package/private-ssr-support.d.ts +12 -10
- package/front_end/third_party/lit-html/package/private-ssr-support.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/private-ssr-support.js +2 -2
- package/front_end/third_party/lit-html/package/private-ssr-support.js.map +1 -1
- package/front_end/third_party/lit-html/package/static.d.ts.map +1 -1
- package/front_end/third_party/lit-html/package/static.js +1 -1
- package/front_end/third_party/lit-html/package/static.js.map +1 -1
- package/front_end/third_party/marked/README.chromium +2 -2
- package/front_end/third_party/marked/marked.ts +2 -2
- package/front_end/third_party/marked/package/README.md +7 -1
- package/front_end/third_party/marked/package/bin/marked.js +214 -0
- package/front_end/third_party/marked/package/lib/marked.cjs +2907 -0
- package/front_end/third_party/marked/package/lib/marked.esm.d.ts +1 -3
- package/front_end/third_party/marked/package/lib/marked.esm.js +627 -586
- package/front_end/third_party/marked/package/lib/marked.umd.js +2913 -0
- package/front_end/third_party/marked/package/man/marked.1 +5 -24
- package/front_end/third_party/marked/package/man/marked.1.txt +21 -31
- package/front_end/third_party/marked/package/marked.min.js +1 -1
- package/front_end/third_party/marked/package/package.json +41 -32
- package/front_end/third_party/marked/package/src/Lexer.js +109 -108
- package/front_end/third_party/marked/package/src/Parser.js +38 -15
- package/front_end/third_party/marked/package/src/Renderer.js +5 -5
- package/front_end/third_party/marked/package/src/Slugger.js +2 -2
- package/front_end/third_party/marked/package/src/TextRenderer.js +2 -2
- package/front_end/third_party/marked/package/src/Tokenizer.js +215 -190
- package/front_end/third_party/marked/package/src/defaults.js +6 -9
- package/front_end/third_party/marked/package/src/helpers.js +16 -27
- package/front_end/third_party/marked/package/src/marked.js +146 -63
- package/front_end/third_party/marked/package/src/rules.js +20 -45
- package/front_end/third_party/wasmparser/README.chromium +2 -2
- package/front_end/third_party/wasmparser/package/.github/workflows/main.yml +47 -0
- package/front_end/third_party/wasmparser/package/CHANGELOG.md +12 -0
- package/front_end/third_party/wasmparser/package/dist/cjs/WasmParser.js +53 -53
- package/front_end/third_party/wasmparser/package/dist/cjs/WasmParser.js.map +1 -1
- package/front_end/third_party/wasmparser/package/dist/esm/WasmParser.js +53 -53
- package/front_end/third_party/wasmparser/package/dist/esm/WasmParser.js.map +1 -1
- package/front_end/third_party/wasmparser/package/package.json +1 -1
- package/front_end/third_party/wasmparser/package/src/WasmParser.ts +53 -53
- package/front_end/ui/components/adorners/Adorner.ts +14 -14
- package/front_end/ui/components/buttons/Button.ts +133 -42
- package/front_end/ui/components/buttons/button.css +31 -0
- package/front_end/ui/components/data_grid/DataGrid.ts +131 -122
- package/front_end/ui/components/data_grid/DataGridController.ts +42 -42
- package/front_end/ui/components/diff_view/DiffView.ts +4 -4
- package/front_end/ui/components/docs/button/basic.html +3 -0
- package/front_end/ui/components/docs/button/basic.ts +58 -0
- package/front_end/ui/components/expandable_list/ExpandableList.ts +11 -11
- package/front_end/ui/components/icon_button/Icon.ts +24 -21
- package/front_end/ui/components/icon_button/IconButton.ts +31 -31
- package/front_end/ui/components/issue_counter/IssueCounter.ts +52 -52
- package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +42 -42
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspector.ts +67 -67
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorController.ts +22 -22
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorPane.ts +36 -36
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryNavigator.ts +19 -19
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryValueInterpreter.ts +25 -25
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryViewer.ts +52 -52
- package/front_end/ui/components/linear_memory_inspector/ValueInterpreterDisplay.ts +21 -21
- package/front_end/ui/components/linear_memory_inspector/ValueInterpreterSettings.ts +6 -6
- package/front_end/ui/components/markdown_view/MarkdownImage.ts +14 -14
- package/front_end/ui/components/markdown_view/MarkdownLink.ts +8 -8
- package/front_end/ui/components/markdown_view/MarkdownView.ts +6 -6
- package/front_end/ui/components/render_coordinator/RenderCoordinator.ts +33 -33
- package/front_end/ui/components/report_view/ReportView.ts +18 -18
- package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +53 -53
- package/front_end/ui/components/settings/SettingCheckbox.ts +15 -15
- package/front_end/ui/components/survey_link/SurveyLink.ts +28 -28
- package/front_end/ui/components/text_editor/TextEditor.ts +68 -36
- package/front_end/ui/components/text_editor/config.ts +4 -2
- package/front_end/ui/components/text_editor/javascript.ts +6 -6
- package/front_end/ui/components/text_prompt/TextPrompt.ts +19 -19
- package/front_end/ui/components/tree_outline/TreeOutline.ts +56 -56
- package/front_end/ui/legacy/Infobar.ts +9 -0
- package/front_end/ui/legacy/InspectorView.ts +1 -1
- package/front_end/ui/legacy/ListWidget.ts +2 -2
- package/front_end/ui/legacy/ViewManager.ts +6 -0
- package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +20 -0
- package/front_end/ui/legacy/tabbedPane.css +1 -1
- package/inspector_overlay/main.ts +3 -0
- package/package.json +1 -1
- package/scripts/eslint_rules/lib/l10n_filename_matches.js +17 -4
- package/scripts/eslint_rules/tests/l10n_filename_matches_test.js +21 -0
|
@@ -47,10 +47,6 @@ const UIStrings = {
|
|
|
47
47
|
*/
|
|
48
48
|
document: 'Document',
|
|
49
49
|
/**
|
|
50
|
-
*@description Text for web URLs
|
|
51
|
-
*/
|
|
52
|
-
url: 'URL',
|
|
53
|
-
/**
|
|
54
50
|
*@description Title for a link to the Sources panel
|
|
55
51
|
*/
|
|
56
52
|
clickToRevealInSourcesPanel: 'Click to reveal in Sources panel',
|
|
@@ -67,10 +63,6 @@ const UIStrings = {
|
|
|
67
63
|
*/
|
|
68
64
|
clickToRevealInNetworkPanelMight: 'Click to reveal in Network panel (might require page reload)',
|
|
69
65
|
/**
|
|
70
|
-
*@description Text for the origin of something
|
|
71
|
-
*/
|
|
72
|
-
origin: 'Origin',
|
|
73
|
-
/**
|
|
74
66
|
*@description Related node label in Timeline UIUtils of the Performance panel
|
|
75
67
|
*/
|
|
76
68
|
ownerElement: 'Owner Element',
|
|
@@ -117,11 +109,11 @@ const UIStrings = {
|
|
|
117
109
|
/**
|
|
118
110
|
*@description Row title for in the Frame Details view
|
|
119
111
|
*/
|
|
120
|
-
crossoriginIsolated: 'Cross-Origin Isolated',
|
|
112
|
+
crossoriginIsolated: '`Cross-Origin` Isolated',
|
|
121
113
|
/**
|
|
122
114
|
*@description Explanatory text in the Frame Details view
|
|
123
115
|
*/
|
|
124
|
-
localhostIsAlwaysASecureContext: 'Localhost is always a secure context',
|
|
116
|
+
localhostIsAlwaysASecureContext: '`Localhost` is always a secure context',
|
|
125
117
|
/**
|
|
126
118
|
*@description Explanatory text in the Frame Details view
|
|
127
119
|
*/
|
|
@@ -131,14 +123,6 @@ const UIStrings = {
|
|
|
131
123
|
*/
|
|
132
124
|
theFramesSchemeIsInsecure: 'The frame\'s scheme is insecure',
|
|
133
125
|
/**
|
|
134
|
-
*@description Row title in the Frame Details view
|
|
135
|
-
*/
|
|
136
|
-
crossoriginEmbedderPolicy: 'Cross-Origin Embedder Policy',
|
|
137
|
-
/**
|
|
138
|
-
*@description Row title in the Frame Details view
|
|
139
|
-
*/
|
|
140
|
-
crossoriginOpenerPolicy: 'Cross-Origin Opener Policy',
|
|
141
|
-
/**
|
|
142
126
|
*@description This label specifies the server endpoints to which the server is reporting errors
|
|
143
127
|
*and warnings through the Report-to API. Following this label will be the URL of the server.
|
|
144
128
|
*/
|
|
@@ -150,7 +134,8 @@ const UIStrings = {
|
|
|
150
134
|
/**
|
|
151
135
|
*@description Explanatory text in the Frame Details view for the API availability section
|
|
152
136
|
*/
|
|
153
|
-
availabilityOfCertainApisDepends:
|
|
137
|
+
availabilityOfCertainApisDepends:
|
|
138
|
+
'Availability of certain APIs depends on the document being `cross-origin` isolated.',
|
|
154
139
|
/**
|
|
155
140
|
*@description Description of the SharedArrayBuffer status
|
|
156
141
|
*/
|
|
@@ -167,20 +152,20 @@ const UIStrings = {
|
|
|
167
152
|
*@description Tooltip for the SharedArrayBuffer availability status
|
|
168
153
|
*/
|
|
169
154
|
sharedarraybufferConstructorIs:
|
|
170
|
-
'SharedArrayBuffer constructor is available and SABs can be transferred via postMessage',
|
|
155
|
+
'`SharedArrayBuffer` constructor is available and `SABs` can be transferred via `postMessage`',
|
|
171
156
|
/**
|
|
172
157
|
*@description Tooltip for the SharedArrayBuffer availability status
|
|
173
158
|
*/
|
|
174
159
|
sharedarraybufferConstructorIsAvailable:
|
|
175
|
-
'SharedArrayBuffer constructor is available but SABs cannot be transferred via postMessage',
|
|
160
|
+
'`SharedArrayBuffer` constructor is available but `SABs` cannot be transferred via `postMessage`',
|
|
176
161
|
/**
|
|
177
162
|
*@description Explanation for the SharedArrayBuffer availability status
|
|
178
163
|
*/
|
|
179
|
-
willRequireCrossoriginIsolated: '⚠️ will require cross-origin isolated context in the future',
|
|
164
|
+
willRequireCrossoriginIsolated: '⚠️ will require `cross-origin` isolated context in the future',
|
|
180
165
|
/**
|
|
181
166
|
*@description Explanation for the SharedArrayBuffer availability status
|
|
182
167
|
*/
|
|
183
|
-
requiresCrossoriginIsolated: 'requires cross-origin isolated context',
|
|
168
|
+
requiresCrossoriginIsolated: 'requires `cross-origin` isolated context',
|
|
184
169
|
/**
|
|
185
170
|
*@description Explanation for the SharedArrayBuffer availability status in case the transfer of a SAB requires the
|
|
186
171
|
* permission policy `cross-origin-isolated` to be enabled (e.g. because the message refers to the situation in an iframe).
|
|
@@ -194,11 +179,12 @@ const UIStrings = {
|
|
|
194
179
|
/**
|
|
195
180
|
*@description Tooltip for the Measure Memory availability status
|
|
196
181
|
*/
|
|
197
|
-
thePerformanceAPI: 'The performance.measureUserAgentSpecificMemory() API is available',
|
|
182
|
+
thePerformanceAPI: 'The `performance.measureUserAgentSpecificMemory()` API is available',
|
|
198
183
|
/**
|
|
199
184
|
*@description Tooltip for the Measure Memory availability status
|
|
200
185
|
*/
|
|
201
|
-
thePerformancemeasureuseragentspecificmemory:
|
|
186
|
+
thePerformancemeasureuseragentspecificmemory:
|
|
187
|
+
'The `performance.measureUserAgentSpecificMemory()` API is not available',
|
|
202
188
|
/**
|
|
203
189
|
*@description Entry in the API availability section of the frame details view
|
|
204
190
|
*/
|
|
@@ -211,12 +197,13 @@ const UIStrings = {
|
|
|
211
197
|
*@description Label for a stack trace. If a frame is created programmatically (i.e. via JavaScript), there is a
|
|
212
198
|
* stack trace for the line of code which caused the creation of the iframe. This is the stack trace we are showing here.
|
|
213
199
|
*/
|
|
214
|
-
creationStackTrace: 'Frame Creation Stack Trace',
|
|
200
|
+
creationStackTrace: 'Frame Creation `Stack Trace`',
|
|
215
201
|
/**
|
|
216
202
|
*@description Tooltip for 'Frame Creation Stack Trace' explaining that the stack
|
|
217
203
|
*trace shows where in the code the frame has been created programmatically
|
|
218
204
|
*/
|
|
219
|
-
creationStackTraceExplanation:
|
|
205
|
+
creationStackTraceExplanation:
|
|
206
|
+
'This frame was created programmatically. The `stack trace` shows where this happened.',
|
|
220
207
|
/**
|
|
221
208
|
*@description Text descripting why a frame has been indentified as an advertisement.
|
|
222
209
|
*/
|
|
@@ -230,11 +217,11 @@ const UIStrings = {
|
|
|
230
217
|
*@description Text descripting why a frame has been indentified as an advertisement.
|
|
231
218
|
*/
|
|
232
219
|
createdByAdScriptExplanation:
|
|
233
|
-
'There was an ad script in the (async) stack when this frame was created. Examining the creation stack trace of this frame might provide more insight.',
|
|
220
|
+
'There was an ad script in the `(async) stack` when this frame was created. Examining the creation `stack trace` of this frame might provide more insight.',
|
|
234
221
|
/**
|
|
235
222
|
*@description Label for a list of origin trials that associated with at least one token.
|
|
236
223
|
*/
|
|
237
|
-
originTrials: 'Origin Trials',
|
|
224
|
+
// originTrials: 'Origin Trials',
|
|
238
225
|
};
|
|
239
226
|
const str_ = i18n.i18n.registerUIStrings('panels/application/components/FrameDetailsView.ts', UIStrings);
|
|
240
227
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
@@ -330,7 +317,7 @@ export class FrameDetailsReportView extends HTMLElement {
|
|
|
330
317
|
|
|
331
318
|
return LitHtml.html`
|
|
332
319
|
<${ReportView.ReportView.ReportSectionHeader.litTagName}>
|
|
333
|
-
${
|
|
320
|
+
${i18n.i18n.lockedString('Origin Trials')}
|
|
334
321
|
<${IconButton.IconButton.IconButton.litTagName} class="inline-button" .data="${{
|
|
335
322
|
clickHandler: refreshOriginTrials,
|
|
336
323
|
groups: [
|
|
@@ -356,7 +343,7 @@ export class FrameDetailsReportView extends HTMLElement {
|
|
|
356
343
|
return LitHtml.html`
|
|
357
344
|
<${ReportView.ReportView.ReportSectionHeader.litTagName}>${i18nString(UIStrings.document)}</${
|
|
358
345
|
ReportView.ReportView.ReportSectionHeader.litTagName}>
|
|
359
|
-
<${ReportView.ReportView.ReportKey.litTagName}>${
|
|
346
|
+
<${ReportView.ReportView.ReportKey.litTagName}>${i18n.i18n.lockedString('URL')}</${
|
|
360
347
|
ReportView.ReportView.ReportKey.litTagName}>
|
|
361
348
|
<${ReportView.ReportView.ReportValue.litTagName}>
|
|
362
349
|
<div class="inline-items">
|
|
@@ -462,7 +449,7 @@ export class FrameDetailsReportView extends HTMLElement {
|
|
|
462
449
|
private maybeRenderOrigin(): LitHtml.TemplateResult|{} {
|
|
463
450
|
if (this.frame && this.frame.securityOrigin && this.frame.securityOrigin !== '://') {
|
|
464
451
|
return LitHtml.html`
|
|
465
|
-
<${ReportView.ReportView.ReportKey.litTagName}>${
|
|
452
|
+
<${ReportView.ReportView.ReportKey.litTagName}>${i18n.i18n.lockedString('Origin')}</${
|
|
466
453
|
ReportView.ReportView.ReportKey.litTagName}>
|
|
467
454
|
<${ReportView.ReportView.ReportValue.litTagName}>
|
|
468
455
|
<div class="text-ellipsis" title=${this.frame.securityOrigin}>${this.frame.securityOrigin}</div>
|
|
@@ -622,11 +609,11 @@ export class FrameDetailsReportView extends HTMLElement {
|
|
|
622
609
|
return LitHtml.html`
|
|
623
610
|
${
|
|
624
611
|
this.maybeRenderCrossOriginStatus(
|
|
625
|
-
info.coep,
|
|
612
|
+
info.coep, i18n.i18n.lockedString('Cross-Origin Embedder Policy (COEP)'),
|
|
626
613
|
Protocol.Network.CrossOriginEmbedderPolicyValue.None)}
|
|
627
614
|
${
|
|
628
615
|
this.maybeRenderCrossOriginStatus(
|
|
629
|
-
info.coop,
|
|
616
|
+
info.coop, i18n.i18n.lockedString('Cross-Origin Opener Policy (COOP)'),
|
|
630
617
|
Protocol.Network.CrossOriginOpenerPolicyValue.UnsafeNone)}
|
|
631
618
|
`;
|
|
632
619
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import * as Common from '../../core/common/common.js';
|
|
6
6
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
7
|
+
import * as Root from '../../core/root/root.js';
|
|
7
8
|
import * as Diff from '../../third_party/diff/diff.js';
|
|
8
9
|
import * as DiffView from '../../ui/components/diff_view/diff_view.js';
|
|
9
10
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
@@ -166,7 +167,7 @@ export class ChangesView extends UI.Widget.VBox {
|
|
|
166
167
|
this.registerCSSFiles([changesViewStyles]);
|
|
167
168
|
}
|
|
168
169
|
|
|
169
|
-
private refreshDiff(): void {
|
|
170
|
+
private async refreshDiff(): Promise<void> {
|
|
170
171
|
if (!this.isShowing()) {
|
|
171
172
|
return;
|
|
172
173
|
}
|
|
@@ -180,12 +181,12 @@ export class ChangesView extends UI.Widget.VBox {
|
|
|
180
181
|
this.hideDiff(i18nString(UIStrings.binaryData));
|
|
181
182
|
return;
|
|
182
183
|
}
|
|
183
|
-
this.workspaceDiff.requestDiff(
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
184
|
+
const diff = await this.workspaceDiff.requestDiff(
|
|
185
|
+
uiSourceCode, {shouldFormatDiff: Root.Runtime.experiments.isEnabled('preciseChanges')});
|
|
186
|
+
if (this.selectedUISourceCode !== uiSourceCode) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
this.renderDiffRows(diff);
|
|
189
190
|
}
|
|
190
191
|
|
|
191
192
|
private hideDiff(message: string): void {
|
|
@@ -30,7 +30,7 @@ export class StyleEditorWidget extends UI.Widget.VBox {
|
|
|
30
30
|
private section?: StylePropertiesSection;
|
|
31
31
|
private editorContainer: HTMLElement;
|
|
32
32
|
|
|
33
|
-
#
|
|
33
|
+
#triggerKey: string|undefined;
|
|
34
34
|
|
|
35
35
|
constructor() {
|
|
36
36
|
super(true);
|
|
@@ -73,12 +73,12 @@ export class StyleEditorWidget extends UI.Widget.VBox {
|
|
|
73
73
|
this.editor?.addEventListener('propertydeselected', this.onPropertyDeselected);
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
this.#
|
|
76
|
+
setTriggerKey(value: string): void {
|
|
77
|
+
this.#triggerKey = value;
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
return this.#
|
|
80
|
+
getTriggerKey(): string|undefined {
|
|
81
|
+
return this.#triggerKey;
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
unbindContext(): void {
|
|
@@ -116,7 +116,7 @@ export class StyleEditorWidget extends UI.Widget.VBox {
|
|
|
116
116
|
|
|
117
117
|
static createTriggerButton(
|
|
118
118
|
pane: StylesSidebarPane, section: StylePropertiesSection, editorClass: {new(): Editor}, buttonTitle: string,
|
|
119
|
-
|
|
119
|
+
triggerKey: string): HTMLElement {
|
|
120
120
|
const triggerButton = createButton(buttonTitle);
|
|
121
121
|
|
|
122
122
|
triggerButton.onclick = async(event): Promise<void> => {
|
|
@@ -125,7 +125,7 @@ export class StyleEditorWidget extends UI.Widget.VBox {
|
|
|
125
125
|
const widget = StyleEditorWidget.instance();
|
|
126
126
|
widget.setEditor(editorClass);
|
|
127
127
|
widget.bindContext(pane, section);
|
|
128
|
-
widget.
|
|
128
|
+
widget.setTriggerKey(triggerKey);
|
|
129
129
|
await widget.render();
|
|
130
130
|
const scrollerElement = triggerButton.enclosingNodeOrSelfWithClass('style-panes-wrapper');
|
|
131
131
|
const onScroll = (): void => {
|
|
@@ -668,24 +668,17 @@ export class StylePropertyTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
668
668
|
const section = this.section();
|
|
669
669
|
if (this.valueElement && section && section.editable && this.property.name === 'display') {
|
|
670
670
|
const propertyValue = this.property.trimmedValueWithoutImportant();
|
|
671
|
-
|
|
671
|
+
const isFlex = propertyValue === 'flex' || propertyValue === 'inline-flex';
|
|
672
|
+
const isGrid = propertyValue === 'grid' || propertyValue === 'inline-grid';
|
|
673
|
+
if (isFlex || isGrid) {
|
|
674
|
+
const key = `${section.getSectionIdx()}_${section.nextEditorTriggerButtonIdx}`;
|
|
672
675
|
const button = StyleEditorWidget.createTriggerButton(
|
|
673
|
-
this.parentPaneInternal, section, FlexboxEditor
|
|
674
|
-
|
|
676
|
+
this.parentPaneInternal, section, isFlex ? FlexboxEditor : GridEditor,
|
|
677
|
+
isFlex ? i18nString(UIStrings.flexboxEditorButton) : i18nString(UIStrings.gridEditorButton), key);
|
|
678
|
+
section.nextEditorTriggerButtonIdx++;
|
|
675
679
|
this.listItemElement.appendChild(button);
|
|
676
680
|
const helper = this.parentPaneInternal.swatchPopoverHelper();
|
|
677
|
-
if (helper.isShowing(StyleEditorWidget.instance()) &&
|
|
678
|
-
this.property.index === StyleEditorWidget.instance().getPropertyIndex()) {
|
|
679
|
-
helper.setAnchorElement(button);
|
|
680
|
-
}
|
|
681
|
-
}
|
|
682
|
-
if (propertyValue === 'grid' || propertyValue === 'inline-grid') {
|
|
683
|
-
const button = StyleEditorWidget.createTriggerButton(
|
|
684
|
-
this.parentPaneInternal, section, GridEditor, i18nString(UIStrings.gridEditorButton), this.property.index);
|
|
685
|
-
this.listItemElement.appendChild(button);
|
|
686
|
-
const helper = this.parentPaneInternal.swatchPopoverHelper();
|
|
687
|
-
if (helper.isShowing(StyleEditorWidget.instance()) &&
|
|
688
|
-
this.property.index === StyleEditorWidget.instance().getPropertyIndex()) {
|
|
681
|
+
if (helper.isShowing(StyleEditorWidget.instance()) && StyleEditorWidget.instance().getTriggerKey() === key) {
|
|
689
682
|
helper.setAnchorElement(button);
|
|
690
683
|
}
|
|
691
684
|
}
|
|
@@ -832,6 +832,7 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
|
|
|
832
832
|
this.idleCallbackManager = new IdleCallbackManager();
|
|
833
833
|
|
|
834
834
|
const blocks = [new SectionBlock(null)];
|
|
835
|
+
let sectionIdx = 0;
|
|
835
836
|
let lastParentNode: SDK.DOMModel.DOMNode|null = null;
|
|
836
837
|
for (const style of matchedStyles.nodeStyles()) {
|
|
837
838
|
const parentNode = matchedStyles.isInherited(style) ? matchedStyles.nodeForStyle(style) : null;
|
|
@@ -844,7 +845,8 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
|
|
|
844
845
|
const lastBlock = blocks[blocks.length - 1];
|
|
845
846
|
if (lastBlock) {
|
|
846
847
|
this.idleCallbackManager.schedule(() => {
|
|
847
|
-
const section = new StylePropertiesSection(this, matchedStyles, style);
|
|
848
|
+
const section = new StylePropertiesSection(this, matchedStyles, style, sectionIdx);
|
|
849
|
+
sectionIdx++;
|
|
848
850
|
lastBlock.sections.push(section);
|
|
849
851
|
});
|
|
850
852
|
}
|
|
@@ -860,7 +862,8 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
|
|
|
860
862
|
const block = SectionBlock.createPseudoTypeBlock(pseudoType);
|
|
861
863
|
for (const style of matchedStyles.pseudoStyles(pseudoType)) {
|
|
862
864
|
this.idleCallbackManager.schedule(() => {
|
|
863
|
-
const section = new StylePropertiesSection(this, matchedStyles, style);
|
|
865
|
+
const section = new StylePropertiesSection(this, matchedStyles, style, sectionIdx);
|
|
866
|
+
sectionIdx++;
|
|
864
867
|
block.sections.push(section);
|
|
865
868
|
});
|
|
866
869
|
}
|
|
@@ -871,7 +874,8 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
|
|
|
871
874
|
const block = SectionBlock.createKeyframesBlock(keyframesRule.name().text);
|
|
872
875
|
for (const keyframe of keyframesRule.keyframes()) {
|
|
873
876
|
this.idleCallbackManager.schedule(() => {
|
|
874
|
-
block.sections.push(new KeyframePropertiesSection(this, matchedStyles, keyframe.style));
|
|
877
|
+
block.sections.push(new KeyframePropertiesSection(this, matchedStyles, keyframe.style, sectionIdx));
|
|
878
|
+
sectionIdx++;
|
|
875
879
|
});
|
|
876
880
|
}
|
|
877
881
|
blocks.push(block);
|
|
@@ -917,7 +921,7 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
|
|
|
917
921
|
const node = this.node();
|
|
918
922
|
const blankSection = new BlankStylePropertiesSection(
|
|
919
923
|
this, insertAfterSection.matchedStyles, node ? node.simpleSelector() : '', styleSheetId, ruleLocation,
|
|
920
|
-
insertAfterSection.style());
|
|
924
|
+
insertAfterSection.style(), 0);
|
|
921
925
|
|
|
922
926
|
this.sectionsContainer.insertBefore(blankSection.element, insertAfterSection.element.nextSibling);
|
|
923
927
|
|
|
@@ -929,6 +933,13 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
|
|
|
929
933
|
block.sections.splice(index + 1, 0, blankSection);
|
|
930
934
|
blankSection.startEditingSelector();
|
|
931
935
|
}
|
|
936
|
+
let sectionIdx = 0;
|
|
937
|
+
for (const block of this.sectionBlocks) {
|
|
938
|
+
for (const section of block.sections) {
|
|
939
|
+
section.setSectionIdx(sectionIdx);
|
|
940
|
+
sectionIdx++;
|
|
941
|
+
}
|
|
942
|
+
}
|
|
932
943
|
}
|
|
933
944
|
|
|
934
945
|
removeSection(section: StylePropertiesSection): void {
|
|
@@ -1208,10 +1219,15 @@ export class StylePropertiesSection {
|
|
|
1208
1219
|
|
|
1209
1220
|
private queryListElement: HTMLElement;
|
|
1210
1221
|
|
|
1222
|
+
// Used to identify buttons that trigger a flexbox or grid editor.
|
|
1223
|
+
nextEditorTriggerButtonIdx = 1;
|
|
1224
|
+
private sectionIdx = 0;
|
|
1225
|
+
|
|
1211
1226
|
constructor(
|
|
1212
1227
|
parentPane: StylesSidebarPane, matchedStyles: SDK.CSSMatchedStyles.CSSMatchedStyles,
|
|
1213
|
-
style: SDK.CSSStyleDeclaration.CSSStyleDeclaration) {
|
|
1228
|
+
style: SDK.CSSStyleDeclaration.CSSStyleDeclaration, sectionIdx: number) {
|
|
1214
1229
|
this.parentPane = parentPane;
|
|
1230
|
+
this.sectionIdx = sectionIdx;
|
|
1215
1231
|
this.styleInternal = style;
|
|
1216
1232
|
this.matchedStyles = matchedStyles;
|
|
1217
1233
|
this.editable = Boolean(style.styleSheetId && style.range);
|
|
@@ -1344,6 +1360,15 @@ export class StylePropertiesSection {
|
|
|
1344
1360
|
this.onpopulate();
|
|
1345
1361
|
}
|
|
1346
1362
|
|
|
1363
|
+
setSectionIdx(sectionIdx: number): void {
|
|
1364
|
+
this.sectionIdx = sectionIdx;
|
|
1365
|
+
this.onpopulate();
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1368
|
+
getSectionIdx(): number {
|
|
1369
|
+
return this.sectionIdx;
|
|
1370
|
+
}
|
|
1371
|
+
|
|
1347
1372
|
registerFontProperty(treeElement: StylePropertyTreeElement): void {
|
|
1348
1373
|
if (this.fontEditorSectionManager) {
|
|
1349
1374
|
this.fontEditorSectionManager.registerFontProperty(treeElement);
|
|
@@ -1935,6 +1960,7 @@ export class StylePropertiesSection {
|
|
|
1935
1960
|
|
|
1936
1961
|
onpopulate(): void {
|
|
1937
1962
|
this.parentPane.setActiveProperty(null);
|
|
1963
|
+
this.nextEditorTriggerButtonIdx = 1;
|
|
1938
1964
|
this.propertiesTreeOutline.removeChildren();
|
|
1939
1965
|
const style = this.styleInternal;
|
|
1940
1966
|
let count = 0;
|
|
@@ -2457,10 +2483,10 @@ export class BlankStylePropertiesSection extends StylePropertiesSection {
|
|
|
2457
2483
|
constructor(
|
|
2458
2484
|
stylesPane: StylesSidebarPane, matchedStyles: SDK.CSSMatchedStyles.CSSMatchedStyles, defaultSelectorText: string,
|
|
2459
2485
|
styleSheetId: Protocol.CSS.StyleSheetId, ruleLocation: TextUtils.TextRange.TextRange,
|
|
2460
|
-
insertAfterStyle: SDK.CSSStyleDeclaration.CSSStyleDeclaration) {
|
|
2486
|
+
insertAfterStyle: SDK.CSSStyleDeclaration.CSSStyleDeclaration, sectionIdx: number) {
|
|
2461
2487
|
const cssModel = (stylesPane.cssModel() as SDK.CSSModel.CSSModel);
|
|
2462
2488
|
const rule = SDK.CSSRule.CSSStyleRule.createDummyRule(cssModel, defaultSelectorText);
|
|
2463
|
-
super(stylesPane, matchedStyles, rule.style);
|
|
2489
|
+
super(stylesPane, matchedStyles, rule.style, sectionIdx);
|
|
2464
2490
|
this.normal = false;
|
|
2465
2491
|
this.ruleLocation = ruleLocation;
|
|
2466
2492
|
this.styleSheetId = styleSheetId;
|
|
@@ -2564,8 +2590,8 @@ export class BlankStylePropertiesSection extends StylePropertiesSection {
|
|
|
2564
2590
|
export class KeyframePropertiesSection extends StylePropertiesSection {
|
|
2565
2591
|
constructor(
|
|
2566
2592
|
stylesPane: StylesSidebarPane, matchedStyles: SDK.CSSMatchedStyles.CSSMatchedStyles,
|
|
2567
|
-
style: SDK.CSSStyleDeclaration.CSSStyleDeclaration) {
|
|
2568
|
-
super(stylesPane, matchedStyles, style);
|
|
2593
|
+
style: SDK.CSSStyleDeclaration.CSSStyleDeclaration, sectionIdx: number) {
|
|
2594
|
+
super(stylesPane, matchedStyles, style, sectionIdx);
|
|
2569
2595
|
this.selectorElement.className = 'keyframe-key';
|
|
2570
2596
|
}
|
|
2571
2597
|
|
|
@@ -547,6 +547,9 @@ export class DeviceModeView extends UI.Widget.VBox {
|
|
|
547
547
|
const link = document.createElement('a');
|
|
548
548
|
link.download = fileName + '.png';
|
|
549
549
|
canvas.toBlob(blob => {
|
|
550
|
+
if (blob === null) {
|
|
551
|
+
return;
|
|
552
|
+
}
|
|
550
553
|
link.href = URL.createObjectURL(blob);
|
|
551
554
|
link.click();
|
|
552
555
|
});
|
|
@@ -21,7 +21,9 @@ function getReleaseNoteLang(): string {
|
|
|
21
21
|
// @ts-ignore TODO(crbug.com/1163928) Wait for Intl support.
|
|
22
22
|
const currentDevToolsLocale = new Intl.Locale(currentDevToolsUILanguage);
|
|
23
23
|
|
|
24
|
-
return releaseNoteLangs.has(currentDevToolsLocale.language) ?
|
|
24
|
+
return currentDevToolsLocale.language && releaseNoteLangs.has(currentDevToolsLocale.language) ?
|
|
25
|
+
currentDevToolsLocale.language :
|
|
26
|
+
'';
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
function getLocalizedReleaseNoteURL(url: string): string {
|
|
@@ -270,7 +270,13 @@ export class NetworkItemView extends UI.TabbedPane.TabbedPane {
|
|
|
270
270
|
|
|
271
271
|
private selectTabInternal(tabId: string): void {
|
|
272
272
|
if (!this.selectTab(tabId)) {
|
|
273
|
-
|
|
273
|
+
// maybeAppendPayloadPanel might cause payload tab to appear asynchronously, so
|
|
274
|
+
// it makes sense to retry on the next tick
|
|
275
|
+
setTimeout(() => {
|
|
276
|
+
if (!this.selectTab(tabId)) {
|
|
277
|
+
this.selectTab('headers');
|
|
278
|
+
}
|
|
279
|
+
}, 0);
|
|
274
280
|
}
|
|
275
281
|
}
|
|
276
282
|
|
|
@@ -132,11 +132,8 @@
|
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
-
.heap-snapshot-view tr:not(.selected) td.object-column span.heap-object-tag
|
|
136
|
-
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
.heap-snapshot-view td.object-column span.grayed {
|
|
135
|
+
.heap-snapshot-view tr:not(.selected) td.object-column span.heap-object-tag,
|
|
136
|
+
.heap-snapshot-view tr:not(.selected) td.object-column span.grayed {
|
|
140
137
|
color: var(--color-text-secondary);
|
|
141
138
|
}
|
|
142
139
|
|
|
@@ -41,7 +41,7 @@ export class SnippetFileSystem extends Persistence.PlatformFileSystem.PlatformFi
|
|
|
41
41
|
private readonly snippetsSetting: Common.Settings.Setting<Snippet[]>;
|
|
42
42
|
constructor() {
|
|
43
43
|
// TODO(crbug.com/1253323): Cast to UrlString will be removed when migration to branded types is complete.
|
|
44
|
-
super('snippet://'
|
|
44
|
+
super('snippet://', 'snippets');
|
|
45
45
|
this.lastSnippetIdentifierSetting =
|
|
46
46
|
Common.Settings.Settings.instance().createSetting('scriptSnippets_lastIdentifier', 0);
|
|
47
47
|
this.snippetsSetting = Common.Settings.Settings.instance().createSetting('scriptSnippets', []);
|
|
@@ -702,8 +702,8 @@ export class DebuggerPlugin extends Plugin {
|
|
|
702
702
|
if (this.popoverHelper.isPopoverVisible()) {
|
|
703
703
|
this.popoverHelper.hidePopover();
|
|
704
704
|
event.consume();
|
|
705
|
+
return true;
|
|
705
706
|
}
|
|
706
|
-
return true;
|
|
707
707
|
}
|
|
708
708
|
if (ctrlDown && this.executionLocation) {
|
|
709
709
|
this.setControlDown(true);
|
|
@@ -851,7 +851,7 @@ export class NavigatorView extends UI.Widget.VBox implements SDK.TargetManager.O
|
|
|
851
851
|
// TODO(crbug.com/1253323): Cast to RawPathString will be removed when migration to branded types is complete.
|
|
852
852
|
const folderPath = Common.ParsedURL.ParsedURL.capFilePrefix(
|
|
853
853
|
Persistence.FileSystemWorkspaceBinding.FileSystemWorkspaceBinding.completeURL(project, path) as
|
|
854
|
-
Platform.DevToolsPath.
|
|
854
|
+
Platform.DevToolsPath.UrlString,
|
|
855
855
|
Host.Platform.isWin());
|
|
856
856
|
contextMenu.revealSection().appendItem(
|
|
857
857
|
i18nString(UIStrings.openFolder),
|
|
@@ -380,7 +380,6 @@ export class UISourceCodeFrame extends
|
|
|
380
380
|
const location = this.editorLocationToUILocation(lineNumber, columnNumber);
|
|
381
381
|
contextMenu.appendApplicableItems(
|
|
382
382
|
new Workspace.UISourceCode.UILocation(this.uiSourceCodeInternal, location.lineNumber, location.columnNumber));
|
|
383
|
-
contextMenu.appendApplicableItems(this);
|
|
384
383
|
for (const plugin of this.plugins) {
|
|
385
384
|
plugin.populateTextAreaContextMenu(contextMenu, lineNumber, columnNumber);
|
|
386
385
|
}
|
|
@@ -93,6 +93,9 @@ export class TimelineController implements SDK.TargetManager.SDKModelObserver<SD
|
|
|
93
93
|
];
|
|
94
94
|
categoriesArray.push(TimelineModel.TimelineModel.TimelineModelImpl.Category.LatencyInfo);
|
|
95
95
|
|
|
96
|
+
if (Root.Runtime.experiments.isEnabled('timelineV8RuntimeCallStats') && options.enableJSSampling) {
|
|
97
|
+
categoriesArray.push(disabledByDefault('v8.runtime_stats_sampling'));
|
|
98
|
+
}
|
|
96
99
|
if (!Root.Runtime.Runtime.queryParam('timelineTracingJSProfileDisabled') && options.enableJSSampling) {
|
|
97
100
|
categoriesArray.push(disabledByDefault('v8.cpu_profiler'));
|
|
98
101
|
}
|
|
@@ -46,7 +46,7 @@ import type {PerformanceModel} from './PerformanceModel.js';
|
|
|
46
46
|
import {FlameChartStyle, Selection, TimelineFlameChartMarker} from './TimelineFlameChartView.js';
|
|
47
47
|
import {TimelineSelection} from './TimelinePanel.js';
|
|
48
48
|
import type {TimelineCategory} from './TimelineUIUtils.js';
|
|
49
|
-
import {TimelineUIUtils} from './TimelineUIUtils.js';
|
|
49
|
+
import {TimelineUIUtils, assignLayoutShiftsToClusters} from './TimelineUIUtils.js';
|
|
50
50
|
|
|
51
51
|
const UIStrings = {
|
|
52
52
|
/**
|
|
@@ -768,7 +768,7 @@ export class TimelineFlameChartDataProvider extends Common.ObjectWrapper.ObjectW
|
|
|
768
768
|
|
|
769
769
|
const metricEvents: SDK.TracingModel.Event[] = [];
|
|
770
770
|
const lcpEvents = [];
|
|
771
|
-
const layoutShifts = [];
|
|
771
|
+
const layoutShifts: SDK.TracingModel.Event[] = [];
|
|
772
772
|
const timelineModel = this.performanceModel.timelineModel();
|
|
773
773
|
for (const track of this.model.tracks()) {
|
|
774
774
|
for (const event of track.events) {
|
|
@@ -807,38 +807,7 @@ export class TimelineFlameChartDataProvider extends Common.ObjectWrapper.ObjectW
|
|
|
807
807
|
}
|
|
808
808
|
|
|
809
809
|
if (layoutShifts.length) {
|
|
810
|
-
|
|
811
|
-
const limitTimeInMs = 5000;
|
|
812
|
-
let firstTimestamp = Number.NEGATIVE_INFINITY;
|
|
813
|
-
let previousTimestamp = Number.NEGATIVE_INFINITY;
|
|
814
|
-
let maxScore = 0;
|
|
815
|
-
let currentClusterId = 1;
|
|
816
|
-
let currentClusterScore = 0;
|
|
817
|
-
let currentCluster = new Set<SDK.TracingModel.Event>();
|
|
818
|
-
|
|
819
|
-
for (const e of layoutShifts) {
|
|
820
|
-
if (e.args['data']['had_recent_input'] || e.args['data']['weighted_score_delta'] === undefined) {
|
|
821
|
-
continue;
|
|
822
|
-
}
|
|
823
|
-
|
|
824
|
-
if (e.startTime - firstTimestamp > limitTimeInMs || e.startTime - previousTimestamp > gapTimeInMs) {
|
|
825
|
-
firstTimestamp = e.startTime;
|
|
826
|
-
|
|
827
|
-
for (const layoutShift of currentCluster) {
|
|
828
|
-
layoutShift.args['data']['_current_cluster_score'] = currentClusterScore;
|
|
829
|
-
layoutShift.args['data']['_current_cluster_id'] = currentClusterId;
|
|
830
|
-
}
|
|
831
|
-
|
|
832
|
-
currentClusterId += 1;
|
|
833
|
-
currentClusterScore = 0;
|
|
834
|
-
currentCluster = new Set();
|
|
835
|
-
}
|
|
836
|
-
|
|
837
|
-
previousTimestamp = e.startTime;
|
|
838
|
-
currentClusterScore += e.args['data']['weighted_score_delta'];
|
|
839
|
-
currentCluster.add(e);
|
|
840
|
-
maxScore = Math.max(maxScore, currentClusterScore);
|
|
841
|
-
}
|
|
810
|
+
assignLayoutShiftsToClusters(layoutShifts);
|
|
842
811
|
}
|
|
843
812
|
|
|
844
813
|
metricEvents.sort(SDK.TracingModel.Event.compareStartTime);
|
|
@@ -2421,9 +2421,13 @@ export class TimelineUIUtils {
|
|
|
2421
2421
|
contentHelper.appendTextRow(i18nString(UIStrings.score), eventData['score'].toPrecision(4));
|
|
2422
2422
|
contentHelper.appendTextRow(
|
|
2423
2423
|
i18nString(UIStrings.cumulativeScore), eventData['cumulative_score'].toPrecision(4));
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2424
|
+
if ('_current_cluster_id' in eventData) {
|
|
2425
|
+
contentHelper.appendTextRow(i18nString(UIStrings.currentClusterId), eventData['_current_cluster_id']);
|
|
2426
|
+
}
|
|
2427
|
+
if ('_current_cluster_score' in eventData) {
|
|
2428
|
+
contentHelper.appendTextRow(
|
|
2429
|
+
i18nString(UIStrings.currentClusterScore), eventData['_current_cluster_score'].toPrecision(4));
|
|
2430
|
+
}
|
|
2427
2431
|
contentHelper.appendTextRow(
|
|
2428
2432
|
i18nString(UIStrings.hadRecentInput),
|
|
2429
2433
|
eventData['had_recent_input'] ? i18nString(UIStrings.yes) : i18nString(UIStrings.no));
|
|
@@ -3783,3 +3787,47 @@ export interface TimelineMarkerStyle {
|
|
|
3783
3787
|
tall: boolean;
|
|
3784
3788
|
lowPriority: boolean;
|
|
3785
3789
|
}
|
|
3790
|
+
|
|
3791
|
+
export function assignLayoutShiftsToClusters(layoutShifts: readonly SDK.TracingModel.Event[]): void {
|
|
3792
|
+
const gapTimeInMs = 1000;
|
|
3793
|
+
const limitTimeInMs = 5000;
|
|
3794
|
+
let firstTimestamp = Number.NEGATIVE_INFINITY;
|
|
3795
|
+
let previousTimestamp = Number.NEGATIVE_INFINITY;
|
|
3796
|
+
let currentClusterId = 0;
|
|
3797
|
+
let currentClusterScore = 0;
|
|
3798
|
+
let currentCluster = new Set<SDK.TracingModel.Event>();
|
|
3799
|
+
|
|
3800
|
+
for (const event of layoutShifts) {
|
|
3801
|
+
if (event.args['data']['had_recent_input'] || event.args['data']['weighted_score_delta'] === undefined) {
|
|
3802
|
+
continue;
|
|
3803
|
+
}
|
|
3804
|
+
|
|
3805
|
+
if (event.startTime - firstTimestamp > limitTimeInMs || event.startTime - previousTimestamp > gapTimeInMs) {
|
|
3806
|
+
// This means the event does not fit into the current session/cluster, so we need to start a new cluster.
|
|
3807
|
+
firstTimestamp = event.startTime;
|
|
3808
|
+
|
|
3809
|
+
// Update all the layout shifts we found in this cluster to associate them with the cluster.
|
|
3810
|
+
for (const layoutShift of currentCluster) {
|
|
3811
|
+
layoutShift.args['data']['_current_cluster_score'] = currentClusterScore;
|
|
3812
|
+
layoutShift.args['data']['_current_cluster_id'] = currentClusterId;
|
|
3813
|
+
}
|
|
3814
|
+
|
|
3815
|
+
// Increment the cluster ID and reset the data.
|
|
3816
|
+
currentClusterId += 1;
|
|
3817
|
+
currentClusterScore = 0;
|
|
3818
|
+
currentCluster = new Set();
|
|
3819
|
+
}
|
|
3820
|
+
|
|
3821
|
+
// Store the timestamp of the previous layout shift.
|
|
3822
|
+
previousTimestamp = event.startTime;
|
|
3823
|
+
// Update the score of the current cluster and store this event in that cluster
|
|
3824
|
+
currentClusterScore += event.args['data']['weighted_score_delta'];
|
|
3825
|
+
currentCluster.add(event);
|
|
3826
|
+
}
|
|
3827
|
+
|
|
3828
|
+
// The last cluster we find may not get closed out - so if not, update all the shifts that we associate with it.
|
|
3829
|
+
for (const layoutShift of currentCluster) {
|
|
3830
|
+
layoutShift.args['data']['_current_cluster_score'] = currentClusterScore;
|
|
3831
|
+
layoutShift.args['data']['_current_cluster_id'] = currentClusterId;
|
|
3832
|
+
}
|
|
3833
|
+
}
|