Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Web Inspector: Elements: rework CSS pseudo class toggles
https://bugs.webkit.org/show_bug.cgi?id=241655 Reviewed by Patrick Angle. Move the forced pseudo class checkboxes to the bottom of the sidebar next to the class list checkboxes (though only one of them can be enabled at a time) since more space is needed to support new (and future) pseudo classes and using space at the bottom of the sidebar is better than at the top (since there's already precedent with the class list checkboxes). Test: inspector/css/forcePseudoState.html * Source/WebInspectorUI/UserInterface/Views/GeneralStyleDetailsSidebarPanel.js: (WI.GeneralStyleDetailsSidebarPanel): (WI.GeneralStyleDetailsSidebarPanel.prototype.get minimumWidth): (WI.GeneralStyleDetailsSidebarPanel.prototype.attached): (WI.GeneralStyleDetailsSidebarPanel.prototype.layout): (WI.GeneralStyleDetailsSidebarPanel.prototype.addEventListeners): (WI.GeneralStyleDetailsSidebarPanel.prototype.removeEventListeners): (WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout): (WI.GeneralStyleDetailsSidebarPanel.prototype.sizeDidChange): (WI.GeneralStyleDetailsSidebarPanel.prototype._updateClassListContainer): Added. (WI.GeneralStyleDetailsSidebarPanel.prototype._updateForcedPseudoClassContainer): Added. (WI.GeneralStyleDetailsSidebarPanel.prototype._handleNodeChanged): (WI.GeneralStyleDetailsSidebarPanel.prototype._forcedPseudoClassCheckboxChanged): Added. (WI.GeneralStyleDetailsSidebarPanel.prototype._updatePseudoClasasCheckboxes): Added. (WI.GeneralStyleDetailsSidebarPanel.prototype._classListToggleButtonClicked): Renamed from `_classToggleButtonClicked`. (WI.GeneralStyleDetailsSidebarPanel.prototype._forcedPseudoClassToggleButtonClicked): Added. (WI.GeneralStyleDetailsSidebarPanel.prototype.styleDetailsPanelFocusLastPseudoClassCheckbox): Deleted. (WI.GeneralStyleDetailsSidebarPanel.prototype.get _initialScrollOffset): Deleted. (WI.GeneralStyleDetailsSidebarPanel.prototype._updateNoForcedPseudoClassesScrollOffset): Deleted. (WI.GeneralStyleDetailsSidebarPanel.prototype._handleForcedPseudoClassCheckboxKeydown): Deleted. * Source/WebInspectorUI/UserInterface/Views/GeneralStyleDetailsSidebarPanel.css: (.sidebar > .panel.details.css-style > .content ~ :is(.options-container, .class-list-container, .forced-pseudo-class-container)): ADded. (.sidebar > .panel.details.css-style > .content ~ :is(.options-container, .class-list-container)): (.sidebar > .panel.details.css-style > .content:not(.supports-new-rule, .has-filter-bar) ~ :is(.options-container, .class-list-container, .forced-pseudo-class-container)): Renamed from `.sidebar > .panel.details.css-style > .content:not(.supports-new-rule, .has-filter-bar) ~ :is(.options-container, .class-list-container)`. (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle): Renamed from `.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle`. (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle:focus): Renamed from `.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle:focus`. (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle::before): Renamed from `.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle::before`. (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle:is(.selected, :hover)): Renamed from `.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle:is(.selected, :hover)`. (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle:is(.selected, :hover)::before): Renamed from `.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle:is(.selected, :hover)::before`. (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle:not(.selected):hover::before): Renamed from `.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle:not(.selected):hover::before`. (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle.selected:active::before): Renamed from `.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle.selected:active::before`. (.sidebar > .panel.details.css-style > .content:not(.supports-new-rule) ~ .options-container > .new-rule, .sidebar > .panel.details.css-style > .content:not(.supports-toggle-class-list) ~ .options-container > .toggle.class-list, .sidebar > .panel.details.css-style > .content:not(.supports-toggle-forced-pseudo-class) ~ .options-container > .toggle.forced-pseudo-class, .sidebar > .panel.details.css-style > .content:not(.has-filter-bar) ~ .options-container > .filter-bar, .sidebar > .panel.details.css-style > .content:not(.supports-new-rule):not(.supports-toggle-class-list):not(.supports-toggle-forced-pseudo-class):not(.has-filter-bar) ~ .options-container): Renamed from `.sidebar > .panel.details.css-style > .content:not(.supports-new-rule) ~ .options-container > .new-rule, .sidebar > .panel.details.css-style > .content:not(.supports-toggle-css-class) ~ .options-container > .toggle-class-toggle, .sidebar > .panel.details.css-style > .content:not(.has-filter-bar) ~ .options-container > .filter-bar, .sidebar > .panel.details.css-style > .content:not(.supports-new-rule):not(.supports-toggle-class):not(.has-filter-bar) ~ .options-container`. (.sidebar > .panel.details.css-style > .content ~ :is(.class-list-container, .forced-pseudo-class-container)): Added. (.sidebar > .panel.details.css-style > .content ~ :is(.class-list-container, .forced-pseudo-class-container)[hidden]): Added. (.sidebar > .panel.details.css-style > .content ~ .class-list-container): (.sidebar > .panel.details.css-style > .content ~ .forced-pseudo-class-container): Added. (.sidebar > .panel.details.css-style > .content ~ .forced-pseudo-class-container > label): Added. * Source/WebInspectorUI/UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js: (WI.SpreadsheetRulesStyleDetailsPanel.prototype.get supportsToggleCSSClassList): Added. (WI.SpreadsheetRulesStyleDetailsPanel.prototype.get supportsToggleCSSForcedPseudoClass): Added. (WI.SpreadsheetRulesStyleDetailsPanel.prototype.get initialToggleCSSForcedPseudoClassState): Added. (WI.SpreadsheetRulesStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationSectionStartEditingAdjacentRule): Remove `styleDetailsPanelFocusLastPseudoClassCheckbox` as the forced pseudo class checkboxes are no longer at the top, and therefore should not be focused when shift-tabbing from the first property. * Source/WebInspectorUI/UserInterface/Views/StyleDetailsPanel.js: (WI.StyleDetailsPanel.prototype.get supportsToggleCSSClassList): Renamed from `get supportsToggleCSSClass`. (WI.StyleDetailsPanel.prototype.get supportsToggleCSSForcedPseudoClass): (WI.StyleDetailsPanel.prototype.get _initialScrollOffset): Deleted. No need to adjust the initial `scrollTop` for the forced pseudo class checkboxes since they are no longer at the top. * Source/WebInspectorUI/UserInterface/Views/ComputedStyleDetailsPanel.js: (WI.ComputedStyleDetailsPanel.prototype.get supportsToggleCSSClassList): Added. (WI.ComputedStyleDetailsPanel.prototype.get supportsToggleCSSForcedPseudoClass): Added. (WI.ComputedStyleDetailsPanel.prototype.get initialToggleCSSForcedPseudoClassState): Added. * Source/WebInspectorUI/UserInterface/Views/FontDetailsPanel.js: (WI.FontDetailsPanel.prototype.get supportsToggleCSSClass): Deleted. Allow `WI.StyleDetailsPanel` subclasses to control whether they support forcing pseudo classes (and if so whether the container should initially be shown). * Source/JavaScriptCore/inspector/protocol/CSS.json: * Source/WebCore/inspector/agents/InspectorCSSAgent.h: * Source/WebCore/inspector/agents/InspectorCSSAgent.cpp: (WebCore::computePseudoClassMask): Deleted. (WebCore::InspectorCSSAgent::forcePseudoState): * Source/WebInspectorUI/UserInterface/Controllers/CSSManager.js: (WI.CSSManager.displayNameForForceablePseudoClass): Added. (WI.CSSManager.prototype.canForcePseudoClass): Renamed from `canForcePseudoClasses`. Add enum values for `:focus-visible` and `:focus-within`. Drive-by: Make `CSS.ForceablePseudoClass` enum instead of having it be an inline/anonymous enum for only `CSS.forcePseudoState`. * Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js: (WI.appendContextMenuItemsForDOMNode): * Source/WebInspectorUI/UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: (WI.SpreadsheetCSSStyleDeclarationSection.prototype._populateIconElementContextMenu): Handle `WI.CSSManager.ForceablePseudoClass` now being an object instead of an array. * Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js: * LayoutTests/inspector/css/forcePseudoState.html: Added. * LayoutTests/inspector/css/forcePseudoState-expected.txt: Added. Canonical link: https://commits.webkit.org/251628@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@295623 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- Loading branch information