Web Inspector: TimelineOverview clicks do not always behave as expected
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
index 95c5d05..76a67e4 100644 (file)
@@ -1,3 +1,187 @@
+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"