2015-07-09 Devin Rousso Web Inspector: Pseudo-element style ordering is wrong for pseudo-styles on unique selectors https://bugs.webkit.org/show_bug.cgi?id=146804 Reviewed by Timothy Hatcher. * UserInterface/Models/CSSRule.js: (WebInspector.CSSRule.prototype.selectorIsGreater): Loops through the selectors in a rule to check if their specificity is greater than a given selector's specificity. * UserInterface/Models/CSSSelector.js: (WebInspector.CSSSelector.prototype.isGreaterThan): Determines if the given selector's specificity is greater than this selector's specificity. (WebInspector.CSSSelector): * UserInterface/Views/RulesStyleDetailsPanel.js: (WebInspector.RulesStyleDetailsPanel.prototype.refresh): If the pseudo-element selector's specificity is greater than the current selector's specificity, create the pseudo-element's section and add it before the current style. 2015-07-09 Devin Rousso Web Inspector: Special Logs to Console that do not have an expression should be styled differently, looks like code https://bugs.webkit.org/show_bug.cgi?id=143840 Reviewed by Timothy Hatcher. * UserInterface/Controllers/JavaScriptLogViewController.js: (WebInspector.WebInspector.JavaScriptLogViewController.appendImmediateExecutionWithResult): Now applies a class to special logs initiated by the user (log element, log object, etc). * UserInterface/Views/ConsoleCommandView.js: (WebInspector.ConsoleCommandView): Added className parameter. * UserInterface/Views/ConsoleMessageView.css: (.console-user-command.selected-element-log): (.console-user-command.special-user-log > .console-message-text): * UserInterface/Views/DOMTreeOutline.js: (WebInspector.DOMTreeOutline.prototype._populateContextMenu.logElement): (WebInspector.DOMTreeOutline.prototype._populateContextMenu): * UserInterface/Views/ObjectPreviewView.js: (WebInspector.ObjectPreviewView.prototype._contextMenuHandler): * UserInterface/Views/ObjectTreeBaseTreeElement.js: (WebInspector.ObjectTreeBaseTreeElement.prototype._logSymbolProperty): (WebInspector.ObjectTreeBaseTreeElement.prototype._logValue): 2015-07-09 Devin Rousso Web Inspector: Checkbox disappears when unchecking CSS background style https://bugs.webkit.org/show_bug.cgi?id=146776 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers.update): (WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers): Now uses _createCommentedCheckboxMarker. (WebInspector.CSSStyleDeclarationTextEditor.prototype._createCommentedCheckboxMarker): Scans the content of the given lineHandle for any commented text and adds an unselected checkbox to the beginning of that lineHandle's line. (WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update): (WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent): Now adds commented checkbox markers. 2015-07-09 Nikita Vasilyev Web Inspector: Align slider knobs in the color picker https://bugs.webkit.org/show_bug.cgi?id=146778 Also: - Use half pixel borders on retina - Remove one pixel white outline to match native OS X color picker more closely Reviewed by Timothy Hatcher. * UserInterface/Views/ColorPicker.css: (.color-picker > .slider > img): * UserInterface/Views/Slider.css: (.slider): (@media (-webkit-min-device-pixel-ratio: 2)): 2015-07-09 Matt Baker Web Inspector: Rendering Frame segment colors should match those used in original Timelines graph https://bugs.webkit.org/show_bug.cgi?id=146777 Reviewed by Brian Burg. * UserInterface/Views/TimelineRecordFrame.css: (.timeline-record-frame > .frame > .duration): (.timeline-record-frame > .frame > .duration:last-child): (.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-script): (.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-layout): (.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-paint): Use same RGB values as TimelineRecordBar. 2015-07-09 Matt Baker Web Inspector: New JavaScript/Probe breakpoint action disappears when clicking continue checkbox https://bugs.webkit.org/show_bug.cgi?id=146688 Reviewed by Brian Burg. Delay removal of empty Evaluate and Probe actions until after the breakpoint popover has been dismissed. This will make the breakpoint editing experience less jarring, by preventing actions from disappearing when clicking other controls in the popover. * UserInterface/Models/Breakpoint.js: (WebInspector.Breakpoint.prototype.didDismissPopover): Clear empty Evaluate and Probe actions on popover dismissal. * UserInterface/Views/BreakpointActionView.js: (WebInspector.BreakpointActionView.prototype._codeMirrorBlurred): Don't remove actions with empty data on CodeMirror blur. 2015-07-09 Matt Baker Web Inspector: new breakpoint action dialog should reuse same action type https://bugs.webkit.org/show_bug.cgi?id=137255 Reviewed by Brian Burg. * UserInterface/Views/BreakpointActionView.js: (WebInspector.BreakpointActionView.prototype._appendActionButtonClicked): Use the view's action type instead of the default. 2015-07-08 Devin Rousso Web Inspector: Copy Rule in the context menu copies hidden properties in the rule https://bugs.webkit.org/show_bug.cgi?id=146775 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationSection.js: (WebInspector.CSSStyleDeclarationSection.prototype._generateCSSRuleString): Now only uses properties from the rule's visibleProperties list. 2015-07-08 Timothy Hatcher Web Inspector: Add page weight and time back to the toolbar dashboard https://bugs.webkit.org/show_bug.cgi?id=146755 Revert r183328 which removed the page weight and load time from the dashboard. We have space in the dashboard, we can put these back since we didn't find a better home for them. Reviewed by Joseph Pecoraro. * Localizations/en.lproj/localizedStrings.js: Updated. * UserInterface/Base/Main.js: (WebInspector.showNetworkTab): * UserInterface/Images/Time.svg: Added. * UserInterface/Images/Weight.svg: Added. * UserInterface/Images/gtk/Time.svg: Added. * UserInterface/Images/gtk/Weight.svg: Added. * UserInterface/Models/DefaultDashboard.js: (WebInspector.DefaultDashboard): (WebInspector.DefaultDashboard.prototype.get resourcesSize): (WebInspector.DefaultDashboard.prototype.set resourcesSize): (WebInspector.DefaultDashboard.prototype.get time): (WebInspector.DefaultDashboard.prototype.set time): (WebInspector.DefaultDashboard.prototype._mainResourceDidChange): (WebInspector.DefaultDashboard.prototype._capturingStopped): (WebInspector.DefaultDashboard.prototype._startUpdatingTime): (WebInspector.DefaultDashboard.prototype._stopUpdatingTime): (WebInspector.DefaultDashboard.prototype._updateTime): * UserInterface/Views/DashboardContainerView.css: (body.web .toolbar .dashboard-container): (body.javascript .toolbar .dashboard-container): (.toolbar.collapsed .dashboard-container): (.toolbar .dashboard-container): Deleted. * UserInterface/Views/DefaultDashboardView.css: (body.web .toolbar.collapsed .dashboard.default > :matches(.resourcesSize, .time, .logs)): (body.javascript .toolbar .dashboard.default > :matches(.resourcesCount, .resourcesSize, .time)): (.toolbar .dashboard.default > .resourcesSize): (.toolbar .dashboard.default > .time > img): (.toolbar .dashboard.default > .resourcesSize > img): (body.web .toolbar.collapsed .dashboard.default > .item.resourcesCount): Deleted. (body.javascript .toolbar .dashboard.default > .item.resourcesCount): Deleted. * UserInterface/Views/DefaultDashboardView.js: (WebInspector.DefaultDashboardView): (WebInspector.DefaultDashboardView.prototype._updateDisplay): (WebInspector.DefaultDashboardView.prototype._networkItemWasClicked): (WebInspector.DefaultDashboardView.prototype._timelineItemWasClicked): 2015-07-08 Devin Rousso Web Inspector: Style sidebar is showing incorrect strikethroughs https://bugs.webkit.org/show_bug.cgi?id=146768 Reviewed by Timothy Hatcher. * UserInterface/Models/DOMNodeStyles.js: (WebInspector.DOMNodeStyles.prototype._markOverriddenProperties): No longer sets the effective property as overridden if the overriding property is anonymous (not visible). 2015-07-08 Devin Rousso Web Inspector: Color swatches show up in color names in comments https://bugs.webkit.org/show_bug.cgi?id=146757 Reviewed by Timothy Hatcher. * UserInterface/Views/CodeMirrorAdditions.js: Color markers now only appear if the color is in a keyword. 2015-07-08 Timothy Hatcher Web Inspector: Only record a timeline when the Timelines tab is showing https://bugs.webkit.org/show_bug.cgi?id=146759 Reviewed by Joseph Pecoraro. * UserInterface/Controllers/TimelineManager.js: (WebInspector.TimelineManager.prototype.get autoCaptureOnPageLoad): (WebInspector.TimelineManager.prototype.set autoCaptureOnPageLoad): (WebInspector.TimelineManager.prototype._startAutoCapturing): * UserInterface/Views/TimelineTabContentView.js: (WebInspector.TimelineTabContentView.prototype.shown): (WebInspector.TimelineTabContentView.prototype.hidden): 2015-07-08 Timothy Hatcher Web Inspector: Details sidebar doesn't activate on first selected resource in Network tab https://bugs.webkit.org/show_bug.cgi?id=146691 Make sure the SelectionPathComponentsDidChange event is dispatched when the tree elements are selected. Selecting in the DataGrid selects the TreeElements, but onselect is not fired to avoid an inifinte loop. Reviewed by Joseph Pecoraro. * UserInterface/Views/NetworkGridContentView.js: (WebInspector.NetworkGridContentView): Hook up _treeElementSelected. (WebInspector.NetworkGridContentView.prototype._treeElementSelected): Added. Moved from NetworkSidebarPanel and added dispatch of SelectionPathComponentsDidChange event. * UserInterface/Views/NetworkSidebarPanel.js: (WebInspector.NetworkSidebarPanel): Removed _treeElementSelected. (WebInspector.NetworkSidebarPanel.prototype.canShowDifferentContentView): Renamed from _canShowDifferentContentView. (WebInspector.NetworkSidebarPanel.prototype._canShowDifferentContentView): Deleted. (WebInspector.NetworkSidebarPanel.prototype._treeElementSelected): Moved to NetworkGridContentView. * UserInterface/Views/TimelineView.js: (WebInspector.TimelineView.prototype.treeElementSelected): Dispatch SelectionPathComponentsDidChange event. 2015-07-08 Devin Rousso Web Inspector: Confusingly crossed out properties in .sidebar > .panel.navigation.timeline > .title-bar https://bugs.webkit.org/show_bug.cgi?id=146727 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update): The properties map used for refreshing each property now holds a list of properties for each line to ensure that if a duplicate property exists, it also gets refreshed. 2015-07-08 Devin Rousso Web Inspector: Can't select last row in the timeline because it's covered by filter selector https://bugs.webkit.org/show_bug.cgi?id=146603 Reviewed by Timothy Hatcher. * UserInterface/Views/ScopeBar.js: Now adds a class to the scope bar if the default item is selected. * UserInterface/Views/LayoutTimelineView.js: * UserInterface/Views/NetworkTimelineView.js: * UserInterface/Views/TimelineDataGrid.css: (.data-grid.timeline > .navigation-bar-container): Deleted. (.data-grid.timeline.has-non-default-filter > .navigation-bar-container): Deleted. (.data-grid.timeline:hover > .navigation-bar-container): Deleted. (.data-grid.timeline > .navigation-bar-container > .navigation-bar): Deleted. (body.window-inactive .data-grid.timeline > .navigation-bar-container > .navigation-bar): Deleted. * UserInterface/Views/TimelineDataGrid.js: (WebInspector.TimelineDataGrid): (WebInspector.TimelineDataGrid.createColumnScopeBar): (WebInspector.TimelineDataGrid.prototype.updateLayout): Deleted. * UserInterface/Views/TimelineRecordingContentView.js: (WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange): * UserInterface/Views/TimelineSidebarPanel.css: (.sidebar > .panel.navigation.timeline > .title-bar.timeline-events): (.sidebar > .panel.navigation.timeline > .title-bar.timeline-events > .title-bar-scope-bar): (.sidebar > .panel.navigation.timeline > .title-bar.timeline-events > .title-bar-scope-bar > .default-item-selected > .multiple): (.sidebar > .panel.navigation.timeline > .title-bar.timeline-events > .title-bar-scope-bar > .default-item-selected > .multiple path): * UserInterface/Views/TimelineSidebarPanel.js: (WebInspector.TimelineSidebarPanel.set contentTreeOutlineScopeBar): Clears the title bar scope element and adds the given element as a child node. * UserInterface/Views/TimelineView.js: (WebInspector.TimelineView.prototype.get navigationSidebarTreeOutlineScopeBar): Returns the scope bar element of the current object if it exists. 2015-07-08 Devin Rousso Web Inspector: Clicking style checkbox selects the property name while mouse down https://bugs.webkit.org/show_bug.cgi?id=146728 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseDown): Now returns if the click was not at the end of the line. 2015-07-08 Timothy Hatcher REGRESSION (r185629): Web Inspector: Filtering doesn't display any items if folders are used to organize the web page resources https://bugs.webkit.org/show_bug.cgi?id=146675 Reviewed by Joseph Pecoraro. * UserInterface/Views/TreeOutline.js: (WebInspector.TreeElement.prototype.revealed): Added ignoreHidden parameter. (WebInspector.TreeElement.prototype.traverseNextTreeElement.shouldSkip): Pass true to ignore hidden elements. (WebInspector.TreeElement.prototype.traverseNextTreeElement): Populate up front like the old traverseNextTreeElement. This is needed to traverse into lazy populated tree elements. Don't call shouldSkip in the loop. (WebInspector.TreeElement.prototype.traversePreviousTreeElement.shouldSkip): Pass true to ignore hidden elements. (WebInspector.TreeElement.prototype.traversePreviousTreeElement): Add some newlines. 2015-07-08 Devin Rousso Web Inspector: Pressing delete in the styles sidebar with no text causes text to become misaligned https://bugs.webkit.org/show_bug.cgi?id=146715 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleBeforeChange): Now returns if the change was in the first character of the first line. 2015-07-07 Nikita Vasilyev Web Inspector: Use "hairline" borders on retina screen https://bugs.webkit.org/show_bug.cgi?id=146619 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationSection.css: (.style-declaration-section): (.style-declaration-section.locked): (.style-declaration-section:not(.locked)): (.style-declaration-section.last-in-group): (.style-declaration-section + .style-declaration-section): (.style-declaration-section.last-in-group + .style-declaration-section): (@media (-webkit-min-device-pixel-ratio: 2)): * UserInterface/Views/DetailsSection.css: (.details-section .details-section): (.details-section > .content > .group:nth-child(even)): (@media (-webkit-min-device-pixel-ratio: 2)): * UserInterface/Views/DividerNavigationItem.css: (@media (-webkit-min-device-pixel-ratio: 2)): * UserInterface/Views/RulesStyleDetailsPanel.css: (.sidebar > .panel.details.css-style .rules .label + .style-declaration-section): (.sidebar > .panel.details.css-style > .content.filter-in-progress .label.filter-matching-label): (.sidebar > .panel.details.css-style > .content:not(.filter-in-progress) > .rules > .new-rule + .style-declaration-section): (.sidebar > .panel.details.css-style > .content:not(.filter-in-progress) > .rules > .new-rule + .label): (@media (-webkit-min-device-pixel-ratio: 2)): 2015-07-07 Devin Rousso Web Inspector: Pressing tab on a comment in the styles sidebar doesn't highlight the comment https://bugs.webkit.org/show_bug.cgi?id=146709 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor.prototype.selectFirstProperty): (WebInspector.CSSStyleDeclarationTextEditor.prototype.selectLastProperty): (WebInspector.CSSStyleDeclarationTextEditor.prototype._textAtCursorIsComment): (WebInspector.CSSStyleDeclarationTextEditor.prototype._highlightNextNameOrValue): (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseUp): (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleEnterKey): (WebInspector.CSSStyleDeclarationTextEditor.prototype._insertNewlineAfterCurrentLine): Determines if the text at the given cursor position in the given line is a comment. (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey): (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey): 2015-07-07 Devin Rousso Web Inspector: spacebar should pause/resume timeline recording when timelines are open https://bugs.webkit.org/show_bug.cgi?id=143267 Reviewed by Timothy Hatcher. * Localizations/en.lproj/localizedStrings.js: * UserInterface/Views/TimelineTabContentView.js: (WebInspector.TimelineSidebarPanel): Added two new keyboard shortcuts: space and shift-space. (WebInspector.TimelineSidebarPanel.prototype.shown): Enables the keyboard shortcuts. (WebInspector.TimelineSidebarPanel.prototype.hidden): Disables the keyboard shortcuts. (WebInspector.TimelineSidebarPanel.prototype._toggleRecordingOnSpacebar): (WebInspector.TimelineSidebarPanel.prototype._toggleNewRecordingOnSpacebar): (WebInspector.TimelineSidebarPanel.prototype._toggleRecording): Starts/stops recording. 2015-07-07 Joseph Pecoraro Web Inspector: Improve names for unprefixed animation events https://bugs.webkit.org/show_bug.cgi?id=146708 Reviewed by Timothy Hatcher. * UserInterface/Models/ScriptTimelineRecord.js: 2015-07-07 Timothy Hatcher Web Inspector: Timeline record bars are not white when the row is selected from the sidebar https://bugs.webkit.org/show_bug.cgi?id=146694 Reviewed by Joseph Pecoraro. * UserInterface/Views/TimelineRecordBar.css: (:matches(:focus, .force-focus) .selected .timeline-record-bar > .segment): (:matches(:focus, .force-focus) .selected .timeline-record-bar > .segment.inactive): (:matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): 2015-07-07 Devin Rousso Web Inspector: Unnecessary space added after -webkit- prefixed property values https://bugs.webkit.org/show_bug.cgi?id=146671 Reviewed by Joseph Pecoraro. * Tools/PrettyPrinting/css-rule-tests/do-not-add-whitespace-before-prefixed-property-value-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/do-not-add-whitespace-before-prefixed-property-value.css: Added. * Tools/PrettyPrinting/index.html: * UserInterface/Views/CodeMirrorFormatters.js: Now only adds a space if both the current and previous tokens are a property, value, or atom. 2015-07-07 Matt Baker Web Inspector: Pad ruler selection area by 1px in the Rendering Frames timeline overview https://bugs.webkit.org/show_bug.cgi?id=146248 Reviewed by Timothy Hatcher. * UserInterface/Views/RenderingFrameTimelineOverview.js: Enable duration pixel alignment. * UserInterface/Views/TimelineOverview.css: (.timeline-overview.frames > .timeline-ruler > .header > .divider): (.timeline-overview.frames > .timeline-ruler > .selection-handle.right): (.timeline-overview.frames > .timeline-ruler > .shaded-area.right): Shift ruler elements 1 pixel to the right, so that selection boundaries and dividers are positioned inside the gap between frame elements. * UserInterface/Views/TimelineOverview.js: (WebInspector.TimelineOverview): (WebInspector.TimelineOverview.prototype.set secondsPerPixel): (WebInspector.TimelineOverview.prototype.get pixelAlignDuration): (WebInspector.TimelineOverview.prototype.set pixelAlignDuration): (WebInspector.TimelineOverview.prototype._handleWheelEvent): Added a property to force the overview graph to align duration units on the y-axis to pixel boundaries. When enabled, frame elements are displayed in integer widths while zooming, preventing subpixel blurring and maintaining a consistent 1 pixel gap between frames. 2015-07-07 Devin Rousso Web Inspector: Tabbing in the styles sidebar doesn't highlight the next section of text https://bugs.webkit.org/show_bug.cgi?id=146676 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor.prototype._highlightNextNameOrValue): Modified the logic to only search the remaining text after the current cursor position. (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey): Now only searches for matches before the colon. 2015-07-07 Devin Rousso Web Inspector: Option+Click not jumping to resource https://bugs.webkit.org/show_bug.cgi?id=146498 Reviewed by Timothy Hatcher. * UserInterface/Base/Main.js: Always show the tab which contains the represented object. (WebInspector._domNodeWasInspected): (WebInspector._frameWasAdded): (WebInspector.showConsoleTab): (WebInspector.showRepresentedObject): Removed forceShowTab parameter. (WebInspector.showMainFrameDOMTree): (WebInspector.showContentFlowDOMTree): (WebInspector.showSourceCodeForFrame): (WebInspector.showSourceCode): (WebInspector.showSourceCodeLocation): (WebInspector.showOriginalUnformattedSourceCodeLocation): (WebInspector.showOriginalOrFormattedSourceCodeLocation): (WebInspector.showOriginalOrFormattedSourceCodeTextRange): (WebInspector.showResourceRequest): * UserInterface/Controllers/CodeMirrorTokenTrackingController.js: (WebInspector.CodeMirrorTokenTrackingController.prototype._mouseButtonWasReleasedOverEditor): * UserInterface/Protocol/InspectorFrontendAPI.js: (InspectorFrontendAPI.showMainResourceForFrame): * UserInterface/Views/ComputedStyleDetailsPanel.js: (WebInspector.ComputedStyleDetailsPanel.prototype._goToContentFlowArrowWasClicked): (WebInspector.ComputedStyleDetailsPanel): * UserInterface/Views/ObjectTreeBaseTreeElement.js: (WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject): (WebInspector.ObjectTreeBaseTreeElement): 2015-07-07 Devin Rousso Web Inspector: Regression: CSS autocompletion suggestion applies on pressing delete https://bugs.webkit.org/show_bug.cgi?id=146672 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleBeforeChange): Now returns if completions are showing. 2015-07-07 Nikita Vasilyev Web Inspector: Properly align checkboxes in the styles sidebar https://bugs.webkit.org/show_bug.cgi?id=146673 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationTextEditor.css: (.css-style-text-editor > .CodeMirror .CodeMirror-lines input[type=checkbox]): 2015-07-06 Matt Baker Web Inspector: Rendering Frame bars appear misaligned and contain gaps when displaying small task segments https://bugs.webkit.org/show_bug.cgi?id=146475 Reviewed by Timothy Hatcher. Displaying all task segments within a frame in the Rendering Frames graph is impossible, as very short tasks would result in a bar with a height of less than 1 pixel. Consecutive small tasks, each less than a visible pixel, appear as gaps in the frame bar. This patch addresses these shortcomings by introducing a minimum displayable frame height (3 pixels), and setting the height of every frame to a multiple of the minimum height. * UserInterface/Base/Utilities.js: (.value): Added Math.roundTo to simplify rounding to arbitrary intervals. * UserInterface/Views/TimelineRecordFrame.css: (.timeline-record-frame): (.timeline-record-frame > .frame > .duration): Enforce 3px min height for frames & segments. TimelineRenderingFrame's segment height calculator creates segments that are always at least 3px, this is just a precaution. * UserInterface/Views/TimelineRecordFrame.js: (WebInspector.TimelineRecordFrame.prototype._calculateFrameDisplayData.updateDurationRemainder): (WebInspector.TimelineRecordFrame.prototype._calculateFrameDisplayData.pushCurrentSegment): (WebInspector.TimelineRecordFrame.prototype._calculateFrameDisplayData.invisibleSegments.forEach): (WebInspector.TimelineRecordFrame.prototype._updateChildElements.createDurationElement): Deleted. Added algorithm for calculating frame segment heights, rather than simply dividing each task's duration by the frame duration. Results are cached so the segment heights aren't needlessly recalculated on every scroll/zoom. 2015-07-06 Timothy Hatcher Web Inspector: Force show Console tab when supportsSplitContentBrowser is false https://bugs.webkit.org/show_bug.cgi?id=146661 Reviewed by Joseph Pecoraro. * UserInterface/Base/Main.js: (WebInspector.showConsoleTab): 2015-07-06 Devin Rousso Web Inspector: Clearing the console does not remove the unread message icon https://bugs.webkit.org/show_bug.cgi?id=146649 Reviewed by Timothy Hatcher. * UserInterface/Views/LogContentView.js: (WebInspector.LogContentView.prototype._clearLog): Removes the "unread" class from all scope bar items. 2015-07-02 Timothy Hatcher Web Inspector: Add a dedicated Network tab that is always live https://bugs.webkit.org/show_bug.cgi?id=146568 Reviewed by Joseph Pecoraro. * Localizations/en.lproj/localizedStrings.js: Updated. * UserInterface/Base/Main.js: (WebInspector.loaded): (WebInspector.isTabTypeAllowed): (WebInspector._tabContentViewForType): (WebInspector._updateNewTabButtonState): Add NetworkTabContentView to the right places. * UserInterface/Controllers/TimelineManager.js: (WebInspector.TimelineManager): (WebInspector.TimelineManager.prototype.get persistentNetworkTimeline): (WebInspector.TimelineManager.prototype._mainResourceDidChange): (WebInspector.TimelineManager.prototype._resourceWasAdded): Add a persistent network timeline that always has all resources. * UserInterface/Images/Network.svg: Added. * UserInterface/Main.html: Added new files. * UserInterface/Views/NavigationSidebarPanel.css: (.sidebar > .panel.navigation > .content): Drive-by fix. The bottom was off by one. This caused misalignment between sidebar and content view when scrolled all the way to the bottom of the content view. * UserInterface/Views/NetworkGridContentView.css: Added. (.content-view.network-grid > .data-grid): (.content-view.network-grid > .data-grid th): (.content-view.network-grid > .data-grid td): (.content-view.network-grid > .data-grid table.data): Mostly copied from TimelineView.css and NetworkTimelineView.css. * UserInterface/Views/NetworkGridContentView.js: Added. (WebInspector.NetworkGridContentView): (WebInspector.NetworkGridContentView.prototype.get navigationSidebarTreeOutline): (WebInspector.NetworkGridContentView.prototype.get selectionPathComponents): (WebInspector.NetworkGridContentView.prototype.get zeroTime): (WebInspector.NetworkGridContentView.prototype.shown): (WebInspector.NetworkGridContentView.prototype.hidden): (WebInspector.NetworkGridContentView.prototype.closed): (WebInspector.NetworkGridContentView.prototype.updateLayout): (WebInspector.NetworkGridContentView.prototype.needsLayout): (WebInspector.NetworkGridContentView.prototype.reset): (WebInspector.NetworkGridContentView.prototype._processPendingRecords): (WebInspector.NetworkGridContentView.prototype._networkTimelineReset): (WebInspector.NetworkGridContentView.prototype._networkTimelineRecordAdded): (WebInspector.NetworkGridContentView.prototype._treeElementPathComponentSelected): (WebInspector.NetworkGridContentView.prototype._dataGridNodeSelected): Mostly copied from NetworkTimelineView. * UserInterface/Views/NetworkSidebarPanel.css: Added. (.sidebar > .panel.navigation.network > :matches(.content, .empty-content-placeholder)): (.sidebar > .panel.navigation.network > .navigation-bar): (.sidebar > .panel.navigation.network > .title-bar): (.sidebar > .panel.navigation.network.network-grid-content-view-showing > .content): (.sidebar > .panel.navigation.network .item:hover:not(.selected) .status .close.status-button): (.sidebar > .panel.navigation.network:not(.network-grid-content-view-showing) .status .go-to-arrow.status-button): (.sidebar > .panel.navigation.network.network-grid-content-view-showing .status .close.status-button): (.sidebar > .panel.navigation.network.network-grid-content-view-showing .navigation-sidebar-panel-content-tree-outline.network-grid .item .subtitle): (.sidebar > .panel.navigation.network > .content > .navigation-sidebar-panel-content-tree-outline): (.sidebar > .panel.navigation.network.network-grid-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline): Mostly copied from TimelineSidebarPanel.css and NetworkTimelineView.css. * UserInterface/Views/NetworkSidebarPanel.js: Added. (WebInspector.NetworkSidebarPanel): (WebInspector.NetworkSidebarPanel.prototype.closed): (WebInspector.NetworkSidebarPanel.prototype.showDefaultContentView): (WebInspector.NetworkSidebarPanel.prototype.saveStateToCookie): (WebInspector.NetworkSidebarPanel.prototype.restoreStateFromCookie): (WebInspector.NetworkSidebarPanel.prototype.hasCustomFilters): (WebInspector.NetworkSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match): (WebInspector.NetworkSidebarPanel.prototype.matchTreeElementAgainstCustomFilters): (WebInspector.NetworkSidebarPanel.prototype.treeElementAddedOrChanged): (WebInspector.NetworkSidebarPanel.prototype._networkTimelineReset): (WebInspector.NetworkSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange): (WebInspector.NetworkSidebarPanel.prototype._treeElementGoToArrowWasClicked): (WebInspector.NetworkSidebarPanel.prototype._treeElementCloseButtonClicked): (WebInspector.NetworkSidebarPanel.prototype._canShowDifferentContentView): (WebInspector.NetworkSidebarPanel.prototype._treeElementSelected): (WebInspector.NetworkSidebarPanel.prototype._scopeBarSelectionDidChange): A hybrid of ResourceSidebarPanel and TimelineSidebarPanel. * UserInterface/Views/NetworkTabContentView.js: Added. (WebInspector.NetworkTabContentView): (WebInspector.NetworkTabContentView.prototype.get type): (WebInspector.NetworkTabContentView.prototype.canShowRepresentedObject): * UserInterface/Views/NewTabContentView.js: (WebInspector.NewTabContentView): Add Network tab and sort the tabs by their localized name. * UserInterface/Views/TabBar.js: (WebInspector.TabBar.prototype._handleNewTabClick): Drive-by fix. Don't fire the click event if the new tab button is disabled. 2015-07-06 Nikita Vasilyev Web Inspector: Mark console filters that have unseen messages by colored dots https://bugs.webkit.org/show_bug.cgi?id=146616 Reviewed by Timothy Hatcher. * UserInterface/Views/LogContentView.css: (.log-scope-bar > li.unread::before): (.log-scope-bar > li.unread:hover::before): (.log-scope-bar > li.unread.errors::before): (.log-scope-bar > li.unread.warnings::before): (.log-scope-bar > li.unread.logs::before): (@keyframes unread-background-pulse): 2015-07-06 Timothy Hatcher Web Inspector: Exceptions in Network timeline when resource updates and filters are applied https://bugs.webkit.org/show_bug.cgi?id=146609 Reviewed by Joseph Pecoraro. * UserInterface/Views/DataGrid.js: (WebInspector.DataGrid.prototype.insertChild): (WebInspector.DataGrid.prototype.removeChild): (WebInspector.DataGridNode.prototype.savePosition): Convert exceptions to asserts and early returns. * UserInterface/Views/TimelineDataGrid.js: (WebInspector.TimelineDataGrid.prototype._refreshDirtyDataGridNodes): Add some asserts and checks. * UserInterface/Views/TreeOutline.js: (WebInspector.TreeOutline.prototype.appendChild): (WebInspector.TreeOutline.prototype.insertChild): (WebInspector.TreeOutline.prototype.removeChildAtIndex): (WebInspector.TreeOutline.prototype.removeChild): Convert exceptions to asserts and early returns. 2015-07-05 Timothy Hatcher Web Inspector: Cached resources are missing startTime and size in Network timeline https://bugs.webkit.org/show_bug.cgi?id=146607 Reviewed by Joseph Pecoraro. * UserInterface/Controllers/FrameResourceManager.js: (WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache): Pass elapsedTime in the right argument order. Add missing calls to Resource.increaseSize and Resource.increaseTransferSize. (WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveResponse): Pass elapsedTime in the right argument order. 2015-07-05 Timothy Hatcher Web Inspector: Dim more borders when the window is inactive https://bugs.webkit.org/show_bug.cgi?id=146608 Reviewed by Joseph Pecoraro. * UserInterface/Views/DataGrid.css: (body.window-inactive .data-grid th): (body.window-inactive .data-grid :matches(th, td):not(:last-child)): * UserInterface/Views/NavigationSidebarPanel.css: (body.window-inactive .sidebar > .panel.navigation > .overflow-shadow): * UserInterface/Views/OverviewTimelineView.css: (body.window-inactive .timeline-view.overview > .timeline-ruler > .header): * UserInterface/Views/TimelineDataGrid.css: (body.window-inactive .data-grid.timeline th): (body.window-inactive .data-grid.timeline > .navigation-bar-container > .navigation-bar): * UserInterface/Views/TimelineRuler.css: (body.window-inactive .timeline-ruler > .header): (body.window-inactive .timeline-ruler > .header > .divider): * UserInterface/Views/TimelineSidebarPanel.css: (body.window-inactive .sidebar > .panel.navigation.timeline > .status-bar): (body.window-inactive .sidebar > .panel.navigation.timeline > .title-bar): (body.window-inactive .sidebar > .panel.navigation.timeline > .title-bar.timeline-events): 2015-07-05 Timothy Hatcher Web Inspector: Timeline row selection should have same background color in sidebar and data grid https://bugs.webkit.org/show_bug.cgi?id=146606 Support a force-focus class name that TreeOutlineDataGridSynchronizer applies when one of the elements is focused, so the other can look focused too. Reviewed by Joseph Pecoraro. * UserInterface/Views/DataGrid.css: (.data-grid:matches(:focus, .force-focus) tr.selected td:not(:last-child)): (.data-grid:matches(:focus, .force-focus) tr.parent.selected td.disclosure::before): (.data-grid:matches(:focus, .force-focus) tr.parent.expanded.selected td.disclosure::before): (.data-grid:matches(:focus, .force-focus) tr.selected): (.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle): * UserInterface/Views/Main.css: (:matches(:focus, .force-focus) .selected .go-to-arrow): (:matches(:focus, .force-focus) .selected .go-to-arrow:active): * UserInterface/Views/NavigationSidebarPanel.css: (.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected .disclosure-button): (.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected.expanded .disclosure-button): (.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected): (.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected .subtitle): * UserInterface/Views/TreeElementStatusButton.css: (:matches(:focus, .force-focus) .item.selected > .status > .status-button > svg .filled): (:matches(:focus, .force-focus) .item.selected > .status > .status-button > svg .stroked): * UserInterface/Views/TreeOutlineDataGridSynchronizer.js: (WebInspector.TreeOutlineDataGridSynchronizer): (WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridGainedFocus): Added. (WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridLostFocus): Added. (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeOutlineGainedFocus): Added. (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeOutlineLostFocus): Added. 2015-07-05 Devin Rousso Web Inspector: Deleting in the CSS sidebar causes the warning icon to appear mid-word https://bugs.webkit.org/show_bug.cgi?id=146617 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleBeforeChange): Now removes all marks whenever the user deletes. (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): The invalid marker now calculates it's position based off of where the semicolon is in the property text. 2015-07-05 Devin Rousso Web Inspector: CSS rule with 2 pseudo-selectors appears twice https://bugs.webkit.org/show_bug.cgi?id=146576 Reviewed by Timothy Hatcher. * UserInterface/Views/RulesStyleDetailsPanel.js: (WebInspector.RulesStyleDetailsPanel.prototype.refresh): Only adds pseudo-elements if the previous pseudo-element has a different selector. 2015-07-04 Devin Rousso Web Inspector: Wrong cursor position in styles panel when deleting a line break https://bugs.webkit.org/show_bug.cgi?id=146577 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor): (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleBeforeChange): If the change is a deletion at the beginning of a line, remove all markers on that line to ensure that there is no blank space on the previous line after deleting. 2015-07-04 Devin Rousso Web Inspector: Pressing tab on a newline in the console should insert a tab character https://bugs.webkit.org/show_bug.cgi?id=146612 Reviewed by Timothy Hatcher. * UserInterface/Views/ConsolePrompt.js: (WebInspector.ConsolePrompt.prototype._handleTabKey): Tabs can now be inserted at the beginning of newlines and before the first non-space character on any other line. 2015-07-04 Devin Rousso Web Inspector: Pressing enter on a newline in the styles sidebar inserts a semicolon https://bugs.webkit.org/show_bug.cgi?id=146611 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleEnterKey): Now returns if the line is empty. 2015-07-04 Devin Rousso Web Inspector: Console should indicate if you have unseen messages in console due to filters https://bugs.webkit.org/show_bug.cgi?id=143166 Reviewed by Timothy Hatcher. * UserInterface/Controllers/JavaScriptLogViewController.js: (WebInspector.JavaScriptLogViewController.prototype.updatePreviousMessageRepeatCount): Now returns true/false depending on if the message count was actually updated. * UserInterface/Views/LogContentView.css: (.log-scope-bar > li.unread): Applies the unread-border-pulse keyframe animation. (.log-scope-bar > li.unread.errors): The pulsing border is colored red. (.log-scope-bar > li.unread.warnings): The pulsing border is colored yellow(ish). (.log-scope-bar > li.unread.logs): The pulsing border is colored grey. (@keyframes unread-border-pulse): Changes the color of the border from transparent to whatever is specificed. * UserInterface/Views/LogContentView.js: (WebInspector.LogContentView): (WebInspector.LogContentView.prototype._determineMessageLevel): (WebInspector.LogContentView.prototype._pulseScopeBarItemBorder): Adds the class "unread" to the scope bar item whose panel the newest message belongs to, but only if that panel or the All panel is not visible. (WebInspector.LogContentView.prototype._messageAdded): (WebInspector.LogContentView.prototype._previousMessageRepeatCountUpdated): (WebInspector.LogContentView.prototype._scopeBarSelectionDidChange): Clears the "unread" class on the selected scope bar item. (WebInspector.LogContentView.prototype._filterMessageElements): * UserInterface/Views/ScopeBar.js: (WebInspector.ScopeBar.prototype.get items): Returns a list of all the items in the scope bar. * UserInterface/Views/ScopeBarItem.js: (WebInspector.ScopeBarItem): Added another parameter to allow for a custom class name. 2015-07-04 Devin Rousso Web Inspector: Pseudo Styles Ordering and Media Queries https://bugs.webkit.org/show_bug.cgi?id=145979 Reviewed by Timothy Hatcher. * UserInterface/Views/RulesStyleDetailsPanel.css: (.sidebar > .panel.details.css-style > .content.filter-in-progress .label:not(.filter-section-non-matching) + .label.filter-matching-label:not(.filter-section-non-matching)): Fix filter label styling with pseudo selectors. * UserInterface/Views/RulesStyleDetailsPanel.js: (WebInspector.RulesStyleDetailsPanel.prototype.refresh): Pseudo-selector rules will now order directly after the last style that matches the pseudo-selector without the pseudo-element. If no rules match, place the pseudo-selector rules above the first inherited or UserAgent rule (whichever comes first). 2015-07-04 Devin Rousso REGRESSION(r184000): Web Inspector: Multiline CSS in Styles Sidebar is marked as invalid https://bugs.webkit.org/show_bug.cgi?id=146178 Reviewed by Timothy Hatcher. First changes made by Tobias Reiss * Tools/PrettyPrinting/css-rule-tests/add-whitespace-between-values-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/add-whitespace-between-values.css: Added. * Tools/PrettyPrinting/css-rule-tests/add-whitespace-between-rules-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/add-whitespace-between-rules.css: Added. * Tools/PrettyPrinting/css-rule-tests/remove-newline-between-values-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/remove-newline-between-values.css: Added. * Tools/PrettyPrinting/index.html: Add regression tests. * UserInterface/Views/CodeMirrorFormatters.js: Remove newlines before values that belong in one line and add whitespace between values. 2015-07-04 Nikita Vasilyev Web Inspector: The arrow that appears for Web Inspector Layout & Rendering records overlaps the category switcher https://bugs.webkit.org/show_bug.cgi?id=146605 Reviewed by Timothy Hatcher. * UserInterface/Views/TimelineDataGrid.css: (.data-grid.timeline > .navigation-bar-container): 2015-07-03 Dan Bernstein [Xcode] Update some build settings as recommended by Xcode 7 https://bugs.webkit.org/show_bug.cgi?id=146597 Reviewed by Sam Weinig. * Configurations/Base.xcconfig: Enabled CLANG_WARN_UNREACHABLE_CODE and GCC_NO_COMMON_BLOCKS. * WebInspectorUI.xcodeproj/project.pbxproj: Updated LastUpgradeCheck. 2015-07-02 Devin Rousso Web Inspector: Show suggest popover on Tab press even if it wasn't showing before https://bugs.webkit.org/show_bug.cgi?id=146496 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey): Pressing tab will try to autocomplete before trying to add an ending colon/semicolon or highlight the next section of text. 2015-07-01 Joseph Pecoraro Web Inspector: Aggregate profile call information on the backend to drastically reduce profile sizes https://bugs.webkit.org/show_bug.cgi?id=146536 Reviewed by Timothy Hatcher. Since we still support legacy backends, the frontend documents where it is handling legacy backends with compatibility comments. * UserInterface/Models/ProfileNode.js: (WebInspector.ProfileNode): (WebInspector.ProfileNode.prototype.get callInfo): Handle a ProfileNode created with callInfo or calls. They are mutually exclusive. * UserInterface/Models/ScriptTimelineRecord.js: (WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeFromPayload): If the profile has per-call information, construct ProfileNodeCall objects, otherwise just construct the ProfileNode with the aggregate callInfo value. * UserInterface/Views/ScriptTimelineDataGridNode.js: (WebInspector.ScriptTimelineDataGridNode.prototype.get data): When we have aggregate call information we cannot easily partition a script, so we instead treat the entire script as one large atomic unit in the timeline. If the timeline range has any portion of the script, show the entire script. Users used to be able to select a portion of a script and view the relevant functions called in just that sliver, but this doesn't appear to be a well known feature or commonly used. In fact, given the small ranges of time it could be confusing for users. * UserInterface/Views/TimelineRecordingContentView.js: (WebInspector.TimelineRecordingContentView.prototype.matchTreeElementAgainstCustomFilters): Treat as a discrete unit. 2015-07-01 Devin Rousso Web Inspector: When autocompleting, pressing tab twice shouldn't insert a tab character https://bugs.webkit.org/show_bug.cgi?id=145885 Reviewed by Timothy Hatcher. * UserInterface/Controllers/CodeMirrorCompletionController.js: (WebInspector.CodeMirrorCompletionController): (WebInspector.CodeMirrorCompletionController.prototype.updateCompletions): Resolves the promise as having completions. (WebInspector.CodeMirrorCompletionController.prototype.hideCompletions): Resolves the promise as not having completions. (WebInspector.CodeMirrorCompletionController.prototype.completeAtCurrentPositionIfNeeded): Returns a WrappedPromise that allows callers of this function to determine if the autocomplete had any values or was instead not shown. (WebInspector.CodeMirrorCompletionController.prototype._resolveUpdatePromise): * UserInterface/Main.html: Added WrappedPromise class. * UserInterface/Models/WrappedPromise.js: Added WrappedPromise object to expose resolve and reject functions. * UserInterface/Views/ConsolePrompt.js: (WebInspector.ConsolePrompt.prototype._handleTabKey): Attempts to find completions for current text. If there are none, beep. 2015-07-01 Devin Rousso Make the first click on a rule section create a newline for easy property addition https://bugs.webkit.org/show_bug.cgi?id=146490 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor): (WebInspector.CSSStyleDeclarationTextEditor.prototype._highlightNextNameOrValue): (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleEnterKey): Inserts a semicolon if the line is missing one. (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseDown): If the user clicks on a property with the editor being unfocused, the name/value containing the cursor will be highlighted. If instead the user clicks at the end of a line, the cursor's position is saved for mouseUp. (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseUp): If the mouseDown cursor position was saved and is equal to the current cursor's position (the user did not drag), add a newline after the current line and place the cursor on that line. (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey): (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey.highlightNextNameOrValue): Deleted. 2015-06-30 Devin Rousso Web Inspector: add " = $0" hint after selected element in main DOMTreeOutline https://bugs.webkit.org/show_bug.cgi?id=145739 Reviewed by Timothy Hatcher. * UserInterface/Views/DOMTreeOutline.css: Adds a semi-opaque " = $0" to the selected element in the DOM tree. (.dom-tree-outline li.selected > span::after): (.dom-tree-outline:focus li.selected > span::after): 2015-06-30 Joseph Pecoraro Web Inspector: ProfileNode cleanup https://bugs.webkit.org/show_bug.cgi?id=146472 Reviewed by Timothy Hatcher. * UserInterface/Models/ProfileNode.js: (WebInspector.ProfileNode): Use Array.prototype.every instead of reduce. Correct the name of a function to be what callers expect! 2015-06-30 Joseph Pecoraro Web Inspector: iOS 8: Profile Nodes not showing in JavaScript Timeline https://bugs.webkit.org/show_bug.cgi?id=146471 Reviewed by Brian Burg. * UserInterface/Models/ScriptTimelineRecord.js: (WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeCallFromPayload): For legacy backends, convert the startTime to the proper timestamp type. 2015-06-30 Matt Baker Web Inspector: Reduce rendering frames "Other" time by instrumenting compositing https://bugs.webkit.org/show_bug.cgi?id=146168 Reviewed by Brian Burg. * Localizations/en.lproj/localizedStrings.js: * UserInterface/Controllers/TimelineManager.js: (WebInspector.TimelineManager.prototype._processRecord): Added handling for new Composite record type. Paint records with a parent Composite record are flagged to simplify processing after the event hierarchy is unpacked. * UserInterface/Images/TimelineRecordComposite.svg: Added. New composite record icon. * UserInterface/Models/LayoutTimelineRecord.js: (WebInspector.LayoutTimelineRecord): (WebInspector.LayoutTimelineRecord.displayNameForEventType): (WebInspector.LayoutTimelineRecord.prototype.get duringComposite): Added Composite record support. * UserInterface/Models/RenderingFrameTimelineRecord.js: (WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask.get validRecordForTaskType): Add compositing time when bucketing runloop tasks, ignoring Paint events that are contained within a Composite event. * UserInterface/Views/LayoutTimelineOverviewGraph.js: (WebInspector.LayoutTimelineOverviewGraph.prototype._layoutTimelineRecordAdded): Add Composite records to paint timeline row. * UserInterface/Views/RenderingFrameTimelineView.js: (WebInspector.RenderingFrameTimelineView.prototype._processPendingRecords): Small unrelated fix. * UserInterface/Views/TimelineIcons.css: (.composite-record .icon): * UserInterface/Views/TimelineRecordBar.css: (.timeline-record-bar.timeline-record-type-layout.layout-timeline-record-composite > .segment): * UserInterface/Views/TimelineRecordTreeElement.js: (WebInspector.TimelineRecordTreeElement): New styles and tree element icon. 2015-06-30 Joseph Pecoraro Web Inspector: iOS 8: Uncaught Exception expanding Object Prototype https://bugs.webkit.org/show_bug.cgi?id=146427 Reviewed by Timothy Hatcher. * UserInterface/Views/ObjectTreePropertyTreeElement.js: (WebInspector.ObjectTreePropertyTreeElement.prototype._updateProperties): * UserInterface/Views/ObjectTreeView.js: (WebInspector.ObjectTreeView.prototype._updateProperties): We are supposed to receive value properties for __proto__ properties so that we can immediately start showing information about the property. When that is not the case, which appeared to only be on legacy backends for the top level prototype, just ignore it. 2015-06-30 Joseph Pecoraro Web Inspector: Misc. Timeline cleanup https://bugs.webkit.org/show_bug.cgi?id=146430 Reviewed by Timothy Hatcher. * UserInterface/Models/Timeline.js: (WebInspector.Timeline.prototype.reset): Nobody listens for this event. Just remove it. * UserInterface/Models/TimelineRecording.js: Avoiding doing multiple lookups. * UserInterface/Views/TimelineDataGridNode.js: * UserInterface/Views/TimelineRecordingContentView.js: (WebInspector.TimelineRecordingContentView.prototype._updateTimes): * UserInterface/Views/TimelineView.js: (WebInspector.TimelineView.prototype.updateLayout): Eliminate some unnecessary deletes. 2015-06-29 Nikita Vasilyev Web Inspector: Unable to select the text of an inline error message https://bugs.webkit.org/show_bug.cgi?id=145813 Reviewed by Timothy Hatcher. * UserInterface/Views/CodeMirrorOverrides.css: (.CodeMirror-linewidget): * UserInterface/Views/TextEditor.js: (WebInspector.TextEditor.prototype.createWidgetForLine): 2015-06-29 Joseph Pecoraro Web Inspector: Remove harmless error for not getting named flows https://bugs.webkit.org/show_bug.cgi?id=146417 Reviewed by Darin Adler. * UserInterface/Controllers/DOMTreeManager.js: 2015-06-29 Joseph Pecoraro Web Inspector: Network errors (404) are missing location link in console messages https://bugs.webkit.org/show_bug.cgi?id=146442 Reviewed by Darin Adler. * UserInterface/Views/ConsoleMessageView.js: (WebInspector.ConsoleMessageView.prototype._appendLocationLink): Restore behavior of adding a location link for network messages with urls. 2015-06-29 Joseph Pecoraro Web Inspector: iOS 8: Resources Timeline Data does not show up https://bugs.webkit.org/show_bug.cgi?id=146433 Reviewed by Timothy Hatcher. There were a couple issues with initializing the legacy base timestamp for attempting to dynamically compute monotonically increasing timestamps for timeline events for legacy backends. * Sometimes legacy timestamps were in seconds since epochs, sometimes milliseconds. The frontend did not handle both. * On navigations, even while resetting the base timestamp for the first new record received, the main resource still had a will send request time computed from the previous page's time system. This patch re-uses the original timestamp for this main resource as the new base and all future records are computed relative to this. * UserInterface/Controllers/FrameResourceManager.js: (WebInspector.FrameResourceManager.prototype.resourceRequestWillBeSent): (WebInspector.FrameResourceManager.prototype._addNewResourceToFrame): * UserInterface/Models/Resource.js: (WebInspector.Resource): (WebInspector.Resource.prototype.get originalRequestWillBeSentTimestamp): For legacy timestamp calculations, save the original request will be sent timestamp on the Resource in case it is needed. * UserInterface/Controllers/TimelineManager.js: (WebInspector.TimelineManager.prototype._loadNewRecording): When auto-starting a new recording for a navigation / reload, use the main resource's request will be sent timestamp as the new base. * UserInterface/Models/TimelineRecording.js: Address legacy timeline timestamps by handling both legacy timestamps that may be seconds / milliseconds. 2015-06-29 Joseph Pecoraro REGRESSION: Web Inspector: Jump to Definition is broken https://bugs.webkit.org/show_bug.cgi?id=146376 Reviewed by Timothy Hatcher. * UserInterface/Views/ObjectTreeBaseTreeElement.js: (WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject): Allow changing tabs when jumping to function definition. 2015-06-28 Nikita Vasilyev Web Inspector: Wrong border color of console messages when filters are enabled https://bugs.webkit.org/show_bug.cgi?id=146392 Reviewed by Timothy Hatcher. * UserInterface/Views/LogContentView.css: (.console-error-level:not(.filtered-out, .filtered-out-by-search) + .console-item): (.console-warning-level:not(.filtered-out, .filtered-out-by-search) + .console-item): 2015-06-25 Matt Baker Web Inspector: Wrong timeline selected after switching from Rendering Frames to Timelines https://bugs.webkit.org/show_bug.cgi?id=146331 Reviewed by Timothy Hatcher. * UserInterface/Views/TimelineSidebarPanel.js: Set previously selected timeline type to null if no tree element is selected when switching view mode to Rendering Frames. 2015-06-25 Joseph Pecoraro [Mac] Web Inspector: Window dragging on toolbar should behave more like native window dragging https://bugs.webkit.org/show_bug.cgi?id=146324 Reviewed by Timothy Hatcher. * UserInterface/Base/Main.js: On Mac 10.11 transition to using InspectorFrontendHost.startWindowDrag. For older Macs continue to use InspectorFrontendHost.moveWindowBy. * UserInterface/Protocol/InspectorFrontendHostStub.js: (WebInspector.InspectorFrontendHostStub.prototype.startWindowDrag): Add the stub for InspectorFrontendHostStub. 2015-06-24 Devin Rousso Web Inspector: Pressing tab in the styles sidebar shouldn't insert a tab character https://bugs.webkit.org/show_bug.cgi?id=146189 Reviewed by Timothy Hatcher. * UserInterface/Controllers/CodeMirrorCompletionController.js: Added variable to control whether semicolons are added to the end of autocompleted css values. (WebInspector.CodeMirrorCompletionController): (WebInspector.CodeMirrorCompletionController.prototype.set noEndingSemicolon): (WebInspector.CodeMirrorCompletionController.prototype._generateCSSCompletions): * UserInterface/Views/CSSStyleDeclarationSection.js: (WebInspector.CSSStyleDeclarationSection): (WebInspector.CSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorSwitchRule): (WebInspector.CSSStyleDeclarationSection.prototype.focusRuleSelector): (WebInspector.CSSStyleDeclarationSection.prototype.selectLastProperty): (WebInspector.CSSStyleDeclarationSection.prototype.get selectorLocked): (WebInspector.CSSStyleDeclarationSection.prototype.get locked): (WebInspector.CSSStyleDeclarationSection.prototype._handleKeyDown): * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor): Added functions for "Tab", "Shift-Tab", and "Shift-Enter" keypresses to improve usability. (WebInspector.CSSStyleDeclarationTextEditor.prototype.selectFirstProperty): Highlights the first property. (WebInspector.CSSStyleDeclarationTextEditor.prototype.selectLastProperty): Highlights the last property. (WebInspector.CSSStyleDeclarationTextEditor.prototype._insertNewlineAfterCurrentLine): Inserts a newline after the currently selected line. (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey.switchRule): (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey): Pressing shift-tab will move the cursor to the previous non-word character that is immediately after a word character. (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey.switchRule): (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey.highlightNextNameOrValue): (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey): Pressing tab will move the cursor to each space character until the end of the line is reached, at which point the cursor will move to the beginning of the next line. Once the cursor is at the last line, pressing tab again will insert a newline. * UserInterface/Views/RulesStyleDetailsPanel.js: (WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorNextRule): Switches the focused rule to the next section. (WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorPrevRule): Switches the focused rule to the previous section. 2015-06-24 Joseph Pecoraro Web Inspector: console.group looks poor in console https://bugs.webkit.org/show_bug.cgi?id=146295 Reviewed by Timothy Hatcher. * Localizations/en.lproj/localizedStrings.js: String for the default group name if you use console.group() without a name parameter. * UserInterface/Views/LogContentView.css: (.console-group-title::before): Tweak the positioning and eliminate the log level ::before image. * UserInterface/Views/ConsoleMessageView.js: (WebInspector.ConsoleMessageView): Reorder a bit to reduce a couple branches. (WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments): Take a very straightforward approach for group names. 2015-06-24 Devin Rousso Web Inspector: Show warning icon for invalid CSS properties and/or values https://bugs.webkit.org/show_bug.cgi?id=145657 Reviewed by Timothy Hatcher. * UserInterface/Models/CSSCompletions.js: (WebInspector.CSSCompletions.prototype.getClosestPropertyName): Calculates the levenshtein distance between a given property and every existing property name. Returns the property name with the smallest distance or, in the case of multiple properties having the same distance, the first property in alphabetical order. (WebInspector.CSSCompletions.prototype.propertyRequiresWebkitPrefix): Retruns if the property name exists only with a '-webkit-' prefix. (WebInspector.CSSCompletions): * UserInterface/Views/CSSStyleDeclarationTextEditor.css: (.css-style-text-editor > .CodeMirror .CodeMirror-lines .invalid-warning-marker): (.css-style-text-editor > .CodeMirror .CodeMirror-lines .invalid-warning-marker.clickable:hover): * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded.duplicatePropertyExistsBelow): Determines if there exists a property below (visually) the given property that has the same name. (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded.generateInvalidMarker): Creates a warning icon marker at the given position with the given title. (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded.instancesOfProperty): Returns the number of properties in the rule that have the same name. (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): A button with a warning icon is now added to the beginning of an invalid property. If this button is clicked, the property is replaced with the closest matching property and the autocomplete menu is opened. 2015-06-24 Devin Rousso Web Inspector: Background of Computed Styles is missing https://bugs.webkit.org/show_bug.cgi?id=146209 Reviewed by Timothy Hatcher. * UserInterface/Views/ComputedStyleDetailsPanel.css: (.computed-style-properties.details-section): Added white background. 2015-06-24 Joseph Pecoraro Web Inspector: Right/Left arrow no longer works in console to expand/collapse ObjectTrees https://bugs.webkit.org/show_bug.cgi?id=141949 Reviewed by Timothy Hatcher. * UserInterface/Views/ConsoleMessageView.js: (WebInspector.ConsoleMessageView): (WebInspector.ConsoleMessageView.prototype.get expandable): (WebInspector.ConsoleMessageView.prototype.set expandable): Deleted. (WebInspector.ConsoleMessageView.prototype._appendExtraParameters): (WebInspector.ConsoleMessageView.prototype._appendStackTrace): (WebInspector.ConsoleMessageView.prototype._makeExpandable): Clarify what makes a ConsoleMessageView expandable or not. (WebInspector.ConsoleMessageView.prototype.expand): (WebInspector.ConsoleMessageView.prototype.collapse): Handle the expand/collapse cases which could apply to the ConsoleMessageView itself or an inner ObjectTreeView if that is all we contain. (WebInspector.ConsoleMessageView.prototype._formatParameterAsObject): Delete out of date comment. A console.log("message", obj) will want the object tree member variable to handle auto expanding/collapsing of the single object in the message. * UserInterface/Views/LogContentView.js: (WebInspector.LogContentView.prototype._leftArrowWasPressed): (WebInspector.LogContentView.prototype._rightArrowWasPressed): Use the higher level ConsoleMessageView objects accessible from the element to call through to expand/collapse. 2015-06-23 Joseph Pecoraro Web Inspector: Reduce QuickConsole DidResize events if it did not change https://bugs.webkit.org/show_bug.cgi?id=146258 Reviewed by Timothy Hatcher. * UserInterface/Views/QuickConsole.js: (WebInspector.QuickConsole.prototype.consoleLogVisibilityChanged): Do not trigger the event unless there was a change in visibility. 2015-06-23 Joseph Pecoraro Web Inspector: TextEditor scroll position not correctly restored when switching tabs https://bugs.webkit.org/show_bug.cgi?id=146254 Reviewed by Timothy Hatcher. * UserInterface/Views/TextEditor.js: (WebInspector.TextEditor.prototype.updateLayout): Workaround a larger issue with ContentView restoration so that TextEditors restore their scroll position as expected. 2015-06-23 Joseph Pecoraro Web Inspector: Some brief previews are incorrectly treated as lossless https://bugs.webkit.org/show_bug.cgi?id=146247 Reviewed by Timothy Hatcher. * UserInterface/Views/ObjectPreviewView.js: (WebInspector.ObjectPreviewView.prototype._appendEntryPreviews): (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews): When we have a brief preview we may need to override lossless / overflow if the preview view itself shows less properties than were in the preview. 2015-06-23 Matt Baker Web Inspector: Layout & Rendering timeline should show paint and layout records in separate rows https://bugs.webkit.org/show_bug.cgi?id=146119 Reviewed by Timothy Hatcher. This patch makes the original Layout & Rendering timeline visually consistent with the Rendering Frames timeline, which uses green to distinguish Paint from Layout. In order to support having record bars with different colors in the same overview graph, the timeline has been split into two rows. * UserInterface/Views/LayoutTimelineOverviewGraph.css: (.timeline-overview-graph.layout > .graph-row): (.timeline-overview-graph.layout > .graph-row > .timeline-record-bar): (.timeline-overview-graph.layout > .graph-row > .timeline-record-bar > .segment): New row styles. * UserInterface/Views/LayoutTimelineOverviewGraph.js: (WebInspector.LayoutTimelineOverviewGraph.prototype.reset.createRecordRow): (WebInspector.LayoutTimelineOverviewGraph.prototype.reset): (WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout): (WebInspector.LayoutTimelineOverviewGraph.prototype._updateRowLayout.createBar): (WebInspector.LayoutTimelineOverviewGraph.prototype._updateRowLayout): (WebInspector.LayoutTimelineOverviewGraph.prototype._layoutTimelineRecordAdded): (WebInspector.LayoutTimelineOverviewGraph): Deleted. Added bookkeeping objects for timeline row elements and their associated records. * UserInterface/Views/TimelineRecordBar.css: (.timeline-record-bar.timeline-record-type-layout.layout-timeline-record-paint > .segment): New style for layout record event types. * UserInterface/Views/TimelineRecordBar.js: (WebInspector.TimelineRecordBar.prototype.set records): Add style class for eventType, if present. 2015-06-22 Devin Rousso Web Inspector: gaps between sections of the styles sidebar rules tab confusing, should say "Media: all" https://bugs.webkit.org/show_bug.cgi?id=142918 Reviewed by Timothy Hatcher. * UserInterface/Views/RulesStyleDetailsPanel.css: (.sidebar > .panel.details.css-style > .content.filter-in-progress .label:not(.filter-section-non-matching) ~ .label): Now properly adds padding to filtered labels. (.sidebar > .panel.details.css-style > .content.filter-in-progress .label ~ .label): Deleted. * UserInterface/Views/RulesStyleDetailsPanel.js: (WebInspector.RulesStyleDetailsPanel.prototype.refresh): If a section of CSS rules has no media or inheritance, add a label that says "Media: all" above the section. 2015-06-22 Nikita Vasilyev Web Inspector: Consider making read-only style rules have a darker background https://bugs.webkit.org/show_bug.cgi?id=145983 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationSection.css: (.style-declaration-section:not(.locked)): (.style-declaration-section): Deleted. * UserInterface/Views/CSSStyleDeclarationTextEditor.css: (.css-style-text-editor.read-only > .CodeMirror): 2015-06-22 Nikita Vasilyev Web Inspector: Unable to select text of user input messages in the console https://bugs.webkit.org/show_bug.cgi?id=145888 Reviewed by Timothy Hatcher. * UserInterface/Views/ConsoleMessageView.css: (.console-user-command > .console-message-text): 2015-06-20 Nikita Vasilyev Web Inspector: Unable to select parent element in the DOM tree path bar https://bugs.webkit.org/show_bug.cgi?id=145810 Reviewed by Timothy Hatcher. * UserInterface/Views/DOMTreeContentView.js: (WebInspector.DOMTreeContentView.prototype.get selectionPathComponents): * UserInterface/Views/HierarchicalPathComponent.js: (WebInspector.HierarchicalPathComponent.prototype.get selectedPathComponent): (WebInspector.HierarchicalPathComponent.prototype._selectElementMouseUp): (WebInspector.HierarchicalPathComponent.prototype._selectElementSelectionChanged): (WebInspector.HierarchicalPathComponent): (WebInspector.HierarchicalPathComponent.prototype._selectElementMouseDown): Deleted. 2015-06-19 Joseph Pecoraro Web Inspector: Duplication of style attribute in rules panel for shadow content https://bugs.webkit.org/show_bug.cgi?id=146176 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationTextEditor.js: The styleText can be non-empty for a readonly editor if the editor is for the style attribute of a shadow dom node. Instead of assuming it is empty we can just clear the editor ourselves and regenerate from properties. 2015-06-19 Devin Rousso Web Inspector: Highlight currently edited CSS selector https://bugs.webkit.org/show_bug.cgi?id=145658 Reviewed by Joseph Pecoraro. * UserInterface/Views/CSSStyleDeclarationSection.js: (WebInspector.CSSStyleDeclarationSection): Added event listeners on the selector text for mouseover and mouseout. (WebInspector.CSSStyleDeclarationSection.prototype._highlightNodesWithSelector): Selector text mouseover action that highlights all nodes that match the selector string in the corresponding frame. (WebInspector.CSSStyleDeclarationSection.prototype._hideHighlightOnNodesWithSelector): Selector text mouseout action that clears all highlights on matching nodes. * UserInterface/Views/DOMNode.js: (WebInspector.DOMNode): If the payload contains a frameId, then save it. (WebInspector.DOMNode.frameIdentifier): 2015-06-19 Joseph Pecoraro Web Inspector: Overlapping dashboard views causing lots of layers in source view https://bugs.webkit.org/show_bug.cgi?id=146153 Reviewed by Darin Adler. * UserInterface/Views/DashboardContainerView.css: (.toolbar .dashboard:not(.visible)): Hide non-visible dashboard views. The !important is used to override more specific toolbar .dashboard.foo styles. 2015-06-19 Devin Rousso Web Inspector: Make rule icon toggle all properties for that selector on and off https://bugs.webkit.org/show_bug.cgi?id=146031 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationSection.css: (.style-declaration-section > .header > .icon.toggle-able:hover): (.style-declaration-section.rule-disabled > .header > .icon): * UserInterface/Views/CSSStyleDeclarationSection.js: (WebInspector.CSSStyleDeclarationSection): Added event listener to selector icon to toggle commenting of all properties for that rule. (WebInspector.CSSStyleDeclarationSection.prototype._toggleRuleOnOff): Adds or removes comments to all properties for that rule. * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor.prototype.uncommentAllProperties.uncommentProperties): (WebInspector.CSSStyleDeclarationTextEditor.prototype.uncommentAllProperties): Uncomments all properties. (WebInspector.CSSStyleDeclarationTextEditor.prototype.commentAllProperties): Comments out all properties. (WebInspector.CSSStyleDeclarationTextEditor.prototype._propertyCheckboxChanged): Moved comment logic to its own function. (WebInspector.CSSStyleDeclarationTextEditor.prototype._propertyCommentCheckboxChanged): Moved uncomment logic to its own function. 2015-06-19 Jon Lee Update font and font-family keyword completions https://bugs.webkit.org/show_bug.cgi?id=144558 Reviewed by Timothy Hatcher. * UserInterface/Models/CSSKeywordCompletions.js: Replace -webkit-system-font and -apple-system-font with -apple-system, which is the recommended token for getting the system font. Also add -title{1,2,3} for font, as they were missing, but already exist in font-family. 2015-06-19 Joseph Pecoraro Web Inspector: Avoid getOwnPropertyNames/Symbols on very large lists https://bugs.webkit.org/show_bug.cgi?id=146141 Reviewed by Timothy Hatcher. * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js: (WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded): When building completions for a large array, instead of building a list of all the indices just send a single number back to the frontend and let it generate a list for completion. We should do even better and avoid building a lookup table here for completion of an index. 2015-06-18 Matt Baker Web Inspector: Rendering Frames timeline selection should snap to frame boundaries https://bugs.webkit.org/show_bug.cgi?id=146120 Reviewed by Timothy Hatcher. * UserInterface/Views/RenderingFrameTimelineOverview.js: Enable snapping to frame boundaries. * UserInterface/Views/TimelineRecordingContentView.js: (WebInspector.TimelineRecordingContentView.prototype._updateFrameSelection): Updated filtering to account for ruler snapping. * UserInterface/Views/TimelineRuler.js: (WebInspector.TimelineRuler.prototype.get snapInterval): (WebInspector.TimelineRuler.prototype.set snapInterval): (WebInspector.TimelineRuler.prototype.set selectionStartTime): (WebInspector.TimelineRuler.prototype.set selectionEndTime): (WebInspector.TimelineRuler.prototype._snapValue): (WebInspector.TimelineRuler.prototype._handleMouseMove): Added support for snapping to a specified interval. * UserInterface/Views/TimelineSidebarPanel.js: Removed unnecessary code. 2015-06-18 Devin Rousso Web Inspector: Add a filter for CSS properties in the Styles sidebar https://bugs.webkit.org/show_bug.cgi?id=145536 Reviewed by Timothy Hatcher. * UserInterface/Base/Utilities.js: Added function to Strings that returns an array of all matching indexes of a given string. (.value): * UserInterface/Views/CSSStyleDeclarationSection.js: (WebInspector.CSSStyleDeclarationSection): (WebInspector.CSSStyleDeclarationSection.prototype.refresh.appendSelector): (WebInspector.CSSStyleDeclarationSection.prototype.findMatchingPropertiesAndSelectors): Loops through the property list and selectors of each section to find matches to the filtered text. * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor.prototype.findMatchingProperties): Searches through the properties list to find and highlight all matching properties. (WebInspector.CSSStyleDeclarationTextEditor.prototype.removeNonMatchingProperties): Removes all properties that do not match and highlights the specific matched text in matching properties. (WebInspector.CSSStyleDeclarationTextEditor.prototype.resetFilteredProperties): Restores all properties to full visibility and removes any highlighting. (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): Classes are added to selections of the text editor of that partiular selection contains text which matches the filter (see CSSStyleDetailsSidebarPanel.css for different classes). (WebInspector.CSSStyleDeclarationTextEditor.prototype._iterateOverProperties): If a filter is active, find properties matching the filter instead of all properties. * UserInterface/Views/CSSStyleDetailsSidebarPanel.css: (.sidebar > .panel.details.css-style > .content.has-filter-bar + .filter-bar): (.sidebar > .panel.details.css-style > .content:not(.has-filter-bar) + .filter-bar): * UserInterface/Views/CSSStyleDetailsSidebarPanel.js: (WebInspector.CSSStyleDetailsSidebarPanel): Added a filter bar to the CSS sidebar. (WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels): Switching panels preserves and applies filter bar text. (WebInspector.CSSStyleDetailsSidebarPanel.prototype._filterDidChange): Function called when the filter bar text changes that calls the current panel's filterDidChange function if it exists. * UserInterface/Views/FilterBar.js: Added function and variable to check if the text in the filter bar had changed. * UserInterface/Views/MetricsStyleDetailsPanel.js: (WebInspector.MetricsStyleDetailsPanel.prototype.refresh): Now calls superclass refresh. (WebInspector.MetricsStyleDetailsPanel): Added delegate variable to constructor. * UserInterface/Views/RulesStyleDetailsPanel.css: (.sidebar > .panel.details.css-style > .content.filter-in-progress .label): (.sidebar > .panel.details.css-style > .content.filter-in-progress .label ~ .label): (.sidebar > .panel.details.css-style > .content.filter-in-progress .label.filter-matching-label): (.sidebar > .panel.details.css-style > .content.filter-in-progress .new-rule): (.sidebar > .panel.details.css-style > .content.filter-in-progress .style-declaration-section:not(.filter-section-non-matching) ~ .label:not(.filter-section-non-matching)): (.sidebar > .panel.details.css-style > .content:not(.filter-in-progress) > .rules > .new-rule + .style-declaration-section): (.sidebar > .panel.details.css-style > .content > .rules:not(.filter-non-matching) > .no-filter-results): (.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules.filter-non-matching > .no-filter-results): (.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules.filter-non-matching > .no-filter-results > .no-filter-results-message): * UserInterface/Views/RulesStyleDetailsPanel.js: (WebInspector.RulesStyleDetailsPanel): Added delegate variable to constructor. (WebInspector.RulesStyleDetailsPanel.prototype.refresh): Now calls superclass refresh. (WebInspector.RulesStyleDetailsPanel.prototype.filterDidChange): Function to search through the computed styles list and highlight all matched properties and selectors of the filter bar text, turning all non matching properties slightly opaque (unless a selector for that property is a match). (WebInspector.StyleDetailsPanel): Added delegate variable to constructor. (WebInspector.StyleDetailsPanel.prototype.refresh): Added event dispatch for panel refresh. 2015-06-18 Devin Rousso Web Inspector: Ability to Copy entire CSS Rule from Styles Sidebar https://bugs.webkit.org/show_bug.cgi?id=138812 Reviewed by Timothy Hatcher. * Localizations/en.lproj/localizedStrings.js: * UserInterface/Views/CSSStyleDeclarationSection.js: (WebInspector.CSSStyleDeclarationSection): Right clicking on the header of a rule will replcae the default context menu to allow copying of the entire rule to the clipboard. (WebInspector.CSSStyleDeclarationSection.prototype._handleContextMenuEvent): Creates a new context menu to copy the entire CSS rule. (WebInspector.CSSStyleDeclarationSection.prototype._generateCSSRuleString): Generates a string representing the formatted CSS rule. 2015-06-18 Joseph Pecoraro Web Inspector: Improve a few more node preview types https://bugs.webkit.org/show_bug.cgi?id=146048 Reviewed by Timothy Hatcher. * UserInterface/Views/FormattedValue.js: (WebInspector.FormattedValue.createElementForNodePreview): 2015-06-18 Devin Rousso Web Inspector: New Rule button doesn't reveal the newly added rule if not visible upon creation https://bugs.webkit.org/show_bug.cgi?id=117600 Reviewed by Timothy Hatcher. * UserInterface/Views/RulesStyleDetailsPanel.js: Made previousFocusedSection into a member variable of the RulesStyleDetailsPanel. This way, when the nodeStyles is refreshed (when a new rule is added), the previousFocusedSection will be scrolled into view. (WebInspector.RulesStyleDetailsPanel): (WebInspector.RulesStyleDetailsPanel.prototype.refresh.appendStyleSection): (WebInspector.RulesStyleDetailsPanel.prototype.nodeStylesRefreshed): (WebInspector.RulesStyleDetailsPanel.prototype.refresh): Deleted. 2015-06-18 Commit Queue Unreviewed, rolling out r185671. https://bugs.webkit.org/show_bug.cgi?id=146114 Caused frequent flaky failures on profiler tests (Requested by ap on #webkit). Reverted changeset: "Web Inspector: Improve a few more node preview types" https://bugs.webkit.org/show_bug.cgi?id=146048 http://trac.webkit.org/changeset/185671 2015-06-17 Joseph Pecoraro Web Inspector: Improve a few more node preview types https://bugs.webkit.org/show_bug.cgi?id=146048 Reviewed by Timothy Hatcher. * UserInterface/Views/FormattedValue.js: (WebInspector.FormattedValue.createElementForNodePreview): 2015-06-17 Diego Pino Garcia Web Inspector: Show/Hide sidebar buttons have inconsistent highlighted state https://bugs.webkit.org/show_bug.cgi?id=145073 Reviewed by Joseph Pecoraro. * UserInterface/Views/ContentBrowserTabContentView.js: (WebInspector.ContentBrowserTabContentView.prototype._detailsSidebarPanelSelected): 2015-06-16 Joseph Pecoraro Web Inspector: Inspector Scripts evaluated in the page should not be searchable https://bugs.webkit.org/show_bug.cgi?id=146040 Reviewed by Darin Adler. Any script with a __WebInspector source URL will be hidden by the tools. There were a number of ways the inspector could evaluate script on the page without getting the sourceURL and therefore not getting hidden. Audit all cases of Runtime.evaluate, Runtime.callFunctionOn, and Debugger.evaluateOnCallFrame, to ensure we have an appropriate source URL. * UserInterface/Base/Utilities.js: (appendWebInspectorSourceURL): Helper to append a __WebInspectorInternal__ sourceURL to a string that may be evaluated directly on the inspected context. * UserInterface/Controllers/DOMTreeManager.js: (WebInspector.DOMTreeManager.domNodeResolved): * UserInterface/Controllers/JavaScriptLogViewController.js: (WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted): Deleted. * UserInterface/Controllers/RuntimeManager.js: * UserInterface/Models/DOMTree.js: (WebInspector.DOMTree.prototype._requestRootDOMNode): * UserInterface/Protocol/RemoteObject.js: (WebInspector.RemoteObject.): * UserInterface/Views/SourceCodeTextEditor.js: (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression): Ensure all cases that evaluate directly on the inspected page / context have the intenral source URL. 2015-06-16 Matt Baker Web Inspector: REGRESSION (r171645): up/down key navigation of timeline sidebar tree elements is broken when scope bar filters are applied https://bugs.webkit.org/show_bug.cgi?id=142315 Reviewed by Timothy Hatcher. TreeOutline's element traversal algorithms have been rewritten to correctly skip over unrevealed tree elements. Previously traversal would halt after encountering a hidden element. We now use an iterative approach, with each iteration producing the next (or previous) element, with respect to the last candidate element. Iteration begins with the current node, and halts once a valid element is found or candidate elements are exhausted. * UserInterface/Views/TreeOutline.js: (WebInspector.TreeElement.prototype.traverseNextTreeElement.shouldSkip): (WebInspector.TreeElement.prototype.traverseNextTreeElement): (WebInspector.TreeElement.prototype.traversePreviousTreeElement.shouldSkip): (WebInspector.TreeElement.prototype.traversePreviousTreeElement): 2015-06-15 Joseph Pecoraro Web Inspector: Stylize Node Previews https://bugs.webkit.org/show_bug.cgi?id=145990 Reviewed by Timothy Hatcher. * UserInterface/Views/FormattedValue.js: (WebInspector.FormattedValue.createElementForNodePreview): Style a node preview like a DOMNode. It is a simple small snippet. * UserInterface/Views/ObjectPreviewView.js: (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews): Use node previews in ObjectPreviewViews. 2015-06-15 Joseph Pecoraro Web Inspector: Improve some cases of "Object?" Type Annotations https://bugs.webkit.org/show_bug.cgi?id=145954 Reviewed by Timothy Hatcher. * UserInterface/Views/TypeTokenView.js: (WebInspector.TypeTokenView.prototype._displayTypeName): The TypeSet inclusions cover all types, so we can use the leastCommonAncestor name as long as the type set is just object or object and null/undefined. If the typeset includes other primitives then it will gracefully go down below to become something like Object or (many). 2015-06-14 Andres Gomez [GTK] Web Inspector: Update icon so Rendering Frames timeline distinguish between layout and painting https://bugs.webkit.org/show_bug.cgi?id=145956 Reviewed by Carlos Garcia Campos. * UserInterface/Images/gtk/TimelineRecordPaint.svg: Changed to use green color. 2015-06-13 Joseph Pecoraro Web Inspector: console.table() with a list of objects no longer works https://bugs.webkit.org/show_bug.cgi?id=145952 Reviewed by Timothy Hatcher. * UserInterface/Views/ConsoleMessageView.js: (WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments): (WebInspector.ConsoleMessageView.prototype._formatParameterAsTable): Don't allow expanding a cosole.table message, and don't output the total object even if the table preview was lossless, as the experience is poor. 2015-06-11 Joseph Pecoraro Web Inspector: CSS Regions not displaying DOM Trees in inspector https://bugs.webkit.org/show_bug.cgi?id=145903 Reviewed by Timothy Hatcher. * UserInterface/Controllers/DOMTreeManager.js: (WebInspector.DOMTreeManager.prototype._updateContentFlowFromPayload): Fix function inside the assertion to actually return a value. * UserInterface/Views/DOMTreeOutline.js: (WebInspector.DOMTreeOutline.prototype.update): For DOMTreeOutlines without a root node, don't clear the tree on updates, since that will clear the nodes that have already been added explicitly. * UserInterface/Views/ResourceSidebarPanel.js: (WebInspector.ResourceSidebarPanel.prototype._treeElementSelected): * UserInterface/Views/ResourcesTabContentView.js: (WebInspector.ResourcesTabContentView.prototype.canShowRepresentedObject): ResourceTab and sidebar can deal with ContentFlow related views. 2015-06-11 Joseph Pecoraro Web Inspector: IndexedDB data not showing for MDN example page https://bugs.webkit.org/show_bug.cgi?id=145851 Reviewed by Anders Carlsson. * UserInterface/Views/StorageSidebarPanel.js: (WebInspector.StorageSidebarPanel.prototype._indexedDatabaseWasAdded): Fix typo in Storage tab refactoring that was causing an uncaught exception and not showing Indexed DBs. 2015-06-11 Devin Rousso Web Inspector: font-family names interpreted as color https://bugs.webkit.org/show_bug.cgi?id=123468 Reviewed by Timothy Hatcher. * UserInterface/Views/CodeMirrorAdditions.js: Added logic to prevent color picker buttons from appearing before colors that come after a quote character (both " and '). 2015-06-11 Matt Baker Web Inspector: Rendering Frames timeline should distinguish between layout and painting https://bugs.webkit.org/show_bug.cgi?id=145856 Reviewed by Timothy Hatcher. This patch formalizes the runloop task concept in the frontend, adds new Paint task type to the Rendering Frames timeline, and reorders UI elements such as chart sections and frame "segments" to match the order in which tasks are executed within the runloop. We will need to make UI changes to the standard Timelines view in a follow up patch, since tree element icons for Paint records now use a different color that those of other Layout records. * UserInterface/Images/TimelineRecordPaint.svg: Changed to use green color. * UserInterface/Models/RenderingFrameTimelineRecord.js: (WebInspector.RenderingFrameTimelineRecord): (WebInspector.RenderingFrameTimelineRecord.displayNameForTaskType): (WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask.get validRecordForTaskType): (WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask.set return): (WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask): (WebInspector.RenderingFrameTimelineRecord.prototype.get durationRemainder): Deleted. (WebInspector.RenderingFrameTimelineRecord.prototype.durationForRecords.get var): Deleted. Added TaskType enum to decouple runloop task types from timeline record types, and removed duration remainder support now that "Other" has an associated task type. * UserInterface/Views/RenderingFrameTimelineDataGridNode.js: (WebInspector.RenderingFrameTimelineDataGridNode.prototype.get data): (WebInspector.RenderingFrameTimelineDataGridNode.prototype.createCellContent): * UserInterface/Views/RenderingFrameTimelineView.js: (WebInspector.RenderingFrameTimelineView): Added new grid column for Paint task, reordered columns to be consistent with the rest of the UI. * UserInterface/Views/TimelineRecordFrame.css: (.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-script): (.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-layout): (.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-paint): (.timeline-record-frame > .frame > .duration): Deleted. (.timeline-record-frame > .frame > .duration.timeline-record-type-network): Deleted. (.timeline-record-frame > .frame > .duration.timeline-record-type-layout): Deleted. (.timeline-record-frame > .frame > .duration.timeline-record-type-script): Deleted. Updated styles for Render Frame tasks. * UserInterface/Views/TimelineRecordFrame.js: (WebInspector.TimelineRecordFrame.prototype._updateChildElements.createDurationElement): Updated to use Render Frame task types. Frame segment insertion order is now consistent with the rest of the UI. * UserInterface/Views/TimelineSidebarPanel.js: (WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.chartData.Object.keys.map): (WebInspector.TimelineSidebarPanel.set this): (WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.get this): (WebInspector.TimelineSidebarPanel): Deleted. (WebInspector.TimelineSidebarPanel.prototype._refreshFrameSelectionChart.durationForRecordType): Deleted. (WebInspector.TimelineSidebarPanel.prototype._refreshFrameSelectionChart): Deleted. Updated to use Render Frame task types. 2015-06-11 Matt Baker Web Inspector: Wrong overview graph shown after switching from Frames to Timelines https://bugs.webkit.org/show_bug.cgi?id=145778 Reviewed by Timothy Hatcher. TimelineSidebarPanel stores a reference to the selected timeline before switching to the Rendering Frames view, which is used to restore the tree selection, overview graph, and content views when switching back to the standard Timelines view. However if another recording is created before switching, the previously selected timeline tracked by the sidebar cannot be restored, since it doesn't belong to the active recording. This is addressed by storing the previously selected timeline type, rather than the timeline object itself. The type is also updated whenever the selected timeline in the tree outline changes, ensuring that the correct timeline will always be restored. * UserInterface/Views/TimelineSidebarPanel.js: (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if.get if): (WebInspector.TimelineSidebarPanel.get else): Deleted. (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if): Deleted. (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject): Deleted. 2015-06-08 Matt Baker Web Inspector: Clearing active Timeline recording should stop capturing https://bugs.webkit.org/show_bug.cgi?id=145767 Reviewed by Joseph Pecoraro. * UserInterface/Views/TimelineRecordingContentView.js: (WebInspector.TimelineRecordingContentView.prototype._clearTimeline): Stop capturing if necessary. 2015-06-07 Tobias Reiss Web Inspector: Add PrettyPrinter CSSRule tests https://bugs.webkit.org/show_bug.cgi?id=145740 Reviewed by Brian Burg. * Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-colon-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-colon.css: Added. * Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-comma-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-comma.css: Added. * Tools/PrettyPrinting/css-rule-tests/do-not-append-semicolon-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/do-not-append-semicolon.css: Added. * Tools/PrettyPrinting/css-rule-tests/invalid-property-is-not-removed-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/invalid-property-is-not-removed.css: Added. * Tools/PrettyPrinting/css-rule-tests/keep-prefixed-value-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/keep-prefixed-value.css: Added. * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-colon-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-colon.css: Added. * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-comment-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-comment.css: Added. * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-invalid-property-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-invalid-property.css: Added. * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-prefixed-property-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-prefixed-property.css: Added. * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-property-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-property.css: Added. * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-semicolon-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-semicolon.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-comment-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-comment.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-invalid-property-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-invalid-property.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-prefixed-property-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-prefixed-property.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-property-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-property.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-comment-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-comment.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-invalid-property-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-invalid-property.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-prefixed-property-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-prefixed-property.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-property-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-property.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-comment-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-comment.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-invalid-property-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-invalid-property.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-prefixed-property-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-prefixed-property.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-property-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-property.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-property-without-semicolon-followed-by-comment-and-property-expected.css: Added. * Tools/PrettyPrinting/css-rule-tests/split-property-without-semicolon-followed-by-comment-and-property.css: Added. 2015-06-05 Devin Rousso Web Inspector: Fixing code style and adding more limitations for bug 141262 https://bugs.webkit.org/show_bug.cgi?id=145668 Reviewed by Timothy Hatcher. * UserInterface/Models/CSSCompletions.js: (WebInspector.CSSCompletions.prototype.isValidPropertyName): Loops through the full property list and returns true only if a property exactly matches the given property name. (WebInspector.CSSCompletions): Added isValidPropertyName function. * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): Added logic to limit the invalid class marker to only the property value if the property name is an actual property and to prevent invalid style from being applied incorrectly. 2015-06-05 Devin Rousso Web Inspector: Highlighting a CSS section does not deselect previously highlighted CSS sections https://bugs.webkit.org/show_bug.cgi?id=145399 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationSection.js: (WebInspector.CSSStyleDeclarationSection): Added delegate variable to constructor. (WebInspector.CSSStyleDeclarationSection.prototype.clearSelection): (WebInspector.CSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorFocused): * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor): Added event listener to codeMirror on "focus". (WebInspector.CSSStyleDeclarationTextEditor.prototype.clearSelection): Sets the cursor of the codeMirror to character 0 on line 0. (WebInspector.CSSStyleDeclarationTextEditor.prototype._editorFocused): Function that calls the delegate function "editorFocused" when the codeMirror is focused * UserInterface/Views/RulesStyleDetailsPanel.js: (WebInspector.RulesStyleDetailsPanel.prototype.refresh.appendStyleSection): (WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorFocused): Loops through all sections except for the ignoredSection (parameter) and clears the selected text in each of them. 2015-06-05 Joseph Pecoraro REGRESSION (r185213): TypeError: undefined is not an object (evaluating 'WebInspector.clearLogOnReload.value') https://bugs.webkit.org/show_bug.cgi?id=145695 Reviewed by Mark Lam. Move and rename the clear log on reload setting property from WebInspector (Main.js) to LogManager (shared with tests). * UserInterface/Base/Main.js: (WebInspector.loaded): Deleted. * UserInterface/Controllers/LogManager.js: (WebInspector.LogManager): (WebInspector.LogManager.prototype._delayedMessagesCleared): * UserInterface/Views/LogContentView.js: (WebInspector.LogContentView.prototype._sessionStarted): (WebInspector.LogContentView.prototype._handleContextMenuEvent): (WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting): 2015-06-05 Nikita Vasilyev Web Inspector: [REGRESSION] Dashboard's resource count does not reset when main resource navigates https://bugs.webkit.org/show_bug.cgi?id=144553 Add missing _mainResourceDidChange, which was removed after switching to the tabs UI. Reviewed by Timothy Hatcher. * UserInterface/Models/DefaultDashboard.js: (WebInspector.DefaultDashboard): _waitingForFirstMainResourceToStartTrackingSize is not used anywhere, remove it. (WebInspector.DefaultDashboard.prototype._mainResourceDidChange): Added. (WebInspector.DefaultDashboard.prototype._resourceSizeDidChange): Removed. Unused. 2015-06-05 Matt Baker Web Inspector: Switch to doughnut chart and remove idle time in the Rendering Frames timeline https://bugs.webkit.org/show_bug.cgi?id=145671 Reviewed by Timothy Hatcher. * Localizations/en.lproj/localizedStrings.js: "Idle" string no longer used. * UserInterface/Views/TimelineRecordFrame.js: Reduced maximum frame width by 2px. * UserInterface/Views/TimelineSidebarPanel.js: (WebInspector.TimelineSidebarPanel): (WebInspector.TimelineSidebarPanel.prototype._refreshFrameSelectionChart): Added inner radius to chart and removed "Idle" value. 2015-06-04 Joseph Pecoraro Web Inspector: Class constructor appearing as Object Tree property does not include parameters https://bugs.webkit.org/show_bug.cgi?id=145661 Reviewed by Timothy Hatcher. * UserInterface/Protocol/RemoteObject.js: (WebInspector.RemoteObject): (WebInspector.RemoteObject.fromPrimitiveValue): (WebInspector.RemoteObject.fromPayload): (WebInspector.RemoteObject.prototype.get functionDescription): Include the className as only use it for "class" types to override the normal description string. Stash the actual function description in a property we can access later. * UserInterface/Views/ObjectTreePropertyTreeElement.js: (WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString): Even if this property is a "class" we want to specifically parse it's function description string. So use functionDescription. 2015-06-04 Nikita Vasilyev Web Inspector: Close and open tabs on mouseup, not mousedown https://bugs.webkit.org/show_bug.cgi?id=145656 Match Safari's behaviour. Reviewed by Timothy Hatcher. * UserInterface/Views/TabBar.js: (WebInspector.TabBar): (WebInspector.TabBar.prototype.set newTabItem): (WebInspector.TabBar.prototype._handleMouseDown): (WebInspector.TabBar.prototype._handleClick): Added. (WebInspector.TabBar.prototype._handleMouseUp): (WebInspector.TabBar.prototype._handleNewTabClick): Added. (WebInspector.TabBar.prototype._handleMouseMoved): 2015-06-04 Nikita Vasilyev Web Inspector: Decrease tabs height to match Safari's tabs height https://bugs.webkit.org/show_bug.cgi?id=145647 Reviewed by Timothy Hatcher. * UserInterface/Views/TabBar.css: (.tab-bar): 2015-06-04 Tobias Reiss Web Inspector: Activity Viewer does not update on "Clear Log on reload" https://bugs.webkit.org/show_bug.cgi?id=145466 Reviewed by Joseph Pecoraro. 1. Isolate logic within LogManager and remove hacks/logic from all other files 2. Within LogManager: Differentiate "messagesCleared" calls a) that happen as a result of a "requested clear" by Frontend (e.g. Button) b) that happen on page reload and install "clear/keep-on-page-reload" logic c) that happen on frame navigated, console.clear() or clear() 3. Unify "ActiveLogCleared" and "Cleared" events to "Cleared" For step 2b and 2c it is important to delay the handling and wait until "_mainResourceDidChange" has determined whether a page reload happened or not. * UserInterface/Base/Main.js: (WebInspector.loaded): Store "clear-log-on-reload" setting globally. * UserInterface/Controllers/IssueManager.js: (WebInspector.IssueManager): * UserInterface/Models/DefaultDashboard.js: (WebInspector.DefaultDashboard): Deleted. * UserInterface/Views/ObjectTreeView.js: (WebInspector.ObjectTreeView.prototype._trackWeakEntries): Deleted. (WebInspector.ObjectTreeView.prototype._untrackWeakEntries): Deleted. (WebInspector.ObjectTreeView): Deleted. Remove deleted events. * UserInterface/Controllers/JavaScriptLogViewController.js: (WebInspector.JavaScriptLogViewController.prototype._handleClearShortcut): (WebInspector.JavaScriptLogViewController.prototype.clear): Deleted. Remove delegate function call and call LogManager directly. * UserInterface/Controllers/LogManager.js: (WebInspector.LogManager): (WebInspector.LogManager.prototype.messagesCleared): (WebInspector.LogManager.prototype._delayedMessagesCleared): (WebInspector.LogManager.prototype.requestClearMessages): (WebInspector.LogManager.prototype._mainResourceDidChange): Isolate "clear log" logic, especially clear/keep-log-on-reload logic. * UserInterface/Views/LogContentView.js: (WebInspector.LogContentView): (WebInspector.LogContentView.prototype._sessionStarted): (WebInspector.LogContentView.prototype._handleContextMenuEvent): (WebInspector.LogContentView.prototype._logCleared): (WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting): (WebInspector.LogContentView.prototype._clearLog): (WebInspector.LogContentView.prototype.didClearMessages): Deleted. (WebInspector.LogContentView.prototype._sessionsCleared): Deleted. (WebInspector.LogContentView.prototype._activeLogCleared): Deleted. (WebInspector.LogContentView.prototype._clearLogIgnoringClearMessages): Deleted. Make it a consumer of LogManager and remove special hacks. Simplify code. 2015-06-03 Devin Rousso Web Inspector: if a known CSS property has an unsupported value, only strikethrough the value https://bugs.webkit.org/show_bug.cgi?id=141262 Reviewed by Timothy Hatcher. * UserInterface/Models/CSSCompletions.js: (WebInspector.CSSCompletions.prototype.nameMatchesValidPropertyExactly): Loops through the full property list and returns true only if a property exactly matches the given property name. (WebInspector.CSSCompletions): Added nameMatchesValidPropertyExactly function. * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): Added logic to limit the invalid class marker to only the property value if the property name is an actual property. 2015-06-03 Nikita Vasilyev Web Inspector: Search field bottom border doesn't match the rest of the toolbar https://bugs.webkit.org/show_bug.cgi?id=145611 Reviewed by Timothy Hatcher. * UserInterface/Views/Toolbar.css: (body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]): 2015-06-03 Joseph Pecoraro Web Inspector: Uncaught exception starting a NavigationBar drag and mousing over a different NavigationBar https://bugs.webkit.org/show_bug.cgi?id=145589 Reviewed by Timothy Hatcher. * UserInterface/Views/NavigationBar.js: (WebInspector.NavigationBar.prototype._mouseDown): (WebInspector.NavigationBar.prototype._mouseUp): When mouse dragging for navigation bars, only match against navigation bar items inside this navigation bar. Also, fix horizontal detection of navigation bar items by scanning in the middle of the navigation bar instead of the top, which missed the items. 2015-06-03 Joseph Pecoraro Web Inspector: Debugger Popover for Node object should have go-to-arrow to show the node in DOM tree https://bugs.webkit.org/show_bug.cgi?id=145594 Reviewed by Timothy Hatcher. * UserInterface/Controllers/DOMTreeManager.js: (WebInspector.DOMTreeManager.prototype.inspectElement): Previously we could get an exception later on if we tried to inspect an element that was not in the DOM. Bail if the node is not in the DOM or not. * UserInterface/Views/SourceCodeTextEditor.css: (.popover .debugger-popover-content > .title > .go-to-arrow): * UserInterface/Views/SourceCodeTextEditor.js: (WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject.data.pushNodeToFrontend): (WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject): For a node type, add a go-to-arrow in the popover if it is in the DOM or not. 2015-06-02 Joseph Pecoraro Web Inspector: Remove uses of delete in Sidebar related code https://bugs.webkit.org/show_bug.cgi?id=145592 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDetailsSidebarPanel.js: (WebInspector.CSSStyleDetailsSidebarPanel.prototype.refresh): Clear value instead of deleting. * UserInterface/Views/SearchSidebarPanel.js: (WebInspector.SearchSidebarPanel.prototype.performSearch): Just clear the search identifier. Also assert it (a required string) is always non-falsey. * UserInterface/Views/Sidebar.js: (WebInspector.Sidebar.prototype.resizerDragEnded): Deleted. This entire callback is unnecessary because whenever we start a drag we save the value. 2015-06-02 Joseph Pecoraro Web Inspector: Sidebar and sometimes ContentView scroll position is lost when switching between tabs https://bugs.webkit.org/show_bug.cgi?id=145591 Reviewed by Timothy Hatcher. * UserInterface/Views/Sidebar.js: (WebInspector.Sidebar.prototype.removeSidebarPanel): When removing a sidebar panel, ensure we call hidden if it was the visible panel. * UserInterface/Views/SidebarPanel.js: (WebInspector.SidebarPanel): (WebInspector.SidebarPanel.prototype.shown): (WebInspector.SidebarPanel.prototype.hidden): Save and restore content element scroll position when sidebar panels are shown / hidden. * UserInterface/Views/CSSStyleDetailsSidebarPanel.js: (WebInspector.CSSStyleDetailsSidebarPanel.prototype.visibilityDidChange): * UserInterface/Views/ComputedStyleDetailsPanel.js: (WebInspector.ComputedStyleDetailsPanel.prototype.shown): * UserInterface/Views/DetailsSidebarPanel.js: (WebInspector.DetailsSidebarPanel.prototype.shown): * UserInterface/Views/LayerTreeDetailsSidebarPanel.js: (WebInspector.LayerTreeDetailsSidebarPanel.prototype.shown): (WebInspector.LayerTreeDetailsSidebarPanel.prototype.hidden): Cleanup. Since sidebar panels are using ES6 classes, have super class calls use `super`! 2015-06-02 Nikita Vasilyev Web Inspector: Use non-monospace font for the frame selector https://bugs.webkit.org/show_bug.cgi?id=145586 Reviewed by Timothy Hatcher. * UserInterface/Views/HierarchicalPathComponent.css: (.hierarchical-path-component): 2015-06-02 Nikita Vasilyev Web Inspector: Dashboard arrow icon on the right is overlapped by a long function/file name https://bugs.webkit.org/show_bug.cgi?id=145540 Also, increase clickable area of the arrow icon. Reviewed by Timothy Hatcher. * UserInterface/Views/DashboardContainerView.css: (.dashboard-container .advance-arrow): (.dashboard-container .advance-arrow.advance-forward): (.dashboard-container .advance-arrow.advance-backward): * UserInterface/Views/DebuggerDashboardView.css: (.dashboard.debugger > .location): (.toolbar .dashboard.debugger): Increase padding on the right so the content of the dashboard would be never be overlayed by the arrow. 2015-06-02 Joseph Pecoraro Web Inspector: Shift + Cmd + Left/Right shouldn't switch tabs while editing text https://bugs.webkit.org/show_bug.cgi?id=145562 Reviewed by Timothy Hatcher. * UserInterface/Views/TabBrowser.js: (WebInspector.TabBrowser): Only these keyboard shortcuts should check if we are in an editable field. Remove the implicit prevent default so they can fall back to system behavior if necessary. (WebInspector.TabBrowser.prototype._showNextTabCheckingForEditableField): (WebInspector.TabBrowser.prototype._showPreviousTabCheckingForEditableField): Bail if we are in an editable field. Otherwise perform the action and prevent default. 2015-06-02 Joseph Pecoraro Web Inspector: ⌘F no longer brings up the find-in-page bar after typing in the quick console https://bugs.webkit.org/show_bug.cgi?id=145546 Reviewed by Timothy Hatcher. Scope ContentBrowser keyboard events within the ContentBrowser instead of global, where they might conflict between ContentBrowsers. The scoped shortcuts now no longer need to be enabled/disabled. * UserInterface/Views/ContentBrowser.js: (WebInspector.ContentBrowser): Scope the keyboard shortcuts. (WebInspector.ContentBrowser.prototype.shown): (WebInspector.ContentBrowser.prototype.hidden): No longer need to control enabling / disabling these non-global shortcuts. 2015-06-01 Jono Wells Web Inspector: Type token text descenders touch bottom of container https://bugs.webkit.org/show_bug.cgi?id=145544 Reviewed by Timothy Hatcher. Move 1px padding from top to bottom of token. * UserInterface/Views/TypeTokenView.css: (.type-token): 2015-06-01 Joseph Pecoraro Web Inspector: Better handle keyboard events in the quick console prompt https://bugs.webkit.org/show_bug.cgi?id=145548 Reviewed by Timothy Hatcher. * UserInterface/Base/Main.js: (WebInspector.saveDataToFile): Move generic InspectorFrontendHost code here. * UserInterface/Views/ContentBrowser.js: (WebInspector.ContentBrowser.prototype._save): (WebInspector.ContentBrowser.prototype._saveAs): (WebInspector.ContentBrowser.prototype._saveDataToFile): Deleted. Use the generic save code. * UserInterface/Controllers/JavaScriptLogViewController.js: (WebInspector.JavaScriptLogViewController): (WebInspector.JavaScriptLogViewController.prototype._save): (WebInspector.JavaScriptLogViewController.prototype._saveAs): Handle save keyboard shortcuts while the prompt is focused. * UserInterface/Views/LogContentView.js: (WebInspector.LogContentView.prototype.focusSearchBar): (WebInspector.LogContentView.prototype.save): (WebInspector.LogContentView.prototype.saveAs): Better handle keyboard shortcut cases in the console prompt for cases like a collapsed or split console view. 2015-06-01 Nikita Vasilyev Web Inspector: Pause/resume button in the debugger dashboard is vertically misaligned https://bugs.webkit.org/show_bug.cgi?id=145534 Reviewed by Timothy Hatcher. * UserInterface/Views/ButtonNavigationItem.css: (.navigation-bar .item.button.suppress-emboss): Never show borders for the pause/resume button. * UserInterface/Views/DebuggerDashboardView.css: (.dashboard.debugger .navigation-bar .item.button): 2015-05-31 Yusuke Suzuki Web Inspector: Drop forEach from WeakMap / WeakSet native member function maps https://bugs.webkit.org/show_bug.cgi?id=145497 Reviewed by Sam Weinig. WeakMap / WeakSet don't have forEach method. This patch drops it from the native prototype function parameters map. * UserInterface/Models/NativeFunctionParameters.js: 2015-05-29 Timothy Hatcher Web Inspector: Resources tab navigation sidebar should have a type filter header https://bugs.webkit.org/show_bug.cgi?id=145474 Reviewed by Joseph Pecoraro. * Localizations/en.lproj/localizedStrings.js: Updated. * UserInterface/Images/UpDownArrows.svg: Make styleable. * UserInterface/Main.html: Added new files. * UserInterface/Views/LogContentView.js: (WebInspector.LogContentView): Drive-by fix. Mark All as exclusive. * UserInterface/Views/MultipleScopeBarItem.js: Added. (WebInspector.MultipleScopeBarItem): (WebInspector.MultipleScopeBarItem.prototype.get element): (WebInspector.MultipleScopeBarItem.prototype.get exclusive): (WebInspector.MultipleScopeBarItem.prototype.get scopeBarItems): (WebInspector.MultipleScopeBarItem.set scopeBarItems.createOption): (WebInspector.MultipleScopeBarItem.prototype.set scopeBarItems): (WebInspector.MultipleScopeBarItem.prototype.get selected): (WebInspector.MultipleScopeBarItem.prototype.set selected): (WebInspector.MultipleScopeBarItem.prototype.get selectedScopeBarItem): (WebInspector.MultipleScopeBarItem.prototype.set selectedScopeBarItem): (WebInspector.MultipleScopeBarItem.prototype._clicked): (WebInspector.MultipleScopeBarItem.prototype._selectElementSelectionChanged): (WebInspector.MultipleScopeBarItem.prototype._itemSelectionDidChange): * UserInterface/Views/NavigationSidebarPanel.js: (WebInspector.NavigationSidebarPanel.prototype.matchTreeElementAgainstFilterFunctions): (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.matchTextFilter): (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.makeVisible): (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement): (WebInspector.NavigationSidebarPanel.prototype._updateFilter): (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged): Improve filtering so non-text filters can choose to auto-expand the tree. * UserInterface/Views/ResourceSidebarPanel.css: Added. (.sidebar > .panel.navigation.resource > :matches(.content, .empty-content-placeholder)): (.sidebar > .panel.navigation.resource > .navigation-bar): * UserInterface/Views/ResourceSidebarPanel.js: (WebInspector.ResourceSidebarPanel): (WebInspector.ResourceSidebarPanel.prototype.hasCustomFilters): (WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match): (WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters): (WebInspector.ResourceSidebarPanel.prototype._scopeBarSelectionDidChange): Make a ScopeBar and make it filter the TreeOutline when needed. * UserInterface/Views/ScopeBar.css: (.scope-bar > li.multiple): (.scope-bar > li.multiple > select): (.scope-bar > li.multiple.selected > select): (.scope-bar > li.multiple > .arrows): (.scope-bar > li.multiple:matches(.selected, :hover, :active) > .arrows svg .filled): (.scope-bar > li.multiple:matches(.selected, :hover, :active) > .arrows svg .stroked): * UserInterface/Views/ScopeBar.js: (WebInspector.ScopeBar): Support shouldGroupNonExclusiveItems which will use MultipleScopeBarItem. (WebInspector.ScopeBar.prototype._populate): (WebInspector.ScopeBar.prototype._itemSelectionDidChange): (WebInspector.ScopeBar.prototype.updateLayout): Deleted. Not needed for our current styles. * UserInterface/Views/ScopeBarItem.js: (WebInspector.ScopeBarItem): (WebInspector.ScopeBarItem.prototype.get id): (WebInspector.ScopeBarItem.prototype.get label): (WebInspector.ScopeBarItem.prototype.get exclusive): (WebInspector.ScopeBarItem.prototype.setSelected): (WebInspector.ScopeBarItem.prototype._clicked): (WebInspector.ScopeBarItem.prototype.get element): Deleted. (WebInspector.ScopeBarItem.prototype._markElementSelected): Deleted. Cleaned up and modernized a bit. 2015-05-29 Tobias Reiss Web Inspector: Activity Viewer does not update on "clear all console messages" https://bugs.webkit.org/show_bug.cgi?id=144681 Reviewed by Joseph Pecoraro. Do not apply "ignoreDidClearMessages" hack on "Clear log" Button and Context menu. * UserInterface/Views/LogContentView.js: (WebInspector.LogContentView.prototype._sessionStarted): (WebInspector.LogContentView.prototype._clearLogIgnoringClearMessages): (WebInspector.LogContentView.prototype._clearLog): Deleted. 2015-05-29 Matt Baker Web Inspector: Remove unused expandTreeElementsWhenArrowing property from TreeOutline https://bugs.webkit.org/show_bug.cgi?id=145470 Reviewed by Joseph Pecoraro. * UserInterface/Views/TreeOutline.js: (WebInspector.TreeOutline.prototype._treeKeyDown): Replaced uses of removed property with boolean literal. 2015-05-29 Joseph Pecoraro Web Inspector: Tabs should have Context Menus https://bugs.webkit.org/show_bug.cgi?id=144208 Reviewed by Timothy Hatcher. Give non-pinned tabs "Close Tab" and "Close Other Tabs" context menu items to affect other non-pinned tabs. * Localizations/en.lproj/localizedStrings.js: * UserInterface/Views/TabBarItem.js: (WebInspector.TabBarItem): (WebInspector.TabBarItem.prototype._handleContextMenuEvent.closeTab): (WebInspector.TabBarItem.prototype._handleContextMenuEvent.closeOtherTabs): (WebInspector.TabBarItem.prototype._handleContextMenuEvent): 2015-05-29 Matt Baker Web Inspector: Restoring the last selected DOM node fails on reload (DOMAgent: No node with given path found) https://bugs.webkit.org/show_bug.cgi?id=144231 Reviewed by Timothy Hatcher. Removed _restoreSelectedNodeIsAllowed flag from DOMTreeContentView. The frontend receives two documentUpdated events from the DOM Agent during page reload, and the flag was preventing DOMTreeContentView from restoring the previous selection in response to the second event. * UserInterface/Views/DOMTreeContentView.js: (WebInspector.DOMTreeContentView.prototype.selectLastSelectedNode): (WebInspector.DOMTreeContentView.prototype._restoreSelectedNodeAfterUpdate): 2015-05-28 Nikita Vasilyev Web Inspector: Update toolbar styles https://bugs.webkit.org/show_bug.cgi?id=145419 Also, use hairline borders (1 phisical pixel) on retina (DPI >= 2). Reviewed by Timothy Hatcher. * UserInterface/Views/ButtonToolbarItem.css: (.toolbar .item.button): Deleted. (.toolbar.icon-and-label-vertical .item.button): Deleted. (.toolbar.icon-and-label-horizontal .item.button): Deleted. (.toolbar .item.button > .glyph): Deleted. (.toolbar.small-size .item.button > .glyph): Deleted. * UserInterface/Views/DashboardContainerView.css: (.toolbar .dashboard-container): Deleted. (.toolbar.collapsed .dashboard-container): Deleted. (.toolbar.small-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard-container): Deleted. (.toolbar .dashboard.slide-out-down): Deleted. (.toolbar .dashboard.slide-in-up): Deleted. * UserInterface/Views/Toolbar.css: (.toolbar .search-bar > input[type="search"]): (.toolbar .search-bar > input[type="search"]::-webkit-textfield-decoration-container): (body:not(.unknown-mac) .toolbar .dashboard-container): (body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]): (body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]:focus): (body:not(.unknown-mac) .toolbar .item.button:active): (body.window-inactive:not(.unknown-mac) .toolbar .dashboard-container): (body.unknown-mac .toolbar .dashboard-container): (body.unknown-mac .toolbar .search-bar > input[type="search"]): (body.unknown-mac .toolbar .search-bar > input[type="search"]:focus): (@media (-webkit-min-device-pixel-ratio: 2)): (body.unknown-mac .toolbar .item.button:active): (body.unknown-mac.window-inactive .toolbar .dashboard-container): 2015-05-28 Devin Rousso Web Inspector: Jump from a computed style to the rule it came from https://bugs.webkit.org/show_bug.cgi?id=120640 Reviewed by Timothy Hatcher. * UserInterface/Views/CSSStyleDeclarationTextEditor.js: (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): If the delegate of CSSStyleDeclarationTextEditor has cssStyleDeclarationTextEditorShouldAddPropertyGoToArrows set to true, add a goToArrow to all CSS property entries. (WebInspector.CSSStyleDeclarationTextEditor.prototype.highlightProperty.propertiesMatch): (WebInspector.CSSStyleDeclarationTextEditor.prototype.highlightProperty.hasMatchingLonghandProperty): (WebInspector.CSSStyleDeclarationTextEditor.prototype.highlightProperty): Determines if a given CSS property is in the CSS style section and if so, select that CSS property, focus on the section containing that CSS property, and return true. * UserInterface/Views/CSSStyleDeclarationSection.js: (WebInspector.CSSStyleDeclarationSection.prototype.highlightProperty): Searches through the properties of the section for a given property and scrolls to it if found. * UserInterface/Views/CSSStyleDetailsSidebarPanel.js: (WebInspector.CSSStyleDetailsSidebarPanel.prototype.computedStyleDetailsPanelShowProperty): Switches to the rulesStyleDetailsPanel and scrolls to and hightlights a given property in that panel. (WebInspector.CSSStyleDetailsSidebarPanel.prototype._navigationItemSelected): (WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels): Moved this function out of _navigationItemSelected for better reusablity. * UserInterface/Views/ComputedStyleDetailsPanel.js: (WebInspector.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty): Function that calls the delegate (which should be CSSStyleDetailsSidebarPanel) function computedStyleDetailsPanelShowProperty. * UserInterface/Views/RulesStyleDetailsPanel.js: (WebInspector.RulesStyleDetailsPanel): (WebInspector.RulesStyleDetailsPanel.prototype.refresh): (WebInspector.RulesStyleDetailsPanel.prototype.scrollToSectionAndHighlightProperty): Searches through all the sections of the RulesStyleDetailsPanel for a given CSS property. (WebInspector.RulesStyleDetailsPanel.prototype.shown): (WebInspector.RulesStyleDetailsPanel.prototype.hidden): (WebInspector.RulesStyleDetailsPanel.prototype.nodeStylesRefreshed): Added a flag to this function that will highlight and scroll to a given property (_propertyToSelectAndHighlight) if set on load. * UserInterface/Views/StyleDetailsPanel.js: (WebInspector.StyleDetailsPanel.prototype.markAsNeedsRefresh): (WebInspector.StyleDetailsPanel.prototype.nodeStylesRefreshed): Made into protected function to allow it to be overridden. (WebInspector.StyleDetailsPanel.prototype._nodeStylesRefreshed): Deleted. 2015-05-28 Joseph Pecoraro Web Inspector: Should have a keyboard shortcut to switch between inspector tabs https://bugs.webkit.org/show_bug.cgi?id=144207 Reviewed by Timothy Hatcher. These keyboard shortcuts work well in an undocked inspector window. Be careful that some keyboard shortcuts, when used inside a text editor / text field are just text actions. However, some keyboard shortcuts will work no matter where you trigger them. * UserInterface/Models/KeyboardShortcut.js: * UserInterface/Views/TabBar.js: (WebInspector.TabBar.prototype.selectPreviousTab): (WebInspector.TabBar.prototype.selectNextTab): * UserInterface/Views/TabBrowser.js: (WebInspector.TabBrowser): (WebInspector.TabBrowser.prototype._showPreviousTab): (WebInspector.TabBrowser.prototype._showNextTab): 2015-05-28 Joseph Pecoraro Web Inspector: NewTabContentView should update button disabled state as other tabs are added/removed https://bugs.webkit.org/show_bug.cgi?id=145448 Reviewed by Timothy Hatcher. * UserInterface/Views/NewTabContentView.js: (WebInspector.NewTabContentView): Always add a click listener and add the type as a private property on the element. (WebInspector.NewTabContentView.prototype.shown): (WebInspector.NewTabContentView.prototype.hidden): Add / remove event listeners for tab changes. Also update the view when shown. (WebInspector.NewTabContentView.prototype._createNewTab): A disabled button an now be clicked. Do nothing if a new tab of this type is not allowed. (WebInspector.NewTabContentView.prototype._updateTabItems): Refresh the disabled state for each of the buttons. 2015-05-27 Joseph Pecoraro Web Inspector: Show Page Source does not switch to Resources tab if inspector was closed https://bugs.webkit.org/show_bug.cgi?id=145423 Reviewed by Timothy Hatcher. * UserInterface/Base/Main.js: (WebInspector._frameWasAdded.delayedWork): (WebInspector._frameWasAdded): In the special case where we are holding to show a frame's source code when the frame becomes available (_frameIdentifierToShowSourceCodeWhenAvailable) we should be forcing to show the tab. 2015-05-27 Joseph Pecoraro Web Inspector: Toggling an inherited property sometimes stops working https://bugs.webkit.org/show_bug.cgi?id=145416 Reviewed by Timothy Hatcher. * UserInterface/Models/DOMNodeStyles.js: (WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload): Ensure we update the existing model objects with the new state information before possibly bailing. This may produce changed events that update parts of the inspector appropriately. 2015-05-27 Joseph Pecoraro Web Inspector: REGRESSION(r179286) Editing Style Metrics Values no longer works https://bugs.webkit.org/show_bug.cgi?id=143164 Reviewed by Brian Burg. * UserInterface/Views/BoxModelDetailsSectionRow.js: (WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics.createElement): (WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput.resolvedNode.toggleInlineStyleProperty): (WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput.resolvedNode.didToggle): (WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput.resolvedNode): (WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput): Make it so editing in the metrics pane just evaluates elem.style.setProperty on the inspected page. Use "!important" to try and give the maximum priority possible, which is a change from older behavior. Finally, refresh the sidebar to update all values, and update the UI if bad input didn't change styles. 2015-05-26 Joseph Pecoraro Web Inspector: Function parameter string parsing improperly handles empty parameter list https://bugs.webkit.org/show_bug.cgi?id=145391 Reviewed by Darin Adler. * UserInterface/Views/ObjectTreePropertyTreeElement.js: (WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString): 2015-05-26 Joseph Pecoraro Web Inspector: Add Array.prototype.copyWithin parameter list https://bugs.webkit.org/show_bug.cgi?id=145388 Reviewed by Darin Adler. * UserInterface/Models/NativeFunctionParameters.js: 2015-05-26 Nikita Vasilyev Web Inspector: focus outline of a search field should have a radius https://bugs.webkit.org/show_bug.cgi?id=145383 Add a focus outline animation to roughly mimic the default focus outline of OS X. Reviewed by Timothy Hatcher. * UserInterface/Views/Toolbar.css: (.toolbar .search-bar > input[type="search"]): -webkit-focus-ring-color doesn't follow element's curvature (e.g. border-radius) and it cannot be animated. Replace it with box-shadow. (.toolbar .search-bar > input[type="search"]:focus): 2015-05-26 Nikita Vasilyev Web Inspector: The bottom part "debugger" is clipped in the tab’s title https://bugs.webkit.org/show_bug.cgi?id=145381 Reviewed by Timothy Hatcher. * UserInterface/Views/TabBar.css: (.tab-bar > .item): Set line-height to fit "debugger". Setting line-height to 16px, which is the size of the tabs icons, moves the text one pixel up, so set it to 15px. 2015-05-26 Dan Bernstein Update build settings Reviewed by Anders Carlsson. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: * Configurations/Version.xcconfig: 2015-05-23 Dan Bernstein Remove unused definitions of WEBKIT_VERSION_MIN_REQUIRED https://bugs.webkit.org/show_bug.cgi?id=145345 Reviewed by Sam Weinig. * Configurations/Base.xcconfig: 2015-05-23 Joseph Pecoraro Web Inspector: Remove code related with unused style classes https://bugs.webkit.org/show_bug.cgi?id=145332 Reviewed by Timothy Hatcher. * UserInterface/Views/ConsoleMessageView.js: (WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.append): (WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString): The "type-string" class has no styles associated with it. So the entire span can be removed. * UserInterface/Views/DOMTreeElement.js: Both of these style classes have no styles associated with them. Remove the class names. 2015-05-23 Joseph Pecoraro Web Inspector: Improve native parameter lists a bit https://bugs.webkit.org/show_bug.cgi?id=145338 Reviewed by Timothy Hatcher. * UserInterface/Models/NativeFunctionParameters.js: * UserInterface/Views/ObjectTreePropertyTreeElement.js: (WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString): 2015-05-23 Joseph Pecoraro Web Inspector: Update CSS Autocompletion properties and values https://bugs.webkit.org/show_bug.cgi?id=145341 Reviewed by Timothy Hatcher. * UserInterface/Models/CSSKeywordCompletions.js: 2015-05-22 Joseph Pecoraro Web Inspector: Adopt Object.setPrototypeOf https://bugs.webkit.org/show_bug.cgi?id=145335 Reviewed by Timothy Hatcher. For a case that won't easily move to ES6 classes use Object.setPrototypeOf. * UserInterface/Protocol/InspectorBackend.js: (InspectorBackend.Command.create): 2015-05-22 Joseph Pecoraro Web Inspector: Inline use once class names and remove some unused class names https://bugs.webkit.org/show_bug.cgi?id=145334 Reviewed by Timothy Hatcher. * UserInterface/Views/ApplicationCacheFrameContentView.js: (WebInspector.ApplicationCacheFrameContentView): * UserInterface/Views/BoxModelDetailsSectionRow.js: (WebInspector.BoxModelDetailsSectionRow): * UserInterface/Views/CSSStyleDeclarationSection.js: (WebInspector.CSSStyleDeclarationSection): * UserInterface/Views/CSSStyleDetailsSidebarPanel.js: (WebInspector.CSSStyleDetailsSidebarPanel): * UserInterface/Views/ClusterContentView.js: (WebInspector.ClusterContentView): * UserInterface/Views/CompletionSuggestionsView.js: (WebInspector.CompletionSuggestionsView): * UserInterface/Views/ConsolePrompt.js: (WebInspector.ConsolePrompt): * UserInterface/Views/ContentBrowser.js: (WebInspector.ContentBrowser): * UserInterface/Views/ContentFlowTreeElement.js: (WebInspector.ContentFlowTreeElement): * UserInterface/Views/ContentView.js: (WebInspector.ContentView): * UserInterface/Views/ContentViewContainer.js: (WebInspector.ContentViewContainer): * UserInterface/Views/CookieStorageContentView.js: (WebInspector.CookieStorageContentView): * UserInterface/Views/CookieStorageTreeElement.js: (WebInspector.CookieStorageTreeElement): * UserInterface/Views/DOMStorageContentView.js: (WebInspector.DOMStorageContentView): * UserInterface/Views/DOMTreeContentView.js: (WebInspector.DOMTreeContentView): * UserInterface/Views/DashboardView.js: (WebInspector.DashboardView): * UserInterface/Views/DatabaseTableContentView.js: (WebInspector.DatabaseTableContentView): * UserInterface/Views/DebuggerDashboardView.js: (WebInspector.DebuggerDashboardView): (WebInspector.DebuggerDashboardView.prototype._rebuildLocation): * UserInterface/Views/DetailsSection.js: (WebInspector.DetailsSection): * UserInterface/Views/DetailsSectionSimpleRow.js: * UserInterface/Views/FontResourceContentView.js: (WebInspector.FontResourceContentView): (WebInspector.FontResourceContentView.prototype.createMetricElement): (WebInspector.FontResourceContentView.prototype.contentAvailable): * UserInterface/Views/HierarchicalPathComponent.js: (WebInspector.HierarchicalPathComponent): (WebInspector.HierarchicalPathComponent.prototype.set selectorArrows): * UserInterface/Views/IndexedDatabaseObjectStoreContentView.js: * UserInterface/Views/LayoutTimelineOverviewGraph.js: (WebInspector.LayoutTimelineOverviewGraph): * UserInterface/Views/NetworkTimelineOverviewGraph.js: (WebInspector.NetworkTimelineOverviewGraph): * UserInterface/Views/OverviewTimelineView.js: * UserInterface/Views/ProbeSetDetailsSection.js: * UserInterface/Views/QuickConsole.js: * UserInterface/Views/ReplayDashboardView.js: * UserInterface/Views/ScriptContentView.js: (WebInspector.ScriptContentView): * UserInterface/Views/ScriptTimelineOverviewGraph.js: (WebInspector.ScriptTimelineOverviewGraph): * UserInterface/Views/TextContentView.js: (WebInspector.TextContentView): * UserInterface/Views/TimelineOverview.js: (WebInspector.TimelineOverview): * UserInterface/Views/TimelineOverviewGraph.js: (WebInspector.TimelineOverviewGraph): * UserInterface/Views/TimelineRecordBar.js: (WebInspector.TimelineRecordBar): * UserInterface/Views/TimelineRecordFrame.js: (WebInspector.TimelineRecordFrame): * UserInterface/Views/TimelineRecordingContentView.js: (WebInspector.TimelineRecordingContentView): * UserInterface/Views/TimelineRuler.js: (WebInspector.TimelineRuler): (WebInspector.TimelineRuler.prototype.set allowsTimeRangeSelection): 2015-05-22 Joseph Pecoraro Web Inspector: DOMTree Keyboard Shortcut 'H' to toggle element visibility is not working https://bugs.webkit.org/show_bug.cgi?id=145331 Reviewed by Brian Burg. We no longer have CSSProperty.value setters. Instead of attempting to toggle and clobber inline style values on the element we: 1. inject a