Files
react-native-devtools-frontend/front_end/sources/callStackSidebarPane.css
T
Jack Lynch 7cd600f9d2 Reland: Make call stack keyboard navigable
This is a reland of https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1880515,
which was reverted at https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1961190
due to test failures that do not repro or appear to be related.

This PR makes the call stack sidebar pane in the Sources panel more
accessible by:
  - enabling keyboard navigation of the call frame list by managing call
  frame selection outside of ListControl as suggested by Joel in [2]
  - adding the aria-disabled attribute to unselectable call frames
  - adding an aria description to blackboxed call frames

This will break several web tests, so [3] must be merged first to
disable them.
Originally reviewed in [1], where the web test fixes for this CL now
live.

Video showing navigation: https://i.imgur.com/55tJy2k.mp4

[1] https://chromium-review.googlesource.com/c/chromium/src/+/1715121
[2] https://chromium-review.googlesource.com/c/chromium/src/+/1690089/11#message-3e9e158cce4628b01398d9cf84e37550b55b14c6
[3] https://chromium-review.googlesource.com/c/chromium/src/+/1893117

Bug: 963183
Change-Id: I826e1c5c2f78c235823a71c956fde6ef73bcccac
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1965855
Commit-Queue: Jack Lynch <jalyn@microsoft.com>
Reviewed-by: Robert Paveza <Rob.Paveza@microsoft.com>
2020-01-13 23:13:35 +00:00

119 lines
2.2 KiB
CSS

/*
* Copyright 2016 The Chromium Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
.blackboxed-message {
text-align: center;
font-style: italic;
padding: 4px;
color: #888;
background-color: #FFFFC2;
}
.blackboxed-message > .link {
margin-left: 5px;
}
.blackboxed-message > .link:focus {
outline-width: unset;
}
.show-more-message {
text-align: center;
font-style: italic;
padding: 4px;
border-top: 1px solid #d8d8d8;
}
.show-more-message > .link {
margin-left: 5px;
}
.call-frame-item {
padding: 3px 8px 3px 20px;
position: relative;
min-height: 18px;
line-height: 15px;
display: flex;
flex-wrap: wrap;
}
.call-frame-title-text {
text-overflow: ellipsis;
overflow: hidden;
}
.call-frame-item:not(.async-header) {
border-top: 1px solid #efefef;
}
.call-frame-item:not(.async-header):hover {
background-color: #eee;
}
.call-frame-item[data-keyboard-focus="true"]:focus,
.call-frame-item.async-header[data-keyboard-focus="true"]:focus .call-frame-item-title {
background-color: var(--focus-bg-color);
}
.async-header + .call-frame-item {
border-top: 0;
}
.call-frame-item-title,
.call-frame-location {
display: flex;
white-space: nowrap;
}
.call-frame-location {
color: #888;
margin-left: auto;
padding: 0 10px 0 10px;
}
.async-header::before {
content: " ";
width: 100%;
border-top: 1px solid #d8d8d8;
margin-top: 8px;
position: absolute;
left: 0;
}
.async-header .call-frame-item-title {
font-weight: bold;
color: #999;
background-color: white;
margin-left: -5px;
padding: 0 5px;
z-index: 1;
}
.blackboxed-call-frame {
opacity: 0.6;
font-style: italic;
}
.selected-call-frame-icon {
display: none;
position: absolute;
top: 5px;
left: 4px;
}
.call-frame-item.selected .selected-call-frame-icon {
display: block;
}
:host-context(.-theme-with-dark-background) .blackboxed-message {
background-color: hsl(46, 98%, 22%);
color: #aaa;
}
:host-context(.-theme-with-dark-background) .blackboxed-message > .link {
color: hsl(0, 0%, 67%);
}