Web Inspector: TimelineOverview clicks do not always behave as expected
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
index bda987e..76a67e4 100644 (file)
@@ -1,3 +1,649 @@
+2019-03-06  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: TimelineOverview clicks do not always behave as expected
+        https://bugs.webkit.org/show_bug.cgi?id=195319
+
+        Reviewed by Devin Rousso.
+
+        * UserInterface/Views/TimelineRuler.js:
+        (WI.TimelineRuler.prototype._shouldIgnoreMicroMovement):
+        (WI.TimelineRuler.prototype._handleMouseDown):
+        (WI.TimelineRuler.prototype._handleMouseMove):
+        Ignore moves that haven't gone more than 4px. Once the threshold is
+        passed allow all moves. This improves the click behavior since
+        previously click would never re-dispatch if there was any movement.
+
+2019-03-06  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: CPU Usage Timeline - Statistics and Sources sections
+        https://bugs.webkit.org/show_bug.cgi?id=195202
+
+        Reviewed by Devin Rousso.
+
+        * Localizations/en.lproj/localizedStrings.js:
+        New strings.
+
+        * UserInterface/Base/Utilities.js:
+        (Map.prototype.getOrInitialize):
+        Helper to get and if not found initialize with a value.
+
+        * UserInterface/Views/CPUTimelineView.css:
+        (.timeline-view.cpu > .content > .overview > .chart > .container.stats):
+        (.timeline-view.cpu > .content > .overview > .chart > .container.stats > table):
+        (.timeline-view.cpu > .content > .overview > .chart > .container.stats > table > tr > th):
+        (.timeline-view.cpu > .content > .overview > .chart > .container.stats > table > tr > td.number):
+        (.timeline-view.cpu > .content > .overview > .chart > .container.stats > table > tr > td.label):
+        (.timeline-view.cpu > .content > .overview > .chart > .container.stats > table .show-more):
+        (.timeline-view.cpu > .content > .overview > .chart > .container.stats > table .filter):
+        (.timeline-view.cpu > .content > .overview > .chart > .container.stats > table .filter:hover):
+        (.timeline-view.cpu > .content > .overview > .chart > .container.stats > table .active):
+        (.timeline-view.cpu > .content > .overview > .chart > .container.stats > table .active + .active):
+        (@media (prefers-color-scheme: dark)):
+        Colors for the statistics sections.
+
+        * UserInterface/Views/CPUTimelineView.js:
+        (WI.CPUTimelineView):
+        (WI.CPUTimelineView.prototype.reset):
+        (WI.CPUTimelineView.prototype.clear):
+        (WI.CPUTimelineView.prototype._clearStatistics):
+        (WI.CPUTimelineView.prototype._clearSources):
+        Updates for additional sections.
+        Include a cache of the statisiticsData so we can relayout parts of the UI and
+        avoid an entire UI update.
+
+        (WI.CPUTimelineView.prototype.initialLayout):
+        (WI.CPUTimelineView.prototype._layoutBreakdownChart):
+        (WI.CPUTimelineView.prototype._layoutStatisticsAndSources):
+        (WI.CPUTimelineView.prototype._layoutStatisticsSection.createEllipsisElement):
+        (WI.CPUTimelineView.prototype._layoutStatisticsSection):
+        (WI.CPUTimelineView.prototype._layoutSourcesSection.firstNonNativeCallFrame):
+        (WI.CPUTimelineView.prototype._layoutSourcesSection.keyForSourceCodeLocation):
+        (WI.CPUTimelineView.prototype._layoutSourcesSection.labelForLocation):
+        (WI.CPUTimelineView.prototype._layoutSourcesSection.createEllipsisElement):
+        (WI.CPUTimelineView.prototype._layoutSourcesSection):
+        Extract layouts into helper methods to avoid an enormous layout method.
+
+        (WI.CPUTimelineView.prototype._computeSamplingData.incrementTypeCount):
+        (WI.CPUTimelineView.prototype._computeSamplingData):
+        Compute additional data when going through script events.
+
+        (WI.CPUTimelineView.prototype._resetSourcesFilters):
+        (WI.CPUTimelineView.prototype._addSourcesFilter):
+        (WI.CPUTimelineView.prototype._removeSourcesFilter):
+        (WI.CPUTimelineView.prototype._updateSourcesFilters):
+        Helpers for updating the source filters.
+
+        (WI.CPUTimelineView.prototype._createTableRow):
+        (WI.CPUTimelineView.prototype._insertTableRow):
+        Helpers for creating rows in the statistics / sources tables.
+
+2019-03-06  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: Simplify chart <rect>s with x/y attributes instead of transform(x, y)
+        https://bugs.webkit.org/show_bug.cgi?id=195352
+
+        Reviewed by Matt Baker.
+
+        * UserInterface/Views/ColumnChart.js:
+        (WI.ColumnChart.prototype.layout):
+        (WI.ColumnChart):
+        * UserInterface/Views/RangeChart.js:
+        (WI.RangeChart.prototype.layout):
+        (WI.RangeChart):
+        * UserInterface/Views/StackedColumnChart.js:
+        (WI.StackedColumnChart.prototype.layout):
+        (WI.StackedColumnChart):
+
+2019-03-06  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: CSS Changes: only show changes for the given node
+        https://bugs.webkit.org/show_bug.cgi?id=194608
+        <rdar://problem/48050206>
+
+        Reviewed by Timothy Hatcher.
+
+        * UserInterface/Views/ChangesDetailsSidebarPanel.js:
+        (WI.ChangesDetailsSidebarPanel.prototype.inspect):
+        (WI.ChangesDetailsSidebarPanel.prototype.supportsDOMNode):
+        (WI.ChangesDetailsSidebarPanel.prototype.layout):
+        Make this panel a subclass of `WI.DOMDetailsSidebarPanel` so it has access to the selected
+        DOM node in the Elements tab.
+
+        * UserInterface/Base/Setting.js:
+        * UserInterface/Views/SettingsTabContentView.js:
+        (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
+        Create new general setting for controlling this change.
+
+        * Localizations/en.lproj/localizedStrings.js:
+
+2019-03-06  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: Canvas: color swatches aren't shown for valid inputs with leading/trailing whitespace
+        https://bugs.webkit.org/show_bug.cgi?id=195298
+
+        Reviewed by Timothy Hatcher.
+
+        * UserInterface/Views/RecordingActionTreeElement.js:
+        (WI.RecordingActionTreeElement._generateDOM):
+        (WI.RecordingActionTreeElement._createSwatchForColorParameters):
+        Trim the color string since it can be an arbitrary string, seeing as it is captured before
+        the <canvas> has a chance to parse/fix it.
+
+2019-03-05  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: recordsInTimeRange sometimes does not get the expected record when includeRecordBeforeStart
+        https://bugs.webkit.org/show_bug.cgi?id=195317
+
+        Reviewed by Devin Rousso.
+
+        * UserInterface/Models/Timeline.js:
+        (WI.Timeline.prototype.recordsOverlappingTimeRange):
+
+2019-03-05  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: Canvas: remove event listeners once a recording is ready
+        https://bugs.webkit.org/show_bug.cgi?id=195324
+
+        Reviewed by Matt Baker.
+
+        * UserInterface/Models/Recording.js:
+        (WI.Recording):
+        (WI.Recording.prototype.async swizzle):
+        (WI.Recording.prototype.async _process):
+
+        * UserInterface/Views/RecordingActionTreeElement.js:
+        (WI.RecordingActionTreeElement):
+        (WI.RecordingActionTreeElement.prototype._handleValidityChanged):
+
+        * UserInterface/Views/CanvasSidebarPanel.js:
+        (WI.CanvasSidebarPanel.prototype.set recording):
+        (WI.CanvasSidebarPanel.prototype._handleRecordingProcessedAction):
+
+        * UserInterface/Views/RecordingContentView.js:
+        (WI.RecordingContentView.prototype.initialLayout):
+        (WI.RecordingContentView.prototype._handleRecordingProcessedAction):
+
+2019-03-05  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: Attempting to select records in the bottom 16px of the timeline overview graph fails
+        https://bugs.webkit.org/show_bug.cgi?id=195318
+
+        Reviewed by Devin Rousso.
+
+        The bottom few pixels of the overview are reserved for the scroll-container
+        which may show a scrollbar if the overview needs to scroll. When the scrollbars
+        are not visible we can allow pointer events to click through the invisible
+        scroll-container and allow record selection.
+
+        * UserInterface/Views/TimelineOverview.css:
+        (.timeline-overview:not(.has-scrollbar) > .scroll-container):
+        * UserInterface/Views/TimelineOverview.js:
+        (WI.TimelineOverview.prototype._handleScrollEvent):
+        (WI.TimelineOverview.prototype._handleWheelEvent):
+        (WI.TimelineOverview._handleGestureStart):
+
+2019-03-05  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: iPod user agent UIString should have a lowercase "T"
+        https://bugs.webkit.org/show_bug.cgi?id=195312
+        <rdar://problem/48586853>
+
+        Reviewed by Matt Baker.
+
+        * UserInterface/Base/Main.js:
+        (WI._handleDeviceSettingsToolbarButtonClicked):
+
+2019-03-05  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: CPU Usage Timeline - Adjust sizes in timeline overview
+        https://bugs.webkit.org/show_bug.cgi?id=195313
+
+        Reviewed by Devin Rousso.
+
+        Reduce the height slightly to save some precious vertical space.
+        Also increase the size of the minimum bar height so that it doesn't
+        look like there are no events when there is low CPU.
+
+        * UserInterface/Views/CPUTimelineOverviewGraph.css:
+        (body .sidebar > .panel.navigation.timeline > .timelines-content li.item.cpu,):
+        * UserInterface/Views/CPUTimelineOverviewGraph.js:
+        (WI.CPUTimelineOverviewGraph.prototype.get height):
+        Reduce the CPU overview graph height to 60px.
+
+        (WI.CPUTimelineOverviewGraph.prototype.layout):
+        Increase the minimum size of a column bar to 4px.
+
+2019-03-04  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: Reload actions from second level inspector should properly reload the inspected inspector
+        https://bugs.webkit.org/show_bug.cgi?id=195306
+
+        Reviewed by Matt Baker.
+
+        * UserInterface/Base/Main.js:
+        Provide a better reload for a Nth level inspector.
+
+        * UserInterface/Debug/Bootstrap.js:
+        (WI.runBootstrapOperations):
+        Simplify, should not need to check for InspectorFrontendHost.
+
+2019-03-04  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: MediaSource logging not initialized properly
+        https://bugs.webkit.org/show_bug.cgi?id=195307
+
+        Reviewed by Matt Baker.
+
+        * UserInterface/Controllers/ConsoleManager.js:
+        (WI.ConsoleManager.prototype.initializeLogChannels):
+        Typo caused undefined to be included and trigger assertions.
+
+2019-03-04  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: CSS: class input isn't fully centered
+        https://bugs.webkit.org/show_bug.cgi?id=195297
+
+        Reviewed by Matt Baker.
+
+        * UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:
+        (.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .class-name-input):
+        (body[dir=ltr] .sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .class-name-input): Deleted.
+        (body[dir=rtl] .sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .class-name-input): Deleted.
+
+2019-03-04  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: Audit: show the version number in the UI
+        https://bugs.webkit.org/show_bug.cgi?id=195292
+
+        Reviewed by Matt Baker.
+
+        * UserInterface/Views/AuditNavigationSidebarPanel.js:
+        (WI.AuditNavigationSidebarPanel.prototype.showDefaultContentView):
+        (WI.AuditNavigationSidebarPanel.prototype._updateNoAuditsPlaceholder):
+        Fix the logic for showing a placeholder when editing or with only disabled tests.
+
+        * UserInterface/Views/AuditNavigationSidebarPanel.css:
+        (.sidebar > .panel.navigation.audit > .content > .message-text-view): Added.
+        (.audit-version): Added.
+        Don't obstruct the "Edit" button when showing a placeholder.
+
+        * Localizations/en.lproj/localizedStrings.js:
+
+2019-03-04  Joseph Pecoraro  <pecoraro@apple.com>
+
+        ITMLKit Inspector: Data Bindings / Associated Data for nodes
+        https://bugs.webkit.org/show_bug.cgi?id=195290
+        <rdar://problem/48304019>
+
+        Reviewed by Devin Rousso.
+
+        * Localizations/en.lproj/localizedStrings.js:
+        New title and empty message strings.
+
+        * UserInterface/Views/DOMNodeDetailsSidebarPanel.css:
+        (.sidebar > .panel.dom-node-details .details-section.dom-node-associated-data > .content .row):
+        * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
+        (WI.DOMNodeDetailsSidebarPanel.prototype.initialLayout):
+        (WI.DOMNodeDetailsSidebarPanel.prototype.layout):
+        (WI.DOMNodeDetailsSidebarPanel.prototype._refreshDataBindings):
+        (WI.DOMNodeDetailsSidebarPanel.prototype._refreshAssociatedData):
+        (WI.DOMNodeDetailsSidebarPanel.prototype._attributesChanged):
+        New Node sections only enabled for ITMLKit `WI.sharedApp.hasExtraDomains`.
+
+        * UserInterface/Views/ObjectTreeView.js:
+        (WI.ObjectTreeView):
+        Provide a way, like TreeElement/View to access the ObjectTreeView from an element.
+
+2019-03-04  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: Canvas: protocol error on first open
+        https://bugs.webkit.org/show_bug.cgi?id=195059
+        <rdar://problem/48407871>
+
+        Reviewed by Joseph Pecoraro.
+
+        * UserInterface/Controllers/CanvasManager.js:
+        (WI.CanvasManager.prototype.initializeTarget):
+        (WI.CanvasManager.prototype.static supportsRecordingAutoCapture):
+        (WI.CanvasManager.prototype.setRecordingAutoCaptureFrameCount):
+        If targets aren't available, wait until they are and then set the auto-capture frame count.
+
+2019-03-04  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: Toggling Timeline "Stop when page loads" to on should stop (immediately or soon) any active recording if already past the load event
+        https://bugs.webkit.org/show_bug.cgi?id=195239
+
+        Reviewed by Joseph Pecoraro.
+
+        * UserInterface/Controllers/TimelineManager.js:
+        (WI.TimelineManager.prototype._handleTimelinesAutoStopSettingChanged):
+
+2019-03-02  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: Unexpectedly frequent flashing of DOM node attributes
+        https://bugs.webkit.org/show_bug.cgi?id=148049
+        <rdar://problem/22296830>
+
+        Reviewed by Joseph Pecoraro.
+
+        Save a timestamp of when the CSS animation began, so that if the attribute's node is replaced,
+        we can "resume" the CSS animation at the same point with the attribute's new node.
+
+        * UserInterface/Views/DOMTreeElement.js:
+        (WI.DOMTreeElement):
+        (WI.DOMTreeElement.prototype.attributeDidChange):
+        (WI.DOMTreeElement.prototype._buildAttributeDOM):
+        (WI.DOMTreeElement.prototype._createModifiedAnimation):
+        (WI.DOMTreeElement.prototype._markNodeChanged): Deleted.
+        (WI.DOMTreeElement.prototype._nodeChangedAnimationEnd): Deleted.
+        (WI.DOMTreeElement.prototype._fireDidChange): Deleted.
+
+2019-03-02  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: Debugger: DOM, URL, and Event breakpoints don't grey out when all breakpoints are disabled
+        https://bugs.webkit.org/show_bug.cgi?id=195170
+        <rdar://problem/48478193>
+
+        Reviewed by Joseph Pecoraro.
+
+        * UserInterface/Views/DOMBreakpointTreeElement.js:
+        (WI.DOMBreakpointTreeElement):
+        (WI.DOMBreakpointTreeElement.prototype.onattach):
+        (WI.DOMBreakpointTreeElement.prototype.ondetach):
+        (WI.DOMBreakpointTreeElement.prototype._updateStatus):
+        * UserInterface/Views/EventBreakpointTreeElement.js:
+        (WI.EventBreakpointTreeElement):
+        (WI.EventBreakpointTreeElement.prototype.onattach):
+        (WI.EventBreakpointTreeElement.prototype.ondetach):
+        (WI.EventBreakpointTreeElement.prototype._updateStatus):
+        * UserInterface/Views/URLBreakpointTreeElement.js:
+        (WI.URLBreakpointTreeElement):
+        (WI.URLBreakpointTreeElement.prototype.onattach):
+        (WI.URLBreakpointTreeElement.prototype.ondetach):
+        (WI.URLBreakpointTreeElement.prototype._updateStatus):
+        Remove the `"resolved"` class when the global "breakpoints enabled" state is changed.
+
+        * UserInterface/Controllers/DOMDebuggerManager.js:
+        (WI.DOMDebuggerManager):
+        (WI.DOMDebuggerManager.prototype._handleDOMBreakpointDisabledStateChanged): Added.
+        (WI.DOMDebuggerManager.prototype._handleEventBreakpointDisabledStateChanged): Added.
+        (WI.DOMDebuggerManager.prototype._handleURLBreakpointDisabledStateChanged): Added.
+        (WI.DOMDebuggerManager.prototype._updateEventBreakpoint):
+        (WI.DOMDebuggerManager.prototype._updateURLBreakpoint):
+        (WI.DOMDebuggerManager.prototype._resolveEventBreakpoint):
+        (WI.DOMDebuggerManager.prototype._resolveURLBreakpoint):
+        (WI.DOMDebuggerManager.prototype._updateEventBreakpoint.breakpointUpdated): Deleted.
+        (WI.DOMDebuggerManager.prototype._updateURLBreakpoint.breakpointUpdated): Deleted.
+        * UserInterface/Models/DOMBreakpoint.js:
+        (WI.DOMBreakpoint):
+        (WI.DOMBreakpoint.deserialize): Added.
+        (WI.DOMBreakpoint.prototype.set disabled):
+        (WI.DOMBreakpoint.prototype.set domNodeIdentifier):
+        * UserInterface/Models/EventBreakpoint.js:
+        (WI.EventBreakpoint.deserialize): Added.
+        (WI.EventBreakpoint.prototype.set disabled):
+        (WI.EventBreakpoint.fromPayload): Deleted.
+        * UserInterface/Models/URLBreakpoint.js:
+        (WI.URLBreakpoint.deserialize): Added.
+        (WI.URLBreakpoint.prototype.set disabled):
+        * UserInterface/Views/DOMTreeContentView.js:
+        (WI.DOMTreeContentView):
+        (WI.DOMTreeContentView.prototype._handleDOMBreakpointDisabledStateChanged): Added.
+        (WI.DOMTreeContentView.prototype._handleDOMBreakpointDOMNodeChanged): Added.
+        * UserInterface/Views/DebuggerSidebarPanel.js:
+        (WI.DebuggerSidebarPanel.prototype._handleDOMBreakpointResolvedStateChanged): Added.
+        * UserInterface/Views/SourcesNavigationSidebarPanel.js:
+        (WI.SourcesNavigationSidebarPanel):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleDOMBreakpointResolvedStateChanged): Added.
+        Drive-by: rename all events with the name `*DidChange` to `*Changed`.
+        Drive-by: create static `deserialize` helper functions.
+
+2019-03-02  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: Sources: breakpoints should be disabled when an audit is running
+        https://bugs.webkit.org/show_bug.cgi?id=195105
+        <rdar://problem/48441373>
+
+        Reviewed by Joseph Pecoraro.
+
+        * UserInterface/Views/SourcesNavigationSidebarPanel.js:
+        (WI.SourcesNavigationSidebarPanel):
+        (WI.SourcesNavigationSidebarPanel.prototype.closed):
+        (WI.SourcesNavigationSidebarPanel.prototype._updateTemporarilyDisabledBreakpointsButtons): Added.
+        (WI.SourcesNavigationSidebarPanel.prototype._updateBreakpointsDisabledBanner):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingWillStart):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingStopped):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleAuditManagerTestScheduled): Added.
+        (WI.SourcesNavigationSidebarPanel.prototype._handleAuditManagerTestCompleted): Added.
+        * UserInterface/Views/SourcesNavigationSidebarPanel.css:
+        (.sidebar > .panel.navigation.sources > .content > .warning-banner + .warning-banner): Added.
+
+        * UserInterface/Views/DebuggerSidebarPanel.js:
+        (WI.DebuggerSidebarPanel):
+
+2019-03-02  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: Debugger: don't enable breakpoints when source location changes
+        https://bugs.webkit.org/show_bug.cgi?id=195081
+        <rdar://problem/48422701>
+
+        Reviewed by Joseph Pecoraro.
+
+        * UserInterface/Controllers/DebuggerManager.js:
+        (WI.DebuggerManager.prototype._breakpointDisplayLocationDidChange):
+        (WI.DebuggerManager.prototype._breakpointEditablePropertyDidChange):
+
+2019-03-01  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: CPU Usage - Energy Impact Section
+        https://bugs.webkit.org/show_bug.cgi?id=195151
+
+        Reviewed by Devin Rousso.
+
+        * Localizations/en.lproj/localizedStrings.js:
+        * UserInterface/Main.html:
+        New strings and resources.
+
+        * UserInterface/Views/CPUTimelineView.css:
+        (.timeline-view.cpu > .content .subtitle > .info):
+        (@media (prefers-color-scheme: dark)):
+        (.energy-info-popover-content):
+        (.timeline-view.cpu > .content > .overview > .divider):
+        (body[dir=ltr] .timeline-view.cpu > .content > .overview > .divider):
+        (body[dir=rtl] .timeline-view.cpu > .content > .overview > .divider):
+        (.timeline-view.cpu :matches(.area-chart, .stacked-area-chart) svg > path):
+        (.timeline-view.cpu .gauge-chart:not(.empty) > svg > path.low):
+        (.timeline-view.cpu .gauge-chart:not(.empty) > svg > path.medium):
+        (.timeline-view.cpu .gauge-chart:not(.empty) > svg > path.high):
+        (.timeline-view.cpu .gauge-chart:not(.empty) > svg > polygon.needle):
+        (.timeline-view.cpu .energy):
+        (.timeline-view.cpu .energy .energy-impact):
+        (.timeline-view.cpu .energy .energy-impact.low):
+        (.timeline-view.cpu .energy .energy-impact.medium):
+        (.timeline-view.cpu .energy .energy-impact.high):
+        (.timeline-view.cpu .energy .energy-impact-number):
+        Styling the chart and text for the different energy impact levels.
+
+        * UserInterface/Views/CPUTimelineView.js:
+        (WI.CPUTimelineView.prototype.get lowEnergyValue):
+        (WI.CPUTimelineView.prototype.get highEnergyValue):
+        (WI.CPUTimelineView.prototype.initialLayout):
+        (WI.CPUTimelineView.prototype.layout):
+        (WI.CPUTimelineView.prototype._layoutEnergyChart.mapWithBias):
+        (WI.CPUTimelineView.prototype._layoutEnergyChart.valuesForGauge):
+        (WI.CPUTimelineView.prototype._layoutEnergyChart):
+        (WI.CPUTimelineView.prototype._clearEnergyImpactText):
+        New gauge chart and associated popover.
+        We do a bit of biasing of the data for each of the sections
+        in the gauge chart. Each section biases toward the cap of the
+        section so that:
+          - we encourage lower power usage (sub 3%)
+          - the gauge needle quickly moves past the low value of a range
+
+        * UserInterface/Views/GaugeChart.css: Added.
+        (.gauge-chart):
+        (body[dir=rtl] .gauge-chart):
+        (.gauge-chart > svg > path,):
+        (.gauge-chart > svg > polygon.needle):
+        (.gauge-chart.empty > svg > polygon.needle):
+        (@media (prefers-color-scheme: dark)):
+        * UserInterface/Views/GaugeChart.js: Added.
+        (WI.GaugeChart.prototype.get size):
+        (WI.GaugeChart.prototype.get segments):
+        (WI.GaugeChart.prototype.get value):
+        (WI.GaugeChart.prototype.set value):
+        (WI.GaugeChart.prototype.clear):
+        (WI.GaugeChart.prototype.initialLayout):
+        (WI.GaugeChart.prototype.layout):
+        (WI.GaugeChart.prototype._validateSegments):
+        (WI.GaugeChart.prototype._createSegmentPathData):
+        GaugeChart with variable number of sections and a
+        current value needle. It has a bit of customization
+        when drawing the arc at the start of each segment.
+
+        * UserInterface/Views/Variables.css:
+        (:root):
+        (@media (prefers-color-scheme: dark)):
+        New CPU colors for the different energy impact levels.
+
+2019-03-01  Nikita Vasilyev  <nvasilyev@apple.com>
+
+        Web Inspector: Data grid border colors don't match accent colors
+        https://bugs.webkit.org/show_bug.cgi?id=195232
+
+        Reviewed by Matt Baker.
+
+        * UserInterface/Views/DataGrid.css:
+        (.data-grid:focus tr.selected td:not(:last-child)):
+        (body[dir=ltr] .data-grid:focus tr.selected td:not(:last-child)):
+        (body[dir=rtl] .data-grid:focus tr.selected td:not(:last-child)):
+
+2019-02-28  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: Timelines: don't show the auto-stop UI when not inspecting a page
+        https://bugs.webkit.org/show_bug.cgi?id=195192
+
+        Reviewed by Joseph Pecoraro.
+
+        * UserInterface/Views/TimelineRecordingContentView.js:
+        (WI.TimelineRecordingContentView):
+        (WI.TimelineRecordingContentView.prototype.get navigationItems):
+
+2019-02-28  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: CPU Usage: Worker thread that dies might stay at a high value forever
+        https://bugs.webkit.org/show_bug.cgi?id=195148
+
+        Reviewed by Matt Baker.
+
+        * UserInterface/Views/CPUTimelineView.js:
+        (CPUTimelineView.prototype.layout):
+        Handle workers dieing or at least zeroing out between records.
+
+2019-02-28  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: CPU Usage Timeline - Make Threads section expandable / collapsable
+        https://bugs.webkit.org/show_bug.cgi?id=195085
+
+        Reviewed by Matt Baker.
+
+        * UserInterface/Base/Setting.js:
+        New setting to save the Threads expanded/collapsed state.
+
+        * UserInterface/Views/CPUTimelineView.css:
+        (.timeline-view.cpu > .content > .details > .subtitle):
+        (.timeline-view.cpu > .content > .details > details > .subtitle.threads):
+        (.timeline-view.cpu > .content > .details > .subtitle): Deleted.
+        (.timeline-view.cpu > .content > .details > .subtitle.threads): Deleted.
+        Ensure subtitle styles apply now that one of the subtitles is inside
+        of a <details> / <summary> element.
+
+        * UserInterface/Views/CPUTimelineView.js:
+        (WI.CPUTimelineView.prototype.initialLayout):
+        Make the Threads group a <details> / <summary> expandable / collapsed element.
+
+        * UserInterface/Views/Main.css:
+        (summary):
+        (summary::-webkit-details-marker):
+        Default styles for <summary>.
+
+2019-02-28  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: View.removeSubview not removing the element properly when not parented
+        https://bugs.webkit.org/show_bug.cgi?id=195146
+
+        Reviewed by Matt Baker.
+
+        * UserInterface/Views/View.js:
+        (WI.View.prototype.removeSubview):
+        Since the element may not be a direct child, just use Element.prototype.remove.
+
+2019-02-28  Matt Baker  <mattbaker@apple.com>
+
+        Web Inspector: Debugger: disabled breakpoint color is too dark
+        https://bugs.webkit.org/show_bug.cgi?id=195103
+        <rdar://problem/48440678>
+
+        Reviewed by Devin Rousso.
+
+        Increase the disabled breakpoint contrast, as well as the contrast between
+        disabled and auto-continue breakpoints. Disabled breakpoints stand out by
+        being somewhat brighter and less saturated. Using the same strategy for
+        auto-continue breakpoints is too subtle to provide sufficient contrast.
+
+        We can adopt the technique used by Xcode, and overlay a white triangle
+        marker on the breakpoint arrow to indicate an auto-continue breakpoint.
+
+        * UserInterface/Views/BreakpointTreeElement.css:
+        (.item.breakpoint .status > .status-image):
+        (.item.breakpoint.selected .status > .status-image.resolved):
+        Add white outline to make selected breakpoint button stand out.
+        (.item.breakpoint .status > .status-image.auto-continue::after):
+        (.item.breakpoint .status > .status-image.disabled):
+        (.item.breakpoint .status > .status-image.auto-continue): Deleted.
+
+
+        * UserInterface/Views/DOMTreeContentView.css:
+        (.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint):
+        (.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.disabled):
+        (.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.subtree):
+        (.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.disabled,): Deleted.
+
+        * UserInterface/Views/TextEditor.css:
+        (.text-editor > .CodeMirror .has-breakpoint .CodeMirror-linenumber::before):
+        (.text-editor > .CodeMirror .breakpoint-auto-continue:not(.execution-line.primary) .CodeMirror-linenumber::after):
+        (.text-editor > .CodeMirror .breakpoint-disabled .CodeMirror-linenumber::before):
+        (.text-editor > .CodeMirror .breakpoint-auto-continue:not(.breakpoint-disabled) .CodeMirror-linenumber::before): Deleted.
+
+        * UserInterface/Views/Variables.css:
+        (:root):
+        Add breakpoint color variables to use across all breakpoint controls.
+        Use system colors if available, otherwise fall back to hard-coded values
+        based on sampling the default (blue) accent color on Mojave.
+
+2019-02-28  Nikita Vasilyev  <nvasilyev@apple.com>
+
+        Web Inspector: Styles: Control-Space should force completion
+        https://bugs.webkit.org/show_bug.cgi?id=194796
+        <rdar://problem/48180822>
+
+        Reviewed by Matt Baker.
+
+        Pressing Control-Space when editing CSS property should show completion popover,
+        even if the value is empty.
+
+        * UserInterface/Models/CSSCompletions.js:
+        (WI.CSSCompletions.prototype.startsWith):
+        Performance optimization: exit early when `prefix` is empty.
+
+        * UserInterface/Views/SpreadsheetStyleProperty.js:
+        (WI.SpreadsheetStyleProperty.prototype._nameCompletionDataProvider):
+        (WI.SpreadsheetStyleProperty.prototype._valueCompletionDataProvider):
+        * UserInterface/Views/SpreadsheetTextField.js:
+        (WI.SpreadsheetTextField):
+        (WI.SpreadsheetTextField.prototype._handleKeyDown):
+        (WI.SpreadsheetTextField.prototype._updateCompletions):
+
 2019-02-28  Devin Rousso  <drousso@apple.com>
 
         Web Inspector: Canvas: enabling auto-capture if the frame count is empty triggers an assertion