WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
174229
Web Inspector: Styles: make Computed a top-level sidebar tab
https://bugs.webkit.org/show_bug.cgi?id=174229
Summary
Web Inspector: Styles: make Computed a top-level sidebar tab
Nikita Vasilyev
Reported
2017-07-06 16:36:00 PDT
Two years ago, Styles second-level tabs were replaced by a dropdown menu:
Bug 146878
- Web Inspector: Merge the styles sidebar navigation bar into a selectable item in the elements sidebar. This added an extra click to switch between most commonly used Style tabs: Rules and Computed. The two most commonly used tabs should: 1. Take a single click to switch between. 2. Be top-level tabs. 3. Be first on the list, before Node and Layers.
Attachments
WIP
(33.21 KB, patch)
2017-10-28 19:56 PDT
,
Nikita Vasilyev
nvasilyev
: review-
nvasilyev
: commit-queue-
Details
Formatted Diff
Diff
[Animated GIF] With patch applied
(177.77 KB, image/gif)
2017-10-28 19:57 PDT
,
Nikita Vasilyev
no flags
Details
[Animated GIF] 4 tabs overflow sidebar
(278.44 KB, image/gif)
2017-11-04 18:14 PDT
,
Nikita Vasilyev
no flags
Details
Patch
(41.89 KB, patch)
2017-11-07 19:26 PST
,
Nikita Vasilyev
bburg
: review-
bburg
: commit-queue-
Details
Formatted Diff
Diff
[Animated GIF] With patch applied
(540.96 KB, image/gif)
2017-11-07 19:26 PST
,
Nikita Vasilyev
no flags
Details
Patch
(47.97 KB, patch)
2017-11-10 12:43 PST
,
Nikita Vasilyev
no flags
Details
Formatted Diff
Diff
[Image] Style sidebar tabs
(135.38 KB, image/png)
2017-11-10 12:47 PST
,
Nikita Vasilyev
no flags
Details
Patch
(47.82 KB, patch)
2017-12-01 16:56 PST
,
Nikita Vasilyev
no flags
Details
Formatted Diff
Diff
Show Obsolete
(4)
View All
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2017-07-06 16:36:48 PDT
<
rdar://problem/33170193
>
Nikita Vasilyev
Comment 2
2017-10-28 19:56:12 PDT
Created
attachment 325275
[details]
WIP Not ready for review yet, but you can apply the patch and try the new tabs. Known issues: — Command-clicking on a property in Computed to jump to a corresponding property in Styles is now broken. — Ideally, the filter field should be shared between Styles and Computed, e.g. switching between Styles and Computed should preserve the filter field value. This isn't the case in Chrome. Also, I haven't yet implemented filtering in the redesigned styles panel. The newly added StyleRulesDetailsSidebarPanel.js and StyleComputedDetailsSidebarPanel.js are trimmed down versions of CSSStyleDetailsSidebarPanel.js. I'm still thinking what's the best way to reduce code duplication between the two.
Nikita Vasilyev
Comment 3
2017-10-28 19:57:01 PDT
Created
attachment 325276
[details]
[Animated GIF] With patch applied
Nikita Vasilyev
Comment 4
2017-11-04 18:14:29 PDT
Created
attachment 326055
[details]
[Animated GIF] 4 tabs overflow sidebar We have code that supposed to determine sidebar's min-width based on the navigation items' width. Unfortunately, it doesn't work. I'm seeing WI.NavigationBar.prototype._calculateMinimumWidth returning 0 because it gets called when _visibleNavigationItems are empty. This zero value gets cached by minimumWidth getter. Besides, there's also:
Bug 179292
- REGRESSION (
r221338
): Web Inspector: NavigationBar incorrectly calculates minimumWidth
Nikita Vasilyev
Comment 5
2017-11-07 19:26:20 PST
Created
attachment 326285
[details]
Patch
Nikita Vasilyev
Comment 6
2017-11-07 19:26:49 PST
Created
attachment 326286
[details]
[Animated GIF] With patch applied
Blaze Burg
Comment 7
2017-11-09 10:13:26 PST
Comment on
attachment 326285
[details]
Patch AFAIK, we have not agreed to phase out Visual Styles Sidebar right now. I think we are going to consider this in a more nuanced way later. For now, it's probably OK to keep it as a dropdown alternative for the "Styles" selector.
Nikita Vasilyev
Comment 8
2017-11-10 12:43:53 PST
Created
attachment 326617
[details]
Patch I added a setting to show Legacy Visual Styles Panel. It's off by default.
Nikita Vasilyev
Comment 9
2017-11-10 12:47:07 PST
Created
attachment 326618
[details]
[Image] Style sidebar tabs (In reply to Brian Burg from
comment #7
)
> Comment on
attachment 326285
[details]
> Patch > > AFAIK, we have not agreed to phase out Visual Styles Sidebar right now. I > think we are going to consider this in a more nuanced way later. For now, > it's probably OK to keep it as a dropdown alternative for the "Styles" > selector.
I removed all dropdown tab selectors from the styles sidebar and made Visual a top-level tab, which is turned off by default.
Matt Baker
Comment 10
2017-11-27 20:25:53 PST
Comment on
attachment 326617
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=326617&action=review
Looking pretty good. The only major comment I have is that it feels like the panel class hierarchy is convoluted. A lot of this was in place before this patch, but now that the panels are all top-level, maybe the *Panel and *SidebarPanel classes could be merged together or something. Just a thought, I think it's okay for now. Aside: I like that pseudo-class checkboxes are visible in the Visual panel now.
> Source/WebInspectorUI/ChangeLog:11 > + "Visual" styles is no longer visible in the Styles sidebar tabs by default. It can be enabled in the settings.
Nit: no need to quote Styles, Computed, and Visual. Also this could be all one paragraph.
> Source/WebInspectorUI/ChangeLog:49 > + CSSStyleDetailsSidebarPanel used to suppost several panels. This is no longer the case with GeneralStyleDetailsSidebarPanel:
suppost -> support
> Source/WebInspectorUI/ChangeLog:73 > + SidebarNavigationBar wraps navigation items in an element so it can correctly calculate the width of all items with spacing between them.
I don't understand why a new class is needed. Can GroupNavigationItem be used instead?
> Source/WebInspectorUI/UserInterface/Views/StyleComputedDetailsSidebarPanel.js:26 > +WI.StyleComputedDetailsSidebarPanel = class StyleComputedDetailsSidebarPanel extends WI.GeneralStyleDetailsSidebarPanel
Should this be named RulesStyleDetailsSidebarPanel, to be consistent with its RulesStyleDetailsPanel? The same goes for the other subclasses of GeneralStyleDetailsSidebarPanel.
Nikita Vasilyev
Comment 11
2017-11-29 16:57:00 PST
Comment on
attachment 326617
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=326617&action=review
>> Source/WebInspectorUI/ChangeLog:73 >> + SidebarNavigationBar wraps navigation items in an element so it can correctly calculate the width of all items with spacing between them. > > I don't understand why a new class is needed. Can GroupNavigationItem be used instead?
It doesn't calculate the minimum width correctly. It doesn't take the margin between the items into account.
Nikita Vasilyev
Comment 12
2017-11-29 17:20:49 PST
(In reply to Nikita Vasilyev from
comment #11
)
> Comment on
attachment 326617
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=326617&action=review
> > >> Source/WebInspectorUI/ChangeLog:73 > >> + SidebarNavigationBar wraps navigation items in an element so it can correctly calculate the width of all items with spacing between them. > > > > I don't understand why a new class is needed. Can GroupNavigationItem be used instead? > > It doesn't calculate the minimum width correctly. It doesn't take the margin > between the items into account.
Perhaps I should modify GroupNavigationItem to correctly calculate minimumWidth. Do you know if GroupNavigationItem.prototype.minimumWidth is used anywhere? So far I couldn't find any instances of it.
Nikita Vasilyev
Comment 13
2017-11-30 16:58:51 PST
Comment on
attachment 326617
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=326617&action=review
>> Source/WebInspectorUI/UserInterface/Views/StyleComputedDetailsSidebarPanel.js:26 >> +WI.StyleComputedDetailsSidebarPanel = class StyleComputedDetailsSidebarPanel extends WI.GeneralStyleDetailsSidebarPanel > > Should this be named RulesStyleDetailsSidebarPanel, to be consistent with its RulesStyleDetailsPanel? The same goes for the other subclasses of GeneralStyleDetailsSidebarPanel.
Did you mean to leave this comment for StyleRulesDetailsSidebarPanel? If so, than yes, it should.
Matt Baker
Comment 14
2017-11-30 17:27:48 PST
Comment on
attachment 326617
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=326617&action=review
>>>> Source/WebInspectorUI/ChangeLog:73 >>>> + SidebarNavigationBar wraps navigation items in an element so it can correctly calculate the width of all items with spacing between them. >>> >>> I don't understand why a new class is needed. Can GroupNavigationItem be used instead? >> >> It doesn't calculate the minimum width correctly. It doesn't take the margin between the items into account. > > Perhaps I should modify GroupNavigationItem to correctly calculate minimumWidth. > Do you know if GroupNavigationItem.prototype.minimumWidth is used anywhere? So far I couldn't find any instances of it.
It's a property on the NavigationItem base class, which some navigation items override. It is called by NavigationBar.prototype._calculateMinimumWidth(), and by GroupNavigationItem when it calculates its own `minimumWidth`.
>>> Source/WebInspectorUI/UserInterface/Views/StyleComputedDetailsSidebarPanel.js:26 >>> +WI.StyleComputedDetailsSidebarPanel = class StyleComputedDetailsSidebarPanel extends WI.GeneralStyleDetailsSidebarPanel >> >> Should this be named RulesStyleDetailsSidebarPanel, to be consistent with its RulesStyleDetailsPanel? The same goes for the other subclasses of GeneralStyleDetailsSidebarPanel. > > Did you mean to leave this comment for StyleRulesDetailsSidebarPanel? If so, than yes, it should.
Oops! I meant to say that StyleComputedDetailsSidebarPanel should be renamed to ComputedStyleDetailsSidebarPanel to match ComputedStyleDetailsPanel. The same goes for RulesStyleDetailsSidebarPanel.
Nikita Vasilyev
Comment 15
2017-12-01 16:50:12 PST
I tried to use GroupNavigationItem and went down the rabbit hole. To use GroupNavigationItem, I'd have to: - Copy several NavigationBar's methods to GroupNavigationItem: addNavigationItem, insertNavigationItem, removeNavigationItem, etc. - Sidebar has a concept of a selected item, but GroupNavigationItem doesn't. I'd have to either implement it on GroupNavigationItem or add this logic to WI.Sidebar. Considering how simple SidebarNavigationBar is, I'd rather use it instead. (In reply to Matt Baker from
comment #14
)
> Comment on
attachment 326617
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=326617&action=review
> > >>>> Source/WebInspectorUI/ChangeLog:73 > >>>> + SidebarNavigationBar wraps navigation items in an element so it can correctly calculate the width of all items with spacing between them. > >>> > >>> I don't understand why a new class is needed. Can GroupNavigationItem be used instead? > >> > >> It doesn't calculate the minimum width correctly. It doesn't take the margin between the items into account. > > > > Perhaps I should modify GroupNavigationItem to correctly calculate minimumWidth. > > Do you know if GroupNavigationItem.prototype.minimumWidth is used anywhere? So far I couldn't find any instances of it. > > It's a property on the NavigationItem base class, which some navigation > items override. It is called by > NavigationBar.prototype._calculateMinimumWidth(), and by GroupNavigationItem > when it calculates its own `minimumWidth`.
I understand. I meant to write that I can't find GroupNavigationItem.prototype.minimumWidth being called anywhere.
Nikita Vasilyev
Comment 16
2017-12-01 16:52:48 PST
(In reply to Matt Baker from
comment #10
)
> Comment on
attachment 326617
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=326617&action=review
> > Looking pretty good. The only major comment I have is that it feels like the > panel class hierarchy is convoluted. A lot of this was in place before this > patch, but now that the panels are all top-level, maybe the *Panel and > *SidebarPanel classes could be merged together or something. Just a thought, > I think it's okay for now.
I'll revisit this when I bring back filtering to the styles sidebar. Ideally, we want to share the filter field between Styles and Computed panels.
Nikita Vasilyev
Comment 17
2017-12-01 16:56:44 PST
Created
attachment 328187
[details]
Patch
Matt Baker
Comment 18
2017-12-05 14:06:53 PST
Comment on
attachment 328187
[details]
Patch r=me
WebKit Commit Bot
Comment 19
2017-12-05 14:28:23 PST
Comment on
attachment 328187
[details]
Patch Clearing flags on attachment: 328187 Committed
r225547
: <
https://trac.webkit.org/changeset/225547
>
WebKit Commit Bot
Comment 20
2017-12-05 14:28:25 PST
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug