Web Inspector: hovering a node inside an object preview should highlight it
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
index ec28485..0c5b183 100644 (file)
@@ -1,3 +1,591 @@
+2019-02-25  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: hovering a node inside an object preview should highlight it
+        https://bugs.webkit.org/show_bug.cgi?id=194862
+        <rdar://problem/48246433>
+
+        Reviewed by Joseph Pecoraro.
+
+        * UserInterface/Views/FormattedValue.js:
+        (WI.FormattedValue.createElementForNodePreview):
+        When provided a way to access the `WI.RemoteObject` for the given preview, add various mouse
+        event listeners that highlight the corresponding DOM node.
+
+        * UserInterface/Views/ObjectPreviewView.js:
+        (WI.ObjectPreviewView):
+        (WI.ObjectPreviewView.prototype._initTitleElement):
+        (WI.ObjectPreviewView.prototype._appendPropertyPreviews):
+        (WI.ObjectPreviewView.prototype._appendValuePreview):
+        Implement various ways of getting the `WI.RemoteObject` for a given preview.
+         - When the preview is for the actual `WI.RemoteObject`, simply return it
+         - If the preview is a property of the main object, get the `WI.RemoteObject` for that property
+
+        * UserInterface/Views/ObjectTreeView.js:
+        (WI.ObjectTreeView):
+        * UserInterface/Views/ObjectTreePropertyTreeElement.js:
+        (WI.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
+        Pass the `WI.RemoteObject` to the preview so that it can utilize it.
+
+        * UserInterface/Controllers/ConsoleManager.js:
+        (WI.ConsoleManager):
+        (WI.ConsoleManager.prototype.releaseRemoteObjectWithConsoleClear): Added.
+        (WI.ConsoleManager.prototype.messagesCleared): Added.
+
+2019-02-25  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: CPU Usage Timeline - Thread Breakdown
+        https://bugs.webkit.org/show_bug.cgi?id=194788
+
+        Reviewed by Devin Rousso.
+
+        * Localizations/en.lproj/localizedStrings.js:
+        * UserInterface/Main.html:
+        New strings and files.
+
+        * UserInterface/Views/Variables.css:
+        (:root):
+        New colors for cpu threads / activity breakdown.
+
+        * UserInterface/Models/CPUTimelineRecord.js:
+        (WI.CPUTimelineRecord.prototype.get workers):
+        (WI.CPUTimelineRecord):
+        Distinguish the workers in a CPU timeline record.
+
+        * UserInterface/Views/CPUTimelineOverviewGraph.js:
+        (WI.CPUTimelineOverviewGraph):
+        (WI.CPUTimelineOverviewGraph.prototype.layout):
+        * UserInterface/Views/CPUTimelineOverviewGraph.css:
+        (.timeline-overview-graph.cpu > .stacked-column-chart > svg > rect):
+        (.timeline-overview-graph.cpu > .stacked-column-chart > svg > rect.main-thread-usage):
+        (.timeline-overview-graph.cpu > .stacked-column-chart > svg > rect.worker-thread-usage):
+        (.timeline-overview-graph.cpu > .column-chart > svg > rect):
+        Stacked column chart for CPU in the overview graph.
+
+        * UserInterface/Views/CPUTimelineView.css:
+        (.timeline-view.cpu > .content > .overview):
+        (.timeline-view.cpu > .content > .details > .subtitle.threads):
+        (.timeline-view.cpu > .content > .overview > .chart):
+        (.timeline-view.cpu > .content > .overview > .chart > .subtitle):
+        (.timeline-view.cpu > .content > .overview > .chart > .container):
+        (.timeline-view.cpu > .content > .overview .samples,):
+        (.timeline-view.cpu .legend):
+        (.timeline-view.cpu .legend .row):
+        (.timeline-view.cpu .legend .row + .row):
+        (.timeline-view.cpu .legend .swatch):
+        (.timeline-view.cpu .legend > .row > .swatch.sample-type-idle):
+        (.timeline-view.cpu .legend > .row > .swatch.sample-type-script):
+        (.timeline-view.cpu .legend > .row > .swatch.sample-type-style):
+        (.timeline-view.cpu .legend > .row > .swatch.sample-type-layout):
+        (.timeline-view.cpu .legend > .row > .swatch.sample-type-paint):
+        (.timeline-view.cpu .circle-chart > svg > path.segment.sample-type-idle):
+        (.timeline-view.cpu .circle-chart > svg > path.segment.sample-type-script):
+        (.timeline-view.cpu .circle-chart > svg > path.segment.sample-type-style):
+        (.timeline-view.cpu .circle-chart > svg > path.segment.sample-type-layout):
+        (.timeline-view.cpu .circle-chart > svg > path.segment.sample-type-paint):
+        (.timeline-view.cpu svg > path):
+        (.timeline-view.cpu .main-thread svg > path,):
+        (.timeline-view.cpu .worker-thread svg > path,):
+        (.timeline-view.cpu .cpu-usage-view.empty):
+        (.timeline-view.cpu :matches(.line-chart, .stacked-line-chart) .markers):
+        (.timeline-view.cpu :matches(.line-chart, .stacked-line-chart) .markers > div):
+        (.timeline-view.cpu :matches(.line-chart, .stacked-line-chart) .markers > div > .label):
+        (.timeline-view.cpu > .content): Deleted.
+        (.cpu-usage-view .line-chart > svg > path): Deleted.
+        (.timeline-view.cpu .legend > .row > .swatch.current): Deleted.
+        * UserInterface/Views/CPUTimelineView.js:
+        (WI.CPUTimelineView):
+        (WI.CPUTimelineView.displayNameForSampleType):
+        (WI.CPUTimelineView.prototype.shown):
+        (WI.CPUTimelineView.prototype.clear.clearUsageView):
+        (WI.CPUTimelineView.prototype.clear):
+        (WI.CPUTimelineView.prototype.initialLayout.createChartContainer):
+        (WI.CPUTimelineView.prototype.initialLayout.appendLegendRow):
+        (WI.CPUTimelineView.prototype.initialLayout):
+        (WI.CPUTimelineView.prototype.layout.removeGreaterThan):
+        (WI.CPUTimelineView.prototype.layout):
+        (WI.CPUTimelineView.prototype.layout.layoutView):
+        (WI.CPUTimelineView.prototype.layout.yScale):
+        (WI.CPUTimelineView.prototype._computeSamplingData.markRecordEntries):
+        (WI.CPUTimelineView.prototype._computeSamplingData):
+        (WI.CPUTimelineView.prototype._removeWorkerThreadViews):
+        (WI.CPUTimelineView.prototype._clearBreakdownLegend):
+        (WI.CPUTimelineView.prototype.layout.xScale): Deleted.
+        Line charts and Circle Chart for threads and breakdowns.
+
+        * UserInterface/Views/CPUUsageStackedView.css:
+        (.cpu-usage-stacked-view):
+        (.cpu-usage-stacked-view > .details):
+        (body[dir=ltr] .cpu-usage-stacked-view > .details):
+        (body[dir=rtl] .cpu-usage-stacked-view > .details):
+        (.cpu-usage-stacked-view > .details > .name):
+        (body[dir=rtl] .cpu-usage-stacked-view > .graph):
+        (.cpu-usage-stacked-view > .graph):
+        (.cpu-usage-stacked-view > .graph,):
+        * UserInterface/Views/CPUUsageStackedView.js:
+        (WI.CPUUsageStackedView):
+        (WI.CPUUsageStackedView.prototype.get chart):
+        (WI.CPUUsageStackedView.prototype.clear):
+        (WI.CPUUsageStackedView.prototype.updateChart):
+        (WI.CPUUsageStackedView.prototype._updateDetails):
+        Same as CPUUsageView except Stacked for the total.
+
+        * UserInterface/Views/CPUUsageView.css:
+        (.cpu-usage-view):
+        (.cpu-usage-view > .details):
+        (.cpu-usage-view > .details > .name):
+        (.cpu-usage-view > .graph):
+        * UserInterface/Views/CPUUsageView.js:
+        (WI.CPUUsageView):
+        (WI.CPUUsageView.prototype.get chart):
+        (WI.CPUUsageView.prototype.clear):
+        (WI.CPUUsageView.prototype.updateChart):
+        (WI.CPUUsageView.prototype._updateDetails):
+        Slight modifications for the new UI.
+
+        * UserInterface/Views/LegacyCPUTimelineView.css:
+        (.timeline-view.legacy-cpu .cpu-usage-view .line-chart > svg > path):
+        * UserInterface/Views/LegacyCPUTimelineView.js:
+        (WI.LegacyCPUTimelineView.prototype.layout):
+        Update API calls in the legacy view for minor changes.
+
+        * UserInterface/Views/MemoryCategoryView.css:
+        (.memory-category-view > .details):
+        (.memory-category-view > .details > .name):
+        * UserInterface/Views/MemoryTimelineOverviewGraph.js:
+        (WI.MemoryTimelineOverviewGraph.prototype.layout):
+        * UserInterface/Views/MemoryTimelineView.css:
+        (body .timeline-view.memory):
+        (.timeline-view.memory): Deleted.
+        Improvements ported from the CPU timeline views.
+
+        * UserInterface/Views/StackedColumnChart.js: Added.
+        (WI.StackedColumnChart):
+        (WI.StackedColumnChart.prototype.get size):
+        (WI.StackedColumnChart.prototype.set size):
+        (WI.StackedColumnChart.prototype.initializeSections):
+        (WI.StackedColumnChart.prototype.addColumnSet):
+        (WI.StackedColumnChart.prototype.clear):
+        (WI.StackedColumnChart.prototype.layout):
+        A stacked column chart implementation.
+
+        * UserInterface/Views/View.js:
+        (WI.View.prototype.removeUnparentedSubview):
+        Add a way to remove a subview that had its `element` moved
+        someplace other than a direct child of our element.
+
+2019-02-25  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: Dark Mode: Network Overview Graph segments have distracting white box shadow
+        https://bugs.webkit.org/show_bug.cgi?id=194966
+
+        Reviewed by Devin Rousso.
+
+        * UserInterface/Views/Variables.css:
+        (@media (prefers-color-scheme: dark)):
+        Make global timeline even/odd colors where odd is the default content background
+        color and even is slightly different. These were used in multiple places.
+
+        * UserInterface/Views/CPUTimelineOverviewGraph.css:
+        (.timeline-overview-graph.cpu > .legend):
+        (.timeline-overview-graph.cpu:nth-child(even) > .legend):
+        (@media (prefers-color-scheme: dark)): Deleted.
+        * UserInterface/Views/MemoryTimelineOverviewGraph.css:
+        (.timeline-overview-graph.memory > .legend):
+        (.timeline-overview-graph.memory:nth-child(even) > .legend):
+        (@media (prefers-color-scheme: dark)): Deleted.
+        * UserInterface/Views/NetworkTimelineOverviewGraph.css:
+        (.timeline-overview-graph.network > .graph-row > .timeline-record-bar > .segment:not(.inactive)):
+        (.timeline-overview-graph.network:nth-child(even) > .graph-row > .timeline-record-bar > .segment:not(.inactive)):
+        Use the variable colors now and eliminate dark mode blocks.
+
+2019-02-25  Nikita Vasilyev  <nvasilyev@apple.com>
+
+        Web Inspector: Styles: Command-/ should toggle edited property
+        https://bugs.webkit.org/show_bug.cgi?id=194967
+        <rdar://problem/48329852>
+
+        Reviewed by Devin Rousso.
+
+        * UserInterface/Models/CSSProperty.js:
+        (WI.CSSProperty.prototype.commentOut):
+        * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
+        (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertySelect):
+        * UserInterface/Views/SpreadsheetStyleProperty.js:
+        (WI.SpreadsheetStyleProperty.prototype.update):
+        (WI.SpreadsheetStyleProperty.prototype._toggle):
+        (WI.SpreadsheetStyleProperty.prototype._select):
+
+2019-02-25  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: REGRESSION(r242018): Timelines shows no results
+        https://bugs.webkit.org/show_bug.cgi?id=195017
+
+        Reviewed by Joseph Pecoraro.
+
+        `simpleGlobStringToRegExp` can return `null` if the provided search query is an empty string.
+
+        * UserInterface/Base/SearchUtilities.js:
+        (WI.SearchUtilities.prototype.regExpForString):
+        Add assertions that the provided search query is a valid non-empty string.
+
+        * UserInterface/Views/DataGrid.js:
+        (WI.DataGrid.prototype._updateFilter):
+        If the search query is empty, don't attempt to create a `RegExp` for it.
+
+2019-02-25  Matt Baker  <mattbaker@apple.com>
+
+        Web Inspector: REGRESSION: TreeElement or Table row selected using the keyboard should always be revealed
+        https://bugs.webkit.org/show_bug.cgi?id=194918
+        <rdar://problem/48289314>
+
+        Reviewed by Devin Rousso.
+
+        * UserInterface/Views/Table.js:
+        (WI.Table.prototype.selectionControllerSelectionDidChange):
+
+        * UserInterface/Views/TreeOutline.js:
+        (WI.TreeOutline.prototype._treeKeyDown):
+
+2019-02-25  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: [META] Merge Resources and Debugger into a single Sources tab
+        https://bugs.webkit.org/show_bug.cgi?id=183420
+
+        Reviewed by Joseph Pecoraro.
+
+        * UserInterface/Views/SourcesNavigationSidebarPanel.js: Added.
+        (WI.SourcesNavigationSidebarPanel):
+        (WI.SourcesNavigationSidebarPanel.shouldPlaceResourcesAtTopLevel):
+        (WI.SourcesNavigationSidebarPanel.prototype.get minimumWidth):
+        (WI.SourcesNavigationSidebarPanel.prototype.closed):
+        (WI.SourcesNavigationSidebarPanel.prototype.showDefaultContentView):
+        (WI.SourcesNavigationSidebarPanel.prototype.treeElementForRepresentedObject.isAncestor):
+        (WI.SourcesNavigationSidebarPanel.prototype.treeElementForRepresentedObject.getParent):
+        (WI.SourcesNavigationSidebarPanel.prototype.treeElementForRepresentedObject):
+        (WI.SourcesNavigationSidebarPanel.prototype.resetFilter):
+        (WI.SourcesNavigationSidebarPanel.prototype.hasCustomFilters):
+        (WI.SourcesNavigationSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
+        (WI.SourcesNavigationSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
+        (WI.SourcesNavigationSidebarPanel.prototype.willDismissPopover):
+        (WI.SourcesNavigationSidebarPanel.prototype._compareTreeElements):
+        (WI.SourcesNavigationSidebarPanel.prototype._updateMainFrameTreeElement):
+        (WI.SourcesNavigationSidebarPanel.prototype._addTarget):
+        (WI.SourcesNavigationSidebarPanel.prototype._findCallStackTargetTreeElement):
+        (WI.SourcesNavigationSidebarPanel.prototype._updateCallStackTreeOutline):
+        (WI.SourcesNavigationSidebarPanel.prototype._addResource):
+        (WI.SourcesNavigationSidebarPanel.prototype._addResourcesRecursivelyForFrame):
+        (WI.SourcesNavigationSidebarPanel.prototype._addScript):
+        (WI.SourcesNavigationSidebarPanel.prototype._addWorkerTargetWithMainResource):
+        (WI.SourcesNavigationSidebarPanel.prototype._addDebuggerTreeElementForSourceCode):
+        (WI.SourcesNavigationSidebarPanel.prototype._insertDebuggerTreeElement):
+        (WI.SourcesNavigationSidebarPanel.prototype._compareBreakpointTreeElements):
+        (WI.SourcesNavigationSidebarPanel.prototype._addBreakpoint):
+        (WI.SourcesNavigationSidebarPanel.prototype._removeBreakpoint):
+        (WI.SourcesNavigationSidebarPanel.prototype._removeAllBreakpoints):
+        (WI.SourcesNavigationSidebarPanel.prototype._toggleAllBreakpoints):
+        (WI.SourcesNavigationSidebarPanel.prototype._breakpointsBeneathTreeElement):
+        (WI.SourcesNavigationSidebarPanel.prototype._addIssue):
+        (WI.SourcesNavigationSidebarPanel.prototype._removeDebuggerTreeElement):
+        (WI.SourcesNavigationSidebarPanel.prototype._addBreakpointsForSourceCode):
+        (WI.SourcesNavigationSidebarPanel.prototype._addIssuesForSourceCode):
+        (WI.SourcesNavigationSidebarPanel.prototype._updateBreakpointsDisabledBanner):
+        (WI.SourcesNavigationSidebarPanel.prototype._updatePauseReason):
+        (WI.SourcesNavigationSidebarPanel.prototype._updatePauseReasonGotoArrow):
+        (WI.SourcesNavigationSidebarPanel.prototype._updatePauseReasonSection):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleResourceTypeScopeBarSelectionChanged):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleTreeSelectionDidChange):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleCreateBreakpointClicked):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleFrameMainResourceDidChange):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleResourceAdded):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleMainFrameDidChange):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerBreakpointAdded):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerBreakpointRemoved):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerBreakpointsEnabledDidChange):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerScriptAdded):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerScriptRemoved):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerScriptsCleared):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerPaused):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerResumed):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerCallFramesDidChange):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerActiveCallFrameDidChange):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerWaitingToPause):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerObjectDisplayLocationDidChange):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleDOMBreakpointResolvedStateDidChange):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleConsoleIssueAdded):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleConsoleCleared):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingWillStart):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingStopped):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleCSSStyleSheetAdded):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleTargetAdded):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleTargetRemoved):
+        (WI.SourcesNavigationSidebarPanel.prototype._handleExtraDomainsActivated):
+        * UserInterface/Views/SourcesNavigationSidebarPanel.css: Added.
+        (.sidebar > .panel.navigation.sources > .content):
+        (.sidebar > .panel.navigation.sources > .navigation-bar):
+        (.sidebar > .panel.navigation.sources > .navigation-bar .debugger-breakpoints):
+        (.sidebar > .panel.navigation.sources > .navigation-bar .debugger-breakpoints.activated):
+        (.sidebar > .panel.navigation.sources > .navigation-bar .debugger-pause-resume):
+        (.sidebar > .panel.navigation.sources > .navigation-bar .debugger-pause-resume.activated):
+        (.sidebar > .panel.navigation.sources > .content > .warning-banner):
+        (.sidebar > .panel.navigation.sources > .content > .details-section):
+        (.sidebar > .panel.navigation.sources > .content > .details-section.paused-reason.collapsed > .header > .options,):
+        (.sidebar > .panel.navigation.sources > .content > .details-section.collapsed > .content):
+        (.sidebar > .panel.navigation.sources > .content > .details-section.scripts:not(.collapsed)):
+        (.sidebar > .panel.navigation.sources > .content > .navigation-bar):
+        (.sidebar > .panel.navigation.sources > .content > .tree-outline.single-thread):
+        (.sidebar > .panel.navigation.sources > .content > .tree-outline.single-thread > .item.thread):
+        (@media (prefers-dark-interface) .sidebar > > .content > .panel.navigation.sources .warning-banner):
+
+        * UserInterface/Views/SourcesTabContentView.js: Added.
+        (WI.SourcesTabContentView):
+        (WI.SourcesTabContentView.tabInfo):
+        (WI.SourcesTabContentView.isTabAllowed):
+        (WI.SourcesTabContentView.prototype.get type):
+        (WI.SourcesTabContentView.prototype.get supportsSplitContentBrowser):
+        (WI.SourcesTabContentView.prototype.canShowRepresentedObject):
+        (WI.SourcesTabContentView.prototype.showDetailsSidebarPanels):
+        (WI.SourcesTabContentView.prototype.showScopeChainDetailsSidebarPanel):
+        (WI.SourcesTabContentView.prototype.revealAndSelectBreakpoint):
+
+        * UserInterface/Views/CanvasSidebarPanel.js:
+        (WI.CanvasSidebarPanel):
+        * UserInterface/Views/DebuggerSidebarPanel.js:
+        (WI.DebuggerSidebarPanel):
+        (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
+        * UserInterface/Views/NavigationSidebarPanel.js:
+        (WI.NavigationSidebarPanel.prototype.createContentTreeOutline):
+        (WI.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
+        (WI.NavigationSidebarPanel.prototype._checkOutlinesForPendingViewStateCookie):
+        Rework `createContentTreeOutline` to allow for additional symbols.
+        Add another symbol to ensure that the `WI.TreeOutline` is not used for cookie restoration.
+
+        * UserInterface/Protocol/InspectorFrontendAPI.js:
+        (InspectorFrontendAPI.showResources):
+        * UserInterface/Views/ContextMenuUtilities.js:
+        (WI.appendContextMenuItemsForURL):
+        * UserInterface/Views/DefaultDashboardView.js:
+        (WI.DefaultDashboardView.prototype._resourcesItemWasClicked):
+        * UserInterface/Views/SourceCodeTextEditor.js:
+        (WI.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):
+
+        * UserInterface/Views/TabBrowser.js:
+        (WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
+
+        * UserInterface/Base/Main.js:
+        (WI.contentLoaded):
+        (WI.showSourcesTab): Added.
+        (WI.isShowingSourcesTab): Added.
+        (WI.tabContentViewClassForRepresentedObject):
+        (WI._debuggerDidPause):
+
+        * UserInterface/Views/DebuggerTabContentView.js:
+        (WI.DebuggerTabContentView.isTabAllowed):
+        * UserInterface/Views/ResourcesTabContentView.js:
+        (WI.ResourcesTabContentView.isTabAllowed):
+
+        * UserInterface/Base/Setting.js:
+        * UserInterface/Views/SettingsTabContentView.js:
+        (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
+
+        * UserInterface/Main.html:
+        * UserInterface/Images/Sources.svg: Added.
+        * Localizations/en.lproj/localizedStrings.js:
+
+2019-02-24  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: Change the InspectorOverlay to use native rather than canvas
+        https://bugs.webkit.org/show_bug.cgi?id=105023
+        <rdar://problem/13443692>
+
+        Reviewed by Brian Burg.
+
+        * UserInterface/Base/Main.js:
+        (WI.initializeTarget):
+
+        * UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
+        * UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
+        * UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js:
+        * UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js:
+        * UserInterface/Protocol/Legacy/12.0/InspectorBackendCommands.js:
+        * UserInterface/Protocol/Legacy/12.2/InspectorBackendCommands.js:
+        * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
+        * UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
+        * UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
+        * Versions/Inspector-iOS-10.0.json:
+        * Versions/Inspector-iOS-10.3.json:
+        * Versions/Inspector-iOS-11.0.json:
+        * Versions/Inspector-iOS-11.3.json:
+        * Versions/Inspector-iOS-12.0.json:
+        * Versions/Inspector-iOS-12.2.json:
+        * Versions/Inspector-iOS-8.0.json:
+        * Versions/Inspector-iOS-9.0.json:
+        * Versions/Inspector-iOS-9.3.json:
+        Remove `Debugger.setOverlayMessage` command as it hasn't been used and is no longer supported.
+
+2019-02-24  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: provide a way to make searches case sensitive or use a regular expression
+        https://bugs.webkit.org/show_bug.cgi?id=192527
+
+        Reviewed by Joseph Pecoraro.
+
+        * UserInterface/Base/SearchUtilities.js: Added.
+        (WI.SearchUtilities.get defaultSettings):
+        (WI.SearchUtilities.createSettings):
+        (WI.SearchUtilities.regExpForString):
+        (WI.SearchUtilities.createSettingsButton):
+        (WI.SearchUtilities.createSettingsButton.toggleActive):
+        * UserInterface/Views/Main.css:
+        (.search-settings): Added.
+        (.search-settings > .glyph): Added.
+        (.search-settings:active > .glyph): Added.
+        (.search-settings.active > .glyph): Added.
+        (.search-settings:active.active > .glyph): Added.
+        Create static utility class for handling settings related to searching/filtering.
+
+        * UserInterface/Base/Setting.js:
+        * UserInterface/Views/SettingsTabContentView.js:
+        (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
+        Create default search settings that apply across WebInspector, unless a more specific
+        setting has been created that overrides it (e.g. the navigation sidebar or Search tab).
+
+        * UserInterface/Views/SearchSidebarPanel.js:
+        (WI.SearchSidebarPanel):
+        (WI.SearchSidebarPanel.prototype.performSearch.forEachMatch):
+        (WI.SearchSidebarPanel.prototype.performSearch.resourceCallback):
+        (WI.SearchSidebarPanel.prototype.performSearch.resourcesCallback):
+        (WI.SearchSidebarPanel.prototype.performSearch.searchScripts.scriptCallback):
+        (WI.SearchSidebarPanel.prototype.performSearch.searchScripts):
+        (WI.SearchSidebarPanel.prototype.performSearch.domSearchResults):
+        (WI.SearchSidebarPanel.prototype.performSearch.domCallback):
+        (WI.SearchSidebarPanel.prototype.performSearch):
+        * UserInterface/Views/SearchSidebarPanel.css:
+        (.sidebar > .panel.navigation.search > .search-bar):
+        (.sidebar > .panel.navigation.search > .search-bar > input[type="search"]):
+        Add a (*) settings "gear" after each `<input type="search">` that shows a contextmenu with
+        checkboxes for each search setting. Any settings changed for each input take precedence over
+        the default settings, but will match the corresponding default setting if it's changed.
+
+        * UserInterface/Views/SearchResultTreeElement.js:
+        (WI.SearchResultTreeElement.truncateAndHighlightTitle):
+        Use the length of the found text, rather than the length of the query.
+
+        * UserInterface/Views/DOMTreeElement.js:
+        (WI.DOMTreeElement.prototype._highlightSearchResults):
+        * UserInterface/Views/DataGrid.js:
+        (WI.DataGrid.prototype._updateFilter):
+        * UserInterface/Views/LogContentView.js:
+        (WI.LogContentView.prototype.performSearch):
+        * UserInterface/Views/NetworkTableContentView.js:
+        (WI.NetworkTableContentView.prototype._urlFilterDidChange):
+        * UserInterface/Views/ResourceHeadersContentView.js:
+        (WI.ResourceHeadersContentView.prototype._perfomSearchOnKeyValuePairs):
+        * UserInterface/Views/ResourceSecurityContentView.js:
+        (WI.ResourceSecurityContentView.prototype._perfomSearchOnKeyValuePairs):
+        * UserInterface/Views/SourceCodeTextEditor.js:
+        (WI.SourceCodeTextEditor.prototype.customPerformSearch.searchResultCallback):
+        (WI.SourceCodeTextEditor.prototype.customPerformSearch):
+        * UserInterface/Views/TextEditor.js:
+        (WI.TextEditor.prototype.performSearch):
+        Use the default search settings when searching/filtering.
+
+        * UserInterface/Views/SearchBar.css:
+        (.search-bar > input[type="search"]:placeholder-shown::-webkit-search-cancel-button): Added.
+        Drive-by: prevent the (x) from appearing when no text has been entered.
+
+        * Localizations/en.lproj/localizedStrings.js:
+        * UserInterface/Main.html:
+
+2019-02-24  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: make debounce Proxy into its own class
+        https://bugs.webkit.org/show_bug.cgi?id=194721
+
+        Reviewed by Joseph Pecoraro.
+
+        The `debounce`/`throttle` functions leveraged a `Proxy` to intercept the function call and
+        replace it with a "delayed" version. The issue with this is that it set the identifier for
+        the timer on the function itself, which is shared across all instances of a given class.
+        When different instances call the same delayed function, they'd clobber eachother's attempts
+        to delay work.
+
+        * UserInterface/Base/Debouncer.js: Added.
+        (Debouncer):
+        (Debouncer.prototype.force):
+        (Debouncer.prototype.delayForTime):
+        (Debouncer.prototype.delayForFrame):
+        (Debouncer.prototype.delayForMicrotask):
+        (Debouncer.prototype.cancel):
+        (Debouncer.prototype._execute):
+        * UserInterface/Base/Throttler.js: Added.
+        (Throttler):
+        (Throttler.prototype.force):
+        (Throttler.prototype.fire):
+        (Throttler.prototype.cancel):
+        (Throttler.prototype._execute):
+        * UserInterface/Base/Utilities.js:
+
+        * UserInterface/Views/BezierEditor.js:
+        (WI.BezierEditor):
+        * UserInterface/Views/ContentBrowser.js:
+        (WI.ContentBrowser):
+        (WI.ContentBrowser.prototype._contentViewSelectionPathComponentDidChange):
+        (WI.ContentBrowser.prototype._contentViewSupplementalRepresentedObjectsDidChange):
+        (WI.ContentBrowser.prototype._currentContentViewDidChange):
+        (WI.ContentBrowser.prototype._dispatchCurrentRepresentedObjectsDidChangeEvent): Deleted.
+        * UserInterface/Views/DOMTreeUpdater.js:
+        (WI.DOMTreeUpdater):
+        (WI.DOMTreeUpdater.prototype._nodeAttributeModified):
+        (WI.DOMTreeUpdater.prototype._nodeInserted):
+        (WI.DOMTreeUpdater.prototype._nodeRemoved):
+        * UserInterface/Views/NavigationSidebarPanel.js:
+        (WI.NavigationSidebarPanel):
+        (WI.NavigationSidebarPanel.prototype.closed):
+        (WI.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
+        (WI.NavigationSidebarPanel.prototype.hideEmptyContentPlaceholder):
+        (WI.NavigationSidebarPanel.prototype.updateFilter):
+        (WI.NavigationSidebarPanel.prototype.shown):
+        (WI.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
+        (WI.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
+        (WI.NavigationSidebarPanel.prototype._treeElementDisclosureDidChange):
+        * UserInterface/Views/RecordingContentView.js:
+        (WI.RecordingContentView):
+        (WI.RecordingContentView.prototype.updateActionIndex):
+        (WI.RecordingContentView.prototype.hidden):
+        * UserInterface/Views/ResourceDetailsSidebarPanel.js:
+        (WI.ResourceDetailsSidebarPanel.prototype._refreshRelatedResourcesSection):
+        (WI.ResourceDetailsSidebarPanel.prototype._applyResourceEventListeners):
+        (WI.ResourceDetailsSidebarPanel):
+        * UserInterface/Views/ShaderProgramContentView.js:
+        (WI.ShaderProgramContentView):
+        * UserInterface/Views/SpringEditor.js:
+        (WI.SpringEditor.prototype._resetPreviewAnimation):
+        * UserInterface/Views/TreeElement.js:
+        (WI.TreeElement.prototype.set hidden):
+        (WI.TreeElement.prototype.didChange):
+        (WI.TreeElement.prototype._attach):
+        (WI.TreeElement.prototype._detach):
+        (WI.TreeElement.prototype.collapse):
+        (WI.TreeElement.prototype.expand):
+        (WI.TreeElement.prototype.reveal):
+        * UserInterface/Views/TreeOutline.js:
+        (WI.TreeOutline):
+        (WI.TreeOutline.prototype.registerScrollVirtualizer):
+        (WI.TreeOutline.prototype.get updateVirtualizedElementsDebouncer): Added.
+        (WI.TreeOutline.prototype._updateVirtualizedElements): Added.
+        (WI.TreeOutline.prototype.updateVirtualizedElements.walk): Deleted.
+        (WI.TreeOutline.prototype.updateVirtualizedElements): Deleted.
+        * UserInterface/Views/WebSocketContentView.js:
+        (WI.WebSocketContentView):
+        (WI.WebSocketContentView.prototype.shown):
+        (WI.WebSocketContentView.prototype._updateFramesSoon):
+        (WI.WebSocketContentView.prototype._updateFrames):
+
+        * UserInterface/Main.html:
+        * UserInterface/Test.html:
+        * .eslintrc:
+
 2019-02-24  Nikita Vasilyev  <nvasilyev@apple.com>
 
         Unreviewed, fix indentation.